[PATCH 0/3] MR721: vkd3d-shader/d3d-asm: Do not print a type for labels.
From: Giovanni Mascellani <gmascellani(a)codeweavers.com> --- libs/vkd3d-shader/d3d_asm.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/libs/vkd3d-shader/d3d_asm.c b/libs/vkd3d-shader/d3d_asm.c index fcbb321ed..cfdb7e8c3 100644 --- a/libs/vkd3d-shader/d3d_asm.c +++ b/libs/vkd3d-shader/d3d_asm.c @@ -2321,6 +2321,10 @@ enum vkd3d_result d3d_asm_compile(const struct vsir_program *program, --indent; break; + case VKD3DSIH_LABEL: + indent = 0; + break; + default: break; } @@ -2339,6 +2343,7 @@ enum vkd3d_result d3d_asm_compile(const struct vsir_program *program, case VKD3DSIH_IFC: case VKD3DSIH_LOOP: case VKD3DSIH_SWITCH: + case VKD3DSIH_LABEL: ++indent; break; -- GitLab https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/721
From: Giovanni Mascellani <gmascellani(a)codeweavers.com> --- libs/vkd3d-shader/d3d_asm.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libs/vkd3d-shader/d3d_asm.c b/libs/vkd3d-shader/d3d_asm.c index cfdb7e8c3..579ad8c55 100644 --- a/libs/vkd3d-shader/d3d_asm.c +++ b/libs/vkd3d-shader/d3d_asm.c @@ -1378,6 +1378,9 @@ static void shader_dump_reg_type(struct vkd3d_d3d_asm_compiler *compiler, if (!(compiler->flags & VSIR_ASM_FLAG_DUMP_TYPES)) return; + if (reg->data_type == VKD3D_DATA_UNUSED) + return; + if (reg->dimension < ARRAY_SIZE(dimensions)) dimension = dimensions[reg->dimension]; else -- GitLab https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/721
From: Giovanni Mascellani <gmascellani(a)codeweavers.com> The label itself is certainly an unsigned integer, but the register has no meaningful data type. It cannot be evaluated to anything. The goal of this is to reduce cluttering in the internal ASM dumps. --- libs/vkd3d-shader/ir.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libs/vkd3d-shader/ir.c b/libs/vkd3d-shader/ir.c index 0dd31af91..4a47ef0a4 100644 --- a/libs/vkd3d-shader/ir.c +++ b/libs/vkd3d-shader/ir.c @@ -456,7 +456,7 @@ void vsir_dst_param_init(struct vkd3d_shader_dst_param *param, enum vkd3d_shader void vsir_src_param_init_label(struct vkd3d_shader_src_param *param, unsigned int label_id) { - vsir_src_param_init(param, VKD3DSPR_LABEL, VKD3D_DATA_UINT, 1); + vsir_src_param_init(param, VKD3DSPR_LABEL, VKD3D_DATA_UNUSED, 1); param->reg.dimension = VSIR_DIMENSION_NONE; param->reg.idx[0].offset = label_id; } @@ -4219,7 +4219,7 @@ static void vsir_validate_register(struct validation_context *ctx, validator_error(ctx, VKD3D_SHADER_ERROR_VSIR_INVALID_PRECISION, "Invalid precision %#x for a LABEL register.", reg->precision); - if (reg->data_type != VKD3D_DATA_UINT) + if (reg->data_type != VKD3D_DATA_UNUSED) validator_error(ctx, VKD3D_SHADER_ERROR_VSIR_INVALID_DATA_TYPE, "Invalid data type %#x for a LABEL register.", reg->data_type); -- GitLab https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/721
This merge request was approved by Giovanni Mascellani. -- https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/721
This merge request was approved by Henri Verbeet. -- https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/721
participants (3)
-
Giovanni Mascellani -
Giovanni Mascellani (@giomasce) -
Henri Verbeet (@hverbeet)