From f7866df201e491aa6033cc4618ab21cedd12a2e2 Mon Sep 17 00:00:00 2001 From: Giovanni Mascellani Date: Sun, 27 Jul 2025 14:38:03 +0200 Subject: [PATCH] vkd3d-shader/dxil: Emit gather offsets as signed. This is important for the MSL generator, otherwise invalid MSL is emitted. --- libs/vkd3d-shader/dxil.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libs/vkd3d-shader/dxil.c b/libs/vkd3d-shader/dxil.c index 66e3c1ecd..19e9f54ed 100644 --- a/libs/vkd3d-shader/dxil.c +++ b/libs/vkd3d-shader/dxil.c @@ -6291,6 +6291,10 @@ static void sm6_parser_emit_dx_texture_gather(struct sm6_parser *sm6, enum dx_in return; } + /* DXIL doesn't know about signedness, but vsir expects the offset to be signed. */ + if (extended_offset) + offset.data_type = VSIR_DATA_I32; + ins = state->ins; if (op == DX_TEXTURE_GATHER) {