anv/cmd_buffer: Move aux_usage assignment up
For readability, bring the assignment of CCS closer to the assignment of NONE and MCS. Signed-off-by: Nanley Chery <nanley.g.chery@intel.com> Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
This commit is contained in:

committed by
Jason Ekstrand

parent
62d72bb5d0
commit
9c9f63d1c7
@@ -253,6 +253,36 @@ color_attachment_compute_aux_usage(struct anv_device * device,
|
||||
att_state->input_aux_usage = ISL_AUX_USAGE_MCS;
|
||||
att_state->fast_clear = false;
|
||||
return;
|
||||
} else if (iview->image->aux_usage == ISL_AUX_USAGE_CCS_E) {
|
||||
att_state->aux_usage = ISL_AUX_USAGE_CCS_E;
|
||||
att_state->input_aux_usage = ISL_AUX_USAGE_CCS_E;
|
||||
} else {
|
||||
att_state->aux_usage = ISL_AUX_USAGE_CCS_D;
|
||||
/* From the Sky Lake PRM, RENDER_SURFACE_STATE::AuxiliarySurfaceMode:
|
||||
*
|
||||
* "If Number of Multisamples is MULTISAMPLECOUNT_1, AUX_CCS_D
|
||||
* setting is only allowed if Surface Format supported for Fast
|
||||
* Clear. In addition, if the surface is bound to the sampling
|
||||
* engine, Surface Format must be supported for Render Target
|
||||
* Compression for surfaces bound to the sampling engine."
|
||||
*
|
||||
* In other words, we can only sample from a fast-cleared image if it
|
||||
* also supports color compression.
|
||||
*/
|
||||
if (isl_format_supports_ccs_e(&device->info, iview->isl.format)) {
|
||||
/* TODO: Consider using a heuristic to determine if temporarily enabling
|
||||
* CCS_E for this image view would be beneficial.
|
||||
*
|
||||
* While fast-clear resolves and partial resolves are fairly cheap in the
|
||||
* case where you render to most of the pixels, full resolves are not
|
||||
* because they potentially involve reading and writing the entire
|
||||
* framebuffer. If we can't texture with CCS_E, we should leave it off and
|
||||
* limit ourselves to fast clears.
|
||||
*/
|
||||
att_state->input_aux_usage = ISL_AUX_USAGE_CCS_D;
|
||||
} else {
|
||||
att_state->input_aux_usage = ISL_AUX_USAGE_NONE;
|
||||
}
|
||||
}
|
||||
|
||||
assert(iview->image->aux_surface.isl.usage & ISL_SURF_USAGE_CCS_BIT);
|
||||
@@ -316,38 +346,6 @@ color_attachment_compute_aux_usage(struct anv_device * device,
|
||||
} else {
|
||||
att_state->fast_clear = false;
|
||||
}
|
||||
|
||||
/**
|
||||
* TODO: Consider using a heuristic to determine if temporarily enabling
|
||||
* CCS_E for this image view would be beneficial.
|
||||
*
|
||||
* While fast-clear resolves and partial resolves are fairly cheap in the
|
||||
* case where you render to most of the pixels, full resolves are not
|
||||
* because they potentially involve reading and writing the entire
|
||||
* framebuffer. If we can't texture with CCS_E, we should leave it off and
|
||||
* limit ourselves to fast clears.
|
||||
*/
|
||||
if (iview->image->aux_usage == ISL_AUX_USAGE_CCS_E) {
|
||||
att_state->aux_usage = ISL_AUX_USAGE_CCS_E;
|
||||
att_state->input_aux_usage = ISL_AUX_USAGE_CCS_E;
|
||||
} else {
|
||||
att_state->aux_usage = ISL_AUX_USAGE_CCS_D;
|
||||
/* From the Sky Lake PRM, RENDER_SURFACE_STATE::AuxiliarySurfaceMode:
|
||||
*
|
||||
* "If Number of Multisamples is MULTISAMPLECOUNT_1, AUX_CCS_D
|
||||
* setting is only allowed if Surface Format supported for Fast
|
||||
* Clear. In addition, if the surface is bound to the sampling
|
||||
* engine, Surface Format must be supported for Render Target
|
||||
* Compression for surfaces bound to the sampling engine."
|
||||
*
|
||||
* In other words, we can only sample from a fast-cleared image if it
|
||||
* also supports color compression.
|
||||
*/
|
||||
if (isl_format_supports_ccs_e(&device->info, iview->isl.format))
|
||||
att_state->input_aux_usage = ISL_AUX_USAGE_CCS_D;
|
||||
else
|
||||
att_state->input_aux_usage = ISL_AUX_USAGE_NONE;
|
||||
}
|
||||
}
|
||||
|
||||
static bool
|
||||
|
Reference in New Issue
Block a user