[PATCH vkd3d v3 4/7] vkd3d-shader/hlsl: Lower matrix casts.

Zebediah Figura zfigura at codeweavers.com
Fri Jun 3 00:03:02 CDT 2022


On 6/2/22 09:06, Giovanni Mascellani wrote:
> Signed-off-by: Giovanni Mascellani <gmascellani at codeweavers.com>
> ---
> I had to add a forward declaration for add_load(). I don't know if in
> cases like that it is preferred to add a forward declaration (which adds
> cruft) or move the definition backwards (which break the vague logical
> order functions have).
> ---
>   libs/vkd3d-shader/hlsl.y                      | 93 ++++++++++++++++++-
>   tests/hlsl-duplicate-modifiers.shader_test    |  2 +-
>   tests/hlsl-initializer-matrix.shader_test     |  2 +-
>   ...lsl-return-implicit-conversion.shader_test | 10 +-
>   tests/hlsl-shape.shader_test                  | 10 +-
>   tests/matrix-semantics.shader_test            | 20 ++--
>   6 files changed, 111 insertions(+), 26 deletions(-)
> 

With this patch we're able to successfully generate IR for the tests 
added in patch 1. Unfortunately, the IR is not quite valid. It generates 
SM4_RT_OUTPUT registers that are not actually declared (neither in the 
output signature nor with dcl_output instructions). This seems to 
confuse the DXBC->SPIRV translator, generating the following message and 
producing SPIR-V that does not consistently pass or fail tests:

fixme:vkd3d_dxbc_compiler_get_register_info: Unrecognized register 
(register 0x8, 4294967295).



More information about the wine-devel mailing list