diff options
Diffstat (limited to 'src/mesa/program')
-rw-r--r-- | src/mesa/program/program.c | 5 | ||||
-rw-r--r-- | src/mesa/program/program.h | 3 |
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) |