r300: further cleanup
[mesa.git] / src / mesa / drivers / dri / r300 / r300_render.c
index 91f58ade5995c39017810bab5646d8009297b683..93fdc575885e2b32f0f5778a3db422187ad47b15 100644 (file)
@@ -72,8 +72,7 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
 #include "r300_reg.h"
 #include "r300_tex.h"
 #include "r300_emit.h"
-#include "r300_fragprog.h"
-extern int future_hw_tcl_on;
+#include "r300_fragprog_common.h"
 
 /**
  * \brief Convert a OpenGL primitive type into a R300 primitive type.
@@ -432,20 +431,15 @@ static int r300Fallback(GLcontext * ctx)
 
        struct r300_fragment_program *fp = (struct r300_fragment_program *) ctx->FragmentProgram._Current;
        if (fp && !fp->translated) {
-               r300->vtbl.TranslateFragmentShader(ctx, ctx->FragmentProgram._Current);
+               r300TranslateFragmentShader(ctx, ctx->FragmentProgram._Current);
                FALLBACK_IF(fp->error);
        }
 
        FALLBACK_IF(ctx->RenderMode != GL_RENDER);
 
-       /* If GL_EXT_stencil_two_side is disabled, this fallback check can
-        * be removed.
-        */
-       FALLBACK_IF(ctx->Stencil.Ref[0] != ctx->Stencil.Ref[back]
-                   || ctx->Stencil.ValueMask[0] !=
-                   ctx->Stencil.ValueMask[back]
-                   || ctx->Stencil.WriteMask[0] !=
-                   ctx->Stencil.WriteMask[back]);
+       FALLBACK_IF(ctx->Stencil.Enabled && (ctx->Stencil.Ref[0] != ctx->Stencil.Ref[back]
+                   || ctx->Stencil.ValueMask[0] != ctx->Stencil.ValueMask[back]
+                   || ctx->Stencil.WriteMask[0] != ctx->Stencil.WriteMask[back]));
 
        if (ctx->Extensions.NV_point_sprite || ctx->Extensions.ARB_point_sprite)
                FALLBACK_IF(ctx->Point.PointSprite);
@@ -472,8 +466,8 @@ static GLboolean r300RunNonTCLRender(GLcontext * ctx,
        if (r300Fallback(ctx) >= R300_FALLBACK_RAST)
                return GL_TRUE;
 
-       if (!(rmesa->radeon.radeonScreen->chip_flags & RADEON_CHIPSET_TCL))
-               return GL_TRUE;
+       if (rmesa->options.hw_tcl_enabled == GL_FALSE)
+               return GL_TRUE;
 
        if (!r300ValidateBuffers(ctx))
            return GL_TRUE;
@@ -487,16 +481,14 @@ static GLboolean r300RunTCLRender(GLcontext * ctx,
        r300ContextPtr rmesa = R300_CONTEXT(ctx);
        struct r300_vertex_program *vp;
 
-       hw_tcl_on = future_hw_tcl_on;
-
        if (RADEON_DEBUG & DEBUG_PRIMS)
                fprintf(stderr, "%s\n", __FUNCTION__);
 
-       if (hw_tcl_on == GL_FALSE)
+       if (rmesa->options.hw_tcl_enabled == GL_FALSE)
                return GL_TRUE;
 
        if (r300Fallback(ctx) >= R300_FALLBACK_TCL) {
-               hw_tcl_on = GL_FALSE;
+               rmesa->options.hw_tcl_enabled = GL_FALSE;
                return GL_TRUE;
        }
 
@@ -507,7 +499,7 @@ static GLboolean r300RunTCLRender(GLcontext * ctx,
 
        vp = (struct r300_vertex_program *)CURRENT_VERTEX_SHADER(ctx);
        if (vp->native == GL_FALSE) {
-               hw_tcl_on = GL_FALSE;
+               rmesa->options.hw_tcl_enabled = GL_FALSE;
                return GL_TRUE;
        }