This second MR in the Wayland series adds display configuration related enhancements, including providing more display information (like a proper/consistent name and position) to Wine and supporting GetCurrentDisplaySettings.
To get additional information from the Wayland compositor we need to use a protocol from the wayland-protocols collection, so we introduce support in the build system for protocol .xml files. These changes are introduced on their own commit in the series, but we can squash it with the next commit, where the functionality is first used, if preferred.
To be able to provide a consistent view of the display settings across all processes, this MR leverages the win32u CURRENT_SETTINGS storage mechanism (which was previously used only in the null driver).
Thanks!
--
v7: winewayland.drv: Infer and report Windows monitor positions.
winewayland.drv: Basic support for Windows monitor positioning.
winewayland.drv: Use the output name reported by the compositor.
tools: Support building Wayland protocol source files.
winewayland.drv: Handle wl_output objects only in the desktop process.
https://gitlab.winehq.org/wine/wine/-/merge_requests/2476
This node type is intended for use during parse-time.
While we parse an indexing expression such as `a[3]`, we don't know if
it will end up as part of an expression (in which case it must be folded
into a load) or it is for the lhs of a store (in which case it must be
folded into the store's deref). This node type is used to represent these accesses and no longer rely on building an `hlsl_ir_load` for each array index or struct record access.
`hlsl_ir_index` chains are lowered into derefs when (and if) they are used to specify the lhs of an assignment. All `hlsl_ir_index`es are lowered into `hlsl_ir_load`s with a compilation pass.
The changes introduced in these series allow to solve the problem with the return variable of function calls presented in !93, and to properly support assignment to matrix indexes, which is something we are not doing correctly.
Further patches (in my [index node](https://gitlab.winehq.org/fcasas/vkd3d/-/commits/index_node) branch) add support for indexing non-load expressions, such as `(a + b)[1]` and allowing to represent resource loads through `hlsl_ir_index`, so that `hlsl_ir_resource_store`s don't have to rely on `hlsl_ir_resource_load`s.
--
v8: vkd3d-shader/hlsl: Evaluate index before array.
vkd3d-shader/hlsl: Support column-major matrix indexing in the lhs.
vkd3d-shader/hlsl: Always load from a synthetic copy in add_load_component().
vkd3d-shader/hlsl: Remove add_load_index().
vkd3d-shader/hlsl: Use hlsl_ir_index for array and record access.
vkd3d-shader/hlsl: Introduce hlsl_ir_index.
tests: Test indexing of non-loads.
tests: Test side effects on indexes.
tests: Test matrix indexing on the lhs.
tests: Test multiple calls to the same function in initializers.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/124
There's the regular application icon and three different styles of
close window icons. While there is nothing wrong with that this case is
marked as broken() because Wine's notepad only has one icon so only 1 is
a valid PrivateExtractIconsA() result in Wine.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/2645
While struct and array fields within a struct always push the next fields numeric offset to the next register boundary, objects alone don't.
--
v2: vkd3d-shader/hlsl: Fix numeric offset of object fields.
tests: Test numeric offsets with object fields.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/154
This node type is intended for use during parse-time.
While we parse an indexing expression such as `a[3]`, we don't know if
it will end up as part of an expression (in which case it must be folded
into a load) or it is for the lhs of a store (in which case it must be
folded into the store's deref). This node type is used to represent these accesses and no longer rely on building an `hlsl_ir_load` for each array index or struct record access.
`hlsl_ir_index` chains are lowered into derefs when (and if) they are used to specify the lhs of an assignment. All `hlsl_ir_index`es are lowered into `hlsl_ir_load`s with a compilation pass.
The changes introduced in these series allow to solve the problem with the return variable of function calls presented in !93, and to properly support assignment to matrix indexes, which is something we are not doing correctly.
Further patches (in my [index node](https://gitlab.winehq.org/fcasas/vkd3d/-/commits/index_node) branch) add support for indexing non-load expressions, such as `(a + b)[1]` and allowing to represent resource loads through `hlsl_ir_index`, so that `hlsl_ir_resource_store`s don't have to rely on `hlsl_ir_resource_load`s.
--
v7: vkd3d-shader/hlsl: Evaluate index before array.
vkd3d-shader/hlsl: Support column-major matrix indexing in the lhs.
vkd3d-shader/hlsl: Always load from a synthetic copy in add_load_component().
vkd3d-shader/hlsl: Remove add_load_index().
vkd3d-shader/hlsl: Use hlsl_ir_index for array and record access.
vkd3d-shader/hlsl: Introduce hlsl_ir_index.
tests: Test indexing of non-loads.
tests: Test side effects on indexes.
tests: Test matrix indexing on the lhs.
tests: Test multiple calls to the same function in initializers.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/124
The app I'm considering opens a video_processor on its own, with
a NV12 format on input and a ARGB32 format on output.
Tested on Windows: the samples are flipped vertically. While Wine
keeps them untouched.
So added a videoflip in the video processor to be activated when needed.
Current activation is based on RGB vs non RGB input/output formats.
Set as draft as if somehow related to MR!2159.
Comments welcomed.
Signed-off-by: Eric Pouech <epouech(a)codeweavers.com>
--
v5: winegstreamer: In video_processor, activate a videoflip converter.
mf/tests: Add tests about (negative) stride handling.
https://gitlab.winehq.org/wine/wine/-/merge_requests/2471
The app I'm considering opens a video_processor on its own, with
a NV12 format on input and a ARGB32 format on output.
Tested on Windows: the samples are flipped vertically. While Wine
keeps them untouched.
So added a videoflip in the video processor to be activated when needed.
Current activation is based on RGB vs non RGB input/output formats.
Set as draft as if somehow related to MR!2159.
Comments welcomed.
Signed-off-by: Eric Pouech <epouech(a)codeweavers.com>
--
v4: winegstreamer: In video_processor, activate a videoflip converter.
mf/tests: Add tests about (negative) stride handling.
https://gitlab.winehq.org/wine/wine/-/merge_requests/2471