Index: src/gpu/vk/GrVkImage.cpp |
diff --git a/src/gpu/vk/GrVkImage.cpp b/src/gpu/vk/GrVkImage.cpp |
index 5102124fe46f4ae434d86592ec288b8ee77af688..9d68036bb8b8d230a5e41d9a3016a0d820d2997c 100644 |
--- a/src/gpu/vk/GrVkImage.cpp |
+++ b/src/gpu/vk/GrVkImage.cpp |
@@ -39,16 +39,16 @@ void GrVkImage::setImageLayout(const GrVkGpu* gpu, VkImageLayout newLayout, |
} |
VkImageAspectFlags aspectFlags = vk_format_to_aspect_flags(fResource->fFormat); |
VkImageMemoryBarrier imageMemoryBarrier = { |
- VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER, // sType |
- NULL, // pNext |
- srcAccessMask, // outputMask |
- dstAccessMask, // inputMask |
- fCurrentLayout, // oldLayout |
- newLayout, // newLayout |
- VK_QUEUE_FAMILY_IGNORED, // srcQueueFamilyIndex |
- VK_QUEUE_FAMILY_IGNORED, // dstQueueFamilyIndex |
- fResource->fImage, // image |
- { aspectFlags, 0, 1, 0, 1 } // subresourceRange |
+ VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER, // sType |
+ NULL, // pNext |
+ srcAccessMask, // outputMask |
+ dstAccessMask, // inputMask |
+ fCurrentLayout, // oldLayout |
+ newLayout, // newLayout |
+ VK_QUEUE_FAMILY_IGNORED, // srcQueueFamilyIndex |
+ VK_QUEUE_FAMILY_IGNORED, // dstQueueFamilyIndex |
+ fResource->fImage, // image |
+ { aspectFlags, 0, fResource->fLevelCount, 0, 1 } // subresourceRange |
}; |
// TODO: restrict to area of image we're interested in |
@@ -104,7 +104,7 @@ const GrVkImage::Resource* GrVkImage::CreateResource(const GrVkGpu* gpu, |
(VK_IMAGE_TILING_LINEAR == imageDesc.fImageTiling) ? Resource::kLinearTiling_Flag |
: Resource::kNo_Flags; |
- return (new GrVkImage::Resource(image, alloc, flags, imageDesc.fFormat)); |
+ return (new GrVkImage::Resource(image, alloc, imageDesc.fFormat, imageDesc.fLevels, flags)); |
} |
GrVkImage::~GrVkImage() { |