From 2a3dd68f2b1ea1678e8ed629db1cb790ffd0b291 Mon Sep 17 00:00:00 2001 From: perryuwang Date: Wed, 17 Apr 2024 15:24:32 +0800 Subject: [PATCH] timeout --- .../canvas_display_after_device_lost.html.ts | 22 ++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/src/webgpu/web_platform/reftests/canvas_display_after_device_lost.html.ts b/src/webgpu/web_platform/reftests/canvas_display_after_device_lost.html.ts index 332d53ae8f84..c1e16b700c6b 100644 --- a/src/webgpu/web_platform/reftests/canvas_display_after_device_lost.html.ts +++ b/src/webgpu/web_platform/reftests/canvas_display_after_device_lost.html.ts @@ -1,7 +1,17 @@ -import { runRefTest } from './gpu_ref_test.js'; +import { assert } from '../../../common/util/util.js'; +import { timeout } from '../../../common/util/timeout.js'; +import { takeScreenshotDelayed } from '../../../common/util/wpt_reftest_wait.js'; -runRefTest(t => { - const device = t.device; +void (async () => { + assert( + typeof navigator !== 'undefined' && navigator.gpu !== undefined, + 'No WebGPU implementation found' + ); + + const adapter = await navigator.gpu.requestAdapter(); + assert(adapter !== null); + const device = await adapter.requestDevice(); + assert(device !== null); const presentationFormat = navigator.gpu.getPreferredCanvasFormat(); let deviceLost = false; @@ -45,9 +55,11 @@ runRefTest(t => { if (!deviceLost) { device.destroy(); deviceLost = true; + timeout(drawAll, 100); + } else { + takeScreenshotDelayed(50); } } drawAll(); - requestAnimationFrame(drawAll); -}); +})();