[intel] Fix no_rast option on non-965.
authorEric Anholt <eric@anholt.net>
Tue, 17 Jun 2008 21:14:02 +0000 (14:14 -0700)
committerEric Anholt <eric@anholt.net>
Tue, 17 Jun 2008 21:14:02 +0000 (14:14 -0700)
The no_rast fallback was getting partially overwritten by later TNL init,
resulting in a segfault when things were in a mixed-up state.

src/mesa/drivers/dri/i915/i830_context.c
src/mesa/drivers/dri/i915/i915_context.c
src/mesa/drivers/dri/intel/intel_context.c

index 166a3bc8e21ab5c4298a18e6dce305a807ae5ac5..d6542f8b3a25cc8d811000362c1402cc2e187b07 100644 (file)
@@ -88,6 +88,9 @@ i830CreateContext(const __GLcontextModes * mesaVis,
    _tnl_destroy_pipeline(ctx);
    _tnl_install_pipeline(ctx, intel_pipeline);
 
+   if (intel->no_rast)
+      FALLBACK(intel, INTEL_FALLBACK_USER, 1);
+
    intel->ctx.Const.MaxTextureUnits = I830_TEX_UNITS;
    intel->ctx.Const.MaxTextureImageUnits = I830_TEX_UNITS;
    intel->ctx.Const.MaxTextureCoordUnits = I830_TEX_UNITS;
index 59da40229abffa4406c81b03eacf1115e06a72d8..bb77cff96caef2aef7eb219ec1a09f0114eff3a7 100644 (file)
@@ -140,6 +140,9 @@ i915CreateContext(const __GLcontextModes * mesaVis,
    _tnl_destroy_pipeline(ctx);
    _tnl_install_pipeline(ctx, intel_pipeline);
 
+   if (intel->no_rast)
+      FALLBACK(intel, INTEL_FALLBACK_USER, 1);
+
    ctx->Const.MaxTextureUnits = I915_TEX_UNITS;
    ctx->Const.MaxTextureImageUnits = I915_TEX_UNITS;
    ctx->Const.MaxTextureCoordUnits = I915_TEX_UNITS;
index f33805ba0503c56b10e8159ca18b43ebe831da2e..e668b7326a2011f9f042295b719fd1502e56c684 100644 (file)
@@ -686,7 +686,6 @@ intelInitContext(struct intel_context *intel,
    /* Force all software fallbacks */
    if (driQueryOptionb(&intel->optionCache, "no_rast")) {
       fprintf(stderr, "disabling 3D rasterization\n");
-      FALLBACK(intel, INTEL_FALLBACK_USER, 1);
       intel->no_rast = 1;
    }