[Mesa-dev] [PATCH 7/9] i915: There's always a fragment program

Ian Romanick idr at freedesktop.org
Fri Apr 15 23:10:50 PDT 2011


From: Ian Romanick <ian.d.romanick at intel.com>

Fragment programs are generated by core Mesa for fixed-function.
Because of this, there's no reason to handle cases where there is no
fragment program for fog.
---
 src/mesa/drivers/dri/i915/i915_state.c |   31 +++++--------------------------
 1 files changed, 5 insertions(+), 26 deletions(-)

diff --git a/src/mesa/drivers/dri/i915/i915_state.c b/src/mesa/drivers/dri/i915/i915_state.c
index 05fc26f..df10031 100644
--- a/src/mesa/drivers/dri/i915/i915_state.c
+++ b/src/mesa/drivers/dri/i915/i915_state.c
@@ -729,36 +729,15 @@ void
 i915_update_fog(struct gl_context * ctx)
 {
    struct i915_context *i915 = I915_CONTEXT(ctx);
-   GLenum mode;
-   GLboolean enabled;
    GLuint dw;
 
-   if (ctx->FragmentProgram._Current) {
-      /* Pull in static fog state from program */
-      mode = GL_NONE;
-      enabled = GL_FALSE;
-   }
-   else {
-      enabled = ctx->Fog.Enabled;
-      mode = ctx->Fog.Mode;
-   }
+   assert(ctx->FragmentProgram._Current);
 
-   if (!enabled) {
-      i915->vertex_fog = I915_FOG_NONE;
-   }
-   else { /* if (i915->vertex_fog != I915_FOG_VERTEX) */
-      I915_STATECHANGE(i915, I915_UPLOAD_FOG);
-      i915->state.Fog[I915_FOGREG_MODE1] &= ~FMC1_FOGFUNC_MASK;
-      i915->state.Fog[I915_FOGREG_MODE1] |= FMC1_FOGFUNC_VERTEX;
-      i915->vertex_fog = I915_FOG_VERTEX;
-   }
+   i915->vertex_fog = I915_FOG_NONE;
+
+   I915_ACTIVESTATE(i915, I915_UPLOAD_FOG, 0);
+   dw = i915->state.Ctx[I915_CTXREG_LIS5] & ~S5_FOG_ENABLE;
 
-   I915_ACTIVESTATE(i915, I915_UPLOAD_FOG, enabled);
-   dw = i915->state.Ctx[I915_CTXREG_LIS5];
-   if (enabled)
-      dw |= S5_FOG_ENABLE;
-   else
-      dw &= ~S5_FOG_ENABLE;
    if (dw != i915->state.Ctx[I915_CTXREG_LIS5]) {
       i915->state.Ctx[I915_CTXREG_LIS5] = dw;
       I915_STATECHANGE(i915, I915_UPLOAD_CTX);
-- 
1.7.4



More information about the mesa-dev mailing list