There's a bug in the kernel that doesn't merge fences properly,
resulting in "reads done" timestamps of 0 when the fences being
merged have already signaled.
This is a temporary relaxation of the test requirements until
the kernel fix is required.
Bug:
66916041
Test: Test: --deqp-case=dEQP-EGL*get_frame_timestamps*
Change-Id: I0b2a65303c425a74a48d6ae8c971c16652d727a3
bool timestampValid (EGLnsecsANDROID timestamp)
{
- return (timestamp >= 0) || (timestamp == EGL_TIMESTAMP_PENDING_ANDROID);
+ // \todo [2017-10-19 brianderson] Don't consider 0 invalid once kernel fix is in.
+ return (timestamp > 0) || (timestamp == EGL_TIMESTAMP_PENDING_ANDROID);
}
bool timestampPending (EGLnsecsANDROID timestamp)
// be sure that the readsDone time must be after the renderingComplete time.
// It may also be equal to the renderingComplete time if no reads were
// peformed.
- if (verifyReadsDone)
+ if (verifyReadsDone && timestampValid(frameTimes.readsDone))
check_le(result, frameTimes.renderingComplete, frameTimes.readsDone, "Buffer rendering completed after reads completed.");
// Verify CPU/GPU dependencies