Module: wine Branch: master Commit: d369136a9664900d7bea3b47a7fb835e158a35b6 URL: http://source.winehq.org/git/wine.git/?a=commit;h=d369136a9664900d7bea3b47a7...
Author: Henri Verbeet hverbeet@codeweavers.com Date: Fri Oct 8 13:12:16 2010 +0200
wined3d: Recognize the SM4 imul opcode.
---
dlls/wined3d/arb_program_shader.c | 1 + dlls/wined3d/glsl_shader.c | 1 + dlls/wined3d/shader.c | 1 + dlls/wined3d/shader_sm4.c | 2 ++ dlls/wined3d/wined3d_private.h | 1 + 5 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/dlls/wined3d/arb_program_shader.c b/dlls/wined3d/arb_program_shader.c index 7c10407..c053e7f 100644 --- a/dlls/wined3d/arb_program_shader.c +++ b/dlls/wined3d/arb_program_shader.c @@ -4966,6 +4966,7 @@ static const SHADER_HANDLER shader_arb_instruction_handler_table[WINED3DSIH_TABL /* WINED3DSIH_IF */ NULL /* Hardcoded into the shader */, /* WINED3DSIH_IFC */ shader_hw_ifc, /* WINED3DSIH_IGE */ NULL, + /* WINED3DSIH_IMUL */ NULL, /* WINED3DSIH_LABEL */ shader_hw_label, /* WINED3DSIH_LIT */ shader_hw_map2gl, /* WINED3DSIH_LOG */ shader_hw_log_pow, diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c index d24260d..8e9795e 100644 --- a/dlls/wined3d/glsl_shader.c +++ b/dlls/wined3d/glsl_shader.c @@ -5024,6 +5024,7 @@ static const SHADER_HANDLER shader_glsl_instruction_handler_table[WINED3DSIH_TAB /* WINED3DSIH_IF */ shader_glsl_if, /* WINED3DSIH_IFC */ shader_glsl_ifc, /* WINED3DSIH_IGE */ NULL, + /* WINED3DSIH_IMUL */ NULL, /* WINED3DSIH_LABEL */ shader_glsl_label, /* WINED3DSIH_LIT */ shader_glsl_lit, /* WINED3DSIH_LOG */ shader_glsl_log, diff --git a/dlls/wined3d/shader.c b/dlls/wined3d/shader.c index 682188e..075c204 100644 --- a/dlls/wined3d/shader.c +++ b/dlls/wined3d/shader.c @@ -70,6 +70,7 @@ static const char * const shader_opcode_names[] = /* WINED3DSIH_IF */ "if", /* WINED3DSIH_IFC */ "ifc", /* WINED3DSIH_IGE */ "ige", + /* WINED3DSIH_IMUL */ "imul", /* WINED3DSIH_LABEL */ "label", /* WINED3DSIH_LIT */ "lit", /* WINED3DSIH_LOG */ "log", diff --git a/dlls/wined3d/shader_sm4.c b/dlls/wined3d/shader_sm4.c index 7ab6c1a..ea845dc 100644 --- a/dlls/wined3d/shader_sm4.c +++ b/dlls/wined3d/shader_sm4.c @@ -63,6 +63,7 @@ enum wined3d_sm4_opcode WINED3D_SM4_OP_IADD = 0x1e, WINED3D_SM4_OP_IF = 0x1f, WINED3D_SM4_OP_IGE = 0x21, + WINED3D_SM4_OP_IMUL = 0x26, WINED3D_SM4_OP_LOG = 0x2f, WINED3D_SM4_OP_LOOP = 0x30, WINED3D_SM4_OP_LT = 0x31, @@ -132,6 +133,7 @@ static const struct wined3d_sm4_opcode_info opcode_table[] = {WINED3D_SM4_OP_IADD, WINED3DSIH_IADD, 1, 2}, {WINED3D_SM4_OP_IF, WINED3DSIH_IF, 0, 1}, {WINED3D_SM4_OP_IGE, WINED3DSIH_IGE, 1, 2}, + {WINED3D_SM4_OP_IMUL, WINED3DSIH_IMUL, 2, 2}, {WINED3D_SM4_OP_LOG, WINED3DSIH_LOG, 1, 1}, {WINED3D_SM4_OP_LOOP, WINED3DSIH_LOOP, 0, 0}, {WINED3D_SM4_OP_LT, WINED3DSIH_LT, 1, 2}, diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h index bb719ca..467eb28 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -438,6 +438,7 @@ enum WINED3D_SHADER_INSTRUCTION_HANDLER WINED3DSIH_IF, WINED3DSIH_IFC, WINED3DSIH_IGE, + WINED3DSIH_IMUL, WINED3DSIH_LABEL, WINED3DSIH_LIT, WINED3DSIH_LOG,