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`.
--
v3: 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().
tests: Test packoffset().
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/106
Needed by the VR games Forewarned and Überlaüfer.
I had to put the parameters of the header functions on newlines because they're too long. Did the same for the other headers for consistency. windows.security.cryptography.idl uses a similar style.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/2292
> Thinking of doing this x11 specific, I think that maybe we don't even need a special boolean flag if your MR !2217 gets in? Once we have a separate tracking of internal pixel format in WGL_WINE_pixel_format_passthrough we could just always fail setting internal pixel format once external is set. The extension itself will still work as if an app wants to use GL together with d3d it will be able to set GL pixel format (which will result in wined3d creating a backup context).
I think that'd work, yeah.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/2299#note_26227
I looked a bit into winemac driver and some GL on Mac docs and I suppose that such an issue should not be happening on Mac. If I read that right pixel format is only bound to GL context and the pixel format set by Wine only influences the contexts created with the window. I don't have any Mac setup however to check that for sure. If anyone could check if that referenced games (Richman: Classic in opengl mode or Secondhand Lands or SPORE from Bug 51848 work now on Mac without issues that would be a good confirmation that set pixel format works fine there and doesn't impose issues like on winex11.
Thinking of doing this x11 specific, I think that maybe we don't even need a special boolean flag if your MR !2217 gets in? Once we have a separate tracking of internal pixel format in WGL_WINE_pixel_format_passthrough we could just always fail setting internal pixel format once external is set. The extension itself will still work as if an app wants to use GL together with d3d it will be able to set GL pixel format (which will result in wined3d creating a backup context).
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/2299#note_26224