Reland "Reland "Enable msaa ccpr on vulkan""
This is a reland of935a35d972
Original change's description: > Reland "Enable msaa ccpr on vulkan" > > This is a reland ofcb73b6250e
> > Original change's description: > > 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> > > Bug: skia:9643 > Change-Id: I2537f03fad41ebddabbae94312b3836f7a948639 > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/255008 > Reviewed-by: Greg Daniel <egdaniel@google.com> > Commit-Queue: Chris Dalton <csmartdalton@google.com> Bug: skia:9643 Bug: skia:9676 Change-Id: Ibade6deba89282f62af5fc835e1b775bce2bc5a5 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/256353 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Chris Dalton <csmartdalton@google.com>
This commit is contained in:
parent
c028b42717
commit
d53853dd65
@ -92,11 +92,13 @@ static constexpr GrUserStencilSettings kIncrDecrStencil(
|
|||||||
);
|
);
|
||||||
|
|
||||||
// Resolves stencil winding counts to A8 coverage. Leaves stencil values untouched.
|
// 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(
|
static constexpr GrUserStencilSettings kResolveStencilCoverage(
|
||||||
GrUserStencilSettings::StaticInitSeparate<
|
GrUserStencilSettings::StaticInitSeparate<
|
||||||
0x0000, 0x0000,
|
0x0000, 0x0001,
|
||||||
GrUserStencilTest::kNotEqual, GrUserStencilTest::kNotEqual,
|
GrUserStencilTest::kNotEqual, GrUserStencilTest::kEqual,
|
||||||
0xffff, 0x1,
|
0xffff, 0x0001,
|
||||||
GrUserStencilOp::kKeep, GrUserStencilOp::kKeep,
|
GrUserStencilOp::kKeep, GrUserStencilOp::kKeep,
|
||||||
GrUserStencilOp::kKeep, GrUserStencilOp::kKeep,
|
GrUserStencilOp::kKeep, GrUserStencilOp::kKeep,
|
||||||
0xffff, 0xffff>()
|
0xffff, 0xffff>()
|
||||||
@ -108,7 +110,7 @@ static constexpr GrUserStencilSettings kResolveStencilCoverageAndReset(
|
|||||||
GrUserStencilSettings::StaticInitSeparate<
|
GrUserStencilSettings::StaticInitSeparate<
|
||||||
0x0000, 0x0000,
|
0x0000, 0x0000,
|
||||||
GrUserStencilTest::kNotEqual, GrUserStencilTest::kNotEqual,
|
GrUserStencilTest::kNotEqual, GrUserStencilTest::kNotEqual,
|
||||||
0xffff, 0x1,
|
0xffff, 0x0001,
|
||||||
GrUserStencilOp::kZero, GrUserStencilOp::kZero,
|
GrUserStencilOp::kZero, GrUserStencilOp::kZero,
|
||||||
GrUserStencilOp::kKeep, GrUserStencilOp::kKeep,
|
GrUserStencilOp::kKeep, GrUserStencilOp::kKeep,
|
||||||
0xffff, 0xffff>()
|
0xffff, 0xffff>()
|
||||||
|
@ -441,9 +441,19 @@ void GrVkCaps::applyDriverCorrectnessWorkarounds(const VkPhysicalDevicePropertie
|
|||||||
// GrCaps workarounds
|
// GrCaps workarounds
|
||||||
////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
// Temporarily disable the MSAA implementation of CCPR while we work out a crash on Win10
|
// The GTX660 bot experiences crashes and incorrect rendering with MSAA CCPR. Block this path
|
||||||
// GTX660 and incorrect rendring on Adreno.
|
// renderer on non-mixed-sampled NVIDIA.
|
||||||
|
// NOTE: We may lose mixed samples support later if the context options suppress dual source
|
||||||
|
// blending, but that shouldn't be an issue because MSAA CCPR seems to work fine (even without
|
||||||
|
// mixed samples) on later NVIDIA hardware where mixed samples would be supported.
|
||||||
|
if ((kNvidia_VkVendor == properties.vendorID) && !fMixedSamplesSupport) {
|
||||||
|
fDriverBlacklistMSAACCPR = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef SK_BUILD_FOR_ANDROID
|
||||||
|
// MSAA CCPR is slow on Android. http://skbug.com/9676
|
||||||
fDriverBlacklistMSAACCPR = true;
|
fDriverBlacklistMSAACCPR = true;
|
||||||
|
#endif
|
||||||
|
|
||||||
if (kARM_VkVendor == properties.vendorID) {
|
if (kARM_VkVendor == properties.vendorID) {
|
||||||
fInstanceAttribSupport = false;
|
fInstanceAttribSupport = false;
|
||||||
|
Loading…
Reference in New Issue
Block a user