mesa: fix not having secondary color in ATI_fs in swrast
authorMiklós Máté <mtmkls@gmail.com>
Sat, 2 Dec 2017 22:35:21 +0000 (23:35 +0100)
committerMarek Olšák <marek.olsak@amd.com>
Mon, 25 Dec 2017 13:32:23 +0000 (14:32 +0100)
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é <mtmkls@gmail.com>
src/mesa/main/state.h

index 9d4591790ae21d0aa8a0d402b3702c1c62545215..5814c659a31e6f2242358a4c35d183baf68fdf77 100644 (file)
@@ -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