Support GPU VSync when DirectComposition isn't enabled
This fixes a few additional issues that came up in private testing.
1) Blank screen with DirectComposition isn't enabled. What happens is
that GPU VSync ends up being activated on Compositor side but not
on GPU side. I'd prototyped this solution when I tested GPU VSync
on Win 7 but decided to leave it out because I mistakenly assumed
that DirectComposition is always available on Win 8+. I verified
this but running Chrome with --disable-direct-composition flag.
2) In gpu_vsync_provider_win.cc "GpuVSyncWorker::SendVSyncUpdate"
trace event always logs adjustment = 0 due to incorrect variable
scope.
3) It was pointed out to me that if D3DKMTWaitForVerticalBlankEvent
keep returning an error for whatever reason the worker thread
would just spin. It might be a better idea to just crash in that
unlikely case so that we can investigate the crash dump.
What would be a condition for GL Implementation being anything other
than kGLImplementationEGLGLES2? Should we care about that case?
BUG=467617
Review-Url: https://codereview.chromium.org/2710183004
Cr-Commit-Position: refs/heads/master@{#453050}
4 files changed