Thanks, Lionel See my comments below
Thanks, Randy > -----Original Message----- > From: Landwerlin, Lionel G > Sent: Monday, March 27, 2017 5:14 PM > To: Xu, Randy <randy...@intel.com>; mesa-dev@lists.freedesktop.org > Subject: Re: [Mesa-dev] [PATCH] anv/genX: Solve the > anv_CmdClearColorImage crash issue > > Hi Randy, > > This patch looks good to me. > > Reviewed-by: Lionel Landwerlin <lionel.g.landwer...@intel.com> > Cc: "17.0 13.0" <mesa-sta...@lists.freedesktop.org> > > Are you planning to send a follow up patch to fix the remaining layoutCount > accesses too? I guess you means the layerCount access I checked the code, there are two kinds of layerCount access, as member of VkImageSubresourceLayers or VkImageSubresourceRange. Only the layerCount in VkImageSubresourceRange can be VK_REMAINING_ARRAY_LAYERS, and should be accessed through function anv_get_levelCount, two places have been covered in this patch. typedef struct VkImageSubresourceLayers { VkImageAspectFlags aspectMask; uint32_t mipLevel; uint32_t baseArrayLayer; uint32_t layerCount; } VkImageSubresourceLayers; typedef struct VkImageSubresourceRange { VkImageAspectFlags aspectMask; uint32_t baseMipLevel; uint32_t levelCount; uint32_t baseArrayLayer; uint32_t layerCount; } VkImageSubresourceRange; > > Cheers, > > - > Lionel > > On 20/03/17 07:31, Randy Xu wrote: > > From: Xu Randy <randy...@intel.com> > > > > 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...@intel.com> > > --- > > src/intel/vulkan/anv_blorp.c | 4 ++-- > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > diff --git a/src/intel/vulkan/anv_blorp.c > > b/src/intel/vulkan/anv_blorp.c index 1f4fec5..9b3910f 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; @@ > > -890,7 +890,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; > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev