[PATCH 2/6] wined3d: Allow swizzle on vThreadIDInGroupFlattened register.

Józef Kucia jkucia at codeweavers.com
Sun Feb 26 11:48:00 CST 2017


Signed-off-by: Józef Kucia <jkucia at codeweavers.com>
---

The following instruction is valid:
ult r[0].xy, cb[0][0].xyxx, vThreadIDInGroupFlattened.xxxx

---
 dlls/wined3d/glsl_shader.c     | 2 +-
 dlls/wined3d/wined3d_private.h | 1 -
 2 files changed, 1 insertion(+), 2 deletions(-)

diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c
index 28d1c15..26a6a06 100644
--- a/dlls/wined3d/glsl_shader.c
+++ b/dlls/wined3d/glsl_shader.c
@@ -2860,7 +2860,7 @@ static void shader_glsl_get_register_name(const struct wined3d_shader_register *
             break;
 
         case WINED3DSPR_LOCALTHREADINDEX:
-            sprintf(register_name, "int(gl_LocalInvocationIndex)");
+            sprintf(register_name, "ivec2(gl_LocalInvocationIndex, 0)");
             break;
 
         case WINED3DSPR_THREADID:
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index 7950011..97550fa 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -3672,7 +3672,6 @@ static inline BOOL shader_is_scalar(const struct wined3d_shader_register *reg)
         case WINED3DSPR_LOOP:       /* aL */
         case WINED3DSPR_PREDICATE:  /* p0 */
         case WINED3DSPR_PRIMID:     /* primID */
-        case WINED3DSPR_LOCALTHREADINDEX: /* vThreadIDInGroupFlattened */
             return TRUE;
 
         case WINED3DSPR_MISCTYPE:
-- 
2.10.2




More information about the wine-patches mailing list