aboutsummaryrefslogtreecommitdiffstats
path: root/src/mesa/program
diff options
context:
space:
mode:
authorAnuj Phogat <[email protected]>2014-01-13 12:26:55 -0800
committerAnuj Phogat <[email protected]>2014-01-21 14:42:27 -0800
commit3313cc269bd428ca96a132d86da5fddc0f27386a (patch)
tree96712dc4be363f902f55666e1759be7959a9f223 /src/mesa/program
parent78d65476b69402dc1d82b35e7ba3047ef44d783a (diff)
i965: Add an option to ignore sample qualifier
This will be useful in my next patch which depends on a functionality of _mesa_get_min_invocations_per_fragment() to ignore the sample qualifier (prog->IsSample) based on a flag passed to it. Cc: [email protected] Signed-off-by: Anuj Phogat <[email protected]> Reviewed-by: Chris Forbes <[email protected]>
Diffstat (limited to 'src/mesa/program')
-rw-r--r--src/mesa/program/program.c5
-rw-r--r--src/mesa/program/program.h3
2 files changed, 5 insertions, 3 deletions
diff --git a/src/mesa/program/program.c b/src/mesa/program/program.c
index 3c19e8c60f0..ea8eb0d3a7a 100644
--- a/src/mesa/program/program.c
+++ b/src/mesa/program/program.c
@@ -1023,7 +1023,8 @@ _mesa_postprocess_program(struct gl_context *ctx, struct gl_program *prog)
*/
GLint
_mesa_get_min_invocations_per_fragment(struct gl_context *ctx,
- const struct gl_fragment_program *prog)
+ const struct gl_fragment_program *prog,
+ bool ignore_sample_qualifier)
{
/* From ARB_sample_shading specification:
* "Using gl_SampleID in a fragment shader causes the entire shader
@@ -1041,7 +1042,7 @@ _mesa_get_min_invocations_per_fragment(struct gl_context *ctx,
* "Use of the "sample" qualifier on a fragment shader input
* forces per-sample shading"
*/
- if (prog->IsSample)
+ if (prog->IsSample && !ignore_sample_qualifier)
return MAX2(ctx->DrawBuffer->Visual.samples, 1);
if (prog->Base.SystemValuesRead & (SYSTEM_BIT_SAMPLE_ID |
diff --git a/src/mesa/program/program.h b/src/mesa/program/program.h
index 0e350cd6f86..c47ac1cc796 100644
--- a/src/mesa/program/program.h
+++ b/src/mesa/program/program.h
@@ -189,7 +189,8 @@ _mesa_postprocess_program(struct gl_context *ctx, struct gl_program *prog);
extern GLint
_mesa_get_min_invocations_per_fragment(struct gl_context *ctx,
- const struct gl_fragment_program *prog);
+ const struct gl_fragment_program *prog,
+ bool ignore_sample_qualifier);
static inline GLuint
_mesa_program_enum_to_shader_stage(GLenum v)