Module: Mesa
Branch: gallium-0.1
Commit: 947d04d08bead28c43f525ea4c1d99a039bed047
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=947d04d08bead28c43f525ea4c1d99a039bed047

Author: Brian Paul <[email protected]>
Date:   Wed Dec 17 14:04:03 2008 -0700

mesa: fix fixed-function test in get_fp_input_mask() - again.

The problem we're solving only occured when there was a user-defined
vertex shader but no fragment shader.  Check for that case now.
Fixes glean api2 vertex array failure.

---

 src/mesa/main/texenvprogram.c |    8 +++++---
 1 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/mesa/main/texenvprogram.c b/src/mesa/main/texenvprogram.c
index 0294c10..75f5baa 100644
--- a/src/mesa/main/texenvprogram.c
+++ b/src/mesa/main/texenvprogram.c
@@ -207,6 +207,9 @@ static GLuint translate_tex_src_bit( GLbitfield bit )
  */
 static GLbitfield get_fp_input_mask( GLcontext *ctx )
 {
+   const GLboolean vertexShader = (ctx->Shader.CurrentProgram &&
+                                   ctx->Shader.CurrentProgram->VertexProgram);
+   const GLboolean vertexProgram = ctx->VertexProgram._Enabled;
    GLbitfield fp_inputs = 0x0;
 
    if (ctx->VertexProgram._Overriden) {
@@ -219,10 +222,9 @@ static GLbitfield get_fp_input_mask( GLcontext *ctx )
    else if (ctx->RenderMode == GL_FEEDBACK) {
       fp_inputs = (FRAG_BIT_COL0 | FRAG_BIT_TEX0);
    }
-   else if (!ctx->VertexProgram._Enabled ||
+   else if (!(vertexProgram || vertexShader) ||
             !ctx->VertexProgram._Current) {
-
-      /* Fixed function logic */
+      /* Fixed function vertex logic */
       GLbitfield varying_inputs = ctx->varying_vp_inputs;
 
       /* These get generated in the setup routine regardless of the

_______________________________________________
mesa-commit mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to