Add usesMSAASurface to GrMeshDrawOp::Target
Also switches GrFillRRectOp to call usesMSAASurface.
Bug: skia:11396
Change-Id: I66d0ee2c6dc76819efc0f3283f6e1a0af11f23f7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/395136
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
diff --git a/src/gpu/GrOpFlushState.h b/src/gpu/GrOpFlushState.h
index 29a8989..6ecda64 100644
--- a/src/gpu/GrOpFlushState.h
+++ b/src/gpu/GrOpFlushState.h
@@ -58,12 +58,14 @@
/** Additional data required on a per-op basis when executing GrOps. */
struct OpArgs {
// TODO: why does OpArgs have the op we're going to pass it to as a member? Remove it.
- explicit OpArgs(GrOp* op, const GrSurfaceProxyView& surfaceView, GrAppliedClip* appliedClip,
+ explicit OpArgs(GrOp* op, const GrSurfaceProxyView& surfaceView, bool usesMSAASurface,
+ GrAppliedClip* appliedClip,
const GrXferProcessor::DstProxyView& dstProxyView,
GrXferBarrierFlags renderPassXferBarriers, GrLoadOp colorLoadOp)
: fOp(op)
, fSurfaceView(surfaceView)
, fRenderTargetProxy(surfaceView.asRenderTargetProxy())
+ , fUsesMSAASurface(usesMSAASurface)
, fAppliedClip(appliedClip)
, fDstProxyView(dstProxyView)
, fRenderPassXferBarriers(renderPassXferBarriers)
@@ -74,6 +76,8 @@
GrOp* op() { return fOp; }
const GrSurfaceProxyView& writeView() const { return fSurfaceView; }
GrRenderTargetProxy* rtProxy() const { return fRenderTargetProxy; }
+ // True if the op under consideration belongs to an opsTask that renders to an MSAA buffer.
+ bool usesMSAASurface() const { return fUsesMSAASurface; }
GrAppliedClip* appliedClip() { return fAppliedClip; }
const GrAppliedClip* appliedClip() const { return fAppliedClip; }
const GrXferProcessor::DstProxyView& dstProxyView() const { return fDstProxyView; }
@@ -91,6 +95,7 @@
GrOp* fOp;
const GrSurfaceProxyView& fSurfaceView;
GrRenderTargetProxy* fRenderTargetProxy;
+ bool fUsesMSAASurface;
GrAppliedClip* fAppliedClip;
GrXferProcessor::DstProxyView fDstProxyView; // TODO: do we still need the dst proxy here?
GrXferBarrierFlags fRenderPassXferBarriers;
@@ -151,6 +156,7 @@
}
const GrSurfaceProxyView& writeView() const final { return this->drawOpArgs().writeView(); }
GrRenderTargetProxy* rtProxy() const final { return this->drawOpArgs().rtProxy(); }
+ bool usesMSAASurface() const final { return this->drawOpArgs().usesMSAASurface(); }
const GrAppliedClip* appliedClip() const final { return this->drawOpArgs().appliedClip(); }
const GrAppliedHardClip& appliedHardClip() const {
return (fOpArgs->appliedClip()) ?
diff --git a/src/gpu/GrOpsRenderPass.h b/src/gpu/GrOpsRenderPass.h
index 246cbce..e43b338 100644
--- a/src/gpu/GrOpsRenderPass.h
+++ b/src/gpu/GrOpsRenderPass.h
@@ -141,20 +141,23 @@
protected:
GrOpsRenderPass() : fOrigin(kTopLeft_GrSurfaceOrigin), fRenderTarget(nullptr) {}
- GrOpsRenderPass(GrRenderTarget* rt, GrSurfaceOrigin origin)
+ GrOpsRenderPass(GrRenderTarget* rt, bool useMSAASurface, GrSurfaceOrigin origin)
: fOrigin(origin)
- , fRenderTarget(rt) {
+ , fRenderTarget(rt)
+ , fUseMSAASurface(useMSAASurface) {
}
- void set(GrRenderTarget* rt, GrSurfaceOrigin origin) {
+ void set(GrRenderTarget* rt, bool useMSAASurface, GrSurfaceOrigin origin) {
SkASSERT(!fRenderTarget);
fRenderTarget = rt;
+ fUseMSAASurface = useMSAASurface;
fOrigin = origin;
}
GrSurfaceOrigin fOrigin;
GrRenderTarget* fRenderTarget;
+ bool fUseMSAASurface;
// Backends may defer binding of certain buffers if their draw API requires a buffer, or if
// their bind methods don't support base values.
diff --git a/src/gpu/GrOpsTask.cpp b/src/gpu/GrOpsTask.cpp
index cb7d05e..f853c8e 100644
--- a/src/gpu/GrOpsTask.cpp
+++ b/src/gpu/GrOpsTask.cpp
@@ -358,6 +358,7 @@
GrAuditTrail* auditTrail)
: GrRenderTask()
, fAuditTrail(auditTrail)
+ , fUsesMSAASurface(view.asRenderTargetProxy()->numSamples() > 1)
, fTargetSwizzle(view.swizzle())
, fTargetOrigin(view.origin())
SkDEBUGCODE(, fNumClips(0)) {
@@ -479,6 +480,7 @@
#endif
GrOpFlushState::OpArgs opArgs(chain.head(),
dstView,
+ fUsesMSAASurface,
chain.appliedClip(),
chain.dstProxyView(),
fRenderPassXferBarriers,
@@ -612,7 +614,7 @@
GrOpsRenderPass* renderPass = create_render_pass(flushState->gpu(),
proxy->peekRenderTarget(),
- proxy->numSamples() > 1,
+ fUsesMSAASurface,
stencil,
fTargetOrigin,
fClippedContentBounds,
@@ -642,6 +644,7 @@
GrOpFlushState::OpArgs opArgs(chain.head(),
dstView,
+ fUsesMSAASurface,
chain.appliedClip(),
chain.dstProxyView(),
fRenderPassXferBarriers,
diff --git a/src/gpu/GrOpsTask.h b/src/gpu/GrOpsTask.h
index 8b29ece..aedcfc2 100644
--- a/src/gpu/GrOpsTask.h
+++ b/src/gpu/GrOpsTask.h
@@ -248,6 +248,7 @@
GrAuditTrail* fAuditTrail;
+ bool fUsesMSAASurface;
GrSwizzle fTargetSwizzle;
GrSurfaceOrigin fTargetOrigin;
diff --git a/src/gpu/d3d/GrD3DGpu.cpp b/src/gpu/d3d/GrD3DGpu.cpp
index 209c30e..ee8a73b 100644
--- a/src/gpu/d3d/GrD3DGpu.cpp
+++ b/src/gpu/d3d/GrD3DGpu.cpp
@@ -126,7 +126,7 @@
GrOpsRenderPass* GrD3DGpu::onGetOpsRenderPass(
GrRenderTarget* rt,
- bool /*useMSAASurface*/,
+ bool useMSAASurface,
GrAttachment*,
GrSurfaceOrigin origin,
const SkIRect& bounds,
@@ -138,7 +138,8 @@
fCachedOpsRenderPass.reset(new GrD3DOpsRenderPass(this));
}
- if (!fCachedOpsRenderPass->set(rt, origin, bounds, colorInfo, stencilInfo, sampledProxies)) {
+ if (!fCachedOpsRenderPass->set(rt, useMSAASurface, origin, bounds, colorInfo, stencilInfo,
+ sampledProxies)) {
return nullptr;
}
return fCachedOpsRenderPass.get();
diff --git a/src/gpu/d3d/GrD3DOpsRenderPass.cpp b/src/gpu/d3d/GrD3DOpsRenderPass.cpp
index a7ea52a..900209c 100644
--- a/src/gpu/d3d/GrD3DOpsRenderPass.cpp
+++ b/src/gpu/d3d/GrD3DOpsRenderPass.cpp
@@ -27,14 +27,14 @@
GrD3DOpsRenderPass::GrD3DOpsRenderPass(GrD3DGpu* gpu) : fGpu(gpu) {}
-bool GrD3DOpsRenderPass::set(GrRenderTarget* rt, GrSurfaceOrigin origin, const SkIRect& bounds,
- const GrOpsRenderPass::LoadAndStoreInfo& colorInfo,
- const GrOpsRenderPass::StencilLoadAndStoreInfo& stencilInfo,
+bool GrD3DOpsRenderPass::set(GrRenderTarget* rt, bool useMSAASurface, GrSurfaceOrigin origin,
+ const SkIRect& bounds, const GrOpsRenderPass::LoadAndStoreInfo&
+ colorInfo, const GrOpsRenderPass::StencilLoadAndStoreInfo& stencilInfo,
const SkTArray<GrSurfaceProxy*, true>& sampledProxies) {
SkASSERT(!fRenderTarget);
SkASSERT(fGpu == rt->getContext()->priv().getGpu());
- this->INHERITED::set(rt, origin);
+ this->INHERITED::set(rt, useMSAASurface, origin);
fBounds = bounds;
diff --git a/src/gpu/d3d/GrD3DOpsRenderPass.h b/src/gpu/d3d/GrD3DOpsRenderPass.h
index e301b4d..40a0409 100644
--- a/src/gpu/d3d/GrD3DOpsRenderPass.h
+++ b/src/gpu/d3d/GrD3DOpsRenderPass.h
@@ -26,7 +26,7 @@
void onExecuteDrawable(std::unique_ptr<SkDrawable::GpuDrawHandler>) override {}
- bool set(GrRenderTarget*, GrSurfaceOrigin, const SkIRect& bounds,
+ bool set(GrRenderTarget*, bool useMSAASurface, GrSurfaceOrigin, const SkIRect& bounds,
const GrOpsRenderPass::LoadAndStoreInfo&,
const GrOpsRenderPass::StencilLoadAndStoreInfo&,
const SkTArray<GrSurfaceProxy*, true>& sampledProxies);
diff --git a/src/gpu/dawn/GrDawnGpu.cpp b/src/gpu/dawn/GrDawnGpu.cpp
index 092216c..9411efc 100644
--- a/src/gpu/dawn/GrDawnGpu.cpp
+++ b/src/gpu/dawn/GrDawnGpu.cpp
@@ -158,7 +158,7 @@
GrOpsRenderPass* GrDawnGpu::onGetOpsRenderPass(
GrRenderTarget* rt,
- bool /*useMSAASurface*/,
+ bool useMSAASurface,
GrAttachment*,
GrSurfaceOrigin origin,
const SkIRect& bounds,
@@ -166,7 +166,8 @@
const GrOpsRenderPass::StencilLoadAndStoreInfo& stencilInfo,
const SkTArray<GrSurfaceProxy*, true>& sampledProxies,
GrXferBarrierFlags renderPassXferBarriers) {
- fOpsRenderPass.reset(new GrDawnOpsRenderPass(this, rt, origin, colorInfo, stencilInfo));
+ fOpsRenderPass.reset(new GrDawnOpsRenderPass(this, rt, useMSAASurface, origin, colorInfo,
+ stencilInfo));
return fOpsRenderPass.get();
}
diff --git a/src/gpu/dawn/GrDawnOpsRenderPass.cpp b/src/gpu/dawn/GrDawnOpsRenderPass.cpp
index 245a831..bed8752 100644
--- a/src/gpu/dawn/GrDawnOpsRenderPass.cpp
+++ b/src/gpu/dawn/GrDawnOpsRenderPass.cpp
@@ -40,10 +40,10 @@
}
}
-GrDawnOpsRenderPass::GrDawnOpsRenderPass(GrDawnGpu* gpu, GrRenderTarget* rt, GrSurfaceOrigin origin,
- const LoadAndStoreInfo& colorInfo,
+GrDawnOpsRenderPass::GrDawnOpsRenderPass(GrDawnGpu* gpu, GrRenderTarget* rt, bool useMSAASurface,
+ GrSurfaceOrigin origin, const LoadAndStoreInfo& colorInfo,
const StencilLoadAndStoreInfo& stencilInfo)
- : INHERITED(rt, origin)
+ : INHERITED(rt, useMSAASurface, origin)
, fGpu(gpu)
, fColorInfo(colorInfo) {
fEncoder = fGpu->device().CreateCommandEncoder();
diff --git a/src/gpu/dawn/GrDawnOpsRenderPass.h b/src/gpu/dawn/GrDawnOpsRenderPass.h
index 921cf9d..f6b88d9 100644
--- a/src/gpu/dawn/GrDawnOpsRenderPass.h
+++ b/src/gpu/dawn/GrDawnOpsRenderPass.h
@@ -20,7 +20,7 @@
class GrDawnOpsRenderPass : public GrOpsRenderPass {
public:
- GrDawnOpsRenderPass(GrDawnGpu*, GrRenderTarget*, GrSurfaceOrigin,
+ GrDawnOpsRenderPass(GrDawnGpu*, GrRenderTarget*, bool useMSAASurface, GrSurfaceOrigin,
const LoadAndStoreInfo&, const StencilLoadAndStoreInfo&);
~GrDawnOpsRenderPass() override;
diff --git a/src/gpu/gl/GrGLOpsRenderPass.cpp b/src/gpu/gl/GrGLOpsRenderPass.cpp
index 7ab5da7..3eca280 100644
--- a/src/gpu/gl/GrGLOpsRenderPass.cpp
+++ b/src/gpu/gl/GrGLOpsRenderPass.cpp
@@ -24,27 +24,26 @@
SkASSERT(!fRenderTarget);
SkASSERT(fGpu == rt->getContext()->priv().getGpu());
- this->INHERITED::set(rt, origin);
- fUseMultisampleFBO = useMSAASurface;
+ this->INHERITED::set(rt, useMSAASurface, origin);
fContentBounds = contentBounds;
fColorLoadAndStoreInfo = colorInfo;
fStencilLoadAndStoreInfo = stencilInfo;
}
void GrGLOpsRenderPass::onBegin() {
- fGpu->beginCommandBuffer(fRenderTarget, fUseMultisampleFBO, fContentBounds, fOrigin,
+ fGpu->beginCommandBuffer(fRenderTarget, fUseMSAASurface, fContentBounds, fOrigin,
fColorLoadAndStoreInfo, fStencilLoadAndStoreInfo);
}
void GrGLOpsRenderPass::onEnd() {
- fGpu->endCommandBuffer(fRenderTarget, fUseMultisampleFBO, fColorLoadAndStoreInfo,
+ fGpu->endCommandBuffer(fRenderTarget, fUseMSAASurface, fColorLoadAndStoreInfo,
fStencilLoadAndStoreInfo);
}
bool GrGLOpsRenderPass::onBindPipeline(const GrProgramInfo& programInfo,
const SkRect& drawBounds) {
fPrimitiveType = programInfo.primitiveType();
- return fGpu->flushGLState(fRenderTarget, fUseMultisampleFBO, programInfo);
+ return fGpu->flushGLState(fRenderTarget, fUseMSAASurface, programInfo);
}
void GrGLOpsRenderPass::onSetScissorRect(const SkIRect& scissor) {
@@ -386,7 +385,7 @@
}
void GrGLOpsRenderPass::onClear(const GrScissorState& scissor, std::array<float, 4> color) {
- fGpu->clear(scissor, color, fRenderTarget, fUseMultisampleFBO, fOrigin);
+ fGpu->clear(scissor, color, fRenderTarget, fUseMSAASurface, fOrigin);
}
void GrGLOpsRenderPass::onClearStencilClip(const GrScissorState& scissor, bool insideStencilMask) {
diff --git a/src/gpu/gl/GrGLOpsRenderPass.h b/src/gpu/gl/GrGLOpsRenderPass.h
index bd67717..353c6f1 100644
--- a/src/gpu/gl/GrGLOpsRenderPass.h
+++ b/src/gpu/gl/GrGLOpsRenderPass.h
@@ -79,7 +79,6 @@
GrGLGpu* const fGpu;
- bool fUseMultisampleFBO;
SkIRect fContentBounds;
LoadAndStoreInfo fColorLoadAndStoreInfo;
StencilLoadAndStoreInfo fStencilLoadAndStoreInfo;
diff --git a/src/gpu/mock/GrMockGpu.cpp b/src/gpu/mock/GrMockGpu.cpp
index 15a76ec..711cf20 100644
--- a/src/gpu/mock/GrMockGpu.cpp
+++ b/src/gpu/mock/GrMockGpu.cpp
@@ -56,7 +56,7 @@
}
GrOpsRenderPass* GrMockGpu::onGetOpsRenderPass(GrRenderTarget* rt,
- bool /*useMSAASurface*/,
+ bool useMSAASurface,
GrAttachment*,
GrSurfaceOrigin origin,
const SkIRect& bounds,
@@ -64,7 +64,7 @@
const GrOpsRenderPass::StencilLoadAndStoreInfo&,
const SkTArray<GrSurfaceProxy*,true>& sampledProxies,
GrXferBarrierFlags renderPassXferBarriers) {
- return new GrMockOpsRenderPass(this, rt, origin, colorInfo);
+ return new GrMockOpsRenderPass(this, rt, useMSAASurface, origin, colorInfo);
}
void GrMockGpu::submit(GrOpsRenderPass* renderPass) {
diff --git a/src/gpu/mock/GrMockOpTarget.h b/src/gpu/mock/GrMockOpTarget.h
index e3cb2f1..983b29d 100644
--- a/src/gpu/mock/GrMockOpTarget.h
+++ b/src/gpu/mock/GrMockOpTarget.h
@@ -105,6 +105,7 @@
UNIMPL(GrRenderTargetProxy* rtProxy() const)
UNIMPL(const GrSurfaceProxyView& writeView() const)
UNIMPL(const GrAppliedClip* appliedClip() const)
+ UNIMPL(bool usesMSAASurface() const)
UNIMPL(GrStrikeCache* strikeCache() const)
UNIMPL(GrAtlasManager* atlasManager() const)
UNIMPL(SkTArray<GrSurfaceProxy*, true>* sampledProxyArray())
diff --git a/src/gpu/mock/GrMockOpsRenderPass.h b/src/gpu/mock/GrMockOpsRenderPass.h
index 0067caf..7b812f0 100644
--- a/src/gpu/mock/GrMockOpsRenderPass.h
+++ b/src/gpu/mock/GrMockOpsRenderPass.h
@@ -15,9 +15,9 @@
class GrMockOpsRenderPass : public GrOpsRenderPass {
public:
- GrMockOpsRenderPass(GrMockGpu* gpu, GrRenderTarget* rt, GrSurfaceOrigin origin,
- LoadAndStoreInfo colorInfo)
- : INHERITED(rt, origin)
+ GrMockOpsRenderPass(GrMockGpu* gpu, GrRenderTarget* rt, bool useMSAASurface,
+ GrSurfaceOrigin origin, LoadAndStoreInfo colorInfo)
+ : INHERITED(rt, useMSAASurface, origin)
, fGpu(gpu)
, fColorLoadOp(colorInfo.fLoadOp) {
}
diff --git a/src/gpu/mtl/GrMtlGpu.mm b/src/gpu/mtl/GrMtlGpu.mm
index 3c4fbff..93c042a 100644
--- a/src/gpu/mtl/GrMtlGpu.mm
+++ b/src/gpu/mtl/GrMtlGpu.mm
@@ -204,13 +204,14 @@
}
GrOpsRenderPass* GrMtlGpu::onGetOpsRenderPass(
- GrRenderTarget* renderTarget, bool /*useMSAASurface*/, GrAttachment*,
+ GrRenderTarget* renderTarget, bool useMultisampleFBO, GrAttachment*,
GrSurfaceOrigin origin, const SkIRect& bounds,
const GrOpsRenderPass::LoadAndStoreInfo& colorInfo,
const GrOpsRenderPass::StencilLoadAndStoreInfo& stencilInfo,
const SkTArray<GrSurfaceProxy*, true>& sampledProxies,
GrXferBarrierFlags renderPassXferBarriers) {
- return new GrMtlOpsRenderPass(this, renderTarget, origin, colorInfo, stencilInfo);
+ return new GrMtlOpsRenderPass(this, renderTarget, useMultisampleFBO, origin, colorInfo,
+ stencilInfo);
}
GrMtlCommandBuffer* GrMtlGpu::commandBuffer() {
diff --git a/src/gpu/mtl/GrMtlOpsRenderPass.h b/src/gpu/mtl/GrMtlOpsRenderPass.h
index a5ddd64..a369380 100644
--- a/src/gpu/mtl/GrMtlOpsRenderPass.h
+++ b/src/gpu/mtl/GrMtlOpsRenderPass.h
@@ -21,8 +21,8 @@
class GrMtlOpsRenderPass : public GrOpsRenderPass {
public:
- GrMtlOpsRenderPass(GrMtlGpu* gpu, GrRenderTarget* rt, GrSurfaceOrigin origin,
- const GrOpsRenderPass::LoadAndStoreInfo& colorInfo,
+ GrMtlOpsRenderPass(GrMtlGpu* gpu, GrRenderTarget* rt, bool useMSAASurface,
+ GrSurfaceOrigin origin, const GrOpsRenderPass::LoadAndStoreInfo& colorInfo,
const GrOpsRenderPass::StencilLoadAndStoreInfo& stencilInfo);
~GrMtlOpsRenderPass() override;
diff --git a/src/gpu/mtl/GrMtlOpsRenderPass.mm b/src/gpu/mtl/GrMtlOpsRenderPass.mm
index 3098f53..b8e6e30 100644
--- a/src/gpu/mtl/GrMtlOpsRenderPass.mm
+++ b/src/gpu/mtl/GrMtlOpsRenderPass.mm
@@ -22,10 +22,11 @@
GR_NORETAIN_BEGIN
-GrMtlOpsRenderPass::GrMtlOpsRenderPass(GrMtlGpu* gpu, GrRenderTarget* rt, GrSurfaceOrigin origin,
+GrMtlOpsRenderPass::GrMtlOpsRenderPass(GrMtlGpu* gpu, GrRenderTarget* rt, bool useMultisampleFBO,
+ GrSurfaceOrigin origin,
const GrOpsRenderPass::LoadAndStoreInfo& colorInfo,
const GrOpsRenderPass::StencilLoadAndStoreInfo& stencilInfo)
- : INHERITED(rt, origin)
+ : INHERITED(rt, useMultisampleFBO, origin)
, fGpu(gpu) {
this->setupRenderPass(colorInfo, stencilInfo);
}
diff --git a/src/gpu/ops/GrFillRRectOp.cpp b/src/gpu/ops/GrFillRRectOp.cpp
index 00bb14f..537f149 100644
--- a/src/gpu/ops/GrFillRRectOp.cpp
+++ b/src/gpu/ops/GrFillRRectOp.cpp
@@ -461,7 +461,7 @@
void FillRRectOp::onPrepareDraws(Target* target) {
// We request no multisample, but some platforms don't support disabling it on MSAA targets.
- if (target->rtProxy()->numSamples() > 1 && !target->caps().multisampleDisableSupport()) {
+ if (target->usesMSAASurface() && !target->caps().multisampleDisableSupport()) {
fProcessorFlags |= ProcessorFlags::kMSAAEnabled;
}
diff --git a/src/gpu/ops/GrMeshDrawOp.h b/src/gpu/ops/GrMeshDrawOp.h
index 1cef7eb..1cc8752 100644
--- a/src/gpu/ops/GrMeshDrawOp.h
+++ b/src/gpu/ops/GrMeshDrawOp.h
@@ -230,6 +230,7 @@
virtual GrAppliedClip detachAppliedClip() = 0;
virtual const GrXferProcessor::DstProxyView& dstProxyView() const = 0;
+ virtual bool usesMSAASurface() const = 0;
virtual GrXferBarrierFlags renderPassBarriers() const = 0;
diff --git a/src/gpu/vk/GrVkGpu.cpp b/src/gpu/vk/GrVkGpu.cpp
index 1e5655d..e4ec038 100644
--- a/src/gpu/vk/GrVkGpu.cpp
+++ b/src/gpu/vk/GrVkGpu.cpp
@@ -302,7 +302,7 @@
GrOpsRenderPass* GrVkGpu::onGetOpsRenderPass(
GrRenderTarget* rt,
- bool /*useMSAASurface*/,
+ bool useMSAASurface,
GrAttachment* stencil,
GrSurfaceOrigin origin,
const SkIRect& bounds,
@@ -314,8 +314,8 @@
fCachedOpsRenderPass = std::make_unique<GrVkOpsRenderPass>(this);
}
- if (!fCachedOpsRenderPass->set(rt, stencil, origin, bounds, colorInfo, stencilInfo,
- sampledProxies, renderPassXferBarriers)) {
+ if (!fCachedOpsRenderPass->set(rt, useMSAASurface, stencil, origin, bounds, colorInfo,
+ stencilInfo, sampledProxies, renderPassXferBarriers)) {
return nullptr;
}
return fCachedOpsRenderPass.get();
diff --git a/src/gpu/vk/GrVkOpsRenderPass.cpp b/src/gpu/vk/GrVkOpsRenderPass.cpp
index b082527..ca8dc50 100644
--- a/src/gpu/vk/GrVkOpsRenderPass.cpp
+++ b/src/gpu/vk/GrVkOpsRenderPass.cpp
@@ -356,6 +356,7 @@
}
bool GrVkOpsRenderPass::set(GrRenderTarget* rt,
+ bool useMSAASurface,
GrAttachment* stencil,
GrSurfaceOrigin origin,
const SkIRect& bounds,
@@ -377,7 +378,7 @@
return false;
}
- this->INHERITED::set(rt, origin);
+ this->INHERITED::set(rt, useMSAASurface, origin);
for (int i = 0; i < sampledProxies.count(); ++i) {
if (sampledProxies[i]->isInstantiated()) {
diff --git a/src/gpu/vk/GrVkOpsRenderPass.h b/src/gpu/vk/GrVkOpsRenderPass.h
index 6a490dd..eba64d6 100644
--- a/src/gpu/vk/GrVkOpsRenderPass.h
+++ b/src/gpu/vk/GrVkOpsRenderPass.h
@@ -32,6 +32,7 @@
void onExecuteDrawable(std::unique_ptr<SkDrawable::GpuDrawHandler>) override;
bool set(GrRenderTarget*,
+ bool useMSAASurface,
GrAttachment*,
GrSurfaceOrigin,
const SkIRect& bounds,
diff --git a/tests/DrawOpAtlasTest.cpp b/tests/DrawOpAtlasTest.cpp
index 2e61d24..38245c7 100644
--- a/tests/DrawOpAtlasTest.cpp
+++ b/tests/DrawOpAtlasTest.cpp
@@ -227,6 +227,7 @@
GrSurfaceProxyView surfaceView = rtc->writeSurfaceView();
GrOpFlushState::OpArgs opArgs(op.get(),
surfaceView,
+ false /*usesMSAASurface*/,
nullptr,
GrXferProcessor::DstProxyView(),
GrXferBarrierFlags::kNone,