Henri Verbeet pushed to branch master at wine / vkd3d
Commits: a3f80061 by Francisco Casas at 2025-03-18T14:25:26+01:00 tests/hlsl: Test for loss of precision on integer negation in d3dbc target profiles.
- - - - - 08067247 by Francisco Casas at 2025-03-18T15:21:43+01:00 tests/hlsl: Test integer modulus with big integers.
Note that in d3dbc target profiles it gives different results when this operation is constant folded compared to when it is not.
This suggests that whatever pass lowers the modulus operation to d3dbc operations doesn't do it before constant folding.
Also note that when constant folded, d3dbc results differ from tpf results for negative operands, because of the loss of precision that happens when NEG is constant folded.
So the same integer modulus expression can have 3 different results depending on the context.
- - - - - e3923876 by Francisco Casas at 2025-03-18T15:25:41+01:00 tests/hlsl: Test integer division with big integers.
Similarly to the modulus operator, d3dbc results with constant folding are different from results when constant folding cannot be applied, and different from tpf results.
- - - - - 828afe18 by Francisco Casas at 2025-03-18T15:27:03+01:00 vkd3d-shader/hlsl: Don't lower integer MOD and DIV on const passes for d3dbc target profiles.
These bitwise operations are not available in these profiles.
- - - - - ea99d2c2 by Francisco Casas at 2025-03-18T15:27:04+01:00 vkd3d-shader/hlsl: Lower integer modulus for d3dbc target profiles.
- - - - -
3 changed files:
- libs/vkd3d-shader/hlsl_codegen.c - tests/hlsl/arithmetic-int-uniform.shader_test - tests/hlsl/arithmetic-int.shader_test
View it on GitLab: https://gitlab.winehq.org/wine/vkd3d/-/compare/bc382c68359c9005bf84becf00130...