From 3a9305383169524488cb84e9bd5dba95520c3ca7 Mon Sep 17 00:00:00 2001 From: Robert Phillips Date: Wed, 4 Oct 2017 18:03:24 -0400 Subject: [PATCH] Always use draws instead of clears for ANGLE D3D11 At least for my repro case on a Z620 with an nVidia Quadro K620 and recent drivers, this eliminates the noise artifacts. It appears that full target clears are broken in ANGLE D3D11. Note I was never able to repro the bug in the D3D9 or openGL configs. The bug reproed for both the ES2 and ES3 ANGLE D3D11 configs though. Bug: 768134 Change-Id: I68e5fa0dc5e84b31d1d01a1e4b86132ab12a2e09 Reviewed-on: https://skia-review.googlesource.com/55381 Reviewed-by: Greg Daniel Commit-Queue: Robert Phillips --- src/gpu/gl/GrGLCaps.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/gpu/gl/GrGLCaps.cpp b/src/gpu/gl/GrGLCaps.cpp index d476586316..d1a0a95942 100644 --- a/src/gpu/gl/GrGLCaps.cpp +++ b/src/gpu/gl/GrGLCaps.cpp @@ -537,8 +537,9 @@ void GrGLCaps::init(const GrContextOptions& contextOptions, } // See crbug.com/755871. This could probably be narrowed to just partial clears as the driver // bugs seems to involve clearing too much and not skipping the clear. - if (GrGLANGLEBackend::kD3D11 == ctxInfo.angleBackend() && - GrGLANGLERenderer::kIvyBridge == ctxInfo.angleRenderer()) { + // See crbug.com/768134. This is also needed for full clears and was seen on an nVidia K620 + // but only for D3D11 ANGLE. + if (GrGLANGLEBackend::kD3D11 == ctxInfo.angleBackend()) { fUseDrawInsteadOfClear = true; }