Implement initCopySurfaceDstDesc for Vulkan
authoregdaniel <egdaniel@google.com>
Tue, 12 Apr 2016 14:31:49 +0000 (07:31 -0700)
committerCommit bot <commit-bot@chromium.org>
Tue, 12 Apr 2016 14:31:49 +0000 (07:31 -0700)
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

src/gpu/vk/GrVkGpu.cpp
src/gpu/vk/GrVkGpu.h

index 280346f..28dce34 100644 (file)
@@ -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.
index 91f9d4d..5872f18 100644 (file)
@@ -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 {}