| Index: src/gpu/vk/GrVkGpuCommandBuffer.cpp | 
| diff --git a/src/gpu/vk/GrVkGpuCommandBuffer.cpp b/src/gpu/vk/GrVkGpuCommandBuffer.cpp | 
| index 77a038a9577999a245c829427d31298e9495978a..f49b180e3823819eb3ced86d733d072bdf87071e 100644 | 
| --- a/src/gpu/vk/GrVkGpuCommandBuffer.cpp | 
| +++ b/src/gpu/vk/GrVkGpuCommandBuffer.cpp | 
| @@ -100,12 +100,15 @@ void GrVkGpuCommandBuffer::end() { | 
| } | 
|  | 
| void GrVkGpuCommandBuffer::onSubmit(const SkIRect& bounds) { | 
| -    // Change layout of our render target so it can be used as the color attachment | 
| -    fRenderTarget->setImageLayout(fGpu, | 
| -                                  VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, | 
| -                                  VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, | 
| -                                  VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, | 
| -                                  false); | 
| +    // Change layout of our render target so it can be used as the color attachment. Currently | 
| +    // we don't attach the resolve to the framebuffer so no need to change its layout. | 
| +    GrVkImage* targetImage = fRenderTarget->msaaImage() ? fRenderTarget->msaaImage() | 
| +                                                        : fRenderTarget; | 
| +    targetImage->setImageLayout(fGpu, | 
| +                                VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, | 
| +                                VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, | 
| +                                VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, | 
| +                                false); | 
|  | 
| // If we are using a stencil attachment we also need to update its layout | 
| if (GrStencilAttachment* stencil = fRenderTarget->renderTargetPriv().getStencilAttachment()) { | 
| @@ -118,14 +121,6 @@ void GrVkGpuCommandBuffer::onSubmit(const SkIRect& bounds) { | 
| false); | 
| } | 
|  | 
| -    if (GrVkImage* msaaImage = fRenderTarget->msaaImage()) { | 
| -        msaaImage->setImageLayout(fGpu, | 
| -                                  VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, | 
| -                                  VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, | 
| -                                  VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, | 
| -                                  false); | 
| -    } | 
| - | 
| for (int i = 0; i < fSampledImages.count(); ++i) { | 
| fSampledImages[i]->setImageLayout(fGpu, | 
| VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, | 
|  |