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 <kenneth@whitecape.org> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5363>
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user