Henri Verbeet pushed to branch master at wine / vkd3d
Commits: 51db2323 by Francisco Casas at 2025-01-22T14:23:29+01:00 tests/hlsl: Add lhs cast tests.
- - - - - 60f75cc5 by Francisco Casas at 2025-01-22T14:27:57+01:00 tests/hlsl: Test partial assignments due to lhs casts.
- - - - - dc37d901 by Francisco Casas at 2025-01-22T14:29:54+01:00 tests/hlsl: Add more function cast tests.
- - - - - c2e224c5 by Francisco Casas at 2025-01-22T14:34:19+01:00 vkd3d-shader/hlsl: Delay lowering complex casts until after parse time.
While so far it has been posible to do this at parse time, this must happen after knowing if the complex cast is on the lhs or not.
The modified tests show that before this patch we are currently miscompiling when this happens, because a complex lhs cast is transformed into a load, and add_assigment() just stores to the generated "cast" temp.
- - - - - b55fe195 by Francisco Casas at 2025-01-22T14:38:10+01:00 vkd3d-shader/hlsl: Support non-size-changing lhs casts.
- - - - - 0a15ab70 by Francisco Casas at 2025-01-22T14:39:20+01:00 vkd3d-shader/hlsl: Don't count cast to param type on IN as part of OUT var's lhs.
If the parameter is HLSL_STORAGE_IN, we add a cast from the arg to the param type so that it can enter the function, however this cast should not be considered part of the lhs on the implicit assignment that happens if the var is also HLSL_STORAGE_OUT.
- - - - - 4d18fb39 by Francisco Casas at 2025-01-22T14:46:02+01:00 vkd3d-shader/hlsl: Don't forbid first base type cast on var assignments.
- - - - -
7 changed files:
- Makefile.am - libs/vkd3d-shader/hlsl.y - libs/vkd3d-shader/hlsl_codegen.c - tests/hlsl/function-cast.shader_test - + tests/hlsl/lhs-cast.shader_test - + tests/hlsl/lhs-partial-assignment.shader_test - tests/hlsl/trigonometry.shader_test
View it on GitLab: https://gitlab.winehq.org/wine/vkd3d/-/compare/c7b209124bcb4edf5c08d713b891e...