Lower correlation threshold in flush-finish tests again
authorGurchetan Singh <gurchetansingh@chromium.org>
Fri, 6 Oct 2017 16:06:21 +0000 (09:06 -0700)
committerGurchetan Singh <gurchetansingh@google.com>
Tue, 10 Oct 2017 20:17:31 +0000 (13:17 -0700)
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.

modules/gles3/functional/es3fFlushFinishTests.cpp

index ee94791..05802a1 100644 (file)
@@ -79,7 +79,7 @@ DE_STATIC_ASSERT(MAX_SAMPLE_DURATION_US < 1000*WAIT_TIME_MS);
 
 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)