This test expects predictability from glFlush/glFinish timing.
In particular, the code from FlushFinishCase::analyzeResults()
checks that the result falls within specific timing thresholds.
Notice that in the GLES3 specification, there is no requirement for
timing, just a guarantee that "commands [...] complete in finite time".
This is a problem because it makes the test very flaky, for example
if the CPU/GPU clocks are not ramping up fast enough.
BUG=b:
67331095
TEST=Ran dEQP-GLES3.functional.flush_finish.finish on Elm for over 3+ hours
Observed 1.5% to 2% flakiness without this patch. Observed no flakiness
with this patch.
(cherry picked from commit
59f4fcde5ac1402ab3b911cf6a9f66b886c10464)
Signed-off-by: Gurchetan Singh <gurchetansingh@google.com>
const float NO_CORR_COEF_THRESHOLD = 0.1f;
const float FLUSH_COEF_THRESHOLD = 0.2f;
-const float CORRELATED_COEF_THRESHOLD = 0.5f;
+const float CORRELATED_COEF_THRESHOLD = 0.3f;
const float CALIBRATION_VERIFICATION_THRESHOLD = 0.10f; // Rendering time needs to be within 10% of MAX_SAMPLE_DURATION_US
static void busyWait (int milliseconds)