diff --git a/dlls/wined3d/arb_program_shader.c b/dlls/wined3d/arb_program_shader.c index 1bebb21eb3b..ca0671d5769 100644 --- a/dlls/wined3d/arb_program_shader.c +++ b/dlls/wined3d/arb_program_shader.c @@ -827,7 +827,7 @@ static void pshader_hw_cnd(const SHADER_OPCODE_ARG *arg) pshader_gen_input_modifier_line(arg->shader, buffer, arg->src[2], 2, src_name[2]); /* The coissue flag changes the semantic of the cnd instruction in <= 1.3 shaders */ - if (arg->reg_maps->shader_version <= WINED3DPS_VERSION(1, 3) && arg->opcode_token & WINED3DSI_COISSUE) + if (arg->reg_maps->shader_version <= WINED3DPS_VERSION(1, 3) && arg->coissue) { shader_addline(buffer, "MOV%s %s%s, %s;\n", sat ? "_SAT" : "", dst_name, dst_wmask, src_name[1]); } else { @@ -1139,12 +1139,8 @@ static void pshader_hw_tex(const SHADER_OPCODE_ARG *arg) projected = TRUE; } } else { - if(arg->opcode_token & WINED3DSI_TEXLD_PROJECT) { - projected = TRUE; - } - if(arg->opcode_token & WINED3DSI_TEXLD_BIAS) { - bias = TRUE; - } + if (arg->flags & WINED3DSI_TEXLD_PROJECT) projected = TRUE; + if (arg->flags & WINED3DSI_TEXLD_BIAS) bias = TRUE; } shader_hw_sample(arg, reg_sampler_code, reg_dest, reg_coord, projected, bias); } diff --git a/dlls/wined3d/baseshader.c b/dlls/wined3d/baseshader.c index a5479498951..65b2709bcc2 100644 --- a/dlls/wined3d/baseshader.c +++ b/dlls/wined3d/baseshader.c @@ -785,6 +785,8 @@ void shader_generate_main(IWineD3DBaseShader *iface, SHADER_BUFFER* buffer, while (WINED3DPS_END() != *pToken) { + DWORD opcode_token; + /* Skip version token */ if (shader_is_version_token(*pToken)) { @@ -801,13 +803,13 @@ void shader_generate_main(IWineD3DBaseShader *iface, SHADER_BUFFER* buffer, } /* Read opcode */ - hw_arg.opcode_token = *pToken++; - curOpcode = shader_get_opcode(opcode_table, shader_version, hw_arg.opcode_token); + opcode_token = *pToken++; + curOpcode = shader_get_opcode(opcode_table, shader_version, opcode_token); /* Unknown opcode and its parameters */ if (!curOpcode) { - FIXME("Unrecognized opcode: token=0x%08x\n", hw_arg.opcode_token); + FIXME("Unrecognized opcode: token=0x%08x\n", opcode_token); pToken += shader_skip_unrecognized(pToken, shader_version); continue; } @@ -821,7 +823,7 @@ void shader_generate_main(IWineD3DBaseShader *iface, SHADER_BUFFER* buffer, || WINED3DSIO_PHASE == curOpcode->opcode || WINED3DSIO_RET == curOpcode->opcode) { - pToken += shader_skip_opcode(curOpcode, hw_arg.opcode_token, shader_version); + pToken += shader_skip_opcode(curOpcode, opcode_token, shader_version); continue; } @@ -832,14 +834,14 @@ void shader_generate_main(IWineD3DBaseShader *iface, SHADER_BUFFER* buffer, if (!hw_fct) { FIXME("Can't handle opcode %s in hwShader\n", curOpcode->name); - pToken += shader_skip_opcode(curOpcode, hw_arg.opcode_token, shader_version); + pToken += shader_skip_opcode(curOpcode, opcode_token, shader_version); continue; } hw_arg.opcode = curOpcode; - hw_arg.flags = hw_arg.opcode_token & WINED3D_OPCODESPECIFICCONTROL_MASK; - hw_arg.coissue = hw_arg.opcode_token & WINED3DSI_COISSUE; + hw_arg.flags = opcode_token & WINED3D_OPCODESPECIFICCONTROL_MASK; + hw_arg.coissue = opcode_token & WINED3DSI_COISSUE; /* Destination token */ if (curOpcode->dst_token) @@ -851,7 +853,7 @@ void shader_generate_main(IWineD3DBaseShader *iface, SHADER_BUFFER* buffer, } /* Predication token */ - if (hw_arg.opcode_token & WINED3DSHADER_INSTRUCTION_PREDICATED) hw_arg.predicate = *pToken++; + if (opcode_token & WINED3DSHADER_INSTRUCTION_PREDICATED) hw_arg.predicate = *pToken++; /* Other source tokens */ for (i = 0; i < (curOpcode->num_params - curOpcode->dst_token); ++i) diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h index 632325071c1..abd37e9e4d8 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -2243,7 +2243,6 @@ typedef struct SHADER_OPCODE_ARG { IWineD3DBaseShader* shader; const shader_reg_maps *reg_maps; CONST SHADER_OPCODE* opcode; - DWORD opcode_token; DWORD flags; BOOL coissue; DWORD dst;