diff options
author | egdaniel <egdaniel@google.com> | 2016-08-31 07:37:31 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-08-31 07:37:31 -0700 |
commit | 4bcd62e3313da60c3aa96ccd12b7ea440c7266d4 (patch) | |
tree | 695930fc9669667b6dfb4073c107560d3d9b41d1 /src/gpu/vk/GrVkGpu.h | |
parent | 272b311298d78569c88130ceee3096b876fcbf25 (diff) |
Add some copy support for vulkan msaa
This allows us to do copies from:
msaa->msaa with same sample count
msaa->no-msaa with a resolve
Still missing support for no-msaa to msaa which will require a copyAsDraw
which is currently stalled and fixing possible driver bugs.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2294533002
Review-Url: https://codereview.chromium.org/2294533002
Diffstat (limited to 'src/gpu/vk/GrVkGpu.h')
-rw-r--r-- | src/gpu/vk/GrVkGpu.h | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/gpu/vk/GrVkGpu.h b/src/gpu/vk/GrVkGpu.h index ff9c3c7c5f..8df6e6cfdc 100644 --- a/src/gpu/vk/GrVkGpu.h +++ b/src/gpu/vk/GrVkGpu.h @@ -82,7 +82,7 @@ public: void onGetMultisampleSpecs(GrRenderTarget* rt, const GrStencilSettings&, int* effectiveSampleCnt, SamplePattern*) override; - bool initCopySurfaceDstDesc(const GrSurface* src, GrSurfaceDesc* desc) const override; + bool initDescForDstCopy(const GrRenderTarget* src, GrSurfaceDesc* desc) const override; void xferBarrier(GrRenderTarget*, GrXferBarrierType) override {} @@ -220,6 +220,11 @@ private: const SkIRect& srcRect, const SkIPoint& dstPoint); + void copySurfaceAsResolve(GrSurface* dst, + GrSurface* src, + const SkIRect& srcRect, + const SkIPoint& dstPoint); + void copySurfaceAsDraw(GrSurface* dst, GrSurface* src, const SkIRect& srcRect, @@ -236,6 +241,11 @@ private: GrPixelConfig dataConfig, const SkTArray<GrMipLevel>&); + void resolveImage(GrVkRenderTarget* dst, + GrVkRenderTarget* src, + const SkIRect& srcRect, + const SkIPoint& dstPoint); + SkAutoTUnref<const GrVkBackendContext> fBackendContext; SkAutoTUnref<GrVkCaps> fVkCaps; |