diff options
author | Nanley Chery <[email protected]> | 2018-04-26 17:09:29 -0700 |
---|---|---|
committer | Nanley Chery <[email protected]> | 2018-05-17 07:06:42 -0700 |
commit | 02f5512fed2e6fc2b92a32623fb979117d41239b (patch) | |
tree | 2e5533117856dd1d2823e0fea42cee67af48140d /src/intel | |
parent | f8ac11d69f1a05378896023577d6455764b5cdf2 (diff) |
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 <[email protected]>
Diffstat (limited to 'src/intel')
-rw-r--r-- | src/intel/blorp/blorp.h | 5 | ||||
-rw-r--r-- | src/intel/blorp/blorp_genX_exec.h | 6 |
2 files changed, 9 insertions, 2 deletions
diff --git a/src/intel/blorp/blorp.h b/src/intel/blorp/blorp.h index 4626f2f83c2..f22110bc840 100644 --- a/src/intel/blorp/blorp.h +++ b/src/intel/blorp/blorp.h @@ -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 { diff --git a/src/intel/blorp/blorp_genX_exec.h b/src/intel/blorp/blorp_genX_exec.h index 593521b95cc..446743b5910 100644 --- a/src/intel/blorp/blorp_genX_exec.h +++ b/src/intel/blorp/blorp_genX_exec.h @@ -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) { |