Zebediah Figura : vkd3d-shader: Do not treat descriptor registers as arrayed.

Alexandre Julliard julliard at winehq.org
Wed May 27 15:16:08 CDT 2020


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

Author: Zebediah Figura <zfigura at codeweavers.com>
Date:   Tue May 26 15:16:44 2020 -0500

vkd3d-shader: Do not treat descriptor registers as arrayed.

Signed-off-by: Zebediah Figura <zfigura 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 | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/libs/vkd3d-shader/spirv.c b/libs/vkd3d-shader/spirv.c
index d09e0fd..1b2cf3d 100644
--- a/libs/vkd3d-shader/spirv.c
+++ b/libs/vkd3d-shader/spirv.c
@@ -2821,6 +2821,21 @@ static bool vkd3d_dxbc_compiler_get_register_info(const struct vkd3d_dxbc_compil
     return true;
 }
 
+static bool register_is_descriptor(const struct vkd3d_shader_register *reg)
+{
+    switch (reg->type)
+    {
+        case VKD3DSPR_SAMPLER:
+        case VKD3DSPR_RESOURCE:
+        case VKD3DSPR_CONSTBUFFER:
+        case VKD3DSPR_UAV:
+            return true;
+
+        default:
+            return false;
+    }
+}
+
 static void vkd3d_dxbc_compiler_emit_dereference_register(struct vkd3d_dxbc_compiler *compiler,
         const struct vkd3d_shader_register *reg, struct vkd3d_shader_register_info *register_info)
 {
@@ -2868,7 +2883,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 && !register_is_descriptor(reg))
             indexes[index_count++] = vkd3d_dxbc_compiler_emit_register_addressing(compiler, &reg->idx[0]);
     }
 




More information about the wine-cvs mailing list