ATI_fs in swrast only had secondary color if GL_COLOR_SUM was enabled.
This patch probably fixes the same issue in r200.

Piglit: spec/ati_fragment_shader/render-sources and render-precedence

Signed-off-by: Miklós Máté <mtm...@gmail.com>
---
 src/mesa/main/state.h | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

diff --git a/src/mesa/main/state.h b/src/mesa/main/state.h
index 9d4591790a..5814c659a3 100644
--- a/src/mesa/main/state.h
+++ b/src/mesa/main/state.h
@@ -46,6 +46,13 @@ extern void
 _mesa_set_vp_override(struct gl_context *ctx, GLboolean flag);
 
 
+static inline bool
+_mesa_ati_fragment_shader_enabled(const struct gl_context *ctx)
+{
+   return ctx->ATIFragmentShader.Enabled &&
+          ctx->ATIFragmentShader.Current->Instructions[0];
+}
+
 /**
  * Is the secondary color needed?
  */
@@ -69,6 +76,9 @@ _mesa_need_secondary_color(const struct gl_context *ctx)
        (ctx->FragmentProgram._Current->info.inputs_read & VARYING_BIT_COL1))
       return GL_TRUE;
 
+   if (_mesa_ati_fragment_shader_enabled(ctx))
+      return GL_TRUE;
+
    return GL_FALSE;
 }
 
@@ -107,11 +117,4 @@ _mesa_arb_fragment_program_enabled(const struct gl_context 
*ctx)
           ctx->FragmentProgram.Current->arb.Instructions;
 }
 
-static inline bool
-_mesa_ati_fragment_shader_enabled(const struct gl_context *ctx)
-{
-   return ctx->ATIFragmentShader.Enabled &&
-          ctx->ATIFragmentShader.Current->Instructions[0];
-}
-
 #endif
-- 
2.15.0.rc0

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to