Enable msaa ccpr on vulkan
TBR=egdaniel@google.com
Bug: skia:9643
Change-Id: Ie06891734b700c940b996a63c7b1264ce0f2597c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/254808
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Auto-Submit: Chris Dalton <csmartdalton@google.com>
diff --git a/src/gpu/ccpr/GrStencilAtlasOp.cpp b/src/gpu/ccpr/GrStencilAtlasOp.cpp
index 99d513e..258e495 100644
--- a/src/gpu/ccpr/GrStencilAtlasOp.cpp
+++ b/src/gpu/ccpr/GrStencilAtlasOp.cpp
@@ -90,11 +90,13 @@
);
// Resolves stencil winding counts to A8 coverage. Leaves stencil values untouched.
+// NOTE: For the CCW face we intentionally use "1 == (stencil & 1)" because the contrapositive logic
+// (i.e. 0 != ...) causes bugs on Adreno Vulkan. http://skbug.com/9643
static constexpr GrUserStencilSettings kResolveStencilCoverage(
GrUserStencilSettings::StaticInitSeparate<
- 0x0000, 0x0000,
- GrUserStencilTest::kNotEqual, GrUserStencilTest::kNotEqual,
- 0xffff, 0x1,
+ 0x0000, 0x0001,
+ GrUserStencilTest::kNotEqual, GrUserStencilTest::kEqual,
+ 0xffff, 0x0001,
GrUserStencilOp::kKeep, GrUserStencilOp::kKeep,
GrUserStencilOp::kKeep, GrUserStencilOp::kKeep,
0xffff, 0xffff>()
@@ -106,7 +108,7 @@
GrUserStencilSettings::StaticInitSeparate<
0x0000, 0x0000,
GrUserStencilTest::kNotEqual, GrUserStencilTest::kNotEqual,
- 0xffff, 0x1,
+ 0xffff, 0x0001,
GrUserStencilOp::kZero, GrUserStencilOp::kZero,
GrUserStencilOp::kKeep, GrUserStencilOp::kKeep,
0xffff, 0xffff>()
diff --git a/src/gpu/vk/GrVkCaps.cpp b/src/gpu/vk/GrVkCaps.cpp
index aeb9ec7..314ab5c 100644
--- a/src/gpu/vk/GrVkCaps.cpp
+++ b/src/gpu/vk/GrVkCaps.cpp
@@ -441,10 +441,6 @@
// GrCaps workarounds
////////////////////////////////////////////////////////////////////////////
- // Temporarily disable the MSAA implementation of CCPR while we work out a crash on Win10
- // GTX660 and incorrect rendring on Adreno.
- fDriverBlacklistMSAACCPR = true;
-
if (kARM_VkVendor == properties.vendorID) {
fInstanceAttribSupport = false;
fAvoidWritePixelsFastPath = true; // bugs.skia.org/8064