From 4a5146a7e7005cda37a105908e016495e86399b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B3zef=20Kucia?= Date: Fri, 15 Jul 2016 11:16:19 +0200 Subject: [PATCH] wined3d: Implement SM4 umin instruction. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Józef Kucia Signed-off-by: Henri Verbeet Signed-off-by: Alexandre Julliard --- dlls/wined3d/arb_program_shader.c | 1 + dlls/wined3d/glsl_shader.c | 2 ++ dlls/wined3d/shader.c | 1 + dlls/wined3d/shader_sm4.c | 2 ++ dlls/wined3d/wined3d_private.h | 1 + 5 files changed, 7 insertions(+) diff --git a/dlls/wined3d/arb_program_shader.c b/dlls/wined3d/arb_program_shader.c index 24c1194f036..179785d2fb3 100644 --- a/dlls/wined3d/arb_program_shader.c +++ b/dlls/wined3d/arb_program_shader.c @@ -5397,6 +5397,7 @@ static const SHADER_HANDLER shader_arb_instruction_handler_table[WINED3DSIH_TABL /* WINED3DSIH_UGE */ NULL, /* WINED3DSIH_ULT */ NULL, /* WINED3DSIH_UMAX */ NULL, + /* WINED3DSIH_UMIN */ NULL, /* WINED3DSIH_USHR */ NULL, /* WINED3DSIH_UTOF */ NULL, /* WINED3DSIH_XOR */ NULL, diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c index 5e23920fe0a..3a6af83d280 100644 --- a/dlls/wined3d/glsl_shader.c +++ b/dlls/wined3d/glsl_shader.c @@ -3538,6 +3538,7 @@ static void shader_glsl_map2gl(const struct wined3d_shader_instruction *ins) case WINED3DSIH_ROUND_Z: instruction = "trunc"; break; case WINED3DSIH_SQRT: instruction = "sqrt"; break; case WINED3DSIH_UMAX: instruction = "max"; break; + case WINED3DSIH_UMIN: instruction = "min"; break; default: instruction = ""; FIXME("Opcode %s not yet handled in GLSL.\n", debug_d3dshaderinstructionhandler(ins->handler_idx)); break; @@ -8814,6 +8815,7 @@ static const SHADER_HANDLER shader_glsl_instruction_handler_table[WINED3DSIH_TAB /* WINED3DSIH_UGE */ shader_glsl_relop, /* WINED3DSIH_ULT */ shader_glsl_relop, /* WINED3DSIH_UMAX */ shader_glsl_map2gl, + /* WINED3DSIH_UMIN */ shader_glsl_map2gl, /* WINED3DSIH_USHR */ shader_glsl_binop, /* WINED3DSIH_UTOF */ shader_glsl_to_float, /* WINED3DSIH_XOR */ shader_glsl_binop, diff --git a/dlls/wined3d/shader.c b/dlls/wined3d/shader.c index 6d4155b6b80..01482ad6666 100644 --- a/dlls/wined3d/shader.c +++ b/dlls/wined3d/shader.c @@ -227,6 +227,7 @@ static const char * const shader_opcode_names[] = /* WINED3DSIH_UGE */ "uge", /* WINED3DSIH_ULT */ "ult", /* WINED3DSIH_UMAX */ "umax", + /* WINED3DSIH_UMIN */ "umin", /* WINED3DSIH_USHR */ "ushr", /* WINED3DSIH_UTOF */ "utof", /* WINED3DSIH_XOR */ "xor", diff --git a/dlls/wined3d/shader_sm4.c b/dlls/wined3d/shader_sm4.c index 24af95d3dc5..b7e993531a1 100644 --- a/dlls/wined3d/shader_sm4.c +++ b/dlls/wined3d/shader_sm4.c @@ -182,6 +182,7 @@ enum wined3d_sm4_opcode WINED3D_SM4_OP_ULT = 0x4f, WINED3D_SM4_OP_UGE = 0x50, WINED3D_SM4_OP_UMAX = 0x53, + WINED3D_SM4_OP_UMIN = 0x54, WINED3D_SM4_OP_USHR = 0x55, WINED3D_SM4_OP_UTOF = 0x56, WINED3D_SM4_OP_XOR = 0x57, @@ -762,6 +763,7 @@ static const struct wined3d_sm4_opcode_info opcode_table[] = {WINED3D_SM4_OP_ULT, WINED3DSIH_ULT, "u", "uu"}, {WINED3D_SM4_OP_UGE, WINED3DSIH_UGE, "u", "uu"}, {WINED3D_SM4_OP_UMAX, WINED3DSIH_UMAX, "u", "uu"}, + {WINED3D_SM4_OP_UMIN, WINED3DSIH_UMIN, "u", "uu"}, {WINED3D_SM4_OP_USHR, WINED3DSIH_USHR, "u", "uu"}, {WINED3D_SM4_OP_UTOF, WINED3DSIH_UTOF, "f", "u"}, {WINED3D_SM4_OP_XOR, WINED3DSIH_XOR, "u", "uu"}, diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h index b5c10a2651f..7e94193ce82 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -743,6 +743,7 @@ enum WINED3D_SHADER_INSTRUCTION_HANDLER WINED3DSIH_UGE, WINED3DSIH_ULT, WINED3DSIH_UMAX, + WINED3DSIH_UMIN, WINED3DSIH_USHR, WINED3DSIH_UTOF, WINED3DSIH_XOR,