These were docmented in [1] (with the user-facing name of the opcode
adjusted later in [2]).
Since MSVC 2022, the precompiled runtimes (both runtimes such as
vcruntime140*.dll and the statically linked code from e.g. libcmt.lib)
are built with pointer authentication enabled.
To correctly handle unwinding through such functions, even on HW that
don't support the pointer authentication mechanism itself, wine needs
to at least be aware of it (for handling the cases with packed unwind
info with CR==2 simiarly to CR==3).
This patch has been tested on Linux on HW supporting pointer
authentication too, with binaries built with MSVC.
[1] https://github.com/MicrosoftDocs/cpp-docs/commit/f510c83085d9764b3c7b522219…
[2] https://github.com/MicrosoftDocs/cpp-docs/commit/cac237d3f370a06b71f6c314a6…
--
v2: ntdll: Handle aarch64 pointer authentication in unwind info
https://gitlab.winehq.org/wine/wine/-/merge_requests/2320
These were docmented in [1] (with the user-facing name of the opcode
adjusted later in [2]).
Since MSVC 2022, the precompiled runtimes (both runtimes such as
vcruntime140*.dll and the statically linked code from e.g. libcmt.lib)
are built with pointer authentication enabled.
To correctly handle unwinding through such functions, even on HW that
don't support the pointer authentication mechanism itself, wine needs
to at least be aware of it (for handling the cases with packed unwind
info with CR==2 simiarly to CR==3).
This patch has been tested on Linux on HW supporting pointer
authentication too, with binaries built with MSVC.
[1] https://github.com/MicrosoftDocs/cpp-docs/commit/f510c83085d9764b3c7b522219…
[2] https://github.com/MicrosoftDocs/cpp-docs/commit/cac237d3f370a06b71f6c314a6…
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/2320
Allowing the job to fail to avoid failing the pipeline. Some new tests
are failing with it, and some are succeeding todo_wine.
--
v4: gitlab: Run user32 32-bit tests with nulldrv driver.
user32/tests: Update todos specific to the X11 display driver.
user32/tests: Check graphics driver and add todos for nulldrv.
win32u: Check GUID_NULL display device if desktop atom is missing.
explorer: Use GUID_NULL display device GUID for nulldrv.
win32u: Return the current display mode depth with nulldrv.
win32u: Map VK_MENU / KBDALT in kbdus_tables pCharModifiers.
user32/tests: Test VK_MENU effect on ToUnicode.
https://gitlab.winehq.org/wine/wine/-/merge_requests/1259
The goal is to eventually move all interfaces from each driver's `mmdevdrv.c` into `mmdevapi`.
--
v4: wine{alsa,coreaudio,oss,pulse}: Move test_connect handling into mmdevapi.
mmdevapi: Use UTF-16 for client name in "test_connect_params" and "create_stream_params" structs.
winepulse: Move process_attach and process_detach handling into mmdevapi.
https://gitlab.winehq.org/wine/wine/-/merge_requests/1543
This was either added by accident, or in an attempt to stop checking the message
list once we hit a winevent hook todo [and accidentally given too wide of a
scope]. However, the same commit also uses a global counter to ensure that only
one winevent todo is printed, so we don't need to break here anyway.
Fixes: a72bffe768c9fe462010d7e40e20226322fb82c7
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/2314
Support manually packing constant buffer elements through the `packoffset(·)` syntax.
Support not included yet for simultaneously having semantics, `register(·)`, and `packoffset(·)`, for abnormalities such as:
```hlsl
Texture2D tex;
cbuffer buff
{
float4 a : packoffset(c0);
sampler sam : packoffset(c0) : register(s1) : SEMANTIC;
}
float4 main() : sv_target
{
return tex.Sample(sam, float2(0, 0)) + a;
}
```
but this motivated the addition of the `hlsl_ir_var.offset_reservation` field instead of reusing `hlsl_ir_var.reg_reservation`.
--
v2: vkd3d-shader/hlsl: Consider register() as manual packing for resource fields.
tests: Test packoffset() with resources inside cbuffers.
vkd3d-shader/hlsl: Ignore packoffset() contents for SM1.
vkd3d-shader/hlsl: Don't allow manual and automatic cbuffer offset packing.
vkd3d-shader/hlsl: Detect overlaps in cbuffer offsets.
vkd3d-shader/hlsl: Support packoffset().
vkd3d-shader/hlsl: Parse packoffset().
tests: Test packoffset().
tests: Test cbuffer element offsets.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/106
nVidia's GLSL compiler spits out a warning if a value is potentially
used without being initialized. This affects many of wined3d's GLSL
shaders, as either some element of the (e.g.) vs_out array are not
initialized, or individual vector components remain unwritten to.
As a quick way of working around this, initialize all vs_out, gs_out,
and temporary Rn registers to vec4(0,0,0,0). This gets rid of all of the
warnings in the cases I tried.
(A more complete solution would probably track if we're initialising
these, and only add what is required. Or would just disable the warning
somehow.)
Some example warnings (from a shader in the 'Pharaoh: A New Era' demo):
```
0264:fixme:d3d_shader:print_glsl_info_log Info log received from GLSL shader #3:
0264:fixme:d3d_shader:print_glsl_info_log Vertex info
0264:fixme:d3d_shader:print_glsl_info_log -----------
0264:fixme:d3d_shader:print_glsl_info_log 0(28) : warning C7050: "vs_out[2].zw" might be used before being initialized
0264:fixme:d3d_shader:print_glsl_info_log 0(28) : warning C7050: "vs_out[5].w" might be used before being initialized
0264:fixme:d3d_shader:print_glsl_info_log 0(28) : warning C7050: "vs_out[7]" might be used before being initialized
0264:fixme:d3d_shader:print_glsl_info_log 0(28) : warning C7050: "vs_out[8]" might be used before being initialized
0264:fixme:d3d_shader:print_glsl_info_log 0(28) : warning C7050: "vs_out[9]" might be used before being initialized
0264:fixme:d3d_shader:print_glsl_info_log 0(28) : warning C7050: "vs_out[10]" might be used before being initialized
0264:fixme:d3d_shader:print_glsl_info_log 0(28) : warning C7050: "vs_out[11]" might be used before being initialized
0264:fixme:d3d_shader:print_glsl_info_log 0(28) : warning C7050: "vs_out[12]" might be used before being initialized
0264:fixme:d3d_shader:print_glsl_info_log 0(28) : warning C7050: "vs_out[13]" might be used before being initialized
0264:fixme:d3d_shader:print_glsl_info_log 0(28) : warning C7050: "vs_out[14]" might be used before being initialized
0264:fixme:d3d_shader:print_glsl_info_log 0(28) : warning C7050: "vs_out[15]" might be used before being initialized
```
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/2260
> Otherwise, it can be technically made to work like for GL child window redering (keeping composite redirected drawables for different pixel formats) but that requires essentially the same blitting on each present as done with wined3d backup context.
It wouldn't need to go through CPU memory though.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/2299#note_26016
On Thu Mar 2 13:50:13 2023 +0000, **** wrote:
> Marvin replied on the mailing list:
> ```
> Hi,
> It looks like your patch introduced the new failures shown below.
> Please investigate and fix them before resubmitting your patch.
> If they are not new, fixing them anyway would help a lot. Otherwise
> please ask for the known failures list to be updated.
> The tests also ran into some preexisting test failures. If you know how
> to fix them that would be helpful. See the TestBot job for the details:
> The full results can be found at:
> https://testbot.winehq.org/JobDetails.pl?Key=130177
> Your paranoid android.
> === debian11 (32 bit report) ===
> dinput:
> device8.c:496: Test failed: WaitForSingleObject returned 0x102
> device8.c:500: Test failed: WaitForSingleObject returned 0x102
> device8.c:520: Test failed: got data size 0, expected 1
> device8.c:521: Test failed: got action uAppData 0046BAAF, expected FFFFFFFF
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:551: Test failed: GetDeviceData returned 0
> device8.c:555: Test failed: got data_size 0, expected 1
> device8.c:496: Test failed: WaitForSingleObject returned 0x102
> device8.c:500: Test failed: WaitForSingleObject returned 0x102
> device8.c:520: Test failed: got data size 0, expected 1
> device8.c:521: Test failed: got action uAppData 0046BAAF, expected 00000002
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:551: Test failed: GetDeviceData returned 0
> device8.c:555: Test failed: got data_size 0, expected 1
> device8.c:496: Test failed: WaitForSingleObject returned 0x102
> device8.c:500: Test failed: WaitForSingleObject returned 0x102
> device8.c:520: Test failed: got data size 0, expected 1
> device8.c:521: Test failed: got action uAppData 0046BAAF, expected 0000000A
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:551: Test failed: GetDeviceData returned 0
> device8.c:555: Test failed: got data_size 0, expected 1
> device8.c:496: Test failed: WaitForSingleObject returned 0x102
> device8.c:500: Test failed: WaitForSingleObject returned 0x102
> device8.c:520: Test failed: got data size 0, expected 1
> device8.c:521: Test failed: got action uAppData 0046BAAF, expected FFFFFFFF
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:551: Test failed: GetDeviceData returned 0
> device8.c:555: Test failed: got data_size 0, expected 1
> device8.c:496: Test failed: WaitForSingleObject returned 0x102
> device8.c:500: Test failed: WaitForSingleObject returned 0x102
> device8.c:520: Test failed: got data size 0, expected 1
> device8.c:521: Test failed: got action uAppData 0046BAAF, expected 0000000B
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:551: Test failed: GetDeviceData returned 0
> device8.c:555: Test failed: got data_size 0, expected 1
> device8.c:496: Test failed: WaitForSingleObject returned 0x102
> device8.c:500: Test failed: WaitForSingleObject returned 0x102
> device8.c:520: Test failed: got data size 0, expected 1
> device8.c:521: Test failed: got action uAppData 0046BAAF, expected 00000002
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:531: Test failed: WaitForSingleObject returned 0x102
> device8.c:535: Test failed: WaitForSingleObject returned 0x102
> device8.c:551: Test failed: GetDeviceData returned 0
> device8.c:555: Test failed: got data_size 0, expected 1
> ```
These seem unrelated to the changes in this MR, rebasing on latest master and trying again...
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/2275#note_26010