On Thu, Apr 27, 2017 at 11:32:17AM -0700, Nanley Chery wrote: > Signed-off-by: Nanley Chery <nanley.g.ch...@intel.com> > --- > src/intel/vulkan/genX_cmd_buffer.c | 65 > ++++++++++++++++++++++++++++++-------- > 1 file changed, 52 insertions(+), 13 deletions(-) > > diff --git a/src/intel/vulkan/genX_cmd_buffer.c > b/src/intel/vulkan/genX_cmd_buffer.c > index 1ae0c3256e..95729ec8a8 100644 > --- a/src/intel/vulkan/genX_cmd_buffer.c > +++ b/src/intel/vulkan/genX_cmd_buffer.c > @@ -1150,12 +1150,24 @@ void genX(CmdPipelineBarrier)( > for (uint32_t i = 0; i < imageMemoryBarrierCount; i++) { > src_flags |= pImageMemoryBarriers[i].srcAccessMask; > dst_flags |= pImageMemoryBarriers[i].dstAccessMask; > + /* Perform layout transitions. */ > ANV_FROM_HANDLE(anv_image, image, pImageMemoryBarriers[i].image); > - if (pImageMemoryBarriers[i].subresourceRange.aspectMask & > - VK_IMAGE_ASPECT_DEPTH_BIT) { > + const struct VkImageSubresourceRange * const range = > + &pImageMemoryBarriers[i].subresourceRange; > + if (range->aspectMask & VK_IMAGE_ASPECT_DEPTH_BIT) { > transition_depth_buffer(cmd_buffer, image, > pImageMemoryBarriers[i].oldLayout, > pImageMemoryBarriers[i].newLayout); > + } else if (range->aspectMask == VK_IMAGE_ASPECT_COLOR_BIT) { > + const uint32_t layers = image->type == VK_IMAGE_TYPE_3D ? > + anv_get_sliceCount(image, range) :
Jason pointed out to me that apps can't transition individual layers of a 3D image. The v2 of this series will replace the anv_get_sliceCount() call with image->extent.depth and will drop the previous patch. _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev