diff --git a/docs/gallium/context.rst b/docs/gallium/context.rst index 3503f02c8d5..6c0752b57cd 100644 --- a/docs/gallium/context.rst +++ b/docs/gallium/context.rst @@ -563,6 +563,9 @@ Normally, if the occlusion query returned a non-zero result subsequent drawing happens normally so fragments may be generated, shaded and processed even where they're known to be obscured. +The ''render_condition_mem'' function specifies the drawing is dependant +on a value in memory. A buffer resource and offset denote which 32-bit +value to use for the query. This is used for Vulkan API. Flushing ^^^^^^^^ diff --git a/src/gallium/include/pipe/p_context.h b/src/gallium/include/pipe/p_context.h index 7707eb6f2b6..99aeea21d7e 100644 --- a/src/gallium/include/pipe/p_context.h +++ b/src/gallium/include/pipe/p_context.h @@ -153,6 +153,16 @@ struct pipe_context { bool condition, enum pipe_render_cond_flag mode ); + /** + * Predicate subsequent rendering on a value in a buffer + * \param buffer The buffer to query for the value + * \param offset Offset in the buffer to query 32-bit + * \param condition whether to skip on FALSE or TRUE query results + */ + void (*render_condition_mem)( struct pipe_context *pipe, + struct pipe_resource *buffer, + uint32_t offset, + bool condition ); /** * Query objects */