Index: src/gpu/vk/GrVkRenderTarget.cpp |
diff --git a/src/gpu/vk/GrVkRenderTarget.cpp b/src/gpu/vk/GrVkRenderTarget.cpp |
index 7ff7f26d42e929afd1911c3dd96a17b739f08ef0..c04cca3d69c86b30ecd3cfc19848cb7bbaf62ca6 100644 |
--- a/src/gpu/vk/GrVkRenderTarget.cpp |
+++ b/src/gpu/vk/GrVkRenderTarget.cpp |
@@ -214,9 +214,12 @@ GrVkRenderTarget::CreateWrappedRenderTarget(GrVkGpu* gpu, |
GrVkImage::Resource::Flags flags = (VK_IMAGE_TILING_LINEAR == info->fImageTiling) |
? Resource::kLinearTiling_Flag : Resource::kNo_Flags; |
- const GrVkImage::Resource* imageResource = new GrVkImage::Resource(info->fImage, |
- info->fAlloc, |
- flags); |
+ const GrVkImage::Resource* imageResource; |
+ if (kBorrowed_LifeCycle == lifeCycle) { |
+ imageResource = new GrVkImage::BorrowedResource(info->fImage, info->fAlloc, flags); |
+ } else { |
+ imageResource = new GrVkImage::Resource(info->fImage, info->fAlloc, flags); |
+ } |
if (!imageResource) { |
return nullptr; |
} |
@@ -227,6 +230,7 @@ GrVkRenderTarget::CreateWrappedRenderTarget(GrVkGpu* gpu, |
} |
// Create() will increment the refCount of the image resource if it succeeds |
imageResource->unref(gpu); |
+ |
return rt; |
} |