vkd3d-shader/d3d-asm: Use vkd3d_shader_register.dimension to know when to dump writemask.

This change ensures that we don't dump the writemask for registers that
have a scalar dimension.

For instance, for this shader:

    float r;

    float4 main(out float d : DEPTH) : sv_target
    {
        d = r;
        return 0;
    }

we now correctly dump

    dcl_output oDepth

instead of

    dcl_output oDepth.x
This commit is contained in:
Francisco Casas 2023-08-29 18:33:50 -04:00 committed by Alexandre Julliard
parent a358722f71
commit ef1567c17b
Notes: Alexandre Julliard 2023-09-27 23:00:17 +02:00
Approved-by: Giovanni Mascellani (@giomasce)
Approved-by: Henri Verbeet (@hverbeet)
Approved-by: Alexandre Julliard (@julliard)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/369

View File

@ -1264,7 +1264,7 @@ static void shader_dump_dst_param(struct vkd3d_d3d_asm_compiler *compiler,
shader_dump_register(compiler, &param->reg, is_declaration); shader_dump_register(compiler, &param->reg, is_declaration);
if (write_mask) if (write_mask && param->reg.dimension == VSIR_DIMENSION_VEC4)
{ {
static const char write_mask_chars[] = "xyzw"; static const char write_mask_chars[] = "xyzw";