Add GPU workaround for eglClientWaitSyncKHR timeout on S8
Samsung's implementation of the Adreno 540 driver on Android N as used on the S8/S8+ has a bug where eglClientWaitSyncKHR with a nonzero timeout waits much longer than the specified timeout. This is fixed in the Android O update for these devices. Workaround is to replace the timeout with polling for completion. Since we don't know if we need the workaround until the GPU process initialization completes, add a OnGpuConnectionReady callback in VrShellGl to check for this. This bug is specific to Samsung S8/S8+ on Android N, but there isn't currently a way to restrict the filter to those devices. The functionality is currently only used for WebVR on Daydream ready devices, and the non-Samsung Daydream devices generally use Android O, so an overbroad match seems acceptable. BUG=760389 Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Change-Id: I72b92d529307fe114d850eea576fd41fe0fcb645 Reviewed-on: https://chromium-review.googlesource.com/939724 Reviewed-by:Antoine Labour <piman@chromium.org> Reviewed-by:
Brandon Jones <bajones@chromium.org> Commit-Queue: Klaus Weidner <klausw@chromium.org> Cr-Commit-Position: refs/heads/master@{#539601}
Loading
Please register or sign in to comment