intel/blorp: Add a NO_UPDATE_CLEAR_COLOR batch flag
Allow callers to handle updating the indirect clear color buffer themselves. This can reduce the number of clear color updates in the case where a caller performs multiple fast clears with the same clear color. Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
This commit is contained in:
parent
f8ac11d69f
commit
02f5512fed
|
@ -72,6 +72,11 @@ enum blorp_batch_flags {
|
|||
|
||||
/* This flag indicates that the blorp call should be predicated. */
|
||||
BLORP_BATCH_PREDICATE_ENABLE = (1 << 1),
|
||||
|
||||
/* This flag indicates that blorp should *not* update the indirect clear
|
||||
* color buffer.
|
||||
*/
|
||||
BLORP_BATCH_NO_UPDATE_CLEAR_COLOR = (1 << 2),
|
||||
};
|
||||
|
||||
struct blorp_batch {
|
||||
|
|
|
@ -1700,8 +1700,10 @@ blorp_update_clear_color(struct blorp_batch *batch,
|
|||
static void
|
||||
blorp_exec(struct blorp_batch *batch, const struct blorp_params *params)
|
||||
{
|
||||
blorp_update_clear_color(batch, ¶ms->dst, params->fast_clear_op);
|
||||
blorp_update_clear_color(batch, ¶ms->depth, params->hiz_op);
|
||||
if (!(batch->flags & BLORP_BATCH_NO_UPDATE_CLEAR_COLOR)) {
|
||||
blorp_update_clear_color(batch, ¶ms->dst, params->fast_clear_op);
|
||||
blorp_update_clear_color(batch, ¶ms->depth, params->hiz_op);
|
||||
}
|
||||
|
||||
#if GEN_GEN >= 8
|
||||
if (params->hiz_op != ISL_AUX_OP_NONE) {
|
||||
|
|
Loading…
Reference in New Issue