From a9a3100cca9b8eedbe861c6f3f245dce7da5df20 Mon Sep 17 00:00:00 2001 From: Giovanni Mascellani Date: Tue, 13 May 2025 10:15:17 +0200 Subject: [PATCH] vkd3d-shader/dxil: Represent non uniformness in the SM6 value. --- libs/vkd3d-shader/dxil.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/libs/vkd3d-shader/dxil.c b/libs/vkd3d-shader/dxil.c index 315874d49..1f94f8286 100644 --- a/libs/vkd3d-shader/dxil.c +++ b/libs/vkd3d-shader/dxil.c @@ -711,6 +711,7 @@ struct sm6_value enum sm6_value_type value_type; unsigned int structure_stride; bool is_back_ref; + bool non_uniform; union { struct sm6_function_data function; @@ -2514,6 +2515,8 @@ static void sm6_register_from_value(struct vkd3d_shader_register *reg, const str case VALUE_TYPE_DATA: vkd3d_unreachable(); } + + reg->non_uniform = value->non_uniform; } static void sm6_parser_init_ssa_value(struct sm6_parser *sm6, struct sm6_value *value) @@ -8003,7 +8006,8 @@ static void metadata_attachment_record_apply(const struct dxil_record *record, e } else if (metadata_node_get_unary_uint(node, &operand, sm6)) { - dst->reg.non_uniform = !!operand; + dst->non_uniform = !!operand; + sm6_register_from_value(&dst->reg, dst, sm6); } } else