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
Introduction
------------
This is the first of (many) parts in the upstreaming of the Wayland driver for Wine. Since the amount of code and commits is large, my approach is to upstream the driver in multiple parts in a serial fashion, with each part being a cohesive (to the degree possible) set of not too many commits. When each part is reviewed and merged, I will move on to proposing the next part. My main goal with this approach is to make reviewing easier and more focused. If you have other ideas about how to improve this process for the reviewers, please let me know.
A lot of pieces need to fall into place before the driver becomes even remotely functional, so, some MRs (especially the initial ones) will be a bit more preparatory in nature. To aid in the understanding of and justification for some of the code introduced in such MRs, all the remaining driver commits are always going to be available at https://gitlab.winehq.org/afrantzis/wine/-/tree/wayland.
Part 1
-------
This MR introduces the Wayland driver PE and unixlib components with some basic code, and prepares the makedep tool to be able to handle Wayland protocol files. Please see the individual commit message for more details.
Some questions I would appreciate some feedback on in the context of this MR:
1. Should the Wayland driver build be enabled by default at this point? (currently it's explicitly opt-in with --with-wayland)
2. How should the Wayland driver build be integrated with CI? (currently piggybacking on gitlab/build-linux by adding --with-wayland)
Note that building the Wayland driver should not affect running/testing on X11/Xwayland etc, since it's placed lower in the driver priority list.
Part 2 preview: We will handle basic Wayland wl_output (i.e., display) events and populate the Wine monitor information.
--
v3: winewayland.drv: Introduce wayland_mutex.
winewayland.drv: Initialize basic per-thread Wayland instance.
https://gitlab.winehq.org/wine/wine/-/merge_requests/2275
The goal is to eventually move all interfaces from each driver's `mmdevdrv.c` into `mmdevapi`.
--
v2: wine{alsa,coreaudio,oss,pulse}: Move test_connect handling into mmdevapi.
winepulse: Move process_attach and process_detach handling into mmdevapi.
mmdevapi: Query MemoryWineUnixFuncs virtual memory and store the resulting handle.
wine{alsa,coreaudio,oss,pulse}: Return STATUS_NOT_IMPLEMENTED for unused unixlib functions.
include: Add missing "winternl.h" include to unixlib.h.
https://gitlab.winehq.org/wine/wine/-/merge_requests/1543