gallium: add a cond rendering hook for vulkan.

The vulkan cond rendering hook is quite different than the
traditional gallium one so add a new interface for it.

This just conditionalises rendering on the memory location.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8182>
This commit is contained in:
Dave Airlie 2020-12-04 17:27:16 +10:00
parent a57361ae02
commit 86328fc7b7
2 changed files with 13 additions and 0 deletions

View File

@ -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
^^^^^^^^

View File

@ -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
*/