Module: wine Branch: master Commit: a7bad0bde5077c3c469cc2de2f7b6b887637bc60 URL: http://source.winehq.org/git/wine.git/?a=commit;h=a7bad0bde5077c3c469cc2de2f...
Author: Henri Verbeet hverbeet@codeweavers.com Date: Fri Sep 14 13:11:34 2012 +0200
wined3d: Just handle all instructions in the shader backend.
---
dlls/wined3d/arb_program_shader.c | 16 ++++++---------- dlls/wined3d/glsl_shader.c | 14 ++++++++------ dlls/wined3d/shader.c | 9 --------- 3 files changed, 14 insertions(+), 25 deletions(-)
diff --git a/dlls/wined3d/arb_program_shader.c b/dlls/wined3d/arb_program_shader.c index c4064b9..cb94d6e 100644 --- a/dlls/wined3d/arb_program_shader.c +++ b/dlls/wined3d/arb_program_shader.c @@ -1786,11 +1786,7 @@ static void shader_hw_map2gl(const struct wined3d_shader_instruction *ins) shader_addline(buffer, "%s%s %s%s;\n", instruction, shader_arb_get_modifier(ins), dst_str, arguments); }
-static void shader_hw_nop(const struct wined3d_shader_instruction *ins) -{ - struct wined3d_shader_buffer *buffer = ins->ctx->buffer; - shader_addline(buffer, "NOP;\n"); -} +static void shader_hw_nop(const struct wined3d_shader_instruction *ins) {}
static void shader_hw_mov(const struct wined3d_shader_instruction *ins) { @@ -5102,10 +5098,10 @@ static const SHADER_HANDLER shader_arb_instruction_handler_table[WINED3DSIH_TABL /* WINED3DSIH_CND */ pshader_hw_cnd, /* WINED3DSIH_CRS */ shader_hw_map2gl, /* WINED3DSIH_CUT */ NULL, - /* WINED3DSIH_DCL */ NULL, - /* WINED3DSIH_DEF */ NULL, - /* WINED3DSIH_DEFB */ NULL, - /* WINED3DSIH_DEFI */ NULL, + /* WINED3DSIH_DCL */ shader_hw_nop, + /* WINED3DSIH_DEF */ shader_hw_nop, + /* WINED3DSIH_DEFB */ shader_hw_nop, + /* WINED3DSIH_DEFI */ shader_hw_nop, /* WINED3DSIH_DIV */ NULL, /* WINED3DSIH_DP2ADD */ pshader_hw_dp2add, /* WINED3DSIH_DP3 */ shader_hw_map2gl, @@ -5153,7 +5149,7 @@ static const SHADER_HANDLER shader_arb_instruction_handler_table[WINED3DSIH_TABL /* WINED3DSIH_MUL */ shader_hw_map2gl, /* WINED3DSIH_NOP */ shader_hw_nop, /* WINED3DSIH_NRM */ shader_hw_nrm, - /* WINED3DSIH_PHASE */ NULL, + /* WINED3DSIH_PHASE */ shader_hw_nop, /* WINED3DSIH_POW */ shader_hw_pow, /* WINED3DSIH_RCP */ shader_hw_rcp, /* WINED3DSIH_REP */ shader_hw_rep, diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c index 66c30f8..fe961b9 100644 --- a/dlls/wined3d/glsl_shader.c +++ b/dlls/wined3d/glsl_shader.c @@ -2301,6 +2301,8 @@ static void shader_glsl_map2gl(const struct wined3d_shader_instruction *ins) shader_addline(buffer, "));\n"); }
+static void shader_glsl_nop(const struct wined3d_shader_instruction *ins) {} + static void shader_glsl_nrm(const struct wined3d_shader_instruction *ins) { struct wined3d_shader_buffer *buffer = ins->ctx->buffer; @@ -5028,10 +5030,10 @@ static const SHADER_HANDLER shader_glsl_instruction_handler_table[WINED3DSIH_TAB /* WINED3DSIH_CND */ shader_glsl_cnd, /* WINED3DSIH_CRS */ shader_glsl_cross, /* WINED3DSIH_CUT */ NULL, - /* WINED3DSIH_DCL */ NULL, - /* WINED3DSIH_DEF */ NULL, - /* WINED3DSIH_DEFB */ NULL, - /* WINED3DSIH_DEFI */ NULL, + /* WINED3DSIH_DCL */ shader_glsl_nop, + /* WINED3DSIH_DEF */ shader_glsl_nop, + /* WINED3DSIH_DEFB */ shader_glsl_nop, + /* WINED3DSIH_DEFI */ shader_glsl_nop, /* WINED3DSIH_DIV */ NULL, /* WINED3DSIH_DP2ADD */ shader_glsl_dp2add, /* WINED3DSIH_DP3 */ shader_glsl_dot, @@ -5077,9 +5079,9 @@ static const SHADER_HANDLER shader_glsl_instruction_handler_table[WINED3DSIH_TAB /* WINED3DSIH_MOVA */ shader_glsl_mov, /* WINED3DSIH_MOVC */ NULL, /* WINED3DSIH_MUL */ shader_glsl_arith, - /* WINED3DSIH_NOP */ NULL, + /* WINED3DSIH_NOP */ shader_glsl_nop, /* WINED3DSIH_NRM */ shader_glsl_nrm, - /* WINED3DSIH_PHASE */ NULL, + /* WINED3DSIH_PHASE */ shader_glsl_nop, /* WINED3DSIH_POW */ shader_glsl_pow, /* WINED3DSIH_RCP */ shader_glsl_rcp, /* WINED3DSIH_REP */ shader_glsl_rep, diff --git a/dlls/wined3d/shader.c b/dlls/wined3d/shader.c index 7e282aa..6bb3b5b 100644 --- a/dlls/wined3d/shader.c +++ b/dlls/wined3d/shader.c @@ -1206,15 +1206,6 @@ void shader_generate_main(const struct wined3d_shader *shader, struct wined3d_sh continue; }
- /* Nothing to do. */ - if (ins.handler_idx == WINED3DSIH_DCL - || ins.handler_idx == WINED3DSIH_NOP - || ins.handler_idx == WINED3DSIH_DEF - || ins.handler_idx == WINED3DSIH_DEFI - || ins.handler_idx == WINED3DSIH_DEFB - || ins.handler_idx == WINED3DSIH_PHASE) - continue; - if (ins.predicate) FIXME("Predicates not implemented.\n");