diff --git a/DEPS b/DEPS index 04ec92e1c4..dbec0749d6 100644 --- a/DEPS +++ b/DEPS @@ -158,7 +158,7 @@ deps = { # WebGPU CTS - not used directly by Dawn, only transitively by Chromium. 'third_party/webgpu-cts': { - 'url': '{chromium_git}/external/github.com/gpuweb/cts@0673bb68c214c0a6c56d00b30e6600dcc9f02b93', + 'url': '{chromium_git}/external/github.com/gpuweb/cts@6d3a80420d1b8493631311267a30a71098a01258', 'condition': 'build_with_chromium', }, diff --git a/webgpu-cts/expectations.txt b/webgpu-cts/expectations.txt index 1d7445f389..c3edc77949 100644 --- a/webgpu-cts/expectations.txt +++ b/webgpu-cts/expectations.txt @@ -61,7 +61,7 @@ # results: [ Failure RetryOnFailure Skip Slow ] # END TAG HEADER -# Last rolled: 2023-01-04 11:59:09PM +# Last rolled: 2023-01-05 05:47:34PM ################################################################################ # webgpu:api,operation,resource_init,texture_zero:uninitialized_texture_is_zero diff --git a/webgpu-cts/test_runner.js b/webgpu-cts/test_runner.js index eeb38d61a9..cd828bcc6d 100644 --- a/webgpu-cts/test_runner.js +++ b/webgpu-cts/test_runner.js @@ -140,6 +140,14 @@ wrapPromiseWithHeartbeat(GPUShaderModule.prototype, 'compilationInfo'); globalTestConfig.testHeartbeatCallback = sendHeartbeat; globalTestConfig.noRaceWithRejectOnTimeout = true; +// FXC is very slow to compile unrolled const-eval loops, where the metal shader +// compiler (Intel GPU) is very slow to compile rolled loops. Intel drivers for +// linux may also suffer the same performance issues, so unroll const-eval loops +// if we're not running on Windows. +if (navigator.userAgent.indexOf("Windows") !== -1) { + globalTestConfig.unrollConstEvalLoops = true; +} + async function runCtsTest(query, use_worker) { const workerEnabled = use_worker; const worker = workerEnabled ? new TestWorker(false) : undefined; @@ -208,9 +216,11 @@ function sendMessageTestHeartbeat() { } function sendMessageTestStatus(status, jsDurationMs) { - socket.send(JSON.stringify({'type': 'TEST_STATUS', - 'status': status, - 'js_duration_ms': jsDurationMs})); + socket.send(JSON.stringify({ + 'type': 'TEST_STATUS', + 'status': status, + 'js_duration_ms': jsDurationMs + })); } function sendMessageTestLog(logs) {