Add a workaround for PowerVRRogue to never disable color writes
Instead we leave color writes enabled and use a blend state that
preserves the dst color. This allows us to re-enable msaa ccpr on
PowerVR.
Bug: skia:
Change-Id: I1e902d695ad483ffb13dff6a7920749e307b49c7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/229387
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
diff --git a/tests/GrPorterDuffTest.cpp b/tests/GrPorterDuffTest.cpp
index 7e399f0..a01d0e5 100644
--- a/tests/GrPorterDuffTest.cpp
+++ b/tests/GrPorterDuffTest.cpp
@@ -101,7 +101,7 @@
// should always go hand in hand for Porter Duff modes.
TEST_ASSERT(analysis.requiresDstTexture() == analysis.requiresNonOverlappingDraws());
GetXPOutputTypes(xp.get(), &fPrimaryOutputType, &fSecondaryOutputType);
- xp->getBlendInfo(&fBlendInfo);
+ fBlendInfo = xp->getBlendInfo();
TEST_ASSERT(!xp->willReadDstColor() ||
(isLCD && (SkBlendMode::kSrcOver != xfermode ||
!inputColor.isOpaque())));
@@ -960,8 +960,7 @@
return;
}
- GrXferProcessor::BlendInfo blendInfo;
- xp_opaque->getBlendInfo(&blendInfo);
+ GrXferProcessor::BlendInfo blendInfo = xp_opaque->getBlendInfo();
TEST_ASSERT(blendInfo.fWriteColor);
// Test with non-opaque alpha
@@ -976,7 +975,7 @@
return;
}
- xp->getBlendInfo(&blendInfo);
+ blendInfo = xp->getBlendInfo();
TEST_ASSERT(blendInfo.fWriteColor);
}