aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/vk
diff options
context:
space:
mode:
authorGravatar egdaniel <egdaniel@google.com>2016-04-12 07:31:49 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2016-04-12 07:31:49 -0700
commit37798fbd82a7d064c5cc1516f120546a3408044b (patch)
tree562d1a72c70cef53dcfe5f7885e1d99e44e6fbc4 /src/gpu/vk
parenta9322c2d86aaef1085c267dfc43cf0747f170a86 (diff)
Implement initCopySurfaceDstDesc for Vulkan
Diffstat (limited to 'src/gpu/vk')
-rw-r--r--src/gpu/vk/GrVkGpu.cpp14
-rw-r--r--src/gpu/vk/GrVkGpu.h4
2 files changed, 15 insertions, 3 deletions
diff --git a/src/gpu/vk/GrVkGpu.cpp b/src/gpu/vk/GrVkGpu.cpp
index 280346fda1..28dce344be 100644
--- a/src/gpu/vk/GrVkGpu.cpp
+++ b/src/gpu/vk/GrVkGpu.cpp
@@ -1304,6 +1304,20 @@ bool GrVkGpu::onCopySurface(GrSurface* dst,
return false;
}
+bool GrVkGpu::initCopySurfaceDstDesc(const GrSurface* src, GrSurfaceDesc* desc) const {
+ // Currently we don't support msaa
+ if (src->asRenderTarget() && src->asRenderTarget()->numColorSamples() > 1) {
+ return false;
+ }
+
+ // This will support copying the dst as CopyImage since all of our surfaces require transferSrc
+ // and transferDst usage flags in Vulkan.
+ desc->fOrigin = src->origin();
+ desc->fConfig = src->config();
+ desc->fFlags = kNone_GrSurfaceFlags;
+ return true;
+}
+
void GrVkGpu::onGetMultisampleSpecs(GrRenderTarget* rt, const GrStencilSettings&,
int* effectiveSampleCnt, SkAutoTDeleteArray<SkPoint>*) {
// TODO: stub.
diff --git a/src/gpu/vk/GrVkGpu.h b/src/gpu/vk/GrVkGpu.h
index 91f9d4d379..5872f18671 100644
--- a/src/gpu/vk/GrVkGpu.h
+++ b/src/gpu/vk/GrVkGpu.h
@@ -75,9 +75,7 @@ public:
int* effectiveSampleCnt,
SkAutoTDeleteArray<SkPoint>*);
- bool initCopySurfaceDstDesc(const GrSurface* src, GrSurfaceDesc* desc) const override {
- return false;
- }
+ bool initCopySurfaceDstDesc(const GrSurface* src, GrSurfaceDesc* desc) const override;
void xferBarrier(GrRenderTarget*, GrXferBarrierType) override {}