diff options
author | Brian Paul <brian.paul@tungstengraphics.com> | 2008-12-18 16:00:20 -0700 |
---|---|---|
committer | Brian Paul <brian.paul@tungstengraphics.com> | 2008-12-18 16:12:08 -0700 |
commit | 78a204f507f966d12ecd3931a51a85763c66ddb3 (patch) | |
tree | 7f06d156addf614cc0d2b80225c673ba74912bdd | |
parent | 36c7bb697d47560e2bf4798db11afd7f1751abef (diff) |
gallium: fix two-sided lighting test in state tracker
This fixes two-sided lighting for vertex shaders.
-rw-r--r-- | src/mesa/state_tracker/st_atom_rasterizer.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/mesa/state_tracker/st_atom_rasterizer.c b/src/mesa/state_tracker/st_atom_rasterizer.c index 5eef4ebe92e..ea76487bcfc 100644 --- a/src/mesa/state_tracker/st_atom_rasterizer.c +++ b/src/mesa/state_tracker/st_atom_rasterizer.c @@ -107,12 +107,15 @@ static void update_raster_state( struct st_context *st ) /* _NEW_LIGHT | _NEW_PROGRAM * * Back-face colors can come from traditional lighting (when - * GL_LIGHT_MODEL_TWO_SIDE is set) or from vertex programs (when + * GL_LIGHT_MODEL_TWO_SIDE is set) or from vertex programs/shaders (when * GL_VERTEX_PROGRAM_TWO_SIDE is set). Note the logic here. */ if (ctx->VertexProgram._Current) { - if (ctx->VertexProgram._Enabled) { - /* user-defined program */ + if (ctx->VertexProgram._Enabled || + (ctx->Shader.CurrentProgram && + ctx->Shader.CurrentProgram->VertexProgram && + ctx->Shader.CurrentProgram->LinkStatus)) { + /* user-defined vertex program or shader */ raster->light_twoside = ctx->VertexProgram.TwoSideEnabled; } else { |