Module: wine Branch: master Commit: e4cb3b5081a93fc7643a86069eefb33e3057272e URL: http://source.winehq.org/git/wine.git/?a=commit;h=e4cb3b5081a93fc7643a86069e...
Author: Henri Verbeet hverbeet@codeweavers.com Date: Wed Feb 11 14:10:18 2015 +0100
wined3d: Recognize the SM4 or opcode.
---
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 e543ebf..688bdb7 100644 --- a/dlls/wined3d/arb_program_shader.c +++ b/dlls/wined3d/arb_program_shader.c @@ -5241,6 +5241,7 @@ static const SHADER_HANDLER shader_arb_instruction_handler_table[WINED3DSIH_TABL /* WINED3DSIH_NE */ NULL, /* WINED3DSIH_NOP */ shader_hw_nop, /* WINED3DSIH_NRM */ shader_hw_nrm, + /* WINED3DSIH_OR */ NULL, /* WINED3DSIH_PHASE */ shader_hw_nop, /* WINED3DSIH_POW */ shader_hw_pow, /* WINED3DSIH_RCP */ shader_hw_scalar_op, diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c index 6e6be8d..0017e45 100644 --- a/dlls/wined3d/glsl_shader.c +++ b/dlls/wined3d/glsl_shader.c @@ -2319,6 +2319,7 @@ static void shader_glsl_binop(const struct wined3d_shader_instruction *ins) case WINED3DSIH_IADD: op = "+"; break; case WINED3DSIH_ISHL: op = "<<"; break; case WINED3DSIH_MUL: op = "*"; break; + case WINED3DSIH_OR: op = "|"; break; case WINED3DSIH_SUB: op = "-"; break; case WINED3DSIH_USHR: op = ">>"; break; case WINED3DSIH_XOR: op = "^"; break; @@ -6777,6 +6778,7 @@ static const SHADER_HANDLER shader_glsl_instruction_handler_table[WINED3DSIH_TAB /* WINED3DSIH_NE */ shader_glsl_relop, /* WINED3DSIH_NOP */ shader_glsl_nop, /* WINED3DSIH_NRM */ shader_glsl_nrm, + /* WINED3DSIH_OR */ shader_glsl_binop, /* WINED3DSIH_PHASE */ shader_glsl_nop, /* WINED3DSIH_POW */ shader_glsl_pow, /* WINED3DSIH_RCP */ shader_glsl_scalar_op, diff --git a/dlls/wined3d/shader.c b/dlls/wined3d/shader.c index f98074e..28f3b17 100644 --- a/dlls/wined3d/shader.c +++ b/dlls/wined3d/shader.c @@ -111,6 +111,7 @@ static const char * const shader_opcode_names[] = /* WINED3DSIH_NE */ "ne", /* WINED3DSIH_NOP */ "nop", /* WINED3DSIH_NRM */ "nrm", + /* WINED3DSIH_OR */ "or", /* WINED3DSIH_PHASE */ "phase", /* WINED3DSIH_POW */ "pow", /* WINED3DSIH_RCP */ "rcp", diff --git a/dlls/wined3d/shader_sm4.c b/dlls/wined3d/shader_sm4.c index acf4b37..9f8fe12 100644 --- a/dlls/wined3d/shader_sm4.c +++ b/dlls/wined3d/shader_sm4.c @@ -112,6 +112,7 @@ enum wined3d_sm4_opcode WINED3D_SM4_OP_MOVC = 0x37, WINED3D_SM4_OP_MUL = 0x38, WINED3D_SM4_OP_NE = 0x39, + WINED3D_SM4_OP_OR = 0x3c, WINED3D_SM4_OP_RET = 0x3e, WINED3D_SM4_OP_ROUND_NI = 0x41, WINED3D_SM4_OP_RSQ = 0x44, @@ -280,6 +281,7 @@ static const struct wined3d_sm4_opcode_info opcode_table[] = {WINED3D_SM4_OP_MOVC, WINED3DSIH_MOVC, "F", "UFF"}, {WINED3D_SM4_OP_MUL, WINED3DSIH_MUL, "F", "FF"}, {WINED3D_SM4_OP_NE, WINED3DSIH_NE, "U", "FF"}, + {WINED3D_SM4_OP_OR, WINED3DSIH_OR, "U", "UU"}, {WINED3D_SM4_OP_RET, WINED3DSIH_RET, "", ""}, {WINED3D_SM4_OP_ROUND_NI, WINED3DSIH_ROUND_NI, "F", "F"}, {WINED3D_SM4_OP_RSQ, WINED3DSIH_RSQ, "F", "F"}, diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h index 1415990..2c1a00c 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -514,6 +514,7 @@ enum WINED3D_SHADER_INSTRUCTION_HANDLER WINED3DSIH_NE, WINED3DSIH_NOP, WINED3DSIH_NRM, + WINED3DSIH_OR, WINED3DSIH_PHASE, WINED3DSIH_POW, WINED3DSIH_RCP,