[Mesa-dev] [PATCH] swrast: fix GL_ANY_SAMPLES_PASSED values in Result
Ilia Mirkin
imirkin at alum.mit.edu
Fri Mar 4 02:02:06 UTC 2016
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 <imirkin at alum.mit.edu>
Tested-by: Vinson Lee <vlee at freedesktop.org>
---
src/mesa/swrast/s_context.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/src/mesa/swrast/s_context.c b/src/mesa/swrast/s_context.c
index af24207..0a5fc7e 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;
}
--
2.4.10
More information about the mesa-dev
mailing list