Henri Verbeet pushed to branch master at wine / vkd3d
Commits: b6ce1479 by Francisco Casas at 2025-04-02T18:06:18+02:00 tests/hlsl: Test vertex shader uniform indirect addressing.
Note that, for indexes with a decimal part, the behavior is different depending on whether it is a temp load or a direct uniform load (which can only happen on vertex shaders). The former rounds to the closest-to-zero, while the latter rounds to the nearest even.
- - - - - 2327f87e by Francisco Casas at 2025-04-02T18:06:48+02:00 tests/hlsl: Test SM1 vertex shader uniform allocation on indirect addressing.
Here, a vertex shader version of the previous test by Shaun is introduced. Note that in this case the uniform allocates all 4 registers instead of 3 because it is indirectly addressed.
- - - - - 0e0ed726 by Francisco Casas at 2025-04-02T18:06:48+02:00 vkd3d-shader/d3dbc: Respect "idx_count" when writing registers.
Some SM1 src registers have idx_count = 0, in which case we have to respect that instead of always reading reg->reg.idx[0].offset even when it is invalid.
- - - - - fd02d69d by Francisco Casas at 2025-04-02T18:26:03+02:00 vkd3d-shader/hlsl: Implement indirect addressing for d3dbc target profiles.
- - - - - f65e6265 by Francisco Casas at 2025-04-02T18:27:16+02:00 vkd3d-shader/ir: Normalise MOVA and d3dbc indirect addressing.
- - - - - 3ead8d53 by Francisco Casas at 2025-04-02T18:27:16+02:00 vkd3d-shader/hlsl: Allow non-constant deref propagation on SM1.
Note that we still have to preempt the propagation to SM1 pixel shader uniforms. Otherwise this will turn the many constant derefs that appear from the <index-val> copy generated in lower_index_loads() into a single non-constant deref, causing it to allocate all the registers instead of up until the last one used.
- - - - -
5 changed files:
- libs/vkd3d-shader/d3dbc.c - libs/vkd3d-shader/hlsl_codegen.c - libs/vkd3d-shader/ir.c - tests/hlsl/non-const-indexing.shader_test - tests/hlsl/sm1-const-allocation.shader_test
View it on GitLab: https://gitlab.winehq.org/wine/vkd3d/-/compare/20b76f87bffa5fccb794118a63e3c...