Commit bd14b6e2 authored by Stefan Dösinger's avatar Stefan Dösinger Committed by Alexandre Julliard

wined3d: IFC requires GL_NV_fragment_program2.

parent d4854b63
...@@ -2989,7 +2989,7 @@ static GLuint shader_arb_generate_pshader(IWineD3DPixelShaderImpl *This, ...@@ -2989,7 +2989,7 @@ static GLuint shader_arb_generate_pshader(IWineD3DPixelShaderImpl *This,
* So enable the best we can get. * So enable the best we can get.
*/ */
if(reg_maps->usesdsx || reg_maps->usesdsy || reg_maps->loop_depth > 0 || reg_maps->usestexldd || if(reg_maps->usesdsx || reg_maps->usesdsy || reg_maps->loop_depth > 0 || reg_maps->usestexldd ||
reg_maps->usestexldl || reg_maps->usesfacing) reg_maps->usestexldl || reg_maps->usesfacing || reg_maps->usesifc)
{ {
want_nv_prog = TRUE; want_nv_prog = TRUE;
} }
......
...@@ -705,6 +705,10 @@ HRESULT shader_get_registers_used(IWineD3DBaseShader *iface, const struct wined3 ...@@ -705,6 +705,10 @@ HRESULT shader_get_registers_used(IWineD3DBaseShader *iface, const struct wined3
{ {
reg_maps->usesmova = 1; reg_maps->usesmova = 1;
} }
else if(ins.handler_idx == WINED3DSIH_IFC)
{
reg_maps->usesifc = 1;
}
limit = ins.src_count + (ins.predicate ? 1 : 0); limit = ins.src_count + (ins.predicate ? 1 : 0);
for (i = 0; i < limit; ++i) for (i = 0; i < limit; ++i)
......
...@@ -640,7 +640,8 @@ typedef struct shader_reg_maps ...@@ -640,7 +640,8 @@ typedef struct shader_reg_maps
unsigned usesrelconstF : 1; unsigned usesrelconstF : 1;
unsigned fog : 1; unsigned fog : 1;
unsigned usestexldl : 1; unsigned usestexldl : 1;
unsigned padding : 6; unsigned usesifc : 1;
unsigned padding : 5;
/* Whether or not loops are used in this shader, and nesting depth */ /* Whether or not loops are used in this shader, and nesting depth */
unsigned loop_depth; unsigned loop_depth;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment