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.
--
v5: 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.
winex11.drv: Extract function to check devmode equality.
win32u: Support setting the current mode using gdi_device_manager.
https://gitlab.winehq.org/wine/wine/-/merge_requests/2568
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