i965/miptree: Move CCS allocation into create_for_dri_image

Any form of CCS on gen9+ only works on Y-tiled images.  The only caller
of create_for_bo which uses Y-tiled BOs is create_for_dri_image.

Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
Reviewed-by: Chad Versace <chadversary@chromium.org>
This commit is contained in:
Jason Ekstrand
2017-06-16 10:31:31 -07:00
parent b3a44ae7a4
commit 06c95f1282
+12 -13
View File
@@ -979,21 +979,9 @@ intel_miptree_create_for_bo(struct brw_context *brw,
mt->offset = offset;
mt->tiling = tiling;
if (!(layout_flags & MIPTREE_LAYOUT_DISABLE_AUX)) {
if (!(layout_flags & MIPTREE_LAYOUT_DISABLE_AUX))
intel_miptree_choose_aux_usage(brw, mt);
/* Since CCS_E can compress more than just clear color, we create the
* CCS for it up-front. For CCS_D which only compresses clears, we
* create the CCS on-demand when a clear occurs that wants one.
*/
if (mt->aux_usage == ISL_AUX_USAGE_CCS_E) {
if (!intel_miptree_alloc_ccs(brw, mt)) {
intel_miptree_release(&mt);
return NULL;
}
}
}
return mt;
}
@@ -1129,6 +1117,17 @@ intel_miptree_create_for_dri_image(struct brw_context *brw,
}
}
/* Since CCS_E can compress more than just clear color, we create the CCS
* for it up-front. For CCS_D which only compresses clears, we create the
* CCS on-demand when a clear occurs that wants one.
*/
if (mt->aux_usage == ISL_AUX_USAGE_CCS_E) {
if (!intel_miptree_alloc_ccs(brw, mt)) {
intel_miptree_release(&mt);
return NULL;
}
}
return mt;
}