diff options
author | Ilia Mirkin <imirkin@alum.mit.edu> | 2016-03-03 21:00:06 -0500 |
---|---|---|
committer | Dylan Baker <baker.dylan.c@gmail.com> | 2016-03-28 16:07:39 -0700 |
commit | 074782713c35b1b7e26337af3f5e9c3450ba06e0 (patch) | |
tree | 640dc491347c715ef654b629bbd0896fc9add9cb | |
parent | d1a9af92da6a4f6e53b2a77224c96b3191d5b4ab (diff) |
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 <imirkin@alum.mit.edu>
Tested-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
Cc: "11.2" <mesa-stable@lists.freedesktop.org>
(cherry picked from commit dcbf8377befde50fe4d75738e2af5813e06e8f04)
-rw-r--r-- | src/mesa/swrast/s_context.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/mesa/swrast/s_context.c b/src/mesa/swrast/s_context.c index af24207e56..0a5fc7e932 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; } |