> -----Original Message----- > From: Landwerlin, Lionel G > Sent: Saturday, March 18, 2017 8:21 PM > To: Xu, Randy <randy...@intel.com>; mesa-dev@lists.freedesktop.org > Cc: x...@freedesktop.org > Subject: Re: [Mesa-dev] [PATCH] Vulkan: Solve the vkCmdClearColorImage > crash issue > > Thanks Randy!
Welcome, it's my pleasure :) > I believe we might have a few of those left in anv_blorp.c. > Yes, there are many direct access of layerCount(VkImageSubresourceRange) in anv_blorp.c. We need change them using anv_get_layerCount. ./src/intel/vulkan/anv_blorp.c:235: layer_count = pRegions[r].dstSubresource.layerCount; ./src/intel/vulkan/anv_blorp.c:243: assert(pRegions[r].srcSubresource.layerCount == layer_count); ./src/intel/vulkan/anv_blorp.c:315: extent.depth = pRegions[r].imageSubresource.layerCount; ./src/intel/vulkan/anv_blorp.c:469: dst_end = dst_start + dst_res->layerCount; ./src/intel/vulkan/anv_blorp.c:479: src_end = src_start + src_res->layerCount; ./src/intel/vulkan/anv_blorp.c:833: unsigned layer_count = pRanges[r].layerCount; ./src/intel/vulkan/anv_blorp.c:893: unsigned layer_count = pRanges[r].layerCount; ./src/intel/vulkan/anv_blorp.c:997: pRects[r].layerCount, ./src/intel/vulkan/anv_blorp.c:1046: pRects[r].layerCount, ./src/intel/vulkan/anv_blorp.c:1207: .layerCount = cmd_buffer->state.framebuffer->layers, ./src/intel/vulkan/anv_blorp.c:1409: assert(pRegions[r].srcSubresource.layerCount == ./src/intel/vulkan/anv_blorp.c:1410: pRegions[r].dstSubresource.layerCount); ./src/intel/vulkan/anv_blorp.c:1412: const uint32_t layer_count = pRegions[r].dstSubresource.layerCount; > Reviewed-by: Lionel Landwerlin <lionel.g.landwer...@intel.com> > > On 18/03/17 11:07, Xu,Randy wrote: > > In anv_CmdClearColorImage, the layer count should be got through > > anv_get_layerCount, which handles the VK_REMAINING_ARRAY_LAYERS > (~0) > > case. > > > > Test: Sample multithreadcmdbuf from LunarG can run without crash > > > > Signed-off-by: Xu,Randy <randy...@intel.com> > > --- > > src/intel/vulkan/anv_blorp.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/src/intel/vulkan/anv_blorp.c > > b/src/intel/vulkan/anv_blorp.c index 1f4fec5..955bb6d 100644 > > --- a/src/intel/vulkan/anv_blorp.c > > +++ b/src/intel/vulkan/anv_blorp.c > > @@ -830,7 +830,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; > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev