aboutsummaryrefslogtreecommitdiffstats
path: root/src/intel/blorp
diff options
context:
space:
mode:
authorNanley Chery <[email protected]>2020-03-27 17:15:51 -0700
committerMarge Bot <[email protected]>2020-06-19 22:41:40 +0000
commitdb5d98cde82b1430dd1dabe36dcfefa6aef5484c (patch)
treecc7c62d0349f46763b687d0e5c12b8c11859010a /src/intel/blorp
parentd9f7fce83c1e1bacbf00677f78c58013f93094e5 (diff)
intel: Add ISL_AUX_USAGE_GEN12_CCS_E
Add a new aux usage which more accurately describes the behavior of CCS_E on gen12. On this platform, writes using the 3D engine are either compressed or substituted with fast-cleared blocks. Reviewed-by: Kenneth Graunke <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5363>
Diffstat (limited to 'src/intel/blorp')
-rw-r--r--src/intel/blorp/blorp_blit.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/intel/blorp/blorp_blit.c b/src/intel/blorp/blorp_blit.c
index 4da1139199c..3aac0abf274 100644
--- a/src/intel/blorp/blorp_blit.c
+++ b/src/intel/blorp/blorp_blit.c
@@ -2664,6 +2664,7 @@ blorp_copy(struct blorp_batch *batch,
params.src.aux_usage == ISL_AUX_USAGE_MCS ||
params.src.aux_usage == ISL_AUX_USAGE_MCS_CCS ||
params.src.aux_usage == ISL_AUX_USAGE_CCS_E ||
+ params.src.aux_usage == ISL_AUX_USAGE_GEN12_CCS_E ||
params.src.aux_usage == ISL_AUX_USAGE_STC_CCS);
if (isl_aux_usage_has_hiz(params.src.aux_usage)) {
@@ -2679,9 +2680,11 @@ blorp_copy(struct blorp_batch *batch,
*/
params.src.view.format = params.dst.surf.format;
params.dst.view.format = params.dst.surf.format;
- } else if (params.dst.aux_usage == ISL_AUX_USAGE_CCS_E) {
+ } else if (params.dst.aux_usage == ISL_AUX_USAGE_CCS_E ||
+ params.dst.aux_usage == ISL_AUX_USAGE_GEN12_CCS_E) {
params.dst.view.format = get_ccs_compatible_copy_format(dst_fmtl);
- if (params.src.aux_usage == ISL_AUX_USAGE_CCS_E) {
+ if (params.src.aux_usage == ISL_AUX_USAGE_CCS_E ||
+ params.src.aux_usage == ISL_AUX_USAGE_GEN12_CCS_E) {
params.src.view.format = get_ccs_compatible_copy_format(src_fmtl);
} else if (src_fmtl->bpb == dst_fmtl->bpb) {
params.src.view.format = params.dst.view.format;
@@ -2689,7 +2692,8 @@ blorp_copy(struct blorp_batch *batch,
params.src.view.format =
get_copy_format_for_bpb(isl_dev, src_fmtl->bpb);
}
- } else if (params.src.aux_usage == ISL_AUX_USAGE_CCS_E) {
+ } else if (params.src.aux_usage == ISL_AUX_USAGE_CCS_E ||
+ params.src.aux_usage == ISL_AUX_USAGE_GEN12_CCS_E) {
params.src.view.format = get_ccs_compatible_copy_format(src_fmtl);
if (src_fmtl->bpb == dst_fmtl->bpb) {
params.dst.view.format = params.src.view.format;