r300: fix isosurf on rs690
authorDave Airlie <airlied@redhat.com>
Mon, 4 Feb 2008 10:59:26 +0000 (21:59 +1100)
committerDave Airlie <airlied@redhat.com>
Mon, 4 Feb 2008 10:59:26 +0000 (21:59 +1100)
src/mesa/drivers/dri/r300/r300_state.c

index b90f42234a97be3a7b631d743565757bda6f7f98..1253666f5474678ec0e90c950587cdc1c6479e1f 100644 (file)
@@ -2215,8 +2215,15 @@ static void r300RenderMode(GLcontext * ctx, GLenum mode)
 static void r300ClipPlane( GLcontext *ctx, GLenum plane, const GLfloat *eq )
 {
        r300ContextPtr rmesa = R300_CONTEXT(ctx);
-       GLint p = (GLint) plane - (GLint) GL_CLIP_PLANE0;
-       GLint *ip = (GLint *)ctx->Transform._ClipUserPlane[p];
+       GLint p;
+       GLint *ip;
+
+       /* no VAP UCP on non-TCL chipsets */
+       if (!(rmesa->radeon.radeonScreen->chip_flags & RADEON_CHIPSET_TCL))
+                       return;
+
+       p = (GLint) plane - (GLint) GL_CLIP_PLANE0;
+       ip = (GLint *)ctx->Transform._ClipUserPlane[p];
 
        R300_STATECHANGE( rmesa, vpucp[p] );
        rmesa->hw.vpucp[p].cmd[R300_VPUCP_X] = ip[0];