summaryrefslogtreecommitdiffstats
path: root/src/intel/vulkan/genX_cmd_buffer.c
diff options
context:
space:
mode:
authorJason Ekstrand <[email protected]>2018-01-19 12:07:12 -0800
committerJason Ekstrand <[email protected]>2018-02-08 16:35:31 -0800
commit1810f965c8e490eac164732883d5242748b5911f (patch)
treecdaceb10132d5b84f515cc408dd51befd2f29c45 /src/intel/vulkan/genX_cmd_buffer.c
parentde3be6180169f95b781308398b31fbdd3db319e1 (diff)
anv: Allow fast-clearing the first slice of a multi-slice image
Now that we're tracking aux properly per-slice, we can enable this for applications which actually care. Reviewed-by: Topi Pohjolainen <[email protected]> Reviewed-by: Nanley Chery <[email protected]>
Diffstat (limited to 'src/intel/vulkan/genX_cmd_buffer.c')
-rw-r--r--src/intel/vulkan/genX_cmd_buffer.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/intel/vulkan/genX_cmd_buffer.c b/src/intel/vulkan/genX_cmd_buffer.c
index 89654c221e0..f42860b411a 100644
--- a/src/intel/vulkan/genX_cmd_buffer.c
+++ b/src/intel/vulkan/genX_cmd_buffer.c
@@ -329,12 +329,16 @@ color_attachment_compute_aux_usage(struct anv_device * device,
*/
if (att_state->fast_clear &&
(iview->planes[0].isl.base_level > 0 ||
- iview->image->extent.depth > 0 ||
- iview->image->array_size > 0)) {
+ iview->planes[0].isl.base_array_layer > 0)) {
anv_perf_warn(device->instance, iview->image,
- "Rendering to a multi-LOD or multi-layer framebuffer "
- "with LOAD_OP_CLEAR. Not fast-clearing");
+ "Rendering with multi-lod or multi-layer framebuffer "
+ "with LOAD_OP_LOAD and baseMipLevel > 0 or "
+ "baseArrayLayer > 0. Not fast clearing.");
att_state->fast_clear = false;
+ } else if (att_state->fast_clear && cmd_state->framebuffer->layers > 1) {
+ anv_perf_warn(device->instance, iview->image,
+ "Rendering to a multi-layer framebuffer with "
+ "LOAD_OP_CLEAR. Only fast-clearing the first slice");
}
if (att_state->fast_clear) {