=?UTF-8?Q?J=C3=B3zef=20Kucia=20?=: vkd3d-shader: Use correct base index for relative addressing of aggregates.

Alexandre Julliard julliard at winehq.org
Fri Feb 22 15:20:01 CST 2019


Module: vkd3d
Branch: master
Commit: a0069d9fb758e8724fe27356d29c5e98c1a5397c
URL:    https://source.winehq.org/git/vkd3d.git/?a=commit;h=a0069d9fb758e8724fe27356d29c5e98c1a5397c

Author: Józef Kucia <jkucia at codeweavers.com>
Date:   Thu Feb 21 12:32:51 2019 +0100

vkd3d-shader: Use correct base index for relative addressing of aggregates.

Signed-off-by: Józef Kucia <jkucia at codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 libs/vkd3d-shader/spirv.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/libs/vkd3d-shader/spirv.c b/libs/vkd3d-shader/spirv.c
index 9838b7c..8cbd8da 100644
--- a/libs/vkd3d-shader/spirv.c
+++ b/libs/vkd3d-shader/spirv.c
@@ -2571,13 +2571,13 @@ static void vkd3d_dxbc_compiler_emit_dereference_register(struct vkd3d_dxbc_comp
     }
     else if (register_info->is_aggregate)
     {
+        struct vkd3d_shader_register_index reg_idx = reg->idx[0];
+
         if (reg->idx[1].rel_addr)
             FIXME("Relative addressing not implemented.\n");
 
-        if (reg->idx[0].rel_addr)
-            indexes[index_count++] = vkd3d_dxbc_compiler_emit_register_addressing(compiler, &reg->idx[0]);
-        else
-            indexes[index_count++] = vkd3d_dxbc_compiler_get_constant_uint(compiler, register_info->member_idx);
+        reg_idx.offset = register_info->member_idx;
+        indexes[index_count++] = vkd3d_dxbc_compiler_emit_register_addressing(compiler, &reg_idx);
     }
     else
     {




More information about the wine-cvs mailing list