summaryrefslogtreecommitdiff
path: root/src/intel
diff options
context:
space:
mode:
authorNanley Chery <nanley.g.chery@intel.com>2017-06-12 12:58:32 -0700
committerNanley Chery <nanley.g.chery@intel.com>2017-06-26 11:09:12 -0700
commite15b1c41a4e85b8c6db5b931a002e1bb9686a2ac (patch)
treec02b020348fed3af69e5fe31a80abc707dd4efbc /src/intel
parent5ca2fbcee2cebed7bfa820db09dc6aa6ccf4f1ff (diff)
anv/blorp: Remove 3D subresource transition workaround
For 3D image subresources undergoing a layout transition via PipelineBarrier, we increase the number of fast-cleared layers to match the intended behaviour of KHR_maintenance1. When such subresources undergo layout transitions between subpasses, we don't do this to avoid failing incorrect CTS tests. Instead, unify the behaviour in both scenarios, and wait for the CTS tests to catch up. See CL 1111 for the test fix and Vulkan issue #849 for more information. On SKL+, this causes 3 test failures under: dEQP-VK.pipeline.render_to_image.3d.* v2: Add a reference to the Vulkan issue (Iago Toral). Signed-off-by: Nanley Chery <nanley.g.chery@intel.com> Reviewed-by: Iago Toral Quiroga <itoral@igalia.com> (v1) Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Diffstat (limited to 'src/intel')
-rw-r--r--src/intel/vulkan/anv_blorp.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/intel/vulkan/anv_blorp.c b/src/intel/vulkan/anv_blorp.c
index 292cee8e3e0..5ee850aa3e2 100644
--- a/src/intel/vulkan/anv_blorp.c
+++ b/src/intel/vulkan/anv_blorp.c
@@ -1480,12 +1480,12 @@ anv_image_ccs_clear(struct anv_cmd_buffer *cmd_buffer,
/* Blorp likes to treat 2D_ARRAY and 3D the same. */
uint32_t blorp_base_layer, blorp_layer_count;
- if (view) {
- blorp_base_layer = view->base_array_layer;
- blorp_layer_count = view->array_len;
- } else if (image->type == VK_IMAGE_TYPE_3D) {
+ if (image->type == VK_IMAGE_TYPE_3D) {
blorp_base_layer = 0;
blorp_layer_count = extent.depth;
+ } else if (view) {
+ blorp_base_layer = view->base_array_layer;
+ blorp_layer_count = view->array_len;
} else {
blorp_base_layer = subresourceRange->baseArrayLayer;
blorp_layer_count = anv_get_layerCount(image, subresourceRange);