From 6f5e77a08faf9d967eba8194811cbf2391092c23 Mon Sep 17 00:00:00 2001 From: Chris Dalton Date: Mon, 23 Apr 2018 21:14:42 -0600 Subject: ccpr: Cull extremely thin triangles When triangles get too thin it's possible for FP round-off error to actually give us the wrong winding direction, causing rendering artifacts. This change also allows us to unblacklist ANGLE. Bug: skia:7805 Bug: skia:7820 Change-Id: Ibaa0f033eba625d720e3a594c4515d8264cc413d Reviewed-on: https://skia-review.googlesource.com/123262 Reviewed-by: Brian Osman Commit-Queue: Chris Dalton --- src/gpu/gl/GrGLCaps.cpp | 19 +++---------------- 1 file changed, 3 insertions(+), 16 deletions(-) (limited to 'src/gpu/gl') diff --git a/src/gpu/gl/GrGLCaps.cpp b/src/gpu/gl/GrGLCaps.cpp index c569e031e2..3bd857d53a 100644 --- a/src/gpu/gl/GrGLCaps.cpp +++ b/src/gpu/gl/GrGLCaps.cpp @@ -2271,7 +2271,9 @@ void GrGLCaps::applyDriverCorrectnessWorkarounds(const GrGLContextInfo& ctxInfo, fRequiresCullFaceEnableDisableWhenDrawingLinesAfterNonLines = true; } - if (kIntelSkylake_GrGLRenderer == ctxInfo.renderer()) { + if (kIntelSkylake_GrGLRenderer == ctxInfo.renderer() || + (kANGLE_GrGLRenderer == ctxInfo.renderer() && + GrGLANGLERenderer::kSkylake == ctxInfo.angleRenderer())) { fRequiresFlushBetweenNonAndInstancedDraws = true; } @@ -2319,21 +2321,6 @@ void GrGLCaps::applyDriverCorrectnessWorkarounds(const GrGLContextInfo& ctxInfo, fDrawArraysBaseVertexIsBroken = true; } - // Blacklisting CCPR on ANGLE while we investigate http://skbug.com/7805. - if (kANGLE_GrGLRenderer == ctxInfo.renderer()) { - fBlacklistCoverageCounting = true; - } - - // The ccpr vertex-shader implementation does not work on this platform. Only allow CCPR with - // GS. - if (kANGLE_GrGLRenderer == ctxInfo.renderer() && - GrGLANGLERenderer::kSkylake == ctxInfo.angleRenderer()) { - bool gsSupport = fShaderCaps->geometryShaderSupport(); -#if GR_TEST_UTILS - gsSupport &= !contextOptions.fSuppressGeometryShaders; -#endif - fBlacklistCoverageCounting = !gsSupport; - } // Currently the extension is advertised but fb fetch is broken on 500 series Adrenos like the // Galaxy S7. // TODO: Once this is fixed we can update the check here to look at a driver version number too. -- cgit v1.2.3