Track separate programs for each stage

The assumption is that all stages are the same program or that
varyings are passed between stages using built-in varyings.
This commit is contained in:
Ian Romanick
2010-10-13 13:58:44 -07:00
parent 75c6f47288
commit 84eba3ef71
13 changed files with 298 additions and 116 deletions

View File

@@ -96,9 +96,8 @@ static void update_raster_state( struct st_context *st )
*/
if (ctx->VertexProgram._Current) {
if (ctx->VertexProgram._Enabled ||
(ctx->Shader.CurrentProgram &&
ctx->Shader.CurrentProgram->VertexProgram &&
ctx->Shader.CurrentProgram->LinkStatus)) {
(ctx->Shader.CurrentVertexProgram &&
ctx->Shader.CurrentVertexProgram->LinkStatus)) {
/* user-defined vertex program or shader */
raster->light_twoside = ctx->VertexProgram.TwoSideEnabled;
}