Status: Started
Owner:
d...@chromium.org
CC:
k...@chromium.org,
ew...@google.com
Labels: Type-Bug Pri-2 Cr-Internals-GPU-Internals OS-Android OS-Windows
New issue 582676 by
d...@chromium.org: Inconsistent offsets between GPU
timer queries
https://code.google.com/p/chromium/issues/detail?id=582676
For platforms which support the EXT_disjoint_timer_query extension (android
platforms, and also windows through angle), to synchronize between the GPU
and CPU clock times we must continually query the offset for each query.
This is due to the fact that the GPU time can be "paused" whenever the GPU
is idle, so the offset can drift apart.
Currently the code looks something like this:
glGetInteger64v(GL_TIMESTAMP, &gl_now);
int64_t micro_now = NanoToMicro(gl_now);
offset_ = GetCurrentCPUTime() - micro_now;
The offset is stored in "microseconds". The problem is these instructions
themselves are not accurate enough to be completed within a microsecond
timeframe, so the offset is meaningless outside of that accuracy. This
ultimately causes us to flakily fail certain conformance tests. For example
one test takes 2 timestamps, and check that the later timestamp is in fact
later.
--
You received this message because this project is configured to send all
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings