In a declaration with multiple variables, the variables must be created
before the initializer of the next variable is parsed. This is required
for initializers such as:
```
float a = 1, b = a, c = b + 1;
```
The solution is to parse the type information in the same rule as the first variable ('a' in this case) so that it can be declared before the parser reaches the initializer for the following variables.
To initialize the following variables, the type information is passed along from the first variable's struct parse_variable_def to the next and so on.
---
Solves https://bugs.winehq.org/show_bug.cgi?id=54484, pointed out by @nsivov.
--
v2: vkd3d-shader/hlsl: Declare vars individually when parsing struct declarations.
vkd3d-shader/hlsl: Declare vars individually when parsing regular declarations.
vkd3d-shader/hlsl: Split declare_vars().
tests: Test multiple variable initializers.
tests: Test semantics in uniform variables.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/250
--
v2: vkd3d: Release op data when destroying the queue.
vkd3d: Always emit an error when failing to reserve for the op array.
vkd3d: Release the op mutex on allocation failure.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/251
--
v2: wined3d: Remove no longer used arguments from wined3d_texture_update_desc().
wined3d: Recreate swapchain textures in wined3d_swapchain_resize_buffers().
wined3d: Factor out a swapchain_create_texture() helper.
dxgi: Do not create a d3d11 swapchain object for the implicit swapchain.
https://gitlab.winehq.org/wine/wine/-/merge_requests/2822
This series of patches enable Adobe PDF Reader 11 protected mode, which is essentially a Chromium sandbox, to work properly.
--
v2: server: Allow creating a real explorer desktop window for invisible window stations.
user32/tests: Test that an actual desktop window should be created on invisible window stations.
win32u: Use the window station name to check if an application is running as a service.
user32/tests: Test monitor information with an invisible window station.
win32u: Create explorer with the thread effective access token.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3162
Ah, dammit, I wish I had caught this sooner.
MoltenVK has its own scheme for assigning a PCI device ID to the AGX GPUs. I wonder if it wouldn't be worth attempting to emulate that in case apps try to match the ID from Vulkan to this one.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3187#note_37247