[PATCH 01/12] wined3d: Add support for atomic min/max operations on thread group shared memory.

Józef Kucia jkucia at codeweavers.com
Thu Mar 2 18:30:27 CST 2017


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

I've lost this change when rebasing patches...

---
 dlls/wined3d/glsl_shader.c | 20 ++++++++++++++++----
 1 file changed, 16 insertions(+), 4 deletions(-)

diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c
index d6bb622..6da3082 100644
--- a/dlls/wined3d/glsl_shader.c
+++ b/dlls/wined3d/glsl_shader.c
@@ -5034,7 +5034,10 @@ static void shader_glsl_atomic(const struct wined3d_shader_instruction *ins)
             break;
         case WINED3DSIH_ATOMIC_IMAX:
         case WINED3DSIH_IMM_ATOMIC_IMAX:
-            op = "imageAtomicMax";
+            if (is_tgsm)
+                op = "atomicMax";
+            else
+                op = "imageAtomicMax";
             if (data_type != WINED3D_DATA_INT)
             {
                 FIXME("Unhandled opcode %#x for unsigned integers.\n", ins->handler_idx);
@@ -5043,7 +5046,10 @@ static void shader_glsl_atomic(const struct wined3d_shader_instruction *ins)
             break;
         case WINED3DSIH_ATOMIC_IMIN:
         case WINED3DSIH_IMM_ATOMIC_IMIN:
-            op = "imageAtomicMin";
+            if (is_tgsm)
+                op = "atomicMin";
+            else
+                op = "imageAtomicMin";
             if (data_type != WINED3D_DATA_INT)
             {
                 FIXME("Unhandled opcode %#x for unsigned integers.\n", ins->handler_idx);
@@ -5059,7 +5065,10 @@ static void shader_glsl_atomic(const struct wined3d_shader_instruction *ins)
             break;
         case WINED3DSIH_ATOMIC_UMAX:
         case WINED3DSIH_IMM_ATOMIC_UMAX:
-            op = "imageAtomicMax";
+            if (is_tgsm)
+                op = "atomicMax";
+            else
+                op = "imageAtomicMax";
             if (data_type != WINED3D_DATA_UINT)
             {
                 FIXME("Unhandled opcode %#x for signed integers.\n", ins->handler_idx);
@@ -5068,7 +5077,10 @@ static void shader_glsl_atomic(const struct wined3d_shader_instruction *ins)
             break;
         case WINED3DSIH_ATOMIC_UMIN:
         case WINED3DSIH_IMM_ATOMIC_UMIN:
-            op = "imageAtomicMin";
+            if (is_tgsm)
+                op = "atomicMin";
+            else
+                op = "imageAtomicMin";
             if (data_type != WINED3D_DATA_UINT)
             {
                 FIXME("Unhandled opcode %#x for signed integers.\n", ins->handler_idx);
-- 
2.10.2




More information about the wine-patches mailing list