[PATCH vkd3d 4/8] vkd3d-shader: Allow only input and output registers to be treated as arrayed.
Zebediah Figura
zfigura at codeweavers.com
Fri May 22 15:25:39 CDT 2020
Signed-off-by: Zebediah Figura <zfigura at codeweavers.com>
---
libs/vkd3d-shader/spirv.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libs/vkd3d-shader/spirv.c b/libs/vkd3d-shader/spirv.c
index 43a3a1a..3e4f9f4 100644
--- a/libs/vkd3d-shader/spirv.c
+++ b/libs/vkd3d-shader/spirv.c
@@ -2868,7 +2868,7 @@ static void vkd3d_dxbc_compiler_emit_dereference_register(struct vkd3d_dxbc_comp
FIXME("Relative addressing not implemented.\n");
/* Handle arrayed registers, e.g. v[3][0]. */
- if (reg->idx[1].offset != ~0u)
+ if (reg->idx[1].offset != ~0u && (vkd3d_shader_register_is_input(reg) || vkd3d_shader_register_is_output(reg)))
indexes[index_count++] = vkd3d_dxbc_compiler_emit_register_addressing(compiler, ®->idx[0]);
}
--
2.26.2
More information about the wine-devel
mailing list