gallium: add an interface for query predicates
authorZack Rusin <zackr@vmware.com>
Wed, 26 Jan 2011 05:01:51 +0000 (00:01 -0500)
committerZack Rusin <zackr@vmware.com>
Wed, 26 Jan 2011 05:03:12 +0000 (00:03 -0500)
as specified in the arb_occlusion_query2. just the interface.

src/gallium/docs/source/context.rst
src/gallium/include/pipe/p_defines.h

index 6760e7be4b90cdb44fac4dbe87d3fdd5eb091a16..f0d3b84783da5407063cfe6ff0819139038698a5 100644 (file)
@@ -233,6 +233,11 @@ The most common type of query is the occlusion query,
 are written to the framebuffer without being culled by
 :ref:`Depth, Stencil, & Alpha` testing or shader KILL instructions.
 The result is an unsigned 64-bit integer.
+In cases where a boolean result of an occlusion query is enough,
+``PIPE_QUERY_OCCLUSION_PREDICATE`` should be used. It is just like
+``PIPE_QUERY_OCCLUSION_COUNTER`` except that the result is a boolean
+value of FALSE for cases where COUNTER would result in 0 and TRUE
+for all other cases.
 
 Another type of query, ``PIPE_QUERY_TIME_ELAPSED``, returns the amount of
 time, in nanoseconds, the context takes to perform operations.
index 2135c19dcfcec67525accbaa97066a15ccef07c0..f66bbaf6674766569990b72d56ac773082f53ffd 100644 (file)
@@ -380,7 +380,8 @@ enum pipe_transfer_usage {
 #define PIPE_QUERY_SO_STATISTICS         5
 #define PIPE_QUERY_GPU_FINISHED          6
 #define PIPE_QUERY_TIMESTAMP_DISJOINT    7
-#define PIPE_QUERY_TYPES                 8
+#define PIPE_QUERY_OCCLUSION_PREDICATE   8
+#define PIPE_QUERY_TYPES                 9
 
 
 /**