diff options
author | Nanley Chery <[email protected]> | 2017-06-28 09:35:08 -0700 |
---|---|---|
committer | Jason Ekstrand <[email protected]> | 2017-07-22 20:12:10 -0700 |
commit | 8e532aa0281e0680bebd10c71bde9f35825fa0aa (patch) | |
tree | dde43cf9dbc9347c612668c4c5408e9d26d60039 /src/intel | |
parent | 9fd1f2aa3c4f8206ba1eb5d9c7973d4cfdb25afd (diff) |
anv/cmd_buffer: Disable CCS on gen7 color attachments upfront
The next patch enables the use of CCS_D even when the color attachment
will not be fast-cleared. Catch the gen7 case early to simplify the
changes required.
Signed-off-by: Nanley Chery <[email protected]>
Reviewed-by: Jason Ekstrand <[email protected]>
Diffstat (limited to 'src/intel')
-rw-r--r-- | src/intel/vulkan/genX_cmd_buffer.c | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/src/intel/vulkan/genX_cmd_buffer.c b/src/intel/vulkan/genX_cmd_buffer.c index 182ea762b67..4c8ac5f6da9 100644 --- a/src/intel/vulkan/genX_cmd_buffer.c +++ b/src/intel/vulkan/genX_cmd_buffer.c @@ -239,7 +239,11 @@ color_attachment_compute_aux_usage(struct anv_device * device, struct anv_attachment_state *att_state = &cmd_state->attachments[att]; struct anv_image_view *iview = cmd_state->framebuffer->attachments[att]; - if (iview->image->aux_surface.isl.size == 0) { + if (iview->isl.base_array_layer >= + anv_image_aux_layers(iview->image, iview->isl.base_level)) { + /* There is no aux buffer which corresponds to the level and layer(s) + * being accessed. + */ att_state->aux_usage = ISL_AUX_USAGE_NONE; att_state->input_aux_usage = ISL_AUX_USAGE_NONE; att_state->fast_clear = false; @@ -275,16 +279,6 @@ color_attachment_compute_aux_usage(struct anv_device * device, render_area.extent.height != iview->extent.height) att_state->fast_clear = false; - if (GEN_GEN <= 7) { - /* On gen7, we can't do multi-LOD or multi-layer fast-clears. We - * technically can, but it comes with crazy restrictions that we - * don't want to deal with now. - */ - if (iview->isl.base_level > 0 || - iview->isl.base_array_layer > 0) - att_state->fast_clear = false; - } - /* On Broadwell and earlier, we can only handle 0/1 clear colors */ if (GEN_GEN <= 8 && !att_state->clear_color_is_zero_one) att_state->fast_clear = false; |