-
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.