Henri Verbeet pushed to branch master at wine / vkd3d
Commits: ba868ed4 by Elizabeth Figura at 2025-02-20T15:48:24+01:00 vkd3d-shader/hlsl: Skip transformation passes on error.
The primary motivation here is to avoid needing to worry about instructions potentially pointing to the preallocated error instruction in the case of allocation failure.
This doesn't cover all passes, but none of the other passes make assumptions about instruction sources.
- - - - - 4072aa4a by Elizabeth Figura at 2025-02-20T15:48:25+01:00 vkd3d-shader/hlsl: Remove the type equality assertions in hlsl_new_ternary_expr().
Similar to d1c2ae3f0eaf0f3b64b0a5f4c50ad402e822a4eb, this is a bit too strict and may prevent e.g. simultaneous use of float and float1 at codegen time.
However, in this case the inciting factor is that in the case of allocation failure at codegen time, we would like to allow one or more arguments to have error type.
- - - - - 79ad8c93 by Elizabeth Figura at 2025-02-20T15:49:40+01:00 vkd3d-shader/hlsl: Handle error instructions in hlsl_new_swizzle().
We already check for error instructions when parsing swizzles, but if allocation fails at codegen time we would like to avoid asserting when subsequently constructing a swizzle.
- - - - - 992d20de by Elizabeth Figura at 2025-02-20T15:50:13+01:00 vkd3d-shader/hlsl: Add a hlsl_block_add_uint_constant() helper.
- - - - - d5a2ff5c by Elizabeth Figura at 2025-02-20T15:56:31+01:00 vkd3d-shader/hlsl: Add a hlsl_block_add_int_constant() helper.
- - - - -
4 changed files:
- libs/vkd3d-shader/hlsl.c - libs/vkd3d-shader/hlsl.h - libs/vkd3d-shader/hlsl.y - libs/vkd3d-shader/hlsl_codegen.c
View it on GitLab: https://gitlab.winehq.org/wine/vkd3d/-/compare/153b7c8460fb201491849facd0d7d...