[Mesa-dev] [PATCH 1/4] i965: Actually add support for GL_ANY_SAMPLES_PASSED from GL_ARB_oq2.

Eric Anholt eric at anholt.net
Fri Oct 19 11:53:46 PDT 2012


---
 src/mesa/drivers/dri/i965/brw_queryobj.c |    9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/src/mesa/drivers/dri/i965/brw_queryobj.c b/src/mesa/drivers/dri/i965/brw_queryobj.c
index 1aa4974..11f8fcd 100644
--- a/src/mesa/drivers/dri/i965/brw_queryobj.c
+++ b/src/mesa/drivers/dri/i965/brw_queryobj.c
@@ -194,6 +194,13 @@ brw_queryobj_get_results(struct gl_context *ctx,
       }
       break;
 
+   case GL_ANY_SAMPLES_PASSED:
+      /* Set true if any Map and count the pixels from the current query BO */
+      for (i = query->first_index; i <= query->last_index; i++) {
+	 query->Base.Result |= results[i * 2 + 1] != results[i * 2];
+      }
+      break;
+
    case GL_PRIMITIVES_GENERATED:
    case GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:
       /* We don't actually query the hardware for this value, so query->bo
@@ -250,6 +257,7 @@ brw_begin_query(struct gl_context *ctx, struct gl_query_object *q)
       write_timestamp(intel, query->bo, 0);
       break;
 
+   case GL_ANY_SAMPLES_PASSED:
    case GL_SAMPLES_PASSED_ARB:
       /* Reset our driver's tracking of query state. */
       drm_intel_bo_unreference(query->bo);
@@ -304,6 +312,7 @@ brw_end_query(struct gl_context *ctx, struct gl_query_object *q)
       write_timestamp(intel, query->bo, 1);
       break;
 
+   case GL_ANY_SAMPLES_PASSED:
    case GL_SAMPLES_PASSED_ARB:
       if (query->bo) {
 	 brw_emit_query_end(brw);
-- 
1.7.10.4



More information about the mesa-dev mailing list