This applies on top of !704, the last two commits belong here.
Here we finally emit the structured program, replacing the older simple structurizer. The advantage of the new structurizer is that the CFG if statically described in the generated program, without having to trace the value of a variable. Upcoming MRs will make the CFG even simpler, easier to read and hopefully to optimize for downstream compilers.
--
v2: vkd3d-shader/ir: Emit multilevel jumps in the structured program.
vkd3d-shader/ir: Emit the reconstructed structured program.
vkd3d-shader/ir: Dump the reconstructed structured program.
vkd3d-shader/ir: Add jumps to the structured programs.
vkd3d-shader/ir: Reconstruct a structured program.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/711
With some intermediate refactoring to make the code simpler.
I believe the failures that happened previously were coming from how NtGdiDdDDIOpenAdapterFromLuid initialized desc->hAdapter in win32u while winex11 was then relying on it. I missed this detail before and it should be working fine now that the vulkan path is only used to retrieve the physical device.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5306
Mainly the implementation of SM1 comparison operators, defined in terms of CMP and SLT instructions, and the capacity to transform SLT->CMP for pixel shaders and CMP->SLT for vertex shaders.
--
v2: vkd3d-shader/hlsl: Lower CMP instructions for vertex shaders.
vkd3d-shader/hlsl: Use hlsl_fixme() on missing SM1 matrix writemask lowering.
vkd3d-shader/hlsl: Lower SLT instructions for pixel shaders.
tests: Test equality between tiny and between large numbers on ps_2_0.
vkd3d-shader/hlsl: Implement SM1 comparison operators.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/706
--
v5: win32u: Enumerate monitors from their device keys.
win32u: Get rid of the monitor flags.
win32u: Get rid of the adapter display_device.
win32u: Get rid of the monitor state_flags.
win32u: Get rid of the monitor display_device.
win32u: Split writing monitor to registry to a separate helper.
win32u: Add an adapter struct to the device manager context.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5262
--
v6: vkd3d: Support aliased tile binding if available.
vkd3d: Implement ID3D12CommandQueue::UpdateTileMappings() for textures.
vkd3d: Implement ID3D12CommandQueue::UpdateTileMappings() for buffers.
vkd3d: Pre-bind sparse texture mip tails.
tests/d3d12: Add a test for freeing underlying memory of a reserved resource.
tests/d3d12: Add tests for UpdateTileMappings().
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/631
--
v4: win32u: Enumerate monitors from their device keys.
win32u: Get rid of the monitor flags.
win32u: Get rid of the adapter display_device.
win32u: Get rid of the monitor state_flags.
win32u: Get rid of the monitor display_device.
win32u: Split writing monitor to registry to a separate helper.
win32u: Add an adapter struct to the device manager context.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5262