r300: move firevertices out into the main place its needed.
authorDave Airlie <airlied@redhat.com>
Sun, 8 Mar 2009 23:34:41 +0000 (10:34 +1100)
committerDave Airlie <airlied@redhat.com>
Mon, 9 Mar 2009 02:06:10 +0000 (13:06 +1100)
This fixes a hang on context destruction on rs690

src/mesa/drivers/dri/r200/r200_state.c
src/mesa/drivers/dri/r300/r300_state.c
src/mesa/drivers/dri/radeon/radeon_common_context.c
src/mesa/drivers/dri/radeon/radeon_state.c

index 46baad33f5cc0467be988b92b4b3a42132d9f513..5eb61c8804f9705fa4a5caa32befd912ff648eda 100644 (file)
@@ -1618,7 +1618,6 @@ void r200UpdateWindow( GLcontext *ctx )
    float_ui32_type sz = { v[MAT_SZ] * rmesa->radeon.state.depth.scale };
    float_ui32_type tz = { v[MAT_TZ] * rmesa->radeon.state.depth.scale };
 
-   radeon_firevertices(&rmesa->radeon);
    R200_STATECHANGE( rmesa, vpt );
 
    rmesa->hw.vpt.cmd[VPT_SE_VPORT_XSCALE]  = sx.ui32;
index 6bb0063bc1923912ea47566b0bdb7382f576774d..17e7b5227ab8719c771b08dd334e6be33b9cfe68 100644 (file)
@@ -1069,7 +1069,6 @@ static void r300UpdateWindow(GLcontext * ctx)
        GLfloat sz = v[MAT_SZ] * rmesa->radeon.state.depth.scale;
        GLfloat tz = v[MAT_TZ] * rmesa->radeon.state.depth.scale;
 
-       radeon_firevertices(&rmesa->radeon);
        R300_STATECHANGE(rmesa, vpt);
 
        rmesa->hw.vpt.cmd[R300_VPT_XSCALE] = r300PackFloat32(sx);
@@ -2137,6 +2136,7 @@ static void r300ResetHwState(r300ContextPtr r300)
        if (RADEON_DEBUG & DEBUG_STATE)
                fprintf(stderr, "%s\n", __FUNCTION__);
 
+       radeon_firevertices(&r300->radeon);
        r300UpdateWindow(ctx);
 
        r300ColorMask(ctx,
index 7358391097001849bad53451bf5c1cfbe94e1d86..b63aba2f8947c3d037bc83d7608edf638e2a0355 100644 (file)
@@ -578,7 +578,7 @@ GLboolean radeonMakeCurrent(__DRIcontextPrivate * driContextPriv,
                        }
                        radeon->dri.drawable = driDrawPriv;
                        
-//                     radeonWindowMoved(radeon);
+                       radeon_window_moved(radeon);
                }
                radeon_draw_buffer(radeon->glCtx, &drfb->base);
        }
index 0c92a6ff0867594429ee8ac2e87b1eb91908d572..42b65cbee65bce3d68149ada1deb1d8506a68336 100644 (file)
@@ -1398,7 +1398,6 @@ void radeonUpdateWindow( GLcontext *ctx )
    float_ui32_type sz = { v[MAT_SZ] * rmesa->radeon.state.depth.scale };
    float_ui32_type tz = { v[MAT_TZ] * rmesa->radeon.state.depth.scale };
 
-   radeon_firevertices(&rmesa->radeon);
    RADEON_STATECHANGE( rmesa, vpt );
 
    rmesa->hw.vpt.cmd[VPT_SE_VPORT_XSCALE]  = sx.ui32;