[PATCH vkd3d 5/7] vkd3d-shader: Implement relative addressing for arrayed registers.

Józef Kucia joseph.kucia at gmail.com
Tue Feb 12 10:41:32 CST 2019


From: Józef Kucia <jkucia at codeweavers.com>

Signed-off-by: Józef Kucia <jkucia at codeweavers.com>
---
 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 886dbb19de88..9833fd99049d 100644
--- a/libs/vkd3d-shader/spirv.c
+++ b/libs/vkd3d-shader/spirv.c
@@ -2589,12 +2589,12 @@ static void vkd3d_dxbc_compiler_emit_dereference_register(struct vkd3d_dxbc_comp
     }
     else
     {
-        if (reg->idx[0].rel_addr || reg->idx[1].rel_addr)
+        if (reg->idx[1].rel_addr)
             FIXME("Relative addressing not implemented.\n");
 
         /* Handle arrayed registers, e.g. v[3][0]. */
         if (reg->idx[1].offset != ~0u)
-            indexes[index_count++] = vkd3d_dxbc_compiler_get_constant_uint(compiler, reg->idx[0].offset);
+            indexes[index_count++] = vkd3d_dxbc_compiler_emit_register_addressing(compiler, &reg->idx[0]);
     }
 
     if (index_count)
-- 
2.19.2




More information about the wine-devel mailing list