0

[infra] Add webgpu_cts_compat_min_es31_tests

- Add the new webgpu_cts_compat_min_es31_tests on Linux/NVIDIA GTX 1660 and Android Arm64 (pixel 6)
- Add a new tag min-es31 to better suppress in expectations.

Bug: 388318201
Change-Id: Iad06fa3176277534472c35918bb151e25f0980b7
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6227846
Commit-Queue: Shrek Shao <shrekshao@google.com>
Reviewed-by: Brian Sheedy <bsheedy@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1418964}
This commit is contained in:
Shrek Shao
2025-02-11 15:48:45 -08:00
committed by Chromium LUCI CQ
parent 0d99ebfdaa
commit 8ce8371caf
36 changed files with 834 additions and 5 deletions
content/test/gpu
infra/config
generated
builders
ci
Dawn Android arm64 Builder
Dawn Android arm64 DEPS Builder
Dawn Android arm64 DEPS Release (Pixel 6)
Dawn Android arm64 Experimental Release (Pixel 6)
Dawn Android arm64 Release (Pixel 6)
Dawn Linux x64 Builder
Dawn Linux x64 DEPS Builder
Dawn Linux x64 DEPS Release (NVIDIA)
Dawn Linux x64 Experimental Release (NVIDIA GTX 1660)
Dawn Linux x64 Release (NVIDIA)
try
android-dawn-arm64-exp-rel
android-dawn-arm64-rel
dawn-android-arm64-deps-rel
dawn-linux-x64-deps-rel
linux-dawn-nvidia-1660-exp-rel
linux-dawn-rel
subprojects
targets

@ -29,6 +29,7 @@ from gpu_tests import gpu_integration_test
from gpu_tests import trace_integration_test as trace_it
from gpu_tests import webgl1_conformance_integration_test as webgl1_cit
from gpu_tests import webgl2_conformance_integration_test as webgl2_cit
from gpu_tests import webgpu_compat_cts_integration_test as webgpu_compat_cit
import gpu_path_util
@ -639,9 +640,12 @@ class GpuIntegrationTestUnittest(unittest.TestCase):
self.assertEqual(set(actual_skips), set(test_args.skips))
def RunFakeBrowserStartWithArgsAndGpuInfo(additional_args: List[str],
gpu_info: Any) -> None:
cls = gpu_integration_test.GpuIntegrationTest
def RunFakeBrowserStartWithArgsAndGpuInfo(
additional_args: List[str],
gpu_info: Any,
gpu_test_class: GpuTestClassType = gpu_integration_test.GpuIntegrationTest
) -> None:
cls = gpu_test_class
def FakeStartBrowser():
cls.browser = mock.Mock()
@ -821,6 +825,38 @@ class FeatureVerificationUnittest(unittest.TestCase):
# pylint: enable=no-self-use
class FeatureVerificationWebGPUCompatUnittest(unittest.TestCase):
# pylint: disable=no-self-use
def testVerifyCompatContextSuccessUnspecified(self):
"""Tests WebGPU compat verification that passes w/o the es31 flag."""
gpu_info = CreateGpuInfo(aux_attributes={
'gl_renderer': 'ANGLE OpenGL ES 3.1',
})
RunFakeBrowserStartWithArgsAndGpuInfo(
[], gpu_info, webgpu_compat_cit.WebGpuCompatCtsIntegrationTest)
def testVerifyCompatContextSuccessSpecified(self):
"""Tests WebGPU compat verification that passes w/ the es31 flag."""
gpu_info = CreateGpuInfo(aux_attributes={
'gl_renderer': 'ANGLE OpenGL ES 3.1',
})
RunFakeBrowserStartWithArgsAndGpuInfo(
['--use-dawn-features=gl_force_es_31_and_no_extensions'], gpu_info,
webgpu_compat_cit.WebGpuCompatCtsIntegrationTest)
# TODO(crbug.com/388318201): Uncomment the following test
# def testVerifyCompatContextFailure(self):
# """Tests WebGPU compat verification that fails."""
# gpu_info = CreateGpuInfo(aux_attributes={
# 'gl_renderer': 'ANGLE OpenGL ES 3.2',
# })
# with self.assertRaisesRegex(RuntimeError,
# 'Requested WebGPU compat context min ES31 .*'):
# RunFakeBrowserStartWithArgsAndGpuInfo(
# ['--use-dawn-features=gl_force_es_31_and_no_extensions'], gpu_info,
# webgpu_compat_cit.WebGpuCompatCtsIntegrationTest)
class PreemptArgsUnittest(unittest.TestCase):
def testNoConflictIsNoOp(self):

@ -78,6 +78,8 @@
# webgpu-service-worker
# webgpu-dedicated-worker
# webgpu-shared-worker ]
# WebGPU Compat context
# tags: [ compat-default compat-min-es31 ]
# Clang coverage
# tags: [ clang-coverage no-clang-coverage ]
# Skia Graphite

@ -78,6 +78,8 @@
# webgpu-service-worker
# webgpu-dedicated-worker
# webgpu-shared-worker ]
# WebGPU Compat context
# tags: [ compat-default compat-min-es31 ]
# Clang coverage
# tags: [ clang-coverage no-clang-coverage ]
# Skia Graphite

@ -78,6 +78,8 @@
# webgpu-service-worker
# webgpu-dedicated-worker
# webgpu-shared-worker ]
# WebGPU Compat context
# tags: [ compat-default compat-min-es31 ]
# Clang coverage
# tags: [ clang-coverage no-clang-coverage ]
# Skia Graphite

@ -78,6 +78,8 @@
# webgpu-service-worker
# webgpu-dedicated-worker
# webgpu-shared-worker ]
# WebGPU Compat context
# tags: [ compat-default compat-min-es31 ]
# Clang coverage
# tags: [ clang-coverage no-clang-coverage ]
# Skia Graphite

@ -78,6 +78,8 @@
# webgpu-service-worker
# webgpu-dedicated-worker
# webgpu-shared-worker ]
# WebGPU Compat context
# tags: [ compat-default compat-min-es31 ]
# Clang coverage
# tags: [ clang-coverage no-clang-coverage ]
# Skia Graphite

@ -78,6 +78,8 @@
# webgpu-service-worker
# webgpu-dedicated-worker
# webgpu-shared-worker ]
# WebGPU Compat context
# tags: [ compat-default compat-min-es31 ]
# Clang coverage
# tags: [ clang-coverage no-clang-coverage ]
# Skia Graphite

@ -78,6 +78,8 @@
# webgpu-service-worker
# webgpu-dedicated-worker
# webgpu-shared-worker ]
# WebGPU Compat context
# tags: [ compat-default compat-min-es31 ]
# Clang coverage
# tags: [ clang-coverage no-clang-coverage ]
# Skia Graphite

@ -78,6 +78,8 @@
# webgpu-service-worker
# webgpu-dedicated-worker
# webgpu-shared-worker ]
# WebGPU Compat context
# tags: [ compat-default compat-min-es31 ]
# Clang coverage
# tags: [ clang-coverage no-clang-coverage ]
# Skia Graphite

@ -78,6 +78,8 @@
# webgpu-service-worker
# webgpu-dedicated-worker
# webgpu-shared-worker ]
# WebGPU Compat context
# tags: [ compat-default compat-min-es31 ]
# Clang coverage
# tags: [ clang-coverage no-clang-coverage ]
# Skia Graphite

@ -78,6 +78,8 @@
# webgpu-service-worker
# webgpu-dedicated-worker
# webgpu-shared-worker ]
# WebGPU Compat context
# tags: [ compat-default compat-min-es31 ]
# Clang coverage
# tags: [ clang-coverage no-clang-coverage ]
# Skia Graphite

@ -78,6 +78,8 @@
# webgpu-service-worker
# webgpu-dedicated-worker
# webgpu-shared-worker ]
# WebGPU Compat context
# tags: [ compat-default compat-min-es31 ]
# Clang coverage
# tags: [ clang-coverage no-clang-coverage ]
# Skia Graphite

@ -78,6 +78,8 @@
# webgpu-service-worker
# webgpu-dedicated-worker
# webgpu-shared-worker ]
# WebGPU Compat context
# tags: [ compat-default compat-min-es31 ]
# Clang coverage
# tags: [ clang-coverage no-clang-coverage ]
# Skia Graphite

@ -78,6 +78,8 @@
# webgpu-service-worker
# webgpu-dedicated-worker
# webgpu-shared-worker ]
# WebGPU Compat context
# tags: [ compat-default compat-min-es31 ]
# Clang coverage
# tags: [ clang-coverage no-clang-coverage ]
# Skia Graphite

@ -7,6 +7,9 @@ import sys
from typing import Any, List, Set
import unittest
from telemetry.internal.platform import gpu_info as telemetry_gpu_info
from gpu_tests import common_typing as ct
from gpu_tests import gpu_integration_test
from gpu_tests import webgpu_cts_integration_test_base
@ -16,9 +19,10 @@ EXPECTATIONS_FILE = os.path.join(gpu_path_util.CHROMIUM_SRC_DIR, 'third_party',
'dawn', 'webgpu-cts',
'compat-expectations.txt')
class WebGpuCompatCtsIntegrationTest(
webgpu_cts_integration_test_base.WebGpuCtsIntegrationTestBase):
_use_min_es31 = False
@classmethod
def UseWebGpuCompatMode(cls) -> bool:
return True
@ -39,6 +43,43 @@ class WebGpuCompatCtsIntegrationTest(
def ExpectationsFiles(cls) -> List[str]:
return [EXPECTATIONS_FILE]
@classmethod
def GetPlatformTags(cls, browser: ct.Browser) -> List[str]:
tags = super().GetPlatformTags(browser)
if cls._use_min_es31:
tags.append('compat-min-es31')
else:
tags.append('compat-default')
return tags
@classmethod
def _DetermineExpectedFeatureValues(cls) -> None:
super()._DetermineExpectedFeatureValues()
browser_options = cls._finder_options.browser_options
if not browser_options or not browser_options.extra_browser_args:
return
for arg in browser_options.extra_browser_args:
if arg.startswith('--use-dawn-features='):
values = arg[len('--use-dawn-features='):]
for feature in values.split(','):
if feature == 'gl_force_es_31_and_no_extensions':
cls._use_min_es31 = True
@classmethod
def _VerifyBrowserFeaturesMatchExpectedValues(cls) -> None:
super()._VerifyBrowserFeaturesMatchExpectedValues()
gpu_info = cls.browser.GetSystemInfo().gpu
cls._VerifyWebGPUCompatBackend(gpu_info)
# pylint: disable=unused-argument
@classmethod
def _VerifyWebGPUCompatBackend(cls,
gpu_info: telemetry_gpu_info.GPUInfo) -> None:
"""Verifies that WebGPU's compat ANGLE backend is OpenGL ES 3.1"""
# TODO(crbug.com/388318201): Verify WebGPU Compat backend GLES version
return
def load_tests(_loader: unittest.TestLoader, _tests: Any,
_pattern: Any) -> unittest.TestSuite:

@ -194,7 +194,8 @@ class WebGpuCtsIntegrationTestBase(gpu_integration_test.GpuIntegrationTest):
cls._os_name = cls.browser.platform.GetOSName()
# Set up the slow tests expectations' tags to match the test runner
# expectations' tags
cls._GetSlowTests().set_tags(cls.child.expectations.tags)
if cls.child:
cls._GetSlowTests().set_tags(cls.child.expectations.tags)
@classmethod
def GenerateBrowserArgs(cls, additional_args: List[str]) -> List[str]:

@ -232,6 +232,8 @@ TAG_HEADER = """\
# webgpu-service-worker
# webgpu-dedicated-worker
# webgpu-shared-worker ]
# WebGPU Compat context
# tags: [ compat-default compat-min-es31 ]
# Clang coverage
# tags: [ clang-coverage no-clang-coverage ]
# Skia Graphite

@ -85,6 +85,46 @@
}
],
"isolated_scripts": [
{
"args": [
"webgpu_compat_cts",
"--show-stdout",
"--browser=android-chromium",
"--passthrough",
"-v",
"--stable-jobs",
"--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --enable-features=WebGPUExperimentalFeatures --use-webgpu-adapter=opengles --enable-dawn-features=gl_force_es_31_and_no_extensions --use-angle=gles --disable-features=Vulkan --force_high_performance_gpu",
"--enforce-browser-version",
"--jobs=1",
"--initial-find-device-attempts=3",
"--use-webgpu-power-preference=default-high-performance"
],
"merge": {
"script": "//testing/merge_scripts/standard_isolated_script_merge.py"
},
"name": "webgpu_cts_compat_min_es31_tests",
"resultdb": {
"enable": true,
"has_native_resultdb_integration": true
},
"swarming": {
"dimensions": {
"device_os": "AP1A.240405.002",
"device_os_type": "userdebug",
"device_type": "oriole",
"os": "Android",
"pool": "chromium.tests.gpu"
},
"expiration": 21600,
"hard_timeout": 1800,
"idempotent": false,
"io_timeout": 1800,
"service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
"shards": 36
},
"test": "telemetry_gpu_integration_test_android_chrome",
"test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test_android_chrome/"
},
{
"args": [
"webgpu_compat_cts",
@ -374,6 +414,45 @@
}
],
"isolated_scripts": [
{
"args": [
"webgpu_compat_cts",
"--show-stdout",
"--browser=android-chromium",
"--passthrough",
"-v",
"--stable-jobs",
"--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --enable-features=WebGPUExperimentalFeatures --use-webgpu-adapter=opengles --enable-dawn-features=gl_force_es_31_and_no_extensions --use-angle=gles --disable-features=Vulkan --force_high_performance_gpu",
"--enforce-browser-version",
"--jobs=1",
"--initial-find-device-attempts=3",
"--use-webgpu-power-preference=default-high-performance"
],
"merge": {
"script": "//testing/merge_scripts/standard_isolated_script_merge.py"
},
"name": "webgpu_cts_compat_min_es31_tests",
"resultdb": {
"enable": true,
"has_native_resultdb_integration": true
},
"swarming": {
"dimensions": {
"device_os": "TP1A.220624.021",
"device_os_type": "userdebug",
"device_type": "oriole",
"os": "Android",
"pool": "chromium.tests.gpu"
},
"hard_timeout": 1800,
"idempotent": false,
"io_timeout": 1800,
"service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
"shards": 36
},
"test": "telemetry_gpu_integration_test_android_chrome",
"test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test_android_chrome/"
},
{
"args": [
"webgpu_compat_cts",

@ -83,6 +83,45 @@
}
],
"isolated_scripts": [
{
"args": [
"webgpu_compat_cts",
"--show-stdout",
"--browser=android-chromium",
"--passthrough",
"-v",
"--stable-jobs",
"--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --enable-features=WebGPUExperimentalFeatures --use-webgpu-adapter=opengles --enable-dawn-features=gl_force_es_31_and_no_extensions --use-angle=gles --disable-features=Vulkan --force_high_performance_gpu",
"--enforce-browser-version",
"--jobs=1",
"--initial-find-device-attempts=3",
"--use-webgpu-power-preference=default-high-performance"
],
"merge": {
"script": "//testing/merge_scripts/standard_isolated_script_merge.py"
},
"name": "webgpu_cts_compat_min_es31_tests",
"resultdb": {
"enable": true,
"has_native_resultdb_integration": true
},
"swarming": {
"dimensions": {
"device_os": "TP1A.220624.021",
"device_os_type": "userdebug",
"device_type": "oriole",
"os": "Android",
"pool": "chromium.tests.gpu"
},
"hard_timeout": 1800,
"idempotent": false,
"io_timeout": 1800,
"service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
"shards": 36
},
"test": "telemetry_gpu_integration_test_android_chrome",
"test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test_android_chrome/"
},
{
"args": [
"webgpu_compat_cts",

@ -83,6 +83,45 @@
}
],
"isolated_scripts": [
{
"args": [
"webgpu_compat_cts",
"--show-stdout",
"--browser=android-chromium",
"--passthrough",
"-v",
"--stable-jobs",
"--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --enable-features=WebGPUExperimentalFeatures --use-webgpu-adapter=opengles --enable-dawn-features=gl_force_es_31_and_no_extensions --use-angle=gles --disable-features=Vulkan --force_high_performance_gpu",
"--enforce-browser-version",
"--jobs=1",
"--initial-find-device-attempts=3",
"--use-webgpu-power-preference=default-high-performance"
],
"merge": {
"script": "//testing/merge_scripts/standard_isolated_script_merge.py"
},
"name": "webgpu_cts_compat_min_es31_tests",
"resultdb": {
"enable": true,
"has_native_resultdb_integration": true
},
"swarming": {
"dimensions": {
"device_os": "TP1A.220624.021",
"device_os_type": "userdebug",
"device_type": "oriole",
"os": "Android",
"pool": "chromium.tests.gpu"
},
"hard_timeout": 1800,
"idempotent": false,
"io_timeout": 1800,
"service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
"shards": 36
},
"test": "telemetry_gpu_integration_test_android_chrome",
"test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test_android_chrome/"
},
{
"args": [
"webgpu_compat_cts",

@ -85,6 +85,46 @@
}
],
"isolated_scripts": [
{
"args": [
"webgpu_compat_cts",
"--show-stdout",
"--browser=android-chromium",
"--passthrough",
"-v",
"--stable-jobs",
"--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --enable-features=WebGPUExperimentalFeatures --use-webgpu-adapter=opengles --enable-dawn-features=gl_force_es_31_and_no_extensions --use-angle=gles --disable-features=Vulkan --force_high_performance_gpu",
"--enforce-browser-version",
"--jobs=1",
"--initial-find-device-attempts=3",
"--use-webgpu-power-preference=default-high-performance"
],
"merge": {
"script": "//testing/merge_scripts/standard_isolated_script_merge.py"
},
"name": "webgpu_cts_compat_min_es31_tests",
"resultdb": {
"enable": true,
"has_native_resultdb_integration": true
},
"swarming": {
"dimensions": {
"device_os": "AP1A.240405.002",
"device_os_type": "userdebug",
"device_type": "oriole",
"os": "Android",
"pool": "chromium.tests.gpu"
},
"expiration": 21600,
"hard_timeout": 1800,
"idempotent": false,
"io_timeout": 1800,
"service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
"shards": 36
},
"test": "telemetry_gpu_integration_test_android_chrome",
"test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test_android_chrome/"
},
{
"args": [
"webgpu_compat_cts",

@ -83,6 +83,45 @@
}
],
"isolated_scripts": [
{
"args": [
"webgpu_compat_cts",
"--show-stdout",
"--browser=android-chromium",
"--passthrough",
"-v",
"--stable-jobs",
"--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --enable-features=WebGPUExperimentalFeatures --use-webgpu-adapter=opengles --enable-dawn-features=gl_force_es_31_and_no_extensions --use-angle=gles --disable-features=Vulkan --force_high_performance_gpu",
"--enforce-browser-version",
"--jobs=1",
"--initial-find-device-attempts=3",
"--use-webgpu-power-preference=default-high-performance"
],
"merge": {
"script": "//testing/merge_scripts/standard_isolated_script_merge.py"
},
"name": "webgpu_cts_compat_min_es31_tests",
"resultdb": {
"enable": true,
"has_native_resultdb_integration": true
},
"swarming": {
"dimensions": {
"device_os": "TP1A.220624.021",
"device_os_type": "userdebug",
"device_type": "oriole",
"os": "Android",
"pool": "chromium.tests.gpu"
},
"hard_timeout": 1800,
"idempotent": false,
"io_timeout": 1800,
"service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
"shards": 36
},
"test": "telemetry_gpu_integration_test_android_chrome",
"test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test_android_chrome/"
},
{
"args": [
"webgpu_compat_cts",

@ -348,6 +348,43 @@
"test": "webgpu_blink_web_tests",
"test_id_prefix": "ninja://:webgpu_blink_web_tests/"
},
{
"args": [
"webgpu_compat_cts",
"--show-stdout",
"--browser=release",
"--passthrough",
"-v",
"--stable-jobs",
"--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --enable-features=WebGPUExperimentalFeatures --use-webgpu-adapter=opengles --enable-dawn-features=gl_force_es_31_and_no_extensions --use-angle=gl --force_high_performance_gpu",
"--enforce-browser-version",
"--jobs=4",
"--use-webgpu-power-preference=default-high-performance"
],
"merge": {
"script": "//testing/merge_scripts/standard_isolated_script_merge.py"
},
"name": "webgpu_cts_compat_min_es31_tests",
"resultdb": {
"enable": true,
"has_native_resultdb_integration": true
},
"swarming": {
"dimensions": {
"gpu": "10de:2184-535.183.01",
"os": "Ubuntu-22.04",
"pool": "chromium.tests.gpu"
},
"expiration": 21600,
"hard_timeout": 1800,
"idempotent": false,
"io_timeout": 1800,
"service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
"shards": 14
},
"test": "telemetry_gpu_integration_test",
"test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/"
},
{
"args": [
"webgpu_compat_cts",
@ -2250,6 +2287,42 @@
"test": "webgpu_blink_web_tests",
"test_id_prefix": "ninja://:webgpu_blink_web_tests/"
},
{
"args": [
"webgpu_compat_cts",
"--show-stdout",
"--browser=release",
"--passthrough",
"-v",
"--stable-jobs",
"--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --enable-features=WebGPUExperimentalFeatures --use-webgpu-adapter=opengles --enable-dawn-features=gl_force_es_31_and_no_extensions --use-angle=gl --force_high_performance_gpu",
"--enforce-browser-version",
"--jobs=4",
"--use-webgpu-power-preference=default-high-performance"
],
"merge": {
"script": "//testing/merge_scripts/standard_isolated_script_merge.py"
},
"name": "webgpu_cts_compat_min_es31_tests",
"resultdb": {
"enable": true,
"has_native_resultdb_integration": true
},
"swarming": {
"dimensions": {
"gpu": "10de:2184-440.100",
"os": "Ubuntu-18.04.5|Ubuntu-18.04.6",
"pool": "chromium.tests.gpu"
},
"hard_timeout": 1800,
"idempotent": false,
"io_timeout": 1800,
"service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
"shards": 14
},
"test": "telemetry_gpu_integration_test",
"test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/"
},
{
"args": [
"webgpu_compat_cts",

@ -855,6 +855,42 @@
"test": "webgpu_blink_web_tests",
"test_id_prefix": "ninja://:webgpu_blink_web_tests/"
},
{
"args": [
"webgpu_compat_cts",
"--show-stdout",
"--browser=release",
"--passthrough",
"-v",
"--stable-jobs",
"--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --enable-features=WebGPUExperimentalFeatures --use-webgpu-adapter=opengles --enable-dawn-features=gl_force_es_31_and_no_extensions --use-angle=gl --force_high_performance_gpu",
"--enforce-browser-version",
"--jobs=4",
"--use-webgpu-power-preference=default-high-performance"
],
"merge": {
"script": "//testing/merge_scripts/standard_isolated_script_merge.py"
},
"name": "webgpu_cts_compat_min_es31_tests",
"resultdb": {
"enable": true,
"has_native_resultdb_integration": true
},
"swarming": {
"dimensions": {
"gpu": "10de:2184-440.100",
"os": "Ubuntu-18.04.5|Ubuntu-18.04.6",
"pool": "chromium.tests.gpu"
},
"hard_timeout": 1800,
"idempotent": false,
"io_timeout": 1800,
"service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
"shards": 14
},
"test": "telemetry_gpu_integration_test",
"test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/"
},
{
"args": [
"webgpu_compat_cts",

@ -300,6 +300,42 @@
"test": "webgpu_blink_web_tests",
"test_id_prefix": "ninja://:webgpu_blink_web_tests/"
},
{
"args": [
"webgpu_compat_cts",
"--show-stdout",
"--browser=release",
"--passthrough",
"-v",
"--stable-jobs",
"--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --enable-features=WebGPUExperimentalFeatures --use-webgpu-adapter=opengles --enable-dawn-features=gl_force_es_31_and_no_extensions --use-angle=gl --force_high_performance_gpu",
"--enforce-browser-version",
"--jobs=4",
"--use-webgpu-power-preference=default-high-performance"
],
"merge": {
"script": "//testing/merge_scripts/standard_isolated_script_merge.py"
},
"name": "webgpu_cts_compat_min_es31_tests",
"resultdb": {
"enable": true,
"has_native_resultdb_integration": true
},
"swarming": {
"dimensions": {
"gpu": "10de:2184-440.100",
"os": "Ubuntu-18.04.5|Ubuntu-18.04.6",
"pool": "chromium.tests.gpu"
},
"hard_timeout": 1800,
"idempotent": false,
"io_timeout": 1800,
"service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
"shards": 14
},
"test": "telemetry_gpu_integration_test",
"test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/"
},
{
"args": [
"webgpu_compat_cts",

@ -311,6 +311,43 @@
"test": "webgpu_blink_web_tests",
"test_id_prefix": "ninja://:webgpu_blink_web_tests/"
},
{
"args": [
"webgpu_compat_cts",
"--show-stdout",
"--browser=release",
"--passthrough",
"-v",
"--stable-jobs",
"--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --enable-features=WebGPUExperimentalFeatures --use-webgpu-adapter=opengles --enable-dawn-features=gl_force_es_31_and_no_extensions --use-angle=gl --force_high_performance_gpu",
"--enforce-browser-version",
"--jobs=4",
"--use-webgpu-power-preference=default-high-performance"
],
"merge": {
"script": "//testing/merge_scripts/standard_isolated_script_merge.py"
},
"name": "webgpu_cts_compat_min_es31_tests",
"resultdb": {
"enable": true,
"has_native_resultdb_integration": true
},
"swarming": {
"dimensions": {
"gpu": "10de:2184-535.183.01",
"os": "Ubuntu-22.04",
"pool": "chromium.tests.gpu"
},
"expiration": 21600,
"hard_timeout": 1800,
"idempotent": false,
"io_timeout": 1800,
"service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
"shards": 14
},
"test": "telemetry_gpu_integration_test",
"test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/"
},
{
"args": [
"webgpu_compat_cts",

@ -300,6 +300,42 @@
"test": "webgpu_blink_web_tests",
"test_id_prefix": "ninja://:webgpu_blink_web_tests/"
},
{
"args": [
"webgpu_compat_cts",
"--show-stdout",
"--browser=release",
"--passthrough",
"-v",
"--stable-jobs",
"--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --enable-features=WebGPUExperimentalFeatures --use-webgpu-adapter=opengles --enable-dawn-features=gl_force_es_31_and_no_extensions --use-angle=gl --force_high_performance_gpu",
"--enforce-browser-version",
"--jobs=4",
"--use-webgpu-power-preference=default-high-performance"
],
"merge": {
"script": "//testing/merge_scripts/standard_isolated_script_merge.py"
},
"name": "webgpu_cts_compat_min_es31_tests",
"resultdb": {
"enable": true,
"has_native_resultdb_integration": true
},
"swarming": {
"dimensions": {
"gpu": "10de:2184-440.100",
"os": "Ubuntu-18.04.5|Ubuntu-18.04.6",
"pool": "chromium.tests.gpu"
},
"hard_timeout": 1800,
"idempotent": false,
"io_timeout": 1800,
"service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
"shards": 14
},
"test": "telemetry_gpu_integration_test",
"test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/"
},
{
"args": [
"webgpu_compat_cts",

@ -85,6 +85,46 @@
}
],
"isolated_scripts": [
{
"args": [
"webgpu_compat_cts",
"--show-stdout",
"--browser=android-chromium",
"--passthrough",
"-v",
"--stable-jobs",
"--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --enable-features=WebGPUExperimentalFeatures --use-webgpu-adapter=opengles --enable-dawn-features=gl_force_es_31_and_no_extensions --use-angle=gles --disable-features=Vulkan --force_high_performance_gpu",
"--enforce-browser-version",
"--jobs=1",
"--initial-find-device-attempts=3",
"--use-webgpu-power-preference=default-high-performance"
],
"merge": {
"script": "//testing/merge_scripts/standard_isolated_script_merge.py"
},
"name": "webgpu_cts_compat_min_es31_tests",
"resultdb": {
"enable": true,
"has_native_resultdb_integration": true
},
"swarming": {
"dimensions": {
"device_os": "AP1A.240405.002",
"device_os_type": "userdebug",
"device_type": "oriole",
"os": "Android",
"pool": "chromium.tests.gpu"
},
"expiration": 21600,
"hard_timeout": 1800,
"idempotent": false,
"io_timeout": 1800,
"service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
"shards": 36
},
"test": "telemetry_gpu_integration_test_android_chrome",
"test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test_android_chrome/"
},
{
"args": [
"webgpu_compat_cts",

@ -83,6 +83,45 @@
}
],
"isolated_scripts": [
{
"args": [
"webgpu_compat_cts",
"--show-stdout",
"--browser=android-chromium",
"--passthrough",
"-v",
"--stable-jobs",
"--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --enable-features=WebGPUExperimentalFeatures --use-webgpu-adapter=opengles --enable-dawn-features=gl_force_es_31_and_no_extensions --use-angle=gles --disable-features=Vulkan --force_high_performance_gpu",
"--enforce-browser-version",
"--jobs=1",
"--initial-find-device-attempts=3",
"--use-webgpu-power-preference=default-high-performance"
],
"merge": {
"script": "//testing/merge_scripts/standard_isolated_script_merge.py"
},
"name": "webgpu_cts_compat_min_es31_tests",
"resultdb": {
"enable": true,
"has_native_resultdb_integration": true
},
"swarming": {
"dimensions": {
"device_os": "TP1A.220624.021",
"device_os_type": "userdebug",
"device_type": "oriole",
"os": "Android",
"pool": "chromium.tests.gpu"
},
"hard_timeout": 1800,
"idempotent": false,
"io_timeout": 1800,
"service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
"shards": 36
},
"test": "telemetry_gpu_integration_test_android_chrome",
"test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test_android_chrome/"
},
{
"args": [
"webgpu_compat_cts",

@ -83,6 +83,45 @@
}
],
"isolated_scripts": [
{
"args": [
"webgpu_compat_cts",
"--show-stdout",
"--browser=android-chromium",
"--passthrough",
"-v",
"--stable-jobs",
"--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --enable-features=WebGPUExperimentalFeatures --use-webgpu-adapter=opengles --enable-dawn-features=gl_force_es_31_and_no_extensions --use-angle=gles --disable-features=Vulkan --force_high_performance_gpu",
"--enforce-browser-version",
"--jobs=1",
"--initial-find-device-attempts=3",
"--use-webgpu-power-preference=default-high-performance"
],
"merge": {
"script": "//testing/merge_scripts/standard_isolated_script_merge.py"
},
"name": "webgpu_cts_compat_min_es31_tests",
"resultdb": {
"enable": true,
"has_native_resultdb_integration": true
},
"swarming": {
"dimensions": {
"device_os": "TP1A.220624.021",
"device_os_type": "userdebug",
"device_type": "oriole",
"os": "Android",
"pool": "chromium.tests.gpu"
},
"hard_timeout": 1800,
"idempotent": false,
"io_timeout": 1800,
"service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
"shards": 36
},
"test": "telemetry_gpu_integration_test_android_chrome",
"test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test_android_chrome/"
},
{
"args": [
"webgpu_compat_cts",

@ -855,6 +855,42 @@
"test": "webgpu_blink_web_tests",
"test_id_prefix": "ninja://:webgpu_blink_web_tests/"
},
{
"args": [
"webgpu_compat_cts",
"--show-stdout",
"--browser=release",
"--passthrough",
"-v",
"--stable-jobs",
"--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --enable-features=WebGPUExperimentalFeatures --use-webgpu-adapter=opengles --enable-dawn-features=gl_force_es_31_and_no_extensions --use-angle=gl --force_high_performance_gpu",
"--enforce-browser-version",
"--jobs=4",
"--use-webgpu-power-preference=default-high-performance"
],
"merge": {
"script": "//testing/merge_scripts/standard_isolated_script_merge.py"
},
"name": "webgpu_cts_compat_min_es31_tests",
"resultdb": {
"enable": true,
"has_native_resultdb_integration": true
},
"swarming": {
"dimensions": {
"gpu": "10de:2184-440.100",
"os": "Ubuntu-18.04.5|Ubuntu-18.04.6",
"pool": "chromium.tests.gpu"
},
"hard_timeout": 1800,
"idempotent": false,
"io_timeout": 1800,
"service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
"shards": 14
},
"test": "telemetry_gpu_integration_test",
"test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/"
},
{
"args": [
"webgpu_compat_cts",

@ -312,6 +312,43 @@
"test": "webgpu_blink_web_tests",
"test_id_prefix": "ninja://:webgpu_blink_web_tests/"
},
{
"args": [
"webgpu_compat_cts",
"--show-stdout",
"--browser=release",
"--passthrough",
"-v",
"--stable-jobs",
"--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --enable-features=WebGPUExperimentalFeatures --use-webgpu-adapter=opengles --enable-dawn-features=gl_force_es_31_and_no_extensions --use-angle=gl --force_high_performance_gpu",
"--enforce-browser-version",
"--jobs=4",
"--use-webgpu-power-preference=default-high-performance"
],
"merge": {
"script": "//testing/merge_scripts/standard_isolated_script_merge.py"
},
"name": "webgpu_cts_compat_min_es31_tests",
"resultdb": {
"enable": true,
"has_native_resultdb_integration": true
},
"swarming": {
"dimensions": {
"gpu": "10de:2184-535.183.01",
"os": "Ubuntu-22.04",
"pool": "chromium.tests.gpu"
},
"expiration": 21600,
"hard_timeout": 1800,
"idempotent": false,
"io_timeout": 1800,
"service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
"shards": 14
},
"test": "telemetry_gpu_integration_test",
"test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/"
},
{
"args": [
"webgpu_compat_cts",

@ -855,6 +855,42 @@
"test": "webgpu_blink_web_tests",
"test_id_prefix": "ninja://:webgpu_blink_web_tests/"
},
{
"args": [
"webgpu_compat_cts",
"--show-stdout",
"--browser=release",
"--passthrough",
"-v",
"--stable-jobs",
"--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --enable-features=WebGPUExperimentalFeatures --use-webgpu-adapter=opengles --enable-dawn-features=gl_force_es_31_and_no_extensions --use-angle=gl --force_high_performance_gpu",
"--enforce-browser-version",
"--jobs=4",
"--use-webgpu-power-preference=default-high-performance"
],
"merge": {
"script": "//testing/merge_scripts/standard_isolated_script_merge.py"
},
"name": "webgpu_cts_compat_min_es31_tests",
"resultdb": {
"enable": true,
"has_native_resultdb_integration": true
},
"swarming": {
"dimensions": {
"gpu": "10de:2184-440.100",
"os": "Ubuntu-18.04.5|Ubuntu-18.04.6",
"pool": "chromium.tests.gpu"
},
"hard_timeout": 1800,
"idempotent": false,
"io_timeout": 1800,
"service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
"shards": 14
},
"test": "telemetry_gpu_integration_test",
"test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/"
},
{
"args": [
"webgpu_compat_cts",

@ -501,6 +501,9 @@ ci.thin_tester(
ci_only = True,
experiment_percentage = 100,
),
"webgpu_cts_compat_min_es31_tests": targets.remove(
reason = "Limited capacity, and already many suppressions in default compat, so remove.",
),
"webgpu_cts_dedicated_worker_tests": targets.remove(
reason = "We only need coverage on one GPU per OS, so remove from lower capacity configs.",
),
@ -1165,6 +1168,9 @@ ci.thin_tester(
# ci_only = True,
# experiment_percentage = 100,
# ),
# "webgpu_cts_compat_min_es31_tests": targets.remove(
# reason = "Limited capacity, and already many suppressions in default compat, so remove.",
# ),
# "webgpu_cts_dedicated_worker_tests": targets.remove(
# reason = "We only need coverage on one GPU per OS, so remove from lower capacity configs.",
# ),
@ -1277,6 +1283,9 @@ ci.thin_tester(
ci_only = True,
experiment_percentage = 100,
),
"webgpu_cts_compat_min_es31_tests": targets.remove(
reason = "Limited capacity, and already many suppressions in default compat, so remove.",
),
"webgpu_cts_dedicated_worker_tests": targets.remove(
reason = "We only need coverage on one GPU per OS, so remove from lower capacity configs.",
),
@ -1337,6 +1346,9 @@ ci.thin_tester(
"linux_intel_uhd_770_stable",
],
per_test_modifications = {
"webgpu_cts_compat_min_es31_tests": targets.remove(
reason = "Limited capacity, and already many suppressions in default compat, so remove.",
),
"gl_tests_passthrough": targets.mixin(
args = [
"--test-launcher-filter-file=../../testing/buildbot/filters/linux.uhd_770.gl_tests_passthrough.filter",

@ -3756,6 +3756,7 @@ targets.bundle(
name = "gpu_dawn_webgpu_compat_cts",
targets = [
"webgpu_cts_compat_tests",
"webgpu_cts_compat_min_es31_tests",
],
per_test_modifications = {
# Worker versions of compat tests intentionally omitted since it is
@ -3781,6 +3782,27 @@ targets.bundle(
"gpu_integration_test_common_args",
"webgpu_telemetry_cts",
],
"webgpu_cts_compat_min_es31_tests": [
targets.mixin(
args = [
"--extra-browser-args=--enable-features=WebGPUExperimentalFeatures --use-webgpu-adapter=opengles --enable-dawn-features=gl_force_es_31_and_no_extensions",
],
android_args = [
"--extra-browser-args=--use-angle=gles --disable-features=Vulkan",
],
linux_args = [
"--extra-browser-args=--use-angle=gl",
],
swarming = targets.swarming(
shards = 14,
),
android_swarming = targets.swarming(
shards = 36,
),
),
"gpu_integration_test_common_args",
"webgpu_telemetry_cts",
],
},
)

@ -3039,6 +3039,14 @@ targets.tests.gpu_telemetry_test(
],
)
targets.tests.gpu_telemetry_test(
name = "webgpu_cts_compat_min_es31_tests",
telemetry_test_name = "webgpu_compat_cts",
mixins = [
"has_native_resultdb_integration",
],
)
targets.tests.gpu_telemetry_test(
name = "webgpu_cts_fxc_tests",
telemetry_test_name = "webgpu_cts",