Henri Verbeet pushed to branch master at wine / vkd3d
Commits: d9b63118 by Francisco Casas at 2024-10-22T19:15:42+02:00 tests: Add signature reflection test with structs.
- - - - - 9ce7b780 by Francisco Casas at 2024-10-22T19:23:22+02:00 vkd3d-shader/hlsl: Add mode field to register_allocator allocations.
- - - - - 7180a967 by Francisco Casas at 2024-10-22T19:23:33+02:00 vkd3d-shader/hlsl: Use a register_allocator to allocate semantic registers.
- - - - - b65f5fb0 by Francisco Casas at 2024-10-22T19:29:11+02:00 vkd3d-shader/hlsl: Also pass field storage modifiers to output signature elements.
The generated pixel shader input signature must be consistent with the generated vertex shader output signature for the same data type.
Since the interpolation mode affects allocation order, the allocator needs to know the modifiers for both input and output signature elements.
- - - - - 7fd6c29e by Francisco Casas at 2024-10-22T20:03:39+02:00 vkd3d-shader/hlsl: Allow accounting for interpolation mode when allocating semantics.
For now this has no effect since semantics are allocated with reg_size 4, but will have effect when optimizing interstage signatures.
- - - - - d562b03c by Francisco Casas at 2024-10-22T20:04:41+02:00 vkd3d-shader/hlsl: Allow to force alignment on some semantic vars.
This is required to properly optimize signatures, because these semantics must be alligned while being packed: - Array elements. - The first fields of structs. - Major vectors of a matrix.
For now this has no effect since semantics are allocated with reg_size 4, but will have effect when optimizing interstage signatures.
- - - - - 88dd0821 by Francisco Casas at 2024-10-22T20:06:15+02:00 vkd3d-shader/hlsl: Allow prioritizing smaller writemasks when allocating signature elements.
For now this doesn't have effect yet, until semantic allocation is optimized.
- - - - - 51d05c18 by Francisco Casas at 2024-10-22T20:15:15+02:00 vkd3d-shader/hlsl: Optimize interstage signatures.
- - - - - 2a8c1b28 by Francisco Casas at 2024-10-22T20:25:40+02:00 vkd3d-shader/hlsl: Sort signature elements by register id.
- - - - -
5 changed files:
- libs/vkd3d-shader/hlsl.h - libs/vkd3d-shader/hlsl_codegen.c - libs/vkd3d-shader/tpf.c - tests/hlsl/interface-packing.shader_test - tests/hlsl_d3d12.c
View it on GitLab: https://gitlab.winehq.org/wine/vkd3d/-/compare/fb2b974466496998f39b57af61370...