Vulkan backend render targets don't allow client to specify stencil bits
We already always create the stencil buffer even for wrapped RTs.
Make VulkanWindowContext use SkSurface::MakeFromBackendRenderTarget.
Change-Id: I5df429d347331801954ec17cb9d75e323a7af345
Reviewed-on: https://skia-review.googlesource.com/113206
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
diff --git a/src/gpu/vk/GrVkGpu.cpp b/src/gpu/vk/GrVkGpu.cpp
index b674185..1acbf02 100644
--- a/src/gpu/vk/GrVkGpu.cpp
+++ b/src/gpu/vk/GrVkGpu.cpp
@@ -942,11 +942,13 @@
desc.fSampleCnt = 1;
sk_sp<GrVkRenderTarget> tgt = GrVkRenderTarget::MakeWrappedRenderTarget(this, desc, info);
- if (tgt && backendRT.stencilBits()) {
- if (!createStencilAttachmentForRenderTarget(tgt.get(), desc.fWidth, desc.fHeight)) {
- return nullptr;
- }
+
+ // We don't allow the client to supply a premade stencil buffer. We always create one if needed.
+ SkASSERT(!backendRT.stencilBits());
+ if (tgt) {
+ SkASSERT(tgt->canAttemptStencilAttachment());
}
+
return tgt;
}