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 <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
diff --git a/src/gpu/gl/GrGLCaps.cpp b/src/gpu/gl/GrGLCaps.cpp
index d476586..d1a0a95 100644
--- a/src/gpu/gl/GrGLCaps.cpp
+++ b/src/gpu/gl/GrGLCaps.cpp
@@ -537,8 +537,9 @@
}
// 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;
}