From d46250a59b56bf10ebbaef79a696890e807b6330 Mon Sep 17 00:00:00 2001 From: Conor McCarthy Date: Fri, 26 May 2023 16:44:01 +1000 Subject: [PATCH] vkd3d-shader/spirv: Use the register index count in default register dereferences. --- libs/vkd3d-shader/spirv.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libs/vkd3d-shader/spirv.c b/libs/vkd3d-shader/spirv.c index 410f074b..25d75e69 100644 --- a/libs/vkd3d-shader/spirv.c +++ b/libs/vkd3d-shader/spirv.c @@ -3378,11 +3378,11 @@ static void spirv_compiler_emit_dereference_register(struct spirv_compiler *comp } else { - if (reg->idx[1].rel_addr || (reg->idx[1].offset == ~0u && reg->idx[0].rel_addr)) + if (reg->idx_count && reg->idx[reg->idx_count - 1].rel_addr) FIXME("Relative addressing not implemented.\n"); /* Handle arrayed registers, e.g. v[3][0]. */ - if (reg->idx[1].offset != ~0u && !register_is_descriptor(reg)) + if (reg->idx_count > 1 && !register_is_descriptor(reg)) indexes[index_count++] = spirv_compiler_emit_register_addressing(compiler, ®->idx[0]); }