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>
This commit is contained in:
Robert Phillips 2017-10-04 18:03:24 -04:00 committed by Skia Commit-Bot
parent 01f8e41c13
commit 3a93053831

View File

@ -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;
}