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
In particular, February dates contain an e-acute in French, the
representation of which depends on the code page being used, which in
SHFormatDateTimeA() is CP_ACP.
Also there are only three months that triggered this bug in French: February, August and December. So also make sure to test this issue year round.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=54149
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/2313