From: Giovanni Mascellani gmascellani@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;
From: Giovanni Mascellani gmascellani@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
From: Giovanni Mascellani gmascellani@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);
This merge request was approved by Giovanni Mascellani.
This merge request was approved by Henri Verbeet.