aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/vk/GrVkGpu.h
diff options
context:
space:
mode:
authorGravatar egdaniel <egdaniel@google.com>2016-08-31 07:37:31 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2016-08-31 07:37:31 -0700
commit4bcd62e3313da60c3aa96ccd12b7ea440c7266d4 (patch)
tree695930fc9669667b6dfb4073c107560d3d9b41d1 /src/gpu/vk/GrVkGpu.h
parent272b311298d78569c88130ceee3096b876fcbf25 (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.h12
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;