wined3d: IFC requires GL_NV_fragment_program2.

This commit is contained in:
Stefan Dösinger 2009-06-25 14:44:00 +02:00 committed by Alexandre Julliard
parent d4854b636c
commit bd14b6e2b4
3 changed files with 7 additions and 2 deletions

View File

@ -2989,7 +2989,7 @@ static GLuint shader_arb_generate_pshader(IWineD3DPixelShaderImpl *This,
* So enable the best we can get.
*/
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;
}

View File

@ -705,6 +705,10 @@ HRESULT shader_get_registers_used(IWineD3DBaseShader *iface, const struct wined3
{
reg_maps->usesmova = 1;
}
else if(ins.handler_idx == WINED3DSIH_IFC)
{
reg_maps->usesifc = 1;
}
limit = ins.src_count + (ins.predicate ? 1 : 0);
for (i = 0; i < limit; ++i)

View File

@ -640,7 +640,8 @@ typedef struct shader_reg_maps
unsigned usesrelconstF : 1;
unsigned fog : 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 */
unsigned loop_depth;