From: Ilia Mirkin Date: Fri, 4 Mar 2016 02:00:06 +0000 (-0500) Subject: swrast: fix GL_ANY_SAMPLES_PASSED values in Result X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=dcbf8377befde50fe4d75738e2af5813e06e8f04;p=mesa.git swrast: fix GL_ANY_SAMPLES_PASSED values in Result Since commit 922be4eab, the expectation is that the query result contains the correct value. Unfortunately swrast does not distinguish between GL_SAMPLES_PASSED and GL_ANY_SAMPLES_PASSED. As a result, we must fix up the query result in a post-draw fixup. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=94274 Signed-off-by: Ilia Mirkin Tested-by: Vinson Lee Reviewed-by: Brian Paul Cc: "11.2" --- diff --git a/src/mesa/swrast/s_context.c b/src/mesa/swrast/s_context.c index af24207e567..0a5fc7e9329 100644 --- a/src/mesa/swrast/s_context.c +++ b/src/mesa/swrast/s_context.c @@ -900,11 +900,16 @@ void _swrast_render_finish( struct gl_context *ctx ) { SWcontext *swrast = SWRAST_CONTEXT(ctx); + struct gl_query_object *query = ctx->Query.CurrentOcclusionObject; _swrast_flush(ctx); if (swrast->Driver.SpanRenderFinish) swrast->Driver.SpanRenderFinish( ctx ); + + if (query && (query->Target == GL_ANY_SAMPLES_PASSED || + query->Target == GL_ANY_SAMPLES_PASSED_CONSERVATIVE)) + query->Result = !!query->Result; }