Stefan Dösinger : wined3d: IFC requires GL_NV_fragment_program2.

Alexandre Julliard julliard at winehq.org
Fri Jun 26 09:47:09 CDT 2009


Module: wine
Branch: master
Commit: bd14b6e2b42b6f86032843ef098de03860635119
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=bd14b6e2b42b6f86032843ef098de03860635119

Author: Stefan Dösinger <stefan at codeweavers.com>
Date:   Thu Jun 25 14:44:00 2009 +0200

wined3d: IFC requires GL_NV_fragment_program2.

---

 dlls/wined3d/arb_program_shader.c |    2 +-
 dlls/wined3d/baseshader.c         |    4 ++++
 dlls/wined3d/wined3d_private.h    |    3 ++-
 3 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/dlls/wined3d/arb_program_shader.c b/dlls/wined3d/arb_program_shader.c
index e2f4b5e..c536b38 100644
--- a/dlls/wined3d/arb_program_shader.c
+++ b/dlls/wined3d/arb_program_shader.c
@@ -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;
     }
diff --git a/dlls/wined3d/baseshader.c b/dlls/wined3d/baseshader.c
index dc7cd5b..d23d037 100644
--- a/dlls/wined3d/baseshader.c
+++ b/dlls/wined3d/baseshader.c
@@ -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)
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index afdf642..e9b64bf 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -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;




More information about the wine-cvs mailing list