diff options
author | egdaniel <egdaniel@google.com> | 2016-04-12 07:31:49 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-04-12 07:31:49 -0700 |
commit | 37798fbd82a7d064c5cc1516f120546a3408044b (patch) | |
tree | 562d1a72c70cef53dcfe5f7885e1d99e44e6fbc4 /src/gpu/vk | |
parent | a9322c2d86aaef1085c267dfc43cf0747f170a86 (diff) |
Implement initCopySurfaceDstDesc for Vulkan
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1880613002
Review URL: https://codereview.chromium.org/1880613002
Diffstat (limited to 'src/gpu/vk')
-rw-r--r-- | src/gpu/vk/GrVkGpu.cpp | 14 | ||||
-rw-r--r-- | src/gpu/vk/GrVkGpu.h | 4 |
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 {} |