=?UTF-8?Q?J=C3=B3zef=20Kucia=20?=: wined3d: Add support for atomic min/ max operations on thread group shared memory.
Alexandre Julliard
julliard at winehq.org
Fri Mar 3 14:20:35 CST 2017
Module: wine
Branch: master
Commit: 9b1748b05f2bfc24b1510aee066edd743d54d892
URL: http://source.winehq.org/git/wine.git/?a=commit;h=9b1748b05f2bfc24b1510aee066edd743d54d892
Author: Józef Kucia <jkucia at codeweavers.com>
Date: Fri Mar 3 01:30:27 2017 +0100
wined3d: Add support for atomic min/max operations on thread group shared memory.
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>
---
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 6d45b43..c6d2e39 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);
More information about the wine-cvs
mailing list