Update the gdi_device_manager API to enable drivers to set the current mode (along with the registry mode if not already set) in
UpdateDisplayDevices.
This changes also allows us to remove the driver code that manually changes the registry settings.
--
v4: wineandroid.drv: Set the current mode using gdi_device_manager.
winemac.drv: Set the current mode using gdi_device_manager.
winemac.drv: Extract function to get the current mode.
winewayland.drv: Set the current mode using gdi_device_manager.
winex11.drv: Set the current mode using gdi_device_manager.
win32u: Support setting the current mode using gdi_device_manager.
debug.h: Add debugstr_devmodew() helper.
https://gitlab.winehq.org/wine/wine/-/merge_requests/2568
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`.
--
v7: 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().
vkd3d-shader/hlsl: Rename struct hlsl_reg_reservation fields.
tests: Test packoffset().
tests: Test cbuffer element offsets.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/106
This adds several handy X11 utilities, such as xrandr, and some other
window managers, in order to eventually use a different one and avoid
fwvm race conditions.
I think it would be interesting to test with some different WMs than
fvwm, at least because they are more commonly used.
Then, I also think that fvwm has some race conditions, and it causes
spurious focus loss, as https://bugs.winehq.org/show_bug.cgi?id=54594
for instance. I've been running the same test in a tight loop with any
of the other WMs added here (mutter / kwin / openbox) and it is not
reproducing. With fvwm the failure reproduces quickly and systematically.
The xrandr utility would be useful in the future, but only after the
image is updated to a newer xserver-xorg-video-dummy version which
would support multiple screens. It will then be possible to set them
up with the following commands:
```
xrandr --addmode DUMMY1 1024x768 \
--addmode DUMMY2 1024x768
xrandr --output DUMMY0 --auto \
--output DUMMY1 --right-of DUMMY0 --mode 1024x768 \
--output DUMMY2 --right-of DUMMY1 --mode 1024x768
xrandr # to refresh the settings
```
Then I think it doesn't hurt to have it installed in the meantime.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/2467