diff options
author | Xu Randy <randy.xu@intel.com> | 2017-03-20 15:31:35 +0800 |
---|---|---|
committer | Andres Gomez <agomez@igalia.com> | 2017-03-29 19:13:18 +0300 |
commit | 8c5dfa91693f28f5ee464961145a4347aa8ca15a (patch) | |
tree | 8e92be307b702cb9914257a8dbf103168a702d40 | |
parent | 1fcf8231eab1a3af8757e014009f482d57c43fdb (diff) |
anv/blorp: Fix a crash in CmdClearColorImage
We should use anv_get_layerCount() to access layerCount of VkImageSub-
resourceRange in anv_CmdClearColorImage and anv_CmdClearDepthStencil-
Image, which handles the VK_REMAINING_ARRAY_LAYERS (~0) case.
Test: Sample multithreadcmdbuf from LunarG can run without crash
Signed-off-by: Xu Randy <randy.xu@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: "13.0 17.0" <mesa-stable@lists.freedesktop.org>
(cherry picked from commit 004468de14170dc7a22322301829ad4f59188ee5)
-rw-r--r-- | src/intel/vulkan/anv_blorp.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/intel/vulkan/anv_blorp.c b/src/intel/vulkan/anv_blorp.c index b1d2147c796..dde0d96feab 100644 --- a/src/intel/vulkan/anv_blorp.c +++ b/src/intel/vulkan/anv_blorp.c @@ -818,7 +818,7 @@ void anv_CmdClearColorImage( VK_IMAGE_ASPECT_COLOR_BIT, image->tiling); unsigned base_layer = pRanges[r].baseArrayLayer; - unsigned layer_count = pRanges[r].layerCount; + unsigned layer_count = anv_get_layerCount(image, &pRanges[r]); for (unsigned i = 0; i < anv_get_levelCount(image, &pRanges[r]); i++) { const unsigned level = pRanges[r].baseMipLevel + i; @@ -878,7 +878,7 @@ void anv_CmdClearDepthStencilImage( bool clear_stencil = pRanges[r].aspectMask & VK_IMAGE_ASPECT_STENCIL_BIT; unsigned base_layer = pRanges[r].baseArrayLayer; - unsigned layer_count = pRanges[r].layerCount; + unsigned layer_count = anv_get_layerCount(image, &pRanges[r]); for (unsigned i = 0; i < anv_get_levelCount(image, &pRanges[r]); i++) { const unsigned level = pRanges[r].baseMipLevel + i; |