nv50: update linkage on rasterizer change
authorChristoph Bumiller <e0425955@student.tuwien.ac.at>
Sat, 28 Nov 2009 12:57:38 +0000 (13:57 +0100)
committerChristoph Bumiller <e0425955@student.tuwien.ac.at>
Sun, 29 Nov 2009 12:41:47 +0000 (13:41 +0100)
We need to update VP_RESULT_MAP and/or COORD_REPLACE_MAP
when light_twoside and/or point_sprite are changed.

src/gallium/drivers/nv50/nv50_state_validate.c

index 19b8ef07b5e0201b26a6ad4b062d34cfaf033a33..c871acaab8deacafe238c991c9eebb44f5bd7092 100644 (file)
@@ -201,7 +201,8 @@ nv50_state_emit(struct nv50_context *nv50)
                so_emit(chan, nv50->state.vertprog);
        if (nv50->state.dirty & NV50_NEW_FRAGPROG)
                so_emit(chan, nv50->state.fragprog);
-       if (nv50->state.dirty & (NV50_NEW_FRAGPROG | NV50_NEW_VERTPROG))
+       if (nv50->state.dirty & (NV50_NEW_FRAGPROG | NV50_NEW_VERTPROG |
+                                NV50_NEW_RASTERIZER))
                so_emit(chan, nv50->state.programs);
        if (nv50->state.dirty & NV50_NEW_RASTERIZER)
                so_emit(chan, nv50->state.rast);
@@ -264,7 +265,8 @@ nv50_state_validate(struct nv50_context *nv50)
        if (nv50->dirty & (NV50_NEW_FRAGPROG | NV50_NEW_FRAGPROG_CB))
                nv50_fragprog_validate(nv50);
 
-       if (nv50->dirty & (NV50_NEW_FRAGPROG | NV50_NEW_VERTPROG))
+       if (nv50->dirty & (NV50_NEW_FRAGPROG | NV50_NEW_VERTPROG |
+                          NV50_NEW_RASTERIZER))
                nv50_linkage_validate(nv50);
 
        if (nv50->dirty & NV50_NEW_RASTERIZER)