diff --git a/checkbox-support/checkbox_support/helpers/host_utils.py b/checkbox-support/checkbox_support/helpers/host_utils.py index 387db7f50e..5734684bf0 100644 --- a/checkbox-support/checkbox_support/helpers/host_utils.py +++ b/checkbox-support/checkbox_support/helpers/host_utils.py @@ -16,7 +16,7 @@ # You should have received a copy of the GNU General Public License # along with Checkbox. If not, see . -"""Shared utilities for host Vulkan test helpers.""" +"""Shared utilities for host GPU test helpers.""" import os import shutil @@ -24,8 +24,8 @@ import sysconfig -class VulkanDetectionError(Exception): - """Raised when a GPU/Vulkan detection step fails.""" +class HostGPUDetectionError(Exception): + """Raised when a host GPU detection step fails.""" def get_arch_triple(): @@ -38,11 +38,11 @@ def get_arch_triple(): def find_plz_run(): """Return the path to plz-run from PATH. - Raises VulkanDetectionError if plz-run is not found. + Raises HostGPUDetectionError if plz-run is not found. """ path = shutil.which("plz-run") if path is None: - raise VulkanDetectionError("plz-run not found in PATH") + raise HostGPUDetectionError("plz-run not found in PATH") return path @@ -69,7 +69,7 @@ def prime_selected_vendor(): """Return the GPU vendor chosen by prime-select. Returns one of the keys in _PRIME_VENDOR_ICD_PREFIXES. - Raises VulkanDetectionError if prime-select is not installed, fails, + Raises HostGPUDetectionError if prime-select is not installed, fails, or returns an unrecognised value (e.g. 'on-demand'). """ try: @@ -83,9 +83,9 @@ def prime_selected_vendor(): .lower() ) except (OSError, subprocess.CalledProcessError) as e: - raise VulkanDetectionError("prime-select query failed") from e + raise HostGPUDetectionError("prime-select query failed") from e if output not in _PRIME_VENDOR_ICD_PREFIXES: - raise VulkanDetectionError( + raise HostGPUDetectionError( "prime-select returned unrecognised value: {!r}".format(output) ) return output @@ -96,7 +96,7 @@ def _run_vulkaninfo(plz_run, arch_triple): vulkaninfo is executed inside a new mount/user namespace (via plz-run) so that it uses the host ICD stack instead of snap-bundled libraries. - Raises VulkanDetectionError if vulkaninfo fails. + Raises HostGPUDetectionError if vulkaninfo fails. """ ld_library_path = "/usr/lib/{arch}:/usr/lib".format(arch=arch_triple) try: @@ -117,7 +117,7 @@ def _run_vulkaninfo(plz_run, arch_triple): stderr=subprocess.STDOUT, ) except subprocess.CalledProcessError as e: - raise VulkanDetectionError("vulkaninfo failed") from e + raise HostGPUDetectionError("vulkaninfo failed") from e def _vendor_prefixes_from_vulkaninfo(output): @@ -127,7 +127,7 @@ def _vendor_prefixes_from_vulkaninfo(output): Matches on the vendorID field which is unambiguous across driver versions and device names. The field is right-padded with spaces for alignment, so each line is stripped before matching. - Raises VulkanDetectionError if no known vendor is found. + Raises HostGPUDetectionError if no known vendor is found. """ for line in output.splitlines(): stripped = line.strip() @@ -136,7 +136,7 @@ def _vendor_prefixes_from_vulkaninfo(output): for vid, prefixes in _PCI_VENDOR_ICD_PREFIXES.items(): if vid in stripped: return prefixes - raise VulkanDetectionError( + raise HostGPUDetectionError( "no known GPU vendor found in vulkaninfo output" ) @@ -146,14 +146,14 @@ def active_vendor_prefixes(): Tries prime-select first (authoritative on PRIME multi-GPU systems), then falls back to vulkaninfo via plz-run. - Raises VulkanDetectionError if no method identifies the vendor. + Raises HostGPUDetectionError if no method identifies the vendor. """ # prime-select is only present on NVIDIA hybrid systems; # absence or unrecognised output is normal — fall through. try: vendor = prime_selected_vendor() return _PRIME_VENDOR_ICD_PREFIXES[vendor] - except VulkanDetectionError: + except HostGPUDetectionError: pass plz_run = find_plz_run() @@ -176,7 +176,7 @@ def find_host_icd_filenames(vendor_prefixes=None): try: entries = sorted(os.listdir(icd_dir)) except OSError as e: - raise VulkanDetectionError( + raise HostGPUDetectionError( "cannot read Vulkan ICD directory {}".format(icd_dir) ) from e result = [] @@ -197,7 +197,7 @@ def check_host_gpu(plz_run, arch_triple): """Return True if a physical GPU is available via host Vulkan drivers.""" try: output = _run_vulkaninfo(plz_run, arch_triple) - except VulkanDetectionError: + except HostGPUDetectionError: return False return any( t in output diff --git a/checkbox-support/checkbox_support/helpers/tests/test_host_utils.py b/checkbox-support/checkbox_support/helpers/tests/test_host_utils.py index ad4530d263..5b98af1a93 100644 --- a/checkbox-support/checkbox_support/helpers/tests/test_host_utils.py +++ b/checkbox-support/checkbox_support/helpers/tests/test_host_utils.py @@ -31,7 +31,7 @@ def test_returns_path_when_found(self, _which): @patch("shutil.which", return_value=None) def test_raises_when_not_found(self, _which): - with self.assertRaises(host_utils.VulkanDetectionError): + with self.assertRaises(host_utils.HostGPUDetectionError): host_utils.find_plz_run() @@ -184,12 +184,12 @@ def test_returns_known_vendor(self, _mock): @patch("subprocess.check_output", return_value="on-demand\n") def test_raises_for_on_demand(self, _mock): - with self.assertRaises(host_utils.VulkanDetectionError): + with self.assertRaises(host_utils.HostGPUDetectionError): host_utils.prime_selected_vendor() @patch("subprocess.check_output", side_effect=FileNotFoundError) def test_raises_when_prime_select_not_found(self, _mock): - with self.assertRaises(host_utils.VulkanDetectionError): + with self.assertRaises(host_utils.HostGPUDetectionError): host_utils.prime_selected_vendor() @patch( @@ -197,7 +197,7 @@ def test_raises_when_prime_select_not_found(self, _mock): side_effect=subprocess.CalledProcessError(1, "prime-select"), ) def test_raises_on_error(self, _mock): - with self.assertRaises(host_utils.VulkanDetectionError): + with self.assertRaises(host_utils.HostGPUDetectionError): host_utils.prime_selected_vendor() @@ -210,12 +210,12 @@ def test_returns_prefixes_for_known_vendor(self): def test_raises_for_unknown_vendor(self): output = " vendorID = 0x1234\n" - with self.assertRaises(host_utils.VulkanDetectionError): + with self.assertRaises(host_utils.HostGPUDetectionError): host_utils._vendor_prefixes_from_vulkaninfo(output) def test_raises_when_no_vendorid_line(self): output = "deviceType = PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU\n" - with self.assertRaises(host_utils.VulkanDetectionError): + with self.assertRaises(host_utils.HostGPUDetectionError): host_utils._vendor_prefixes_from_vulkaninfo(output) @@ -229,7 +229,7 @@ def test_returns_prime_vendor(self, _prime): @patch( "checkbox_support.helpers.host_utils.prime_selected_vendor", - side_effect=host_utils.VulkanDetectionError, + side_effect=host_utils.HostGPUDetectionError, ) @patch( "checkbox_support.helpers.host_utils.find_plz_run", @@ -248,14 +248,14 @@ def test_returns_vulkaninfo_vendor(self, _vkinfo, _arch, _plz, _prime): @patch( "checkbox_support.helpers.host_utils.prime_selected_vendor", - side_effect=host_utils.VulkanDetectionError, + side_effect=host_utils.HostGPUDetectionError, ) @patch( "checkbox_support.helpers.host_utils.find_plz_run", - side_effect=host_utils.VulkanDetectionError, + side_effect=host_utils.HostGPUDetectionError, ) def test_raises_when_all_methods_fail(self, _plz, _prime): - with self.assertRaises(host_utils.VulkanDetectionError): + with self.assertRaises(host_utils.HostGPUDetectionError): host_utils.active_vendor_prefixes() @@ -291,7 +291,7 @@ def test_skips_non_json_files(self): def test_raises_when_icd_dir_missing(self): with patch("os.listdir", side_effect=OSError): - with self.assertRaises(host_utils.VulkanDetectionError): + with self.assertRaises(host_utils.HostGPUDetectionError): host_utils.find_host_icd_filenames() diff --git a/providers/base/bin/cl_host.py b/providers/base/bin/cl_host.py index 8751267dab..66e21cba1b 100755 --- a/providers/base/bin/cl_host.py +++ b/providers/base/bin/cl_host.py @@ -35,7 +35,7 @@ import sys from checkbox_support.helpers.host_utils import ( - VulkanDetectionError, + HostGPUDetectionError, find_plz_run, get_arch_triple, ) @@ -78,7 +78,7 @@ def cmd_resource(): try: plz_run = find_plz_run() - except VulkanDetectionError as exc: + except HostGPUDetectionError as exc: print("FAIL: {}".format(exc), file=sys.stderr) return 1 diff --git a/providers/base/bin/crucible_host.py b/providers/base/bin/crucible_host.py index 72ab840262..05ca25e5f2 100755 --- a/providers/base/bin/crucible_host.py +++ b/providers/base/bin/crucible_host.py @@ -35,7 +35,7 @@ import sys from checkbox_support.helpers.host_utils import ( - VulkanDetectionError, + HostGPUDetectionError, active_vendor_prefixes, check_host_gpu, find_host_icd_filenames, @@ -107,7 +107,7 @@ def main(): else: logging.error("Unknown command: %s", command) return 1 - except (RuntimeError, VulkanDetectionError) as exc: + except (RuntimeError, HostGPUDetectionError) as exc: logging.error("%s", exc) return 1 diff --git a/providers/base/bin/gl_host.py b/providers/base/bin/gl_host.py index fc74f890fe..6723c14c7b 100755 --- a/providers/base/bin/gl_host.py +++ b/providers/base/bin/gl_host.py @@ -36,7 +36,7 @@ import sys from checkbox_support.helpers.host_utils import ( - VulkanDetectionError, + HostGPUDetectionError, find_plz_run, get_arch_triple, ) @@ -142,7 +142,7 @@ def main(): else: logging.error("Unknown command: %s", command) return 1 - except (RuntimeError, OpenGLError, VulkanDetectionError) as exc: + except (RuntimeError, OpenGLError, HostGPUDetectionError) as exc: logging.error("%s", exc) return 1 return 0 diff --git a/providers/base/bin/lz_host.py b/providers/base/bin/lz_host.py new file mode 100755 index 0000000000..a5ce809f43 --- /dev/null +++ b/providers/base/bin/lz_host.py @@ -0,0 +1,131 @@ +#!/usr/bin/env python3 +# This file is part of Checkbox. +# +# Copyright 2025 Canonical Ltd. +# Written by: +# Shane McKee +# +# Checkbox is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 3, +# as published by the Free Software Foundation. +# +# Checkbox is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Checkbox. If not, see . + +""" +Host Level Zero helper for Checkbox. + +Subcommands: + resource Emit a resource record if a GPU is available via host + Level Zero drivers (used by depends: + graphics/lz_classic_gpu_avail). + validate-install Emit a resource record if the host Level Zero ICD loader + is installed (used by depends: + graphics/lz_classic_lz_avail). + run-test ARGS... Run a level-zero-tests test binary with --no-confinement, + forwarding all remaining arguments to the test. +""" + +import glob +import logging +import os +import subprocess +import sys + +from checkbox_support.helpers.host_utils import ( + HostGPUDetectionError, + find_plz_run, + get_arch_triple, +) + + +def check_host_gpu(plz_run, arch_triple): + """Check for a Level Zero GPU by probing render device nodes. + + plz-run is used to escape snap confinement so that the host device + nodes and libraries are visible. + """ + render_nodes = glob.glob("/dev/dri/renderD*") + if not render_nodes: + logging.error("No render device nodes found in /dev/dri") + return False + loader = "/usr/lib/{}/libze_loader.so.1".format(arch_triple) + if not os.path.isfile(loader): + logging.error("Host Level Zero loader not found at %s", loader) + return False + logging.info("Found render device(s) and Level Zero loader at %s", loader) + return True + + +def cmd_resource(): + arch_triple = get_arch_triple() + + try: + plz_run = find_plz_run() + except HostGPUDetectionError as exc: + logging.error("%s", exc) + return 1 + + if check_host_gpu(plz_run, arch_triple): + print("gpu_available: True") + return 0 + + logging.error("No Level Zero GPU device found using host drivers") + return 1 + + +def cmd_validate_install(): + arch_triple = get_arch_triple() + host_ze = "/usr/lib/{}/libze_loader.so.1".format(arch_triple) + if os.path.isfile(host_ze): + logging.info("Host Level Zero loader found at %s", host_ze) + print("ze_loader_available: True") + return 0 + logging.error("Host Level Zero loader not found at %s", host_ze) + logging.error( + "Install libze1 or equivalent before running host Level Zero tests" + ) + return 1 + + +def cmd_run_test(test_args): + snap = "/snap/level-zero-tests/current" + result = subprocess.run( + ["{}/test".format(snap), "--no-confinement"] + test_args, + env=dict(os.environ, SNAP=snap), + ) + return result.returncode + + +def main(): + logging.basicConfig( + format="%(levelname)s: %(message)s", level=logging.INFO + ) + if len(sys.argv) < 2: + logging.error( + "Usage: lz_host.py {resource,validate-install,run-test} [args...]" + ) + return 1 + command = sys.argv[1] + try: + if command == "resource": + return cmd_resource() + elif command == "validate-install": + return cmd_validate_install() + elif command == "run-test": + return cmd_run_test(sys.argv[2:]) + else: + logging.error("Unknown command: %s", command) + return 1 + except (RuntimeError, HostGPUDetectionError) as exc: + logging.error("%s", exc) + return 1 + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/providers/base/bin/vk_host.py b/providers/base/bin/vk_host.py index 694516080f..2a87af8d8b 100755 --- a/providers/base/bin/vk_host.py +++ b/providers/base/bin/vk_host.py @@ -36,7 +36,7 @@ import sys from checkbox_support.helpers.host_utils import ( - VulkanDetectionError, + HostGPUDetectionError, active_vendor_prefixes, check_host_gpu, find_host_icd_filenames, @@ -107,7 +107,7 @@ def main(): else: logging.error("Unknown command: %s", command) return 1 - except (RuntimeError, VulkanDetectionError) as exc: + except (RuntimeError, HostGPUDetectionError) as exc: logging.error("%s", exc) return 1 diff --git a/providers/base/tests/test_cl_host.py b/providers/base/tests/test_cl_host.py index 247abbd24e..185650aff6 100644 --- a/providers/base/tests/test_cl_host.py +++ b/providers/base/tests/test_cl_host.py @@ -22,7 +22,7 @@ from unittest.mock import MagicMock, patch import cl_host -from checkbox_support.helpers.host_utils import VulkanDetectionError +from checkbox_support.helpers.host_utils import HostGPUDetectionError class TestCheckHostGpu(unittest.TestCase): @@ -115,7 +115,7 @@ def test_returns_1_when_no_gpu(self, _arch, _plz, _check): @patch( "cl_host.find_plz_run", - side_effect=VulkanDetectionError("plz-run not found in PATH"), + side_effect=HostGPUDetectionError("plz-run not found in PATH"), ) @patch("cl_host.get_arch_triple", return_value="x86_64-linux-gnu") def test_returns_1_when_plz_run_not_found(self, _arch, _plz): diff --git a/providers/base/tests/test_crucible_host.py b/providers/base/tests/test_crucible_host.py index b94c2fca69..7c8a600d17 100644 --- a/providers/base/tests/test_crucible_host.py +++ b/providers/base/tests/test_crucible_host.py @@ -21,13 +21,13 @@ from unittest.mock import MagicMock, patch import crucible_host -from checkbox_support.helpers.host_utils import VulkanDetectionError +from checkbox_support.helpers.host_utils import HostGPUDetectionError class TestCmdResource(unittest.TestCase): @patch( "crucible_host.find_plz_run", - side_effect=VulkanDetectionError("plz-run not found"), + side_effect=HostGPUDetectionError("plz-run not found"), ) @patch("crucible_host.get_arch_triple", return_value="x86_64-linux-gnu") def test_returns_1_when_plz_run_not_found(self, _arch, _plz): diff --git a/providers/base/tests/test_lz_host.py b/providers/base/tests/test_lz_host.py new file mode 100644 index 0000000000..9e8582ce1d --- /dev/null +++ b/providers/base/tests/test_lz_host.py @@ -0,0 +1,205 @@ +#!/usr/bin/env python3 +# This file is part of Checkbox. +# +# Copyright 2025 Canonical Ltd. +# Written by: +# Shane McKee +# +# Checkbox is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 3, +# as published by the Free Software Foundation. +# +# Checkbox is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Checkbox. If not, see . + +import unittest +from unittest.mock import MagicMock, patch + +import lz_host +from checkbox_support.helpers.host_utils import HostGPUDetectionError + + +class TestCheckHostGpu(unittest.TestCase): + PLZ_RUN = "/snap/checkbox22/current/bin/plz-run" + ARCH_TRIPLE = "x86_64-linux-gnu" + + @patch("os.path.isfile", return_value=True) + @patch("lz_host.glob.glob", return_value=[]) + def test_returns_false_when_no_render_nodes(self, _glob, _isfile): + self.assertFalse( + lz_host.check_host_gpu(self.PLZ_RUN, self.ARCH_TRIPLE) + ) + + @patch("os.path.isfile", return_value=False) + @patch( + "lz_host.glob.glob", + return_value=["/dev/dri/renderD128"], + ) + def test_returns_false_when_loader_missing(self, _glob, _isfile): + self.assertFalse( + lz_host.check_host_gpu(self.PLZ_RUN, self.ARCH_TRIPLE) + ) + + @patch("os.path.isfile", return_value=True) + @patch( + "lz_host.glob.glob", + return_value=["/dev/dri/renderD128"], + ) + def test_returns_true_when_render_node_and_loader_found( + self, _glob, _isfile + ): + self.assertTrue(lz_host.check_host_gpu(self.PLZ_RUN, self.ARCH_TRIPLE)) + + @patch("os.path.isfile", return_value=True) + @patch( + "lz_host.glob.glob", + return_value=["/dev/dri/renderD128"], + ) + def test_checks_correct_loader_path(self, _glob, mock_isfile): + lz_host.check_host_gpu(self.PLZ_RUN, self.ARCH_TRIPLE) + mock_isfile.assert_called_once_with( + "/usr/lib/x86_64-linux-gnu/libze_loader.so.1" + ) + + +class TestCmdResource(unittest.TestCase): + @patch("lz_host.check_host_gpu", return_value=True) + @patch( + "lz_host.find_plz_run", + return_value="/snap/checkbox22/current/bin/plz-run", + ) + @patch("lz_host.get_arch_triple", return_value="x86_64-linux-gnu") + @patch("builtins.print") + def test_returns_0_and_prints_record_when_gpu_found( + self, mock_print, _arch, _plz, _check + ): + self.assertEqual(lz_host.cmd_resource(), 0) + mock_print.assert_called_once_with("gpu_available: True") + + @patch("lz_host.check_host_gpu", return_value=False) + @patch( + "lz_host.find_plz_run", + return_value="/snap/checkbox22/current/bin/plz-run", + ) + @patch("lz_host.get_arch_triple", return_value="x86_64-linux-gnu") + def test_returns_1_when_no_gpu(self, _arch, _plz, _check): + self.assertEqual(lz_host.cmd_resource(), 1) + + @patch( + "lz_host.find_plz_run", + side_effect=HostGPUDetectionError("plz-run not found in PATH"), + ) + @patch("lz_host.get_arch_triple", return_value="x86_64-linux-gnu") + def test_returns_1_when_plz_run_not_found(self, _arch, _plz): + self.assertEqual(lz_host.cmd_resource(), 1) + + +class TestCmdValidateInstall(unittest.TestCase): + @patch("os.path.isfile", return_value=True) + @patch("lz_host.get_arch_triple", return_value="x86_64-linux-gnu") + @patch("builtins.print") + def test_returns_0_and_prints_record_when_loader_found( + self, mock_print, _arch, _isfile + ): + self.assertEqual(lz_host.cmd_validate_install(), 0) + mock_print.assert_called_once_with("ze_loader_available: True") + + @patch("os.path.isfile", return_value=False) + @patch("lz_host.get_arch_triple", return_value="x86_64-linux-gnu") + def test_returns_1_when_loader_not_found(self, _arch, _isfile): + self.assertEqual(lz_host.cmd_validate_install(), 1) + + @patch("os.path.isfile", return_value=True) + @patch("lz_host.get_arch_triple", return_value="x86_64-linux-gnu") + def test_checks_correct_path(self, _arch, mock_isfile): + lz_host.cmd_validate_install() + mock_isfile.assert_called_once_with( + "/usr/lib/x86_64-linux-gnu/libze_loader.so.1" + ) + + +class TestCmdRunTest(unittest.TestCase): + SNAP = "/snap/level-zero-tests/current" + + @patch("subprocess.run") + def test_passes_test_args_to_snap_binary(self, mock_run): + mock_run.return_value = MagicMock(returncode=0) + lz_host.cmd_run_test(["perf/test_perf"]) + cmd = mock_run.call_args[0][0] + self.assertEqual(cmd[0], "{}/test".format(self.SNAP)) + self.assertIn("--no-confinement", cmd) + self.assertIn("perf/test_perf", cmd) + + @patch("subprocess.run") + def test_passes_multiple_args(self, mock_run): + mock_run.return_value = MagicMock(returncode=0) + lz_host.cmd_run_test(["perf/test_perf", "--gtest_filter=*", "5"]) + cmd = mock_run.call_args[0][0] + self.assertIn("perf/test_perf", cmd) + self.assertIn("--gtest_filter=*", cmd) + self.assertIn("5", cmd) + + @patch("subprocess.run") + def test_sets_snap_env(self, mock_run): + mock_run.return_value = MagicMock(returncode=0) + lz_host.cmd_run_test(["perf/test_perf"]) + env = mock_run.call_args[1]["env"] + self.assertEqual(env["SNAP"], self.SNAP) + + @patch("subprocess.run") + def test_returns_subprocess_returncode(self, mock_run): + mock_run.return_value = MagicMock(returncode=1) + self.assertEqual(lz_host.cmd_run_test(["perf/test_perf"]), 1) + + +class TestMain(unittest.TestCase): + @patch("lz_host.cmd_resource", return_value=0) + def test_dispatches_resource(self, mock_cmd): + with patch("sys.argv", ["lz_host.py", "resource"]): + self.assertEqual(lz_host.main(), 0) + self.assertEqual(mock_cmd.call_count, 1) + + @patch("lz_host.cmd_validate_install", return_value=0) + def test_dispatches_validate_install(self, mock_cmd): + with patch("sys.argv", ["lz_host.py", "validate-install"]): + self.assertEqual(lz_host.main(), 0) + self.assertEqual(mock_cmd.call_count, 1) + + @patch("lz_host.cmd_run_test", return_value=0) + def test_dispatches_run_test_with_args(self, mock_cmd): + with patch("sys.argv", ["lz_host.py", "run-test", "perf/test_perf"]): + self.assertEqual(lz_host.main(), 0) + mock_cmd.assert_called_once_with(["perf/test_perf"]) + + def test_returns_1_with_no_args(self): + with patch("sys.argv", ["lz_host.py"]): + self.assertEqual(lz_host.main(), 1) + + def test_returns_1_with_unknown_command(self): + with patch("sys.argv", ["lz_host.py", "unknown-cmd"]): + self.assertEqual(lz_host.main(), 1) + + @patch( + "lz_host.cmd_resource", + side_effect=RuntimeError("unexpected failure"), + ) + def test_catches_runtime_error(self, _cmd): + with patch("sys.argv", ["lz_host.py", "resource"]): + self.assertEqual(lz_host.main(), 1) + + @patch( + "lz_host.cmd_resource", + side_effect=HostGPUDetectionError("plz-run gone"), + ) + def test_catches_host_gpu_detection_error(self, _cmd): + with patch("sys.argv", ["lz_host.py", "resource"]): + self.assertEqual(lz_host.main(), 1) + + +if __name__ == "__main__": + unittest.main() diff --git a/providers/base/tests/test_vk_host.py b/providers/base/tests/test_vk_host.py index 8f2c22de52..e73e06765b 100644 --- a/providers/base/tests/test_vk_host.py +++ b/providers/base/tests/test_vk_host.py @@ -21,7 +21,7 @@ from unittest.mock import MagicMock, patch import vk_host -from checkbox_support.helpers.host_utils import VulkanDetectionError +from checkbox_support.helpers.host_utils import HostGPUDetectionError class TestCmdResource(unittest.TestCase): @@ -45,7 +45,7 @@ def test_returns_1_when_no_gpu(self, _arch, _plz, _check): @patch( "vk_host.find_plz_run", - side_effect=VulkanDetectionError("plz-run not found"), + side_effect=HostGPUDetectionError("plz-run not found"), ) @patch("vk_host.get_arch_triple", return_value="x86_64-linux-gnu") def test_returns_1_when_plz_run_not_found(self, _arch, _plz): diff --git a/providers/base/units/graphics/crucible.pxu b/providers/base/units/graphics/crucible.pxu deleted file mode 100644 index 3ffdb2d215..0000000000 --- a/providers/base/units/graphics/crucible.pxu +++ /dev/null @@ -1,263 +0,0 @@ -unit: setup job -plugin: shell -id: setup/install_crucible -category_id: com.canonical.plainbox::graphics -_summary: Install crucible snap -_purpose: - This job will install the crucible snap, a dependency of crucible graphics testing -user: root -command: - if snap list crucible &>/dev/null; then - snap refresh --edge crucible - else - snap install --edge crucible - fi -estimated_duration: 1m - -plugin: resource -id: graphics/vk_crucible_gpu_avail -category_id: com.canonical.plainbox::graphics -user: root -_summary: Checks for Vulkan-capable GPU -environ: - XDG_SESSION_TYPE - XDG_RUNTIME_DIR -estimated_duration: 1s -command: - if env -u DISPLAY crucible.vulkaninfo --summary 2>&1 | grep "PHYSICAL_DEVICE_TYPE_.*_GPU"; then - echo "PASS: Found a Vulkan-capable GPU" - else - echo "FAIL: No Vulkan-capable GPU found" - exit 1 - fi - -id: graphics/crucible_core_stencil_triangles -depends: - graphics/vk_crucible_gpu_avail -setup_include: - setup/install_crucible -category_id: com.canonical.plainbox::graphics -flags: simple -user: root -_summary: Run the stencil-triangles tests via crucible (core) -environ: - XDG_SESSION_TYPE - XDG_RUNTIME_DIR -estimated_duration: 5m -command: crucible.test 'func.depthstencil.stencil-triangles.clear-0x17.ref-0x17.*' -_siblings: [ - { "id": "graphics/crucible_core_aspect_stencil", - "_summary": "Run the aspect-stencil tests via crucible (core)", - "command": "crucible.test 'func.miptree.s8-uint.aspect-stencil.view-2d.levels02.*'" }, - { "id": "graphics/crucible_core_aspect_depth", - "_summary": "Run the aspect-depth tests via crucible (core)", - "command": "crucible.test 'func.miptree.d32-sfloat.aspect-depth.*'" }, - { "id": "graphics/crucible_core_r8g8b8a8_aspect_color", - "_summary": "Run the r8g8b8a8-aspect-color tests via crucible (core)", - "command": "crucible.test 'func.miptree.r8g8b8a8-unorm.aspect-color.*'" }, - { "id": "graphics/crucible_core_bc3_aspect_color", - "_summary": "Run the bc3-aspect-color tests via crucible (core)", - "command": "crucible.test 'func.miptree.bc3-unorm.aspect-color.*'" }, - { "id": "graphics/crucible_core_bench", - "_summary": "Run the bench tests via crucible (core)", - "command": "crucible.test 'bench.*'" }, - { "id": "graphics/crucible_core_bug", - "_summary": "Run the bug tests via crucible (core)", - "command": "crucible.test 'bug.*'" }, - { "id": "graphics/crucible_core_depthstencil", - "_summary": "Run the depthstencil tests via crucible (core)", - "command": "crucible.test 'func.depthstencil.*'" }, - { "id": "graphics/crucible_core_desc", - "_summary": "Run the desc tests via crucible (core)", - "command": "crucible.test 'func.desc.*'" }, - { "id": "graphics/crucible_core_draw", - "_summary": "Run the draw tests via crucible (core)", - "command": "crucible.test 'func.draw*'" }, - { "id": "graphics/crucible_core_gs_basic", - "_summary": "Run the gs-basic tests via crucible (core)", - "command": "crucible.test 'func.gs.basic'" }, - { "id": "graphics/crucible_core_first", - "_summary": "Run the first tests via crucible (core)", - "command": "crucible.test 'func.first'" }, - { "id": "graphics/crucible_core_compute", - "_summary": "Run the compute tests via crucible (core)", - "command": "crucible.test 'func.compute.*'" }, - { "id": "graphics/crucible_core_shader", - "_summary": "Run the shader tests via crucible (core)", - "command": "crucible.test 'func.shader.*'" }, - { "id": "graphics/crucible_core_issue", - "_summary": "Run the issue tests via crucible (core)", - "command": "crucible.test 'func.issue*'" }, - { "id": "graphics/crucible_core_mesh", - "_summary": "Run the mesh tests via crucible (core)", - "command": "crucible.test 'func.mesh.*'" }, - { "id": "graphics/crucible_core_example", - "_summary": "Run the example tests via crucible (core)", - "command": "crucible.test 'example.*'" }, - { "id": "graphics/crucible_core_buffer", - "_summary": "Run the buffer tests via crucible (core)", - "command": "crucible.test 'func.buffer.*'" }, - { "id": "graphics/crucible_core_cmd_buffer", - "_summary": "Run the cmd-buffer tests via crucible (core)", - "command": "crucible.test 'func.cmd-buffer.*'" }, - { "id": "graphics/crucible_core_copy", - "_summary": "Run the copy tests via crucible (core)", - "command": "crucible.test 'func.copy.*'" }, - { "id": "graphics/crucible_core_event", - "_summary": "Run the event tests via crucible (core)", - "command": "crucible.test 'func.event.*'" }, - { "id": "graphics/crucible_core_query", - "_summary": "Run the query tests via crucible (core)", - "command": "crucible.test 'func.query.*'" }, - { "id": "graphics/crucible_core_interleaved_cmd_buffers", - "_summary": "Run the interleaved-cmd-buffers tests via crucible (core)", - "command": "crucible.test 'func.interleaved-cmd-buffers.*'" }, - { "id": "graphics/crucible_core_memory_budget", - "_summary": "Run the memory_budget tests via crucible (core)", - "command": "crucible.test 'func.memory_budget'" }, - { "id": "graphics/crucible_core_renderpass", - "_summary": "Run the renderpass tests via crucible (core)", - "command": "crucible.test 'func.renderpass.*'" }, - { "id": "graphics/crucible_core_memory_fd", - "_summary": "Run the memory-fd tests via crucible (core)", - "command": "crucible.test 'func.memory-fd.*'" }, - { "id": "graphics/crucible_core_stress", - "_summary": "Run the stress tests via crucible (core)", - "command": "crucible.test 'stress.*'" }, - { "id": "graphics/crucible_core_self", - "_summary": "Run the self tests via crucible (core)", - "command": "crucible.test 'self.*'" }, - { "id": "graphics/crucible_core_calibrated_timestamps", - "_summary": "Run the calibrated-timestamps tests via crucible (core)", - "command": "crucible.test 'func.calibrated-timestamps.*'" }, - { "id": "graphics/crucible_core_sync", - "_summary": "Run the sync tests via crucible (core)", - "command": "crucible.test 'func.sync.*'" }] - -unit: job -plugin: shell -id: graphics/crucible_classic_gpu_avail -category_id: com.canonical.plainbox::graphics -user: root -_summary: Checks for Vulkan-capable GPU using host drivers -environ: - XDG_SESSION_TYPE - XDG_RUNTIME_DIR - PATH - VK_ICD_FILENAMES -estimated_duration: 1s -command: crucible_host.py resource - -unit: job -plugin: shell -id: graphics/crucible_classic_vk_avail -category_id: com.canonical.plainbox::graphics -user: root -_summary: Checks for host Vulkan ICD loader required by crucible --no-confinement -estimated_duration: 1s -command: crucible_host.py validate-install - -id: graphics/crucible_classic_stencil_triangles -depends: - graphics/crucible_classic_gpu_avail - graphics/crucible_classic_vk_avail -setup_include: - setup/install_crucible -category_id: com.canonical.plainbox::graphics -flags: simple -user: root -_summary: Run the stencil-triangles tests via crucible (classic) -environ: - XDG_SESSION_TYPE - XDG_RUNTIME_DIR - VK_ICD_FILENAMES -estimated_duration: 5m -command: crucible_host.py run-test 'func.depthstencil.stencil-triangles.clear-0x17.ref-0x17.*' -_siblings: [ - { "id": "graphics/crucible_classic_aspect_stencil", - "_summary": "Run the aspect-stencil tests via crucible (classic)", - "command": "crucible_host.py run-test 'func.miptree.s8-uint.aspect-stencil.view-2d.levels02.*'" }, - { "id": "graphics/crucible_classic_aspect_depth", - "_summary": "Run the aspect-depth tests via crucible (classic)", - "command": "crucible_host.py run-test 'func.miptree.d32-sfloat.aspect-depth.*'" }, - { "id": "graphics/crucible_classic_r8g8b8a8_aspect_color", - "_summary": "Run the r8g8b8a8-aspect-color tests via crucible (classic)", - "command": "crucible_host.py run-test 'func.miptree.r8g8b8a8-unorm.aspect-color.*'" }, - { "id": "graphics/crucible_classic_bc3_aspect_color", - "_summary": "Run the bc3-aspect-color tests via crucible (classic)", - "command": "crucible_host.py run-test 'func.miptree.bc3-unorm.aspect-color.*'" }, - { "id": "graphics/crucible_classic_bench", - "_summary": "Run the bench tests via crucible (classic)", - "command": "crucible_host.py run-test 'bench.*'" }, - { "id": "graphics/crucible_classic_bug", - "_summary": "Run the bug tests via crucible (classic)", - "command": "crucible_host.py run-test 'bug.*'" }, - { "id": "graphics/crucible_classic_depthstencil", - "_summary": "Run the depthstencil tests via crucible (classic)", - "command": "crucible_host.py run-test 'func.depthstencil.*'" }, - { "id": "graphics/crucible_classic_desc", - "_summary": "Run the desc tests via crucible (classic)", - "command": "crucible_host.py run-test 'func.desc.*'" }, - { "id": "graphics/crucible_classic_draw", - "_summary": "Run the draw tests via crucible (classic)", - "command": "crucible_host.py run-test 'func.draw*'" }, - { "id": "graphics/crucible_classic_gs_basic", - "_summary": "Run the gs-basic tests via crucible (classic)", - "command": "crucible_host.py run-test 'func.gs.basic'" }, - { "id": "graphics/crucible_classic_first", - "_summary": "Run the first tests via crucible (classic)", - "command": "crucible_host.py run-test 'func.first'" }, - { "id": "graphics/crucible_classic_compute", - "_summary": "Run the compute tests via crucible (classic)", - "command": "crucible_host.py run-test 'func.compute.*'" }, - { "id": "graphics/crucible_classic_shader", - "_summary": "Run the shader tests via crucible (classic)", - "command": "crucible_host.py run-test 'func.shader.*'" }, - { "id": "graphics/crucible_classic_issue", - "_summary": "Run the issue tests via crucible (classic)", - "command": "crucible_host.py run-test 'func.issue*'" }, - { "id": "graphics/crucible_classic_mesh", - "_summary": "Run the mesh tests via crucible (classic)", - "command": "crucible_host.py run-test 'func.mesh.*'" }, - { "id": "graphics/crucible_classic_example", - "_summary": "Run the example tests via crucible (classic)", - "command": "crucible_host.py run-test 'example.*'" }, - { "id": "graphics/crucible_classic_buffer", - "_summary": "Run the buffer tests via crucible (classic)", - "command": "crucible_host.py run-test 'func.buffer.*'" }, - { "id": "graphics/crucible_classic_cmd_buffer", - "_summary": "Run the cmd-buffer tests via crucible (classic)", - "command": "crucible_host.py run-test 'func.cmd-buffer.*'" }, - { "id": "graphics/crucible_classic_copy", - "_summary": "Run the copy tests via crucible (classic)", - "command": "crucible_host.py run-test 'func.copy.*'" }, - { "id": "graphics/crucible_classic_event", - "_summary": "Run the event tests via crucible (classic)", - "command": "crucible_host.py run-test 'func.event.*'" }, - { "id": "graphics/crucible_classic_query", - "_summary": "Run the query tests via crucible (classic)", - "command": "crucible_host.py run-test 'func.query.*'" }, - { "id": "graphics/crucible_classic_interleaved_cmd_buffers", - "_summary": "Run the interleaved-cmd-buffers tests via crucible (classic)", - "command": "crucible_host.py run-test 'func.interleaved-cmd-buffers.*'" }, - { "id": "graphics/crucible_classic_memory_budget", - "_summary": "Run the memory_budget tests via crucible (classic)", - "command": "crucible_host.py run-test 'func.memory_budget'" }, - { "id": "graphics/crucible_classic_renderpass", - "_summary": "Run the renderpass tests via crucible (classic)", - "command": "crucible_host.py run-test 'func.renderpass.*'" }, - { "id": "graphics/crucible_classic_memory_fd", - "_summary": "Run the memory-fd tests via crucible (classic)", - "command": "crucible_host.py run-test 'func.memory-fd.*'" }, - { "id": "graphics/crucible_classic_stress", - "_summary": "Run the stress tests via crucible (classic)", - "command": "crucible_host.py run-test 'stress.*'" }, - { "id": "graphics/crucible_classic_self", - "_summary": "Run the self tests via crucible (classic)", - "command": "crucible_host.py run-test 'self.*'" }, - { "id": "graphics/crucible_classic_calibrated_timestamps", - "_summary": "Run the calibrated-timestamps tests via crucible (classic)", - "command": "crucible_host.py run-test 'func.calibrated-timestamps.*'" }, - { "id": "graphics/crucible_classic_sync", - "_summary": "Run the sync tests via crucible (classic)", - "command": "crucible_host.py run-test 'func.sync.*'" }] diff --git a/providers/base/units/graphics/crucible.yaml b/providers/base/units/graphics/crucible.yaml new file mode 100644 index 0000000000..749d14eb1d --- /dev/null +++ b/providers/base/units/graphics/crucible.yaml @@ -0,0 +1,259 @@ +unit: setup job +plugin: shell +id: setup/install_crucible +category_id: com.canonical.plainbox::graphics +summary: Install crucible snap +user: root +command: | + if snap list crucible &>/dev/null; then + snap refresh --edge crucible + else + snap install --edge crucible + fi +estimated_duration: 1m +--- +plugin: resource +id: graphics/vk_crucible_gpu_avail +category_id: com.canonical.plainbox::graphics +user: root +summary: Checks for Vulkan-capable GPU +environ: + - XDG_SESSION_TYPE + - XDG_RUNTIME_DIR +estimated_duration: 1s +command: | + if env -u DISPLAY crucible.vulkaninfo --summary 2>&1 | grep "PHYSICAL_DEVICE_TYPE_.*_GPU"; then + echo "PASS: Found a Vulkan-capable GPU" + else + echo "FAIL: No Vulkan-capable GPU found" + exit 1 + fi +--- +id: graphics/crucible_core_stencil_triangles +depends: + - graphics/vk_crucible_gpu_avail +category_id: com.canonical.plainbox::graphics +flags: + - simple +user: root +summary: Run the stencil-triangles tests via crucible (core) +environ: + - XDG_SESSION_TYPE + - XDG_RUNTIME_DIR +estimated_duration: 5m +command: crucible.test 'func.depthstencil.stencil-triangles.clear-0x17.ref-0x17.*' +siblings: + - id: graphics/crucible_core_aspect_stencil + summary: Run the aspect-stencil tests via crucible (core) + command: crucible.test 'func.miptree.s8-uint.aspect-stencil.view-2d.levels02.*' + - id: graphics/crucible_core_aspect_depth + summary: Run the aspect-depth tests via crucible (core) + command: crucible.test 'func.miptree.d32-sfloat.aspect-depth.*' + - id: graphics/crucible_core_r8g8b8a8_aspect_color + summary: Run the r8g8b8a8-aspect-color tests via crucible (core) + command: crucible.test 'func.miptree.r8g8b8a8-unorm.aspect-color.*' + - id: graphics/crucible_core_bc3_aspect_color + summary: Run the bc3-aspect-color tests via crucible (core) + command: crucible.test 'func.miptree.bc3-unorm.aspect-color.*' + - id: graphics/crucible_core_bench + summary: Run the bench tests via crucible (core) + command: crucible.test 'bench.*' + - id: graphics/crucible_core_bug + summary: Run the bug tests via crucible (core) + command: crucible.test 'bug.*' + - id: graphics/crucible_core_depthstencil + summary: Run the depthstencil tests via crucible (core) + command: crucible.test 'func.depthstencil.*' + - id: graphics/crucible_core_desc + summary: Run the desc tests via crucible (core) + command: crucible.test 'func.desc.*' + - id: graphics/crucible_core_draw + summary: Run the draw tests via crucible (core) + command: crucible.test 'func.draw*' + - id: graphics/crucible_core_gs_basic + summary: Run the gs-basic tests via crucible (core) + command: crucible.test 'func.gs.basic' + - id: graphics/crucible_core_first + summary: Run the first tests via crucible (core) + command: crucible.test 'func.first' + - id: graphics/crucible_core_compute + summary: Run the compute tests via crucible (core) + command: crucible.test 'func.compute.*' + - id: graphics/crucible_core_shader + summary: Run the shader tests via crucible (core) + command: crucible.test 'func.shader.*' + - id: graphics/crucible_core_issue + summary: Run the issue tests via crucible (core) + command: crucible.test 'func.issue*' + - id: graphics/crucible_core_mesh + summary: Run the mesh tests via crucible (core) + command: crucible.test 'func.mesh.*' + - id: graphics/crucible_core_example + summary: Run the example tests via crucible (core) + command: crucible.test 'example.*' + - id: graphics/crucible_core_buffer + summary: Run the buffer tests via crucible (core) + command: crucible.test 'func.buffer.*' + - id: graphics/crucible_core_cmd_buffer + summary: Run the cmd-buffer tests via crucible (core) + command: crucible.test 'func.cmd-buffer.*' + - id: graphics/crucible_core_copy + summary: Run the copy tests via crucible (core) + command: crucible.test 'func.copy.*' + - id: graphics/crucible_core_event + summary: Run the event tests via crucible (core) + command: crucible.test 'func.event.*' + - id: graphics/crucible_core_query + summary: Run the query tests via crucible (core) + command: crucible.test 'func.query.*' + - id: graphics/crucible_core_interleaved_cmd_buffers + summary: Run the interleaved-cmd-buffers tests via crucible (core) + command: crucible.test 'func.interleaved-cmd-buffers.*' + - id: graphics/crucible_core_memory_budget + summary: Run the memory_budget tests via crucible (core) + command: crucible.test 'func.memory_budget' + - id: graphics/crucible_core_renderpass + summary: Run the renderpass tests via crucible (core) + command: crucible.test 'func.renderpass.*' + - id: graphics/crucible_core_memory_fd + summary: Run the memory-fd tests via crucible (core) + command: crucible.test 'func.memory-fd.*' + - id: graphics/crucible_core_stress + summary: Run the stress tests via crucible (core) + command: crucible.test 'stress.*' + - id: graphics/crucible_core_self + summary: Run the self tests via crucible (core) + command: crucible.test 'self.*' + - id: graphics/crucible_core_calibrated_timestamps + summary: Run the calibrated-timestamps tests via crucible (core) + command: crucible.test 'func.calibrated-timestamps.*' + - id: graphics/crucible_core_sync + summary: Run the sync tests via crucible (core) + command: crucible.test 'func.sync.*' +--- +unit: job +plugin: shell +id: graphics/crucible_classic_gpu_avail +category_id: com.canonical.plainbox::graphics +user: root +summary: Checks for Vulkan-capable GPU using host drivers +environ: + - XDG_SESSION_TYPE + - XDG_RUNTIME_DIR + - PATH + - VK_ICD_FILENAMES +estimated_duration: 1s +command: crucible_host.py resource +--- +unit: job +plugin: shell +id: graphics/crucible_classic_vk_avail +category_id: com.canonical.plainbox::graphics +user: root +summary: Checks for host Vulkan ICD loader required by crucible --no-confinement +estimated_duration: 1s +command: crucible_host.py validate-install +--- +id: graphics/crucible_classic_stencil_triangles +depends: + - graphics/crucible_classic_gpu_avail + - graphics/crucible_classic_vk_avail +category_id: com.canonical.plainbox::graphics +flags: + - simple +user: root +summary: Run the stencil-triangles tests via crucible (classic) +environ: + - XDG_SESSION_TYPE + - XDG_RUNTIME_DIR + - VK_ICD_FILENAMES +estimated_duration: 5m +command: crucible_host.py run-test 'func.depthstencil.stencil-triangles.clear-0x17.ref-0x17.*' +siblings: + - id: graphics/crucible_classic_aspect_stencil + summary: Run the aspect-stencil tests via crucible (classic) + command: crucible_host.py run-test 'func.miptree.s8-uint.aspect-stencil.view-2d.levels02.*' + - id: graphics/crucible_classic_aspect_depth + summary: Run the aspect-depth tests via crucible (classic) + command: crucible_host.py run-test 'func.miptree.d32-sfloat.aspect-depth.*' + - id: graphics/crucible_classic_r8g8b8a8_aspect_color + summary: Run the r8g8b8a8-aspect-color tests via crucible (classic) + command: crucible_host.py run-test 'func.miptree.r8g8b8a8-unorm.aspect-color.*' + - id: graphics/crucible_classic_bc3_aspect_color + summary: Run the bc3-aspect-color tests via crucible (classic) + command: crucible_host.py run-test 'func.miptree.bc3-unorm.aspect-color.*' + - id: graphics/crucible_classic_bench + summary: Run the bench tests via crucible (classic) + command: crucible_host.py run-test 'bench.*' + - id: graphics/crucible_classic_bug + summary: Run the bug tests via crucible (classic) + command: crucible_host.py run-test 'bug.*' + - id: graphics/crucible_classic_depthstencil + summary: Run the depthstencil tests via crucible (classic) + command: crucible_host.py run-test 'func.depthstencil.*' + - id: graphics/crucible_classic_desc + summary: Run the desc tests via crucible (classic) + command: crucible_host.py run-test 'func.desc.*' + - id: graphics/crucible_classic_draw + summary: Run the draw tests via crucible (classic) + command: crucible_host.py run-test 'func.draw*' + - id: graphics/crucible_classic_gs_basic + summary: Run the gs-basic tests via crucible (classic) + command: crucible_host.py run-test 'func.gs.basic' + - id: graphics/crucible_classic_first + summary: Run the first tests via crucible (classic) + command: crucible_host.py run-test 'func.first' + - id: graphics/crucible_classic_compute + summary: Run the compute tests via crucible (classic) + command: crucible_host.py run-test 'func.compute.*' + - id: graphics/crucible_classic_shader + summary: Run the shader tests via crucible (classic) + command: crucible_host.py run-test 'func.shader.*' + - id: graphics/crucible_classic_issue + summary: Run the issue tests via crucible (classic) + command: crucible_host.py run-test 'func.issue*' + - id: graphics/crucible_classic_mesh + summary: Run the mesh tests via crucible (classic) + command: crucible_host.py run-test 'func.mesh.*' + - id: graphics/crucible_classic_example + summary: Run the example tests via crucible (classic) + command: crucible_host.py run-test 'example.*' + - id: graphics/crucible_classic_buffer + summary: Run the buffer tests via crucible (classic) + command: crucible_host.py run-test 'func.buffer.*' + - id: graphics/crucible_classic_cmd_buffer + summary: Run the cmd-buffer tests via crucible (classic) + command: crucible_host.py run-test 'func.cmd-buffer.*' + - id: graphics/crucible_classic_copy + summary: Run the copy tests via crucible (classic) + command: crucible_host.py run-test 'func.copy.*' + - id: graphics/crucible_classic_event + summary: Run the event tests via crucible (classic) + command: crucible_host.py run-test 'func.event.*' + - id: graphics/crucible_classic_query + summary: Run the query tests via crucible (classic) + command: crucible_host.py run-test 'func.query.*' + - id: graphics/crucible_classic_interleaved_cmd_buffers + summary: Run the interleaved-cmd-buffers tests via crucible (classic) + command: crucible_host.py run-test 'func.interleaved-cmd-buffers.*' + - id: graphics/crucible_classic_memory_budget + summary: Run the memory_budget tests via crucible (classic) + command: crucible_host.py run-test 'func.memory_budget' + - id: graphics/crucible_classic_renderpass + summary: Run the renderpass tests via crucible (classic) + command: crucible_host.py run-test 'func.renderpass.*' + - id: graphics/crucible_classic_memory_fd + summary: Run the memory-fd tests via crucible (classic) + command: crucible_host.py run-test 'func.memory-fd.*' + - id: graphics/crucible_classic_stress + summary: Run the stress tests via crucible (classic) + command: crucible_host.py run-test 'stress.*' + - id: graphics/crucible_classic_self + summary: Run the self tests via crucible (classic) + command: crucible_host.py run-test 'self.*' + - id: graphics/crucible_classic_calibrated_timestamps + summary: Run the calibrated-timestamps tests via crucible (classic) + command: crucible_host.py run-test 'func.calibrated-timestamps.*' + - id: graphics/crucible_classic_sync + summary: Run the sync tests via crucible (classic) + command: crucible_host.py run-test 'func.sync.*' diff --git a/providers/base/units/graphics/level-zero.yaml b/providers/base/units/graphics/level-zero.yaml new file mode 100644 index 0000000000..67b68b23f1 --- /dev/null +++ b/providers/base/units/graphics/level-zero.yaml @@ -0,0 +1,779 @@ +unit: job +plugin: shell +id: setup/install_level_zero_tests +category_id: com.canonical.plainbox::graphics +summary: Install level-zero-tests snap +purpose: This job will install the level-zero-tests snap, a dependency of Level Zero conformance testing +user: root +command: | + if snap list level-zero-tests &>/dev/null; then + snap refresh --beta level-zero-tests + else + snap install --beta level-zero-tests + fi +estimated_duration: 1m +--- +unit: job +plugin: shell +id: graphics/lz_gpu_avail +depends: + - setup/install_level_zero_tests +category_id: com.canonical.plainbox::graphics +user: root +summary: Checks for GPU for level-zero-tests +environ: + - XDG_SESSION_TYPE + - XDG_RUNTIME_DIR +estimated_duration: 1s +command: | + if level-zero-tests.test test_driver; then + echo "PASS: Found a Level Zero GPU" + else + echo "FAIL: No Level Zero GPU found" + exit 1 + fi +--- +id: graphics/lz_core_test_affinity_helper +depends: + - graphics/lz_gpu_avail + - setup/install_level_zero_tests +category_id: com.canonical.plainbox::graphics +flags: + - simple +user: root +summary: Run test_affinity_helper from level-zero-tests (core) +environ: + - XDG_SESSION_TYPE + - XDG_RUNTIME_DIR +estimated_duration: 1m +command: level-zero-tests.test test_affinity_helper +siblings: + - id: graphics/lz_core_test_api_ltracing + summary: Run test_api_ltracing from level-zero-tests (core) + command: level-zero-tests.test test_api_ltracing + - id: graphics/lz_core_test_api_ltracing_dynamic + summary: Run test_api_ltracing_dynamic from level-zero-tests (core) + command: level-zero-tests.test test_api_ltracing_dynamic + - id: graphics/lz_core_test_barrier + summary: Run test_barrier from level-zero-tests (core) + command: level-zero-tests.test test_barrier + - id: graphics/lz_core_test_cmdlist + summary: Run test_cmdlist from level-zero-tests (core) + command: level-zero-tests.test test_cmdlist + - id: graphics/lz_core_test_cmdlist_errors + summary: Run test_cmdlist_errors from level-zero-tests (core) + command: level-zero-tests.test test_cmdlist_errors + - id: graphics/lz_core_test_cmdqueue + summary: Run test_cmdqueue from level-zero-tests (core) + command: level-zero-tests.test test_cmdqueue + - id: graphics/lz_core_test_cmdqueue_errors + summary: Run test_cmdqueue_errors from level-zero-tests (core) + command: level-zero-tests.test test_cmdqueue_errors + - id: graphics/lz_core_test_context + summary: Run test_context from level-zero-tests (core) + command: level-zero-tests.test test_context + - id: graphics/lz_core_test_copy + summary: Run test_copy from level-zero-tests (core) + command: level-zero-tests.test test_copy + - id: graphics/lz_core_test_debug + summary: Run test_debug from level-zero-tests (core) + command: level-zero-tests.test test_debug + - id: graphics/lz_core_test_debug_errors + summary: Run test_debug_errors from level-zero-tests (core) + command: level-zero-tests.test test_debug_errors + - id: graphics/lz_core_test_debug_errors_helper + summary: Run test_debug_errors_helper from level-zero-tests (core) + command: level-zero-tests.test test_debug_errors_helper + - id: graphics/lz_core_test_debug_helper + summary: Run test_debug_helper from level-zero-tests (core) + command: level-zero-tests.test test_debug_helper + - id: graphics/lz_core_test_device + summary: Run test_device from level-zero-tests (core) + command: level-zero-tests.test test_device + - id: graphics/lz_core_test_device_errors + summary: Run test_device_errors from level-zero-tests (core) + command: level-zero-tests.test test_device_errors + - id: graphics/lz_core_test_device_hierarchy_helper + summary: Run test_device_hierarchy_helper from level-zero-tests (core) + command: level-zero-tests.test test_device_hierarchy_helper + - id: graphics/lz_core_test_driver + summary: Run test_driver from level-zero-tests (core) + command: level-zero-tests.test test_driver + - id: graphics/lz_core_test_driver_errors + summary: Run test_driver_errors from level-zero-tests (core) + command: level-zero-tests.test test_driver_errors + - id: graphics/lz_core_test_driver_init_flag_gpu + summary: Run test_driver_init_flag_gpu from level-zero-tests (core) + command: level-zero-tests.test test_driver_init_flag_gpu + - id: graphics/lz_core_test_driver_init_flag_none + summary: Run test_driver_init_flag_none from level-zero-tests (core) + command: level-zero-tests.test test_driver_init_flag_none + - id: graphics/lz_core_test_driver_init_flag_vpu + summary: Run test_driver_init_flag_vpu from level-zero-tests (core) + command: level-zero-tests.test test_driver_init_flag_vpu + - id: graphics/lz_core_test_driver_init_flag_vpu_gpu + summary: Run test_driver_init_flag_vpu_gpu from level-zero-tests (core) + command: level-zero-tests.test test_driver_init_flag_vpu_gpu + - id: graphics/lz_core_test_event + summary: Run test_event from level-zero-tests (core) + command: level-zero-tests.test test_event + - id: graphics/lz_core_test_fabric + summary: Run test_fabric from level-zero-tests (core) + command: level-zero-tests.test test_fabric + - id: graphics/lz_core_test_fabric_helper + summary: Run test_fabric_helper from level-zero-tests (core) + command: level-zero-tests.test test_fabric_helper + - id: graphics/lz_core_test_fence + summary: Run test_fence from level-zero-tests (core) + command: level-zero-tests.test test_fence + - id: graphics/lz_core_test_handle_tracking_errors + summary: Run test_handle_tracking_errors from level-zero-tests (core) + command: level-zero-tests.test test_handle_tracking_errors + - id: graphics/lz_core_test_image + summary: Run test_image from level-zero-tests (core) + command: level-zero-tests.test test_image + - id: graphics/lz_core_test_import_helper + summary: Run test_import_helper from level-zero-tests (core) + command: level-zero-tests.test test_import_helper + - id: graphics/lz_core_test_init_sysman + summary: Run test_init_sysman from level-zero-tests (core) + command: level-zero-tests.test test_init_sysman + - id: graphics/lz_core_test_init_sysman_after_core + summary: Run test_init_sysman_after_core from level-zero-tests (core) + command: level-zero-tests.test test_init_sysman_after_core + - id: graphics/lz_core_test_init_sysman_before_core + summary: Run test_init_sysman_before_core from level-zero-tests (core) + command: level-zero-tests.test test_init_sysman_before_core + - id: graphics/lz_core_test_init_sysman_enum_freq_with_sysman_handle + summary: Run test_init_sysman_enum_freq_with_sysman_handle from level-zero-tests (core) + command: level-zero-tests.test test_init_sysman_enum_freq_with_sysman_handle + - id: graphics/lz_core_test_ipc + summary: Run test_ipc from level-zero-tests (core) + command: level-zero-tests.test test_ipc + - id: graphics/lz_core_test_ipc_event_helper + summary: Run test_ipc_event_helper from level-zero-tests (core) + command: level-zero-tests.test test_ipc_event_helper + - id: graphics/lz_core_test_ipc_memory + summary: Run test_ipc_memory from level-zero-tests (core) + command: level-zero-tests.test test_ipc_memory + - id: graphics/lz_core_test_ipc_memory_helper + summary: Run test_ipc_memory_helper from level-zero-tests (core) + command: level-zero-tests.test test_ipc_memory_helper + - id: graphics/lz_core_test_ipc_multidevice + summary: Run test_ipc_multidevice from level-zero-tests (core) + command: level-zero-tests.test test_ipc_multidevice + - id: graphics/lz_core_test_ipc_multisubdevice + summary: Run test_ipc_multisubdevice from level-zero-tests (core) + command: level-zero-tests.test test_ipc_multisubdevice + - id: graphics/lz_core_test_ipc_p2p_memory + summary: Run test_ipc_p2p_memory from level-zero-tests (core) + command: level-zero-tests.test test_ipc_p2p_memory + - id: graphics/lz_core_test_ipc_put_handle + summary: Run test_ipc_put_handle from level-zero-tests (core) + command: level-zero-tests.test test_ipc_put_handle + - id: graphics/lz_core_test_ipc_put_handle_helper + summary: Run test_ipc_put_handle_helper from level-zero-tests (core) + command: level-zero-tests.test test_ipc_put_handle_helper + - id: graphics/lz_core_test_ltracing_compat_ipc_event_helper + summary: Run test_ltracing_compat_ipc_event_helper from level-zero-tests (core) + command: level-zero-tests.test test_ltracing_compat_ipc_event_helper + - id: graphics/lz_core_test_ltracing_compat_ipc_event_helper_dynamic + summary: Run test_ltracing_compat_ipc_event_helper_dynamic from level-zero-tests (core) + command: level-zero-tests.test test_ltracing_compat_ipc_event_helper_dynamic + - id: graphics/lz_core_test_ltracing_ipc_event_helper + summary: Run test_ltracing_ipc_event_helper from level-zero-tests (core) + command: level-zero-tests.test test_ltracing_ipc_event_helper + - id: graphics/lz_core_test_ltracing_ipc_event_helper_dynamic + summary: Run test_ltracing_ipc_event_helper_dynamic from level-zero-tests (core) + command: level-zero-tests.test test_ltracing_ipc_event_helper_dynamic + - id: graphics/lz_core_test_memory + summary: Run test_memory from level-zero-tests (core) + command: level-zero-tests.test test_memory + - id: graphics/lz_core_test_memory_overcommit + summary: Run test_memory_overcommit from level-zero-tests (core) + command: level-zero-tests.test test_memory_overcommit + - id: graphics/lz_core_test_metric + summary: Run test_metric from level-zero-tests (core) + command: level-zero-tests.test test_metric + - id: graphics/lz_core_test_metric_enable + summary: Run test_metric_enable from level-zero-tests (core) + command: level-zero-tests.test test_metric_enable + - id: graphics/lz_core_test_metric_errors + summary: Run test_metric_errors from level-zero-tests (core) + command: level-zero-tests.test test_metric_errors + - id: graphics/lz_core_test_metric_helper + summary: Run test_metric_helper from level-zero-tests (core) + command: level-zero-tests.test test_metric_helper + - id: graphics/lz_core_test_module + summary: Run test_module from level-zero-tests (core) + command: level-zero-tests.test test_module + - id: graphics/lz_core_test_module_errors + summary: Run test_module_errors from level-zero-tests (core) + command: level-zero-tests.test test_module_errors + - id: graphics/lz_core_test_multiprocess + summary: Run test_multiprocess from level-zero-tests (core) + command: level-zero-tests.test test_multiprocess + - id: graphics/lz_core_test_multithread + summary: Run test_multithread from level-zero-tests (core) + command: level-zero-tests.test test_multithread + - id: graphics/lz_core_test_mutable_cmdlist + summary: Run test_mutable_cmdlist from level-zero-tests (core) + command: level-zero-tests.test test_mutable_cmdlist + - id: graphics/lz_core_test_p2p + summary: Run test_p2p from level-zero-tests (core) + command: level-zero-tests.test test_p2p + - id: graphics/lz_core_test_pci_device_order_helper + summary: Run test_pci_device_order_helper from level-zero-tests (core) + command: level-zero-tests.test test_pci_device_order_helper + - id: graphics/lz_core_test_pin + summary: Run test_pin from level-zero-tests (core) + command: level-zero-tests.test test_pin + - id: graphics/lz_core_test_process_helper + summary: Run test_process_helper from level-zero-tests (core) + command: level-zero-tests.test test_process_helper + - id: graphics/lz_core_test_residency + summary: Run test_residency from level-zero-tests (core) + command: level-zero-tests.test test_residency + - id: graphics/lz_core_test_sampler + summary: Run test_sampler from level-zero-tests (core) + command: level-zero-tests.test test_sampler + - id: graphics/lz_core_test_stress_atomics + summary: Run test_stress_atomics from level-zero-tests (core) + command: level-zero-tests.test test_stress_atomics + - id: graphics/lz_core_test_stress_commands_overloading + summary: Run test_stress_commands_overloading from level-zero-tests (core) + command: level-zero-tests.test test_stress_commands_overloading + - id: graphics/lz_core_test_stress_memory_allocation + summary: Run test_stress_memory_allocation from level-zero-tests (core) + command: level-zero-tests.test test_stress_memory_allocation + - id: graphics/lz_core_test_stress_misc + summary: Run test_stress_misc from level-zero-tests (core) + command: level-zero-tests.test test_stress_misc + - id: graphics/lz_core_test_sysman_device + summary: Run test_sysman_device from level-zero-tests (core) + command: level-zero-tests.test test_sysman_device + - id: graphics/lz_core_test_sysman_device_helper_zesinit + summary: Run test_sysman_device_helper_zesinit from level-zero-tests (core) + command: level-zero-tests.test test_sysman_device_helper_zesinit + - id: graphics/lz_core_test_sysman_device_hierarchy_helper + summary: Run test_sysman_device_hierarchy_helper from level-zero-tests (core) + command: level-zero-tests.test test_sysman_device_hierarchy_helper + - id: graphics/lz_core_test_sysman_device_hierarchy_helper_zesinit + summary: Run test_sysman_device_hierarchy_helper_zesinit from level-zero-tests (core) + command: level-zero-tests.test test_sysman_device_hierarchy_helper_zesinit + - id: graphics/lz_core_test_sysman_device_zesinit + summary: Run test_sysman_device_zesinit from level-zero-tests (core) + command: level-zero-tests.test test_sysman_device_zesinit + - id: graphics/lz_core_test_sysman_diagnostics + summary: Run test_sysman_diagnostics from level-zero-tests (core) + command: level-zero-tests.test test_sysman_diagnostics + - id: graphics/lz_core_test_sysman_diagnostics_zesinit + summary: Run test_sysman_diagnostics_zesinit from level-zero-tests (core) + command: level-zero-tests.test test_sysman_diagnostics_zesinit + - id: graphics/lz_core_test_sysman_ecc + summary: Run test_sysman_ecc from level-zero-tests (core) + command: level-zero-tests.test test_sysman_ecc + - id: graphics/lz_core_test_sysman_ecc_zesinit + summary: Run test_sysman_ecc_zesinit from level-zero-tests (core) + command: level-zero-tests.test test_sysman_ecc_zesinit + - id: graphics/lz_core_test_sysman_engine + summary: Run test_sysman_engine from level-zero-tests (core) + command: level-zero-tests.test test_sysman_engine + - id: graphics/lz_core_test_sysman_engine_zesinit + summary: Run test_sysman_engine_zesinit from level-zero-tests (core) + command: level-zero-tests.test test_sysman_engine_zesinit + - id: graphics/lz_core_test_sysman_events + summary: Run test_sysman_events from level-zero-tests (core) + command: level-zero-tests.test test_sysman_events + - id: graphics/lz_core_test_sysman_events_zesinit + summary: Run test_sysman_events_zesinit from level-zero-tests (core) + command: level-zero-tests.test test_sysman_events_zesinit + - id: graphics/lz_core_test_sysman_fabric + summary: Run test_sysman_fabric from level-zero-tests (core) + command: level-zero-tests.test test_sysman_fabric + - id: graphics/lz_core_test_sysman_fabric_zesinit + summary: Run test_sysman_fabric_zesinit from level-zero-tests (core) + command: level-zero-tests.test test_sysman_fabric_zesinit + - id: graphics/lz_core_test_sysman_fan + summary: Run test_sysman_fan from level-zero-tests (core) + command: level-zero-tests.test test_sysman_fan + - id: graphics/lz_core_test_sysman_fan_zesinit + summary: Run test_sysman_fan_zesinit from level-zero-tests (core) + command: level-zero-tests.test test_sysman_fan_zesinit + - id: graphics/lz_core_test_sysman_firmware + summary: Run test_sysman_firmware from level-zero-tests (core) + command: level-zero-tests.test test_sysman_firmware + - id: graphics/lz_core_test_sysman_firmware_zesinit + summary: Run test_sysman_firmware_zesinit from level-zero-tests (core) + command: level-zero-tests.test test_sysman_firmware_zesinit + - id: graphics/lz_core_test_sysman_frequency + summary: Run test_sysman_frequency from level-zero-tests (core) + command: level-zero-tests.test test_sysman_frequency + - id: graphics/lz_core_test_sysman_frequency_zesinit + summary: Run test_sysman_frequency_zesinit from level-zero-tests (core) + command: level-zero-tests.test test_sysman_frequency_zesinit + - id: graphics/lz_core_test_sysman_led + summary: Run test_sysman_led from level-zero-tests (core) + command: level-zero-tests.test test_sysman_led + - id: graphics/lz_core_test_sysman_led_zesinit + summary: Run test_sysman_led_zesinit from level-zero-tests (core) + command: level-zero-tests.test test_sysman_led_zesinit + - id: graphics/lz_core_test_sysman_memory + summary: Run test_sysman_memory from level-zero-tests (core) + command: level-zero-tests.test test_sysman_memory + - id: graphics/lz_core_test_sysman_memory_zesinit + summary: Run test_sysman_memory_zesinit from level-zero-tests (core) + command: level-zero-tests.test test_sysman_memory_zesinit + - id: graphics/lz_core_test_sysman_overclocking + summary: Run test_sysman_overclocking from level-zero-tests (core) + command: level-zero-tests.test test_sysman_overclocking + - id: graphics/lz_core_test_sysman_overclocking_zesinit + summary: Run test_sysman_overclocking_zesinit from level-zero-tests (core) + command: level-zero-tests.test test_sysman_overclocking_zesinit + - id: graphics/lz_core_test_sysman_pci + summary: Run test_sysman_pci from level-zero-tests (core) + command: level-zero-tests.test test_sysman_pci + - id: graphics/lz_core_test_sysman_pci_zesinit + summary: Run test_sysman_pci_zesinit from level-zero-tests (core) + command: level-zero-tests.test test_sysman_pci_zesinit + - id: graphics/lz_core_test_sysman_performance + summary: Run test_sysman_performance from level-zero-tests (core) + command: level-zero-tests.test test_sysman_performance + - id: graphics/lz_core_test_sysman_performance_zesinit + summary: Run test_sysman_performance_zesinit from level-zero-tests (core) + command: level-zero-tests.test test_sysman_performance_zesinit + - id: graphics/lz_core_test_sysman_power + summary: Run test_sysman_power from level-zero-tests (core) + command: level-zero-tests.test test_sysman_power + - id: graphics/lz_core_test_sysman_power_zesinit + summary: Run test_sysman_power_zesinit from level-zero-tests (core) + command: level-zero-tests.test test_sysman_power_zesinit + - id: graphics/lz_core_test_sysman_psu + summary: Run test_sysman_psu from level-zero-tests (core) + command: level-zero-tests.test test_sysman_psu + - id: graphics/lz_core_test_sysman_psu_zesinit + summary: Run test_sysman_psu_zesinit from level-zero-tests (core) + command: level-zero-tests.test test_sysman_psu_zesinit + - id: graphics/lz_core_test_sysman_ras + summary: Run test_sysman_ras from level-zero-tests (core) + command: level-zero-tests.test test_sysman_ras + - id: graphics/lz_core_test_sysman_ras_zesinit + summary: Run test_sysman_ras_zesinit from level-zero-tests (core) + command: level-zero-tests.test test_sysman_ras_zesinit + - id: graphics/lz_core_test_sysman_scheduler + summary: Run test_sysman_scheduler from level-zero-tests (core) + command: level-zero-tests.test test_sysman_scheduler + - id: graphics/lz_core_test_sysman_scheduler_zesinit + summary: Run test_sysman_scheduler_zesinit from level-zero-tests (core) + command: level-zero-tests.test test_sysman_scheduler_zesinit + - id: graphics/lz_core_test_sysman_standby + summary: Run test_sysman_standby from level-zero-tests (core) + command: level-zero-tests.test test_sysman_standby + - id: graphics/lz_core_test_sysman_standby_zesinit + summary: Run test_sysman_standby_zesinit from level-zero-tests (core) + command: level-zero-tests.test test_sysman_standby_zesinit + - id: graphics/lz_core_test_sysman_temperature + summary: Run test_sysman_temperature from level-zero-tests (core) + command: level-zero-tests.test test_sysman_temperature + - id: graphics/lz_core_test_sysman_temperature_zesinit + summary: Run test_sysman_temperature_zesinit from level-zero-tests (core) + command: level-zero-tests.test test_sysman_temperature_zesinit + - id: graphics/lz_core_test_sysman_vf_management + summary: Run test_sysman_vf_management from level-zero-tests (core) + command: level-zero-tests.test test_sysman_vf_management + - id: graphics/lz_core_test_sysman_vf_management_zesinit + summary: Run test_sysman_vf_management_zesinit from level-zero-tests (core) + command: level-zero-tests.test test_sysman_vf_management_zesinit + - id: graphics/lz_core_test_template + summary: Run test_template from level-zero-tests (core) + command: level-zero-tests.test test_template + - id: graphics/lz_core_test_usm + summary: Run test_usm from level-zero-tests (core) + command: level-zero-tests.test test_usm + - id: graphics/lz_core_test_zesdevice_errors + summary: Run test_zesdevice_errors from level-zero-tests (core) + command: level-zero-tests.test test_zesdevice_errors +--- +unit: job +plugin: shell +id: graphics/lz_classic_gpu_avail +category_id: com.canonical.plainbox::graphics +user: root +summary: Checks for Level Zero GPU using host drivers +environ: + - XDG_SESSION_TYPE + - XDG_RUNTIME_DIR + - PATH +estimated_duration: 1s +command: lz_host.py resource +--- +unit: job +plugin: shell +id: graphics/lz_classic_lz_avail +category_id: com.canonical.plainbox::graphics +user: root +summary: Checks for host Level Zero ICD loader required by level-zero-tests +estimated_duration: 1s +command: lz_host.py validate-install +--- +id: graphics/lz_classic_test_affinity_helper +depends: + - graphics/lz_classic_gpu_avail + - graphics/lz_classic_lz_avail + - setup/install_level_zero_tests +category_id: com.canonical.plainbox::graphics +flags: + - simple +user: root +summary: Run test_affinity_helper from level-zero-tests (classic) +environ: + - XDG_SESSION_TYPE + - XDG_RUNTIME_DIR +estimated_duration: 1m +command: lz_host.py run-test test_affinity_helper +siblings: + - id: graphics/lz_classic_test_api_ltracing + summary: Run test_api_ltracing from level-zero-tests (classic) + command: lz_host.py run-test test_api_ltracing + - id: graphics/lz_classic_test_api_ltracing_dynamic + summary: Run test_api_ltracing_dynamic from level-zero-tests (classic) + command: lz_host.py run-test test_api_ltracing_dynamic + - id: graphics/lz_classic_test_barrier + summary: Run test_barrier from level-zero-tests (classic) + command: lz_host.py run-test test_barrier + - id: graphics/lz_classic_test_cmdlist + summary: Run test_cmdlist from level-zero-tests (classic) + command: lz_host.py run-test test_cmdlist + - id: graphics/lz_classic_test_cmdlist_errors + summary: Run test_cmdlist_errors from level-zero-tests (classic) + command: lz_host.py run-test test_cmdlist_errors + - id: graphics/lz_classic_test_cmdqueue + summary: Run test_cmdqueue from level-zero-tests (classic) + command: lz_host.py run-test test_cmdqueue + - id: graphics/lz_classic_test_cmdqueue_errors + summary: Run test_cmdqueue_errors from level-zero-tests (classic) + command: lz_host.py run-test test_cmdqueue_errors + - id: graphics/lz_classic_test_context + summary: Run test_context from level-zero-tests (classic) + command: lz_host.py run-test test_context + - id: graphics/lz_classic_test_copy + summary: Run test_copy from level-zero-tests (classic) + command: lz_host.py run-test test_copy + - id: graphics/lz_classic_test_debug + summary: Run test_debug from level-zero-tests (classic) + command: lz_host.py run-test test_debug + - id: graphics/lz_classic_test_debug_errors + summary: Run test_debug_errors from level-zero-tests (classic) + command: lz_host.py run-test test_debug_errors + - id: graphics/lz_classic_test_debug_errors_helper + summary: Run test_debug_errors_helper from level-zero-tests (classic) + command: lz_host.py run-test test_debug_errors_helper + - id: graphics/lz_classic_test_debug_helper + summary: Run test_debug_helper from level-zero-tests (classic) + command: lz_host.py run-test test_debug_helper + - id: graphics/lz_classic_test_device + summary: Run test_device from level-zero-tests (classic) + command: lz_host.py run-test test_device + - id: graphics/lz_classic_test_device_errors + summary: Run test_device_errors from level-zero-tests (classic) + command: lz_host.py run-test test_device_errors + - id: graphics/lz_classic_test_device_hierarchy_helper + summary: Run test_device_hierarchy_helper from level-zero-tests (classic) + command: lz_host.py run-test test_device_hierarchy_helper + - id: graphics/lz_classic_test_driver + summary: Run test_driver from level-zero-tests (classic) + command: lz_host.py run-test test_driver + - id: graphics/lz_classic_test_driver_errors + summary: Run test_driver_errors from level-zero-tests (classic) + command: lz_host.py run-test test_driver_errors + - id: graphics/lz_classic_test_driver_init_flag_gpu + summary: Run test_driver_init_flag_gpu from level-zero-tests (classic) + command: lz_host.py run-test test_driver_init_flag_gpu + - id: graphics/lz_classic_test_driver_init_flag_none + summary: Run test_driver_init_flag_none from level-zero-tests (classic) + command: lz_host.py run-test test_driver_init_flag_none + - id: graphics/lz_classic_test_driver_init_flag_vpu + summary: Run test_driver_init_flag_vpu from level-zero-tests (classic) + command: lz_host.py run-test test_driver_init_flag_vpu + - id: graphics/lz_classic_test_driver_init_flag_vpu_gpu + summary: Run test_driver_init_flag_vpu_gpu from level-zero-tests (classic) + command: lz_host.py run-test test_driver_init_flag_vpu_gpu + - id: graphics/lz_classic_test_event + summary: Run test_event from level-zero-tests (classic) + command: lz_host.py run-test test_event + - id: graphics/lz_classic_test_fabric + summary: Run test_fabric from level-zero-tests (classic) + command: lz_host.py run-test test_fabric + - id: graphics/lz_classic_test_fabric_helper + summary: Run test_fabric_helper from level-zero-tests (classic) + command: lz_host.py run-test test_fabric_helper + - id: graphics/lz_classic_test_fence + summary: Run test_fence from level-zero-tests (classic) + command: lz_host.py run-test test_fence + - id: graphics/lz_classic_test_handle_tracking_errors + summary: Run test_handle_tracking_errors from level-zero-tests (classic) + command: lz_host.py run-test test_handle_tracking_errors + - id: graphics/lz_classic_test_image + summary: Run test_image from level-zero-tests (classic) + command: lz_host.py run-test test_image + - id: graphics/lz_classic_test_import_helper + summary: Run test_import_helper from level-zero-tests (classic) + command: lz_host.py run-test test_import_helper + - id: graphics/lz_classic_test_init_sysman + summary: Run test_init_sysman from level-zero-tests (classic) + command: lz_host.py run-test test_init_sysman + - id: graphics/lz_classic_test_init_sysman_after_core + summary: Run test_init_sysman_after_core from level-zero-tests (classic) + command: lz_host.py run-test test_init_sysman_after_core + - id: graphics/lz_classic_test_init_sysman_before_core + summary: Run test_init_sysman_before_core from level-zero-tests (classic) + command: lz_host.py run-test test_init_sysman_before_core + - id: graphics/lz_classic_test_init_sysman_enum_freq_with_sysman_handle + summary: Run test_init_sysman_enum_freq_with_sysman_handle from level-zero-tests (classic) + command: lz_host.py run-test test_init_sysman_enum_freq_with_sysman_handle + - id: graphics/lz_classic_test_ipc + summary: Run test_ipc from level-zero-tests (classic) + command: lz_host.py run-test test_ipc + - id: graphics/lz_classic_test_ipc_event_helper + summary: Run test_ipc_event_helper from level-zero-tests (classic) + command: lz_host.py run-test test_ipc_event_helper + - id: graphics/lz_classic_test_ipc_memory + summary: Run test_ipc_memory from level-zero-tests (classic) + command: lz_host.py run-test test_ipc_memory + - id: graphics/lz_classic_test_ipc_memory_helper + summary: Run test_ipc_memory_helper from level-zero-tests (classic) + command: lz_host.py run-test test_ipc_memory_helper + - id: graphics/lz_classic_test_ipc_multidevice + summary: Run test_ipc_multidevice from level-zero-tests (classic) + command: lz_host.py run-test test_ipc_multidevice + - id: graphics/lz_classic_test_ipc_multisubdevice + summary: Run test_ipc_multisubdevice from level-zero-tests (classic) + command: lz_host.py run-test test_ipc_multisubdevice + - id: graphics/lz_classic_test_ipc_p2p_memory + summary: Run test_ipc_p2p_memory from level-zero-tests (classic) + command: lz_host.py run-test test_ipc_p2p_memory + - id: graphics/lz_classic_test_ipc_put_handle + summary: Run test_ipc_put_handle from level-zero-tests (classic) + command: lz_host.py run-test test_ipc_put_handle + - id: graphics/lz_classic_test_ipc_put_handle_helper + summary: Run test_ipc_put_handle_helper from level-zero-tests (classic) + command: lz_host.py run-test test_ipc_put_handle_helper + - id: graphics/lz_classic_test_ltracing_compat_ipc_event_helper + summary: Run test_ltracing_compat_ipc_event_helper from level-zero-tests (classic) + command: lz_host.py run-test test_ltracing_compat_ipc_event_helper + - id: graphics/lz_classic_test_ltracing_compat_ipc_event_helper_dynamic + summary: Run test_ltracing_compat_ipc_event_helper_dynamic from level-zero-tests (classic) + command: lz_host.py run-test test_ltracing_compat_ipc_event_helper_dynamic + - id: graphics/lz_classic_test_ltracing_ipc_event_helper + summary: Run test_ltracing_ipc_event_helper from level-zero-tests (classic) + command: lz_host.py run-test test_ltracing_ipc_event_helper + - id: graphics/lz_classic_test_ltracing_ipc_event_helper_dynamic + summary: Run test_ltracing_ipc_event_helper_dynamic from level-zero-tests (classic) + command: lz_host.py run-test test_ltracing_ipc_event_helper_dynamic + - id: graphics/lz_classic_test_memory + summary: Run test_memory from level-zero-tests (classic) + command: lz_host.py run-test test_memory + - id: graphics/lz_classic_test_memory_overcommit + summary: Run test_memory_overcommit from level-zero-tests (classic) + command: lz_host.py run-test test_memory_overcommit + - id: graphics/lz_classic_test_metric + summary: Run test_metric from level-zero-tests (classic) + command: lz_host.py run-test test_metric + - id: graphics/lz_classic_test_metric_enable + summary: Run test_metric_enable from level-zero-tests (classic) + command: lz_host.py run-test test_metric_enable + - id: graphics/lz_classic_test_metric_errors + summary: Run test_metric_errors from level-zero-tests (classic) + command: lz_host.py run-test test_metric_errors + - id: graphics/lz_classic_test_metric_helper + summary: Run test_metric_helper from level-zero-tests (classic) + command: lz_host.py run-test test_metric_helper + - id: graphics/lz_classic_test_module + summary: Run test_module from level-zero-tests (classic) + command: lz_host.py run-test test_module + - id: graphics/lz_classic_test_module_errors + summary: Run test_module_errors from level-zero-tests (classic) + command: lz_host.py run-test test_module_errors + - id: graphics/lz_classic_test_multiprocess + summary: Run test_multiprocess from level-zero-tests (classic) + command: lz_host.py run-test test_multiprocess + - id: graphics/lz_classic_test_multithread + summary: Run test_multithread from level-zero-tests (classic) + command: lz_host.py run-test test_multithread + - id: graphics/lz_classic_test_mutable_cmdlist + summary: Run test_mutable_cmdlist from level-zero-tests (classic) + command: lz_host.py run-test test_mutable_cmdlist + - id: graphics/lz_classic_test_p2p + summary: Run test_p2p from level-zero-tests (classic) + command: lz_host.py run-test test_p2p + - id: graphics/lz_classic_test_pci_device_order_helper + summary: Run test_pci_device_order_helper from level-zero-tests (classic) + command: lz_host.py run-test test_pci_device_order_helper + - id: graphics/lz_classic_test_pin + summary: Run test_pin from level-zero-tests (classic) + command: lz_host.py run-test test_pin + - id: graphics/lz_classic_test_process_helper + summary: Run test_process_helper from level-zero-tests (classic) + command: lz_host.py run-test test_process_helper + - id: graphics/lz_classic_test_residency + summary: Run test_residency from level-zero-tests (classic) + command: lz_host.py run-test test_residency + - id: graphics/lz_classic_test_sampler + summary: Run test_sampler from level-zero-tests (classic) + command: lz_host.py run-test test_sampler + - id: graphics/lz_classic_test_stress_atomics + summary: Run test_stress_atomics from level-zero-tests (classic) + command: lz_host.py run-test test_stress_atomics + - id: graphics/lz_classic_test_stress_commands_overloading + summary: Run test_stress_commands_overloading from level-zero-tests (classic) + command: lz_host.py run-test test_stress_commands_overloading + - id: graphics/lz_classic_test_stress_memory_allocation + summary: Run test_stress_memory_allocation from level-zero-tests (classic) + command: lz_host.py run-test test_stress_memory_allocation + - id: graphics/lz_classic_test_stress_misc + summary: Run test_stress_misc from level-zero-tests (classic) + command: lz_host.py run-test test_stress_misc + - id: graphics/lz_classic_test_sysman_device + summary: Run test_sysman_device from level-zero-tests (classic) + command: lz_host.py run-test test_sysman_device + - id: graphics/lz_classic_test_sysman_device_helper_zesinit + summary: Run test_sysman_device_helper_zesinit from level-zero-tests (classic) + command: lz_host.py run-test test_sysman_device_helper_zesinit + - id: graphics/lz_classic_test_sysman_device_hierarchy_helper + summary: Run test_sysman_device_hierarchy_helper from level-zero-tests (classic) + command: lz_host.py run-test test_sysman_device_hierarchy_helper + - id: graphics/lz_classic_test_sysman_device_hierarchy_helper_zesinit + summary: Run test_sysman_device_hierarchy_helper_zesinit from level-zero-tests (classic) + command: lz_host.py run-test test_sysman_device_hierarchy_helper_zesinit + - id: graphics/lz_classic_test_sysman_device_zesinit + summary: Run test_sysman_device_zesinit from level-zero-tests (classic) + command: lz_host.py run-test test_sysman_device_zesinit + - id: graphics/lz_classic_test_sysman_diagnostics + summary: Run test_sysman_diagnostics from level-zero-tests (classic) + command: lz_host.py run-test test_sysman_diagnostics + - id: graphics/lz_classic_test_sysman_diagnostics_zesinit + summary: Run test_sysman_diagnostics_zesinit from level-zero-tests (classic) + command: lz_host.py run-test test_sysman_diagnostics_zesinit + - id: graphics/lz_classic_test_sysman_ecc + summary: Run test_sysman_ecc from level-zero-tests (classic) + command: lz_host.py run-test test_sysman_ecc + - id: graphics/lz_classic_test_sysman_ecc_zesinit + summary: Run test_sysman_ecc_zesinit from level-zero-tests (classic) + command: lz_host.py run-test test_sysman_ecc_zesinit + - id: graphics/lz_classic_test_sysman_engine + summary: Run test_sysman_engine from level-zero-tests (classic) + command: lz_host.py run-test test_sysman_engine + - id: graphics/lz_classic_test_sysman_engine_zesinit + summary: Run test_sysman_engine_zesinit from level-zero-tests (classic) + command: lz_host.py run-test test_sysman_engine_zesinit + - id: graphics/lz_classic_test_sysman_events + summary: Run test_sysman_events from level-zero-tests (classic) + command: lz_host.py run-test test_sysman_events + - id: graphics/lz_classic_test_sysman_events_zesinit + summary: Run test_sysman_events_zesinit from level-zero-tests (classic) + command: lz_host.py run-test test_sysman_events_zesinit + - id: graphics/lz_classic_test_sysman_fabric + summary: Run test_sysman_fabric from level-zero-tests (classic) + command: lz_host.py run-test test_sysman_fabric + - id: graphics/lz_classic_test_sysman_fabric_zesinit + summary: Run test_sysman_fabric_zesinit from level-zero-tests (classic) + command: lz_host.py run-test test_sysman_fabric_zesinit + - id: graphics/lz_classic_test_sysman_fan + summary: Run test_sysman_fan from level-zero-tests (classic) + command: lz_host.py run-test test_sysman_fan + - id: graphics/lz_classic_test_sysman_fan_zesinit + summary: Run test_sysman_fan_zesinit from level-zero-tests (classic) + command: lz_host.py run-test test_sysman_fan_zesinit + - id: graphics/lz_classic_test_sysman_firmware + summary: Run test_sysman_firmware from level-zero-tests (classic) + command: lz_host.py run-test test_sysman_firmware + - id: graphics/lz_classic_test_sysman_firmware_zesinit + summary: Run test_sysman_firmware_zesinit from level-zero-tests (classic) + command: lz_host.py run-test test_sysman_firmware_zesinit + - id: graphics/lz_classic_test_sysman_frequency + summary: Run test_sysman_frequency from level-zero-tests (classic) + command: lz_host.py run-test test_sysman_frequency + - id: graphics/lz_classic_test_sysman_frequency_zesinit + summary: Run test_sysman_frequency_zesinit from level-zero-tests (classic) + command: lz_host.py run-test test_sysman_frequency_zesinit + - id: graphics/lz_classic_test_sysman_led + summary: Run test_sysman_led from level-zero-tests (classic) + command: lz_host.py run-test test_sysman_led + - id: graphics/lz_classic_test_sysman_led_zesinit + summary: Run test_sysman_led_zesinit from level-zero-tests (classic) + command: lz_host.py run-test test_sysman_led_zesinit + - id: graphics/lz_classic_test_sysman_memory + summary: Run test_sysman_memory from level-zero-tests (classic) + command: lz_host.py run-test test_sysman_memory + - id: graphics/lz_classic_test_sysman_memory_zesinit + summary: Run test_sysman_memory_zesinit from level-zero-tests (classic) + command: lz_host.py run-test test_sysman_memory_zesinit + - id: graphics/lz_classic_test_sysman_overclocking + summary: Run test_sysman_overclocking from level-zero-tests (classic) + command: lz_host.py run-test test_sysman_overclocking + - id: graphics/lz_classic_test_sysman_overclocking_zesinit + summary: Run test_sysman_overclocking_zesinit from level-zero-tests (classic) + command: lz_host.py run-test test_sysman_overclocking_zesinit + - id: graphics/lz_classic_test_sysman_pci + summary: Run test_sysman_pci from level-zero-tests (classic) + command: lz_host.py run-test test_sysman_pci + - id: graphics/lz_classic_test_sysman_pci_zesinit + summary: Run test_sysman_pci_zesinit from level-zero-tests (classic) + command: lz_host.py run-test test_sysman_pci_zesinit + - id: graphics/lz_classic_test_sysman_performance + summary: Run test_sysman_performance from level-zero-tests (classic) + command: lz_host.py run-test test_sysman_performance + - id: graphics/lz_classic_test_sysman_performance_zesinit + summary: Run test_sysman_performance_zesinit from level-zero-tests (classic) + command: lz_host.py run-test test_sysman_performance_zesinit + - id: graphics/lz_classic_test_sysman_power + summary: Run test_sysman_power from level-zero-tests (classic) + command: lz_host.py run-test test_sysman_power + - id: graphics/lz_classic_test_sysman_power_zesinit + summary: Run test_sysman_power_zesinit from level-zero-tests (classic) + command: lz_host.py run-test test_sysman_power_zesinit + - id: graphics/lz_classic_test_sysman_psu + summary: Run test_sysman_psu from level-zero-tests (classic) + command: lz_host.py run-test test_sysman_psu + - id: graphics/lz_classic_test_sysman_psu_zesinit + summary: Run test_sysman_psu_zesinit from level-zero-tests (classic) + command: lz_host.py run-test test_sysman_psu_zesinit + - id: graphics/lz_classic_test_sysman_ras + summary: Run test_sysman_ras from level-zero-tests (classic) + command: lz_host.py run-test test_sysman_ras + - id: graphics/lz_classic_test_sysman_ras_zesinit + summary: Run test_sysman_ras_zesinit from level-zero-tests (classic) + command: lz_host.py run-test test_sysman_ras_zesinit + - id: graphics/lz_classic_test_sysman_scheduler + summary: Run test_sysman_scheduler from level-zero-tests (classic) + command: lz_host.py run-test test_sysman_scheduler + - id: graphics/lz_classic_test_sysman_scheduler_zesinit + summary: Run test_sysman_scheduler_zesinit from level-zero-tests (classic) + command: lz_host.py run-test test_sysman_scheduler_zesinit + - id: graphics/lz_classic_test_sysman_standby + summary: Run test_sysman_standby from level-zero-tests (classic) + command: lz_host.py run-test test_sysman_standby + - id: graphics/lz_classic_test_sysman_standby_zesinit + summary: Run test_sysman_standby_zesinit from level-zero-tests (classic) + command: lz_host.py run-test test_sysman_standby_zesinit + - id: graphics/lz_classic_test_sysman_temperature + summary: Run test_sysman_temperature from level-zero-tests (classic) + command: lz_host.py run-test test_sysman_temperature + - id: graphics/lz_classic_test_sysman_temperature_zesinit + summary: Run test_sysman_temperature_zesinit from level-zero-tests (classic) + command: lz_host.py run-test test_sysman_temperature_zesinit + - id: graphics/lz_classic_test_sysman_vf_management + summary: Run test_sysman_vf_management from level-zero-tests (classic) + command: lz_host.py run-test test_sysman_vf_management + - id: graphics/lz_classic_test_sysman_vf_management_zesinit + summary: Run test_sysman_vf_management_zesinit from level-zero-tests (classic) + command: lz_host.py run-test test_sysman_vf_management_zesinit + - id: graphics/lz_classic_test_template + summary: Run test_template from level-zero-tests (classic) + command: lz_host.py run-test test_template + - id: graphics/lz_classic_test_usm + summary: Run test_usm from level-zero-tests (classic) + command: lz_host.py run-test test_usm + - id: graphics/lz_classic_test_zesdevice_errors + summary: Run test_zesdevice_errors from level-zero-tests (classic) + command: lz_host.py run-test test_zesdevice_errors diff --git a/providers/base/units/graphics/opencl-cts.pxu b/providers/base/units/graphics/opencl-cts.pxu deleted file mode 100644 index f90804867c..0000000000 --- a/providers/base/units/graphics/opencl-cts.pxu +++ /dev/null @@ -1,439 +0,0 @@ -unit: job -plugin: shell -id: setup/install_opencl_cts -category_id: com.canonical.plainbox::graphics -_summary: Install opencl-cts snap -_purpose: - This job will install the opencl-cts snap, a dependency of opencl conformance testing -user: root -command: - if snap list opencl-cts &>/dev/null; then - snap refresh --beta opencl-cts - else - snap install --beta opencl-cts - fi -estimated_duration: 1m - -unit: job -plugin: shell -id: graphics/cl_gpu_avail -category_id: com.canonical.plainbox::graphics -user: root -requires: - executable.name == 'clinfo' -_summary: Checks for GPU for OpenCL -environ: - XDG_SESSION_TYPE - XDG_RUNTIME_DIR -estimated_duration: 1s -command: - if clinfo --prop CL_DEVICE_TYPE | grep -q CL_DEVICE_TYPE_GPU; then - echo "PASS: Found a GPU for OpenCL" - else - echo "FAIL: No GPU available in clinfo" - exit 1 - fi - -id: graphics/cl_core_basic -depends: - graphics/cl_gpu_avail - setup/install_opencl_cts -category_id: com.canonical.plainbox::graphics -flags: simple -user: root -_summary: Run the basic tests from OpenCL-CTS (core) -environ: - XDG_SESSION_TYPE - XDG_RUNTIME_DIR -estimated_duration: 5m -command: opencl-cts.test basic/test_basic -_siblings: [ - { "id": "graphics/cl_core_geometrics", - "_summary": "Run the geometrics tests from OpenCL-CTS (core)", - "command": "opencl-cts.test geometrics/test_geometrics" }, - { "id": "graphics/cl_core_api", - "_summary": "Run the api tests from OpenCL-CTS (core)", - "command": "opencl-cts.test api/test_api" }, - { "id": "graphics/cl_core_compiler", - "_summary": "Run the compiler tests from OpenCL-CTS (core)", - "command": "opencl-cts.test compiler/test_compiler" }, - { "id": "graphics/cl_core_commonfns", - "_summary": "Run the commonfns tests from OpenCL-CTS (core)", - "command": "opencl-cts.test commonfns/test_commonfns" }, - { "id": "graphics/cl_core_relationals", - "_summary": "Run the relationals tests from OpenCL-CTS (core)", - "command": "opencl-cts.test relationals/test_relationals" }, - { "id": "graphics/cl_core_thread_dimensions", - "_summary": "Run the thread_dimensions tests from OpenCL-CTS (core)", - "command": "opencl-cts.test thread_dimensions/test_thread_dimensions full*" }, - { "id": "graphics/cl_core_mult_device_contexts", - "_summary": "Run the mult_device_contexts tests from OpenCL-CTS (core)", - "command": "opencl-cts.test multiple_device_context/test_multiples" }, - { "id": "graphics/cl_core_atomics", - "_summary": "Run the atomics tests from OpenCL-CTS (core)", - "command": "opencl-cts.test atomics/test_atomics" }, - { "id": "graphics/cl_core_profiling", - "_summary": "Run the profiling tests from OpenCL-CTS (core)", - "command": "opencl-cts.test profiling/test_profiling" }, - { "id": "graphics/cl_core_events", - "_summary": "Run the events tests from OpenCL-CTS (core)", - "command": "opencl-cts.test events/test_events" }, - { "id": "graphics/cl_core_allocations_single", - "_summary": "Run the allocations_single tests from OpenCL-CTS (core)", - "command": "opencl-cts.test allocations/test_allocations single 5 all" }, - { "id": "graphics/cl_core_allocations_multiple", - "_summary": "Run the allocations_multiple tests from OpenCL-CTS (core)", - "command": "opencl-cts.test allocations/test_allocations multiple 5 all" }, - { "id": "graphics/cl_core_vectors", - "_summary": "Run the vectors tests from OpenCL-CTS (core)", - "command": "opencl-cts.test vectors/test_vectors" }, - { "id": "graphics/cl_core_printf", - "_summary": "Run the printf tests from OpenCL-CTS (core)", - "command": "opencl-cts.test printf/test_printf" }, - { "id": "graphics/cl_core_dev_partition", - "_summary": "Run the dev_partition tests from OpenCL-CTS (core)", - "command": "opencl-cts.test device_partition/test_device_partition" }, - { "id": "graphics/cl_core_buffers", - "_summary": "Run the buffers tests from OpenCL-CTS (core)", - "command": "opencl-cts.test buffers/test_buffers" }, - { "id": "graphics/cl_core_cl_get_info", - "_summary": "Run the cl_get_info tests from OpenCL-CTS (core)", - "command": "opencl-cts.test images/clGetInfo/test_cl_get_info" }, - { "id": "graphics/cl_core_kernel_image_methods", - "_summary": "Run the kernel_image_methods tests from OpenCL-CTS (core)", - "command": "opencl-cts.test images/kernel_image_methods/test_kernel_image_methods" }, - { "id": "graphics/cl_core_image_streams_nearest", - "_summary": "Run the image_streams_nearest tests from OpenCL-CTS (core)", - "command": "opencl-cts.test images/kernel_read_write/test_image_streams CL_FILTER_NEAREST" }, - { "id": "graphics/cl_core_image_streams_pitches_nearest", - "_summary": "Run the image_streams_pitches_nearest tests from OpenCL-CTS (core)", - "command": "opencl-cts.test images/kernel_read_write/test_image_streams use_pitches CL_FILTER_NEAREST" }, - { "id": "graphics/cl_core_image_streams_max_nearest", - "_summary": "Run the image_streams_max_nearest tests from OpenCL-CTS (core)", - "command": "opencl-cts.test images/kernel_read_write/test_image_streams max_images CL_FILTER_NEAREST" }, - { "id": "graphics/cl_core_cl_copy_images", - "_summary": "Run the cl_copy_images tests from OpenCL-CTS (core)", - "command": "opencl-cts.test images/clCopyImage/test_cl_copy_images" }, - { "id": "graphics/cl_core_cl_copy_small_images", - "_summary": "Run the cl_copy_small_images tests from OpenCL-CTS (core)", - "command": "opencl-cts.test images/clCopyImage/test_cl_copy_images small_images" }, - { "id": "graphics/cl_core_cl_copy_max_images", - "_summary": "Run the cl_copy_max_images tests from OpenCL-CTS (core)", - "command": "opencl-cts.test images/clCopyImage/test_cl_copy_images max_images" }, - { "id": "graphics/cl_core_read_write_images", - "_summary": "Run the read_write_images tests from OpenCL-CTS (core)", - "command": "opencl-cts.test images/clReadWriteImage/test_cl_read_write_images" }, - { "id": "graphics/cl_core_read_write_images_pitches", - "_summary": "Run the read_write_images_pitches tests from OpenCL-CTS (core)", - "command": "opencl-cts.test images/clReadWriteImage/test_cl_read_write_images use_pitches" }, - { "id": "graphics/cl_core_read_write_max_images", - "_summary": "Run the read_write_max_images tests from OpenCL-CTS (core)", - "command": "opencl-cts.test images/clReadWriteImage/test_cl_read_write_images max_images" }, - { "id": "graphics/cl_core_cl_fill_images", - "_summary": "Run the cl_fill_images tests from OpenCL-CTS (core)", - "command": "opencl-cts.test images/clFillImage/test_cl_fill_images" }, - { "id": "graphics/cl_core_cl_fill_images_pitches", - "_summary": "Run the cl_fill_images_pitches tests from OpenCL-CTS (core)", - "command": "opencl-cts.test images/clFillImage/test_cl_fill_images use_pitches" }, - { "id": "graphics/cl_core_cl_fill_images_max", - "_summary": "Run the cl_fill_images_max tests from OpenCL-CTS (core)", - "command": "opencl-cts.test images/clFillImage/test_cl_fill_images max_images" }, - { "id": "graphics/cl_core_samplerless_reads", - "_summary": "Run the samplerless_reads tests from OpenCL-CTS (core)", - "command": "opencl-cts.test images/samplerlessReads/test_samplerless_reads" }, - { "id": "graphics/cl_core_samplerless_reads_pitches", - "_summary": "Run the samplerless_reads_pitches tests from OpenCL-CTS (core)", - "command": "opencl-cts.test images/samplerlessReads/test_samplerless_reads use_pitches" }, - { "id": "graphics/cl_core_samplerless_reads_max", - "_summary": "Run the samplerless_reads_max tests from OpenCL-CTS (core)", - "command": "opencl-cts.test images/samplerlessReads/test_samplerless_reads max_images" }, - { "id": "graphics/cl_core_mem_host_flags", - "_summary": "Run the mem_host_flags tests from OpenCL-CTS (core)", - "command": "opencl-cts.test mem_host_flags/test_mem_host_flags" }, - { "id": "graphics/cl_core_image_streams_linear", - "_summary": "Run the image_streams_linear tests from OpenCL-CTS (core)", - "command": "opencl-cts.test images/kernel_read_write/test_image_streams CL_FILTER_LINEAR" }, - { "id": "graphics/cl_core_image_streams_linear_pitches", - "_summary": "Run the image_streams_linear_pitches tests from OpenCL-CTS (core)", - "command": "opencl-cts.test images/kernel_read_write/test_image_streams use_pitches CL_FILTER_LINEAR" }, - { "id": "graphics/cl_core_image_streams_linear_max", - "_summary": "Run the image_streams_linear_max tests from OpenCL-CTS (core)", - "command": "opencl-cts.test images/kernel_read_write/test_image_streams max_images CL_FILTER_LINEAR" }, - { "id": "graphics/cl_core_gl", - "_summary": "Run the gl tests from OpenCL-CTS (core)", - "command": "opencl-cts.test gl/test_gl" }, - { "id": "graphics/cl_core_select", - "_summary": "Run the select tests from OpenCL-CTS (core)", - "command": "opencl-cts.test select/test_select" }, - { "id": "graphics/cl_core_conversions", - "_summary": "Run the conversions tests from OpenCL-CTS (core)", - "command": "opencl-cts.test conversions/test_conversions" }, - { "id": "graphics/cl_core_contractions", - "_summary": "Run the contractions tests from OpenCL-CTS (core)", - "command": "opencl-cts.test contractions/test_contractions" }, - { "id": "graphics/cl_core_bruteforce", - "_summary": "Run the bruteforce tests from OpenCL-CTS (core)", - "command": "opencl-cts.test math_brute_force/test_bruteforce" }, - { "id": "graphics/cl_core_integer_ops", - "_summary": "Run the integer_ops tests from OpenCL-CTS (core)", - "command": "opencl-cts.test integer_ops/test_integer_ops" }, - { "id": "graphics/cl_core_half", - "_summary": "Run the half tests from OpenCL-CTS (core)", - "command": "opencl-cts.test half/test_half" }, - { "id": "graphics/cl_core_c11_atomics", - "_summary": "Run the c11_atomics tests from OpenCL-CTS (core)", - "command": "opencl-cts.test c11_atomics/test_c11_atomics" }, - { "id": "graphics/cl_core_device_execution", - "_summary": "Run the device_execution tests from OpenCL-CTS (core)", - "command": "opencl-cts.test device_execution/test_device_execution" }, - { "id": "graphics/cl_core_addr_space", - "_summary": "Run the addr_space tests from OpenCL-CTS (core)", - "command": "opencl-cts.test generic_address_space/test_generic_address_space" }, - { "id": "graphics/cl_core_non_uniform_work_group", - "_summary": "Run the non_uniform_work_group tests from OpenCL-CTS (core)", - "command": "opencl-cts.test non_uniform_work_group/test_non_uniform_work_group" }, - { "id": "graphics/cl_core_pipes", - "_summary": "Run the pipes tests from OpenCL-CTS (core)", - "command": "opencl-cts.test pipes/test_pipes" }, - { "id": "graphics/cl_core_svm", - "_summary": "Run the svm tests from OpenCL-CTS (core)", - "command": "opencl-cts.test SVM/test_svm" }, - { "id": "graphics/cl_core_workgroups", - "_summary": "Run the workgroups tests from OpenCL-CTS (core)", - "command": "opencl-cts.test workgroups/test_workgroups" }, - { "id": "graphics/cl_core_device_timer", - "_summary": "Run the device_timer tests from OpenCL-CTS (core)", - "command": "opencl-cts.test device_timer/test_device_timer" }, - { "id": "graphics/cl_core_spirv_new", - "_summary": "Run the spirv_new tests from OpenCL-CTS (core)", - "command": "opencl-cts.test spirv_new/test_spirv_new --spirv-binaries-path spirv_bin" }, - { "id": "graphics/cl_core_spir", - "_summary": "Run the spir tests from OpenCL-CTS (core)", - "command": "opencl-cts.test spir/test_spir no-unzip" }, - { "id": "graphics/cl_core_image_streams_mipmaps", - "_summary": "Run the image_streams_mipmaps tests from OpenCL-CTS (core)", - "command": "opencl-cts.test images/kernel_read_write/test_image_streams test_mipmaps CL_FILTER_NEAREST" }, - { "id": "graphics/cl_core_cl_copy_images_mipmaps", - "_summary": "Run the cl_copy_images_mipmaps tests from OpenCL-CTS (core)", - "command": "opencl-cts.test images/clCopyImage/test_cl_copy_images test_mipmaps" }, - { "id": "graphics/cl_core_cl_read_write_images_mipmaps", - "_summary": "Run the cl_read_write_images_mipmaps tests from OpenCL-CTS (core)", - "command": "opencl-cts.test images/clReadWriteImage/test_cl_read_write_images test_mipmaps" }, - { "id": "graphics/cl_core_subgroups", - "_summary": "Run the subgroups tests from OpenCL-CTS (core)", - "command": "opencl-cts.test subgroups/test_subgroups" }] - -unit: job -plugin: shell -id: graphics/cl_host_gpu_avail -category_id: com.canonical.plainbox::graphics -user: root -requires: - executable.name == 'clinfo' -_summary: Checks for GPU for OpenCL using host drivers -environ: - XDG_SESSION_TYPE - XDG_RUNTIME_DIR - PATH -estimated_duration: 1s -command: cl_host.py resource - -unit: job -plugin: shell -id: graphics/cl_host_ocl_avail -category_id: com.canonical.plainbox::graphics -user: root -_summary: Checks for host OpenCL ICD loader required by opencl-cts --no-confinement -estimated_duration: 1s -command: cl_host.py validate-install - -id: graphics/cl_host_basic -depends: - graphics/cl_host_gpu_avail - graphics/cl_host_ocl_avail -setup_include: - setup/install_opencl_cts -category_id: com.canonical.plainbox::graphics -flags: simple -user: root -_summary: Run the basic tests from OpenCL-CTS (host) -environ: - XDG_SESSION_TYPE - XDG_RUNTIME_DIR -estimated_duration: 5m -command: cl_host.py run-test basic/test_basic -_siblings: [ - { "id": "graphics/cl_host_geometrics", - "_summary": "Run the geometrics tests from OpenCL-CTS (host)", - "command": "cl_host.py run-test geometrics/test_geometrics" }, - { "id": "graphics/cl_host_api", - "_summary": "Run the api tests from OpenCL-CTS (host)", - "command": "cl_host.py run-test api/test_api" }, - { "id": "graphics/cl_host_compiler", - "_summary": "Run the compiler tests from OpenCL-CTS (host)", - "command": "cl_host.py run-test compiler/test_compiler" }, - { "id": "graphics/cl_host_commonfns", - "_summary": "Run the commonfns tests from OpenCL-CTS (host)", - "command": "cl_host.py run-test commonfns/test_commonfns" }, - { "id": "graphics/cl_host_relationals", - "_summary": "Run the relationals tests from OpenCL-CTS (host)", - "command": "cl_host.py run-test relationals/test_relationals" }, - { "id": "graphics/cl_host_thread_dimensions", - "_summary": "Run the thread_dimensions tests from OpenCL-CTS (host)", - "command": "cl_host.py run-test thread_dimensions/test_thread_dimensions full*" }, - { "id": "graphics/cl_host_mult_device_contexts", - "_summary": "Run the mult_device_contexts tests from OpenCL-CTS (host)", - "command": "cl_host.py run-test multiple_device_context/test_multiples" }, - { "id": "graphics/cl_host_atomics", - "_summary": "Run the atomics tests from OpenCL-CTS (host)", - "command": "cl_host.py run-test atomics/test_atomics" }, - { "id": "graphics/cl_host_profiling", - "_summary": "Run the profiling tests from OpenCL-CTS (host)", - "command": "cl_host.py run-test profiling/test_profiling" }, - { "id": "graphics/cl_host_events", - "_summary": "Run the events tests from OpenCL-CTS (host)", - "command": "cl_host.py run-test events/test_events" }, - { "id": "graphics/cl_host_allocations_single", - "_summary": "Run the allocations_single tests from OpenCL-CTS (host)", - "command": "cl_host.py run-test allocations/test_allocations single 5 all" }, - { "id": "graphics/cl_host_allocations_multiple", - "_summary": "Run the allocations_multiple tests from OpenCL-CTS (host)", - "command": "cl_host.py run-test allocations/test_allocations multiple 5 all" }, - { "id": "graphics/cl_host_vectors", - "_summary": "Run the vectors tests from OpenCL-CTS (host)", - "command": "cl_host.py run-test vectors/test_vectors" }, - { "id": "graphics/cl_host_printf", - "_summary": "Run the printf tests from OpenCL-CTS (host)", - "command": "cl_host.py run-test printf/test_printf" }, - { "id": "graphics/cl_host_dev_partition", - "_summary": "Run the dev_partition tests from OpenCL-CTS (host)", - "command": "cl_host.py run-test device_partition/test_device_partition" }, - { "id": "graphics/cl_host_buffers", - "_summary": "Run the buffers tests from OpenCL-CTS (host)", - "command": "cl_host.py run-test buffers/test_buffers" }, - { "id": "graphics/cl_host_cl_get_info", - "_summary": "Run the cl_get_info tests from OpenCL-CTS (host)", - "command": "cl_host.py run-test images/clGetInfo/test_cl_get_info" }, - { "id": "graphics/cl_host_kernel_image_methods", - "_summary": "Run the kernel_image_methods tests from OpenCL-CTS (host)", - "command": "cl_host.py run-test images/kernel_image_methods/test_kernel_image_methods" }, - { "id": "graphics/cl_host_image_streams_nearest", - "_summary": "Run the image_streams_nearest tests from OpenCL-CTS (host)", - "command": "cl_host.py run-test images/kernel_read_write/test_image_streams CL_FILTER_NEAREST" }, - { "id": "graphics/cl_host_image_streams_pitches_nearest", - "_summary": "Run the image_streams_pitches_nearest tests from OpenCL-CTS (host)", - "command": "cl_host.py run-test images/kernel_read_write/test_image_streams use_pitches CL_FILTER_NEAREST" }, - { "id": "graphics/cl_host_image_streams_max_nearest", - "_summary": "Run the image_streams_max_nearest tests from OpenCL-CTS (host)", - "command": "cl_host.py run-test images/kernel_read_write/test_image_streams max_images CL_FILTER_NEAREST" }, - { "id": "graphics/cl_host_cl_copy_images", - "_summary": "Run the cl_copy_images tests from OpenCL-CTS (host)", - "command": "cl_host.py run-test images/clCopyImage/test_cl_copy_images" }, - { "id": "graphics/cl_host_cl_copy_small_images", - "_summary": "Run the cl_copy_small_images tests from OpenCL-CTS (host)", - "command": "cl_host.py run-test images/clCopyImage/test_cl_copy_images small_images" }, - { "id": "graphics/cl_host_cl_copy_max_images", - "_summary": "Run the cl_copy_max_images tests from OpenCL-CTS (host)", - "command": "cl_host.py run-test images/clCopyImage/test_cl_copy_images max_images" }, - { "id": "graphics/cl_host_read_write_images", - "_summary": "Run the read_write_images tests from OpenCL-CTS (host)", - "command": "cl_host.py run-test images/clReadWriteImage/test_cl_read_write_images" }, - { "id": "graphics/cl_host_read_write_images_pitches", - "_summary": "Run the read_write_images_pitches tests from OpenCL-CTS (host)", - "command": "cl_host.py run-test images/clReadWriteImage/test_cl_read_write_images use_pitches" }, - { "id": "graphics/cl_host_read_write_max_images", - "_summary": "Run the read_write_max_images tests from OpenCL-CTS (host)", - "command": "cl_host.py run-test images/clReadWriteImage/test_cl_read_write_images max_images" }, - { "id": "graphics/cl_host_cl_fill_images", - "_summary": "Run the cl_fill_images tests from OpenCL-CTS (host)", - "command": "cl_host.py run-test images/clFillImage/test_cl_fill_images" }, - { "id": "graphics/cl_host_cl_fill_images_pitches", - "_summary": "Run the cl_fill_images_pitches tests from OpenCL-CTS (host)", - "command": "cl_host.py run-test images/clFillImage/test_cl_fill_images use_pitches" }, - { "id": "graphics/cl_host_cl_fill_images_max", - "_summary": "Run the cl_fill_images_max tests from OpenCL-CTS (host)", - "command": "cl_host.py run-test images/clFillImage/test_cl_fill_images max_images" }, - { "id": "graphics/cl_host_samplerless_reads", - "_summary": "Run the samplerless_reads tests from OpenCL-CTS (host)", - "command": "cl_host.py run-test images/samplerlessReads/test_samplerless_reads" }, - { "id": "graphics/cl_host_samplerless_reads_pitches", - "_summary": "Run the samplerless_reads_pitches tests from OpenCL-CTS (host)", - "command": "cl_host.py run-test images/samplerlessReads/test_samplerless_reads use_pitches" }, - { "id": "graphics/cl_host_samplerless_reads_max", - "_summary": "Run the samplerless_reads_max tests from OpenCL-CTS (host)", - "command": "cl_host.py run-test images/samplerlessReads/test_samplerless_reads max_images" }, - { "id": "graphics/cl_host_mem_host_flags", - "_summary": "Run the mem_host_flags tests from OpenCL-CTS (host)", - "command": "cl_host.py run-test mem_host_flags/test_mem_host_flags" }, - { "id": "graphics/cl_host_image_streams_linear", - "_summary": "Run the image_streams_linear tests from OpenCL-CTS (host)", - "command": "cl_host.py run-test images/kernel_read_write/test_image_streams CL_FILTER_LINEAR" }, - { "id": "graphics/cl_host_image_streams_linear_pitches", - "_summary": "Run the image_streams_linear_pitches tests from OpenCL-CTS (host)", - "command": "cl_host.py run-test images/kernel_read_write/test_image_streams use_pitches CL_FILTER_LINEAR" }, - { "id": "graphics/cl_host_image_streams_linear_max", - "_summary": "Run the image_streams_linear_max tests from OpenCL-CTS (host)", - "command": "cl_host.py run-test images/kernel_read_write/test_image_streams max_images CL_FILTER_LINEAR" }, - { "id": "graphics/cl_host_gl", - "_summary": "Run the gl tests from OpenCL-CTS (host)", - "command": "cl_host.py run-test gl/test_gl" }, - { "id": "graphics/cl_host_select", - "_summary": "Run the select tests from OpenCL-CTS (host)", - "command": "cl_host.py run-test select/test_select" }, - { "id": "graphics/cl_host_conversions", - "_summary": "Run the conversions tests from OpenCL-CTS (host)", - "command": "cl_host.py run-test conversions/test_conversions" }, - { "id": "graphics/cl_host_contractions", - "_summary": "Run the contractions tests from OpenCL-CTS (host)", - "command": "cl_host.py run-test contractions/test_contractions" }, - { "id": "graphics/cl_host_bruteforce", - "_summary": "Run the bruteforce tests from OpenCL-CTS (host)", - "command": "cl_host.py run-test math_brute_force/test_bruteforce" }, - { "id": "graphics/cl_host_integer_ops", - "_summary": "Run the integer_ops tests from OpenCL-CTS (host)", - "command": "cl_host.py run-test integer_ops/test_integer_ops" }, - { "id": "graphics/cl_host_half", - "_summary": "Run the half tests from OpenCL-CTS (host)", - "command": "cl_host.py run-test half/test_half" }, - { "id": "graphics/cl_host_c11_atomics", - "_summary": "Run the c11_atomics tests from OpenCL-CTS (host)", - "command": "cl_host.py run-test c11_atomics/test_c11_atomics" }, - { "id": "graphics/cl_host_device_execution", - "_summary": "Run the device_execution tests from OpenCL-CTS (host)", - "command": "cl_host.py run-test device_execution/test_device_execution" }, - { "id": "graphics/cl_host_addr_space", - "_summary": "Run the addr_space tests from OpenCL-CTS (host)", - "command": "cl_host.py run-test generic_address_space/test_generic_address_space" }, - { "id": "graphics/cl_host_non_uniform_work_group", - "_summary": "Run the non_uniform_work_group tests from OpenCL-CTS (host)", - "command": "cl_host.py run-test non_uniform_work_group/test_non_uniform_work_group" }, - { "id": "graphics/cl_host_pipes", - "_summary": "Run the pipes tests from OpenCL-CTS (host)", - "command": "cl_host.py run-test pipes/test_pipes" }, - { "id": "graphics/cl_host_svm", - "_summary": "Run the svm tests from OpenCL-CTS (host)", - "command": "cl_host.py run-test SVM/test_svm" }, - { "id": "graphics/cl_host_workgroups", - "_summary": "Run the workgroups tests from OpenCL-CTS (host)", - "command": "cl_host.py run-test workgroups/test_workgroups" }, - { "id": "graphics/cl_host_device_timer", - "_summary": "Run the device_timer tests from OpenCL-CTS (host)", - "command": "cl_host.py run-test device_timer/test_device_timer" }, - { "id": "graphics/cl_host_spirv_new", - "_summary": "Run the spirv_new tests from OpenCL-CTS (host)", - "command": "cl_host.py run-test spirv_new/test_spirv_new --spirv-binaries-path spirv_bin" }, - { "id": "graphics/cl_host_spir", - "_summary": "Run the spir tests from OpenCL-CTS (host)", - "command": "cl_host.py run-test spir/test_spir no-unzip" }, - { "id": "graphics/cl_host_image_streams_mipmaps", - "_summary": "Run the image_streams_mipmaps tests from OpenCL-CTS (host)", - "command": "cl_host.py run-test images/kernel_read_write/test_image_streams test_mipmaps CL_FILTER_NEAREST" }, - { "id": "graphics/cl_host_cl_copy_images_mipmaps", - "_summary": "Run the cl_copy_images_mipmaps tests from OpenCL-CTS (host)", - "command": "cl_host.py run-test images/clCopyImage/test_cl_copy_images test_mipmaps" }, - { "id": "graphics/cl_host_cl_read_write_images_mipmaps", - "_summary": "Run the cl_read_write_images_mipmaps tests from OpenCL-CTS (host)", - "command": "cl_host.py run-test images/clReadWriteImage/test_cl_read_write_images test_mipmaps" }, - { "id": "graphics/cl_host_subgroups", - "_summary": "Run the subgroups tests from OpenCL-CTS (host)", - "command": "cl_host.py run-test subgroups/test_subgroups" }] diff --git a/providers/base/units/graphics/opencl-cts.yaml b/providers/base/units/graphics/opencl-cts.yaml new file mode 100644 index 0000000000..f0dfeac380 --- /dev/null +++ b/providers/base/units/graphics/opencl-cts.yaml @@ -0,0 +1,436 @@ +unit: setup job +plugin: shell +id: setup/install_opencl_cts +category_id: com.canonical.plainbox::graphics +summary: Install opencl-cts snap +user: root +command: | + if snap list opencl-cts &>/dev/null; then + snap refresh --beta opencl-cts + else + snap install --beta opencl-cts + fi +estimated_duration: 1m +--- +unit: job +plugin: shell +id: graphics/cl_gpu_avail +category_id: com.canonical.plainbox::graphics +user: root +requires: + - executable.name == 'clinfo' +summary: Checks for GPU for OpenCL +environ: + - XDG_SESSION_TYPE + - XDG_RUNTIME_DIR +estimated_duration: 1s +command: | + if clinfo --prop CL_DEVICE_TYPE | grep -q CL_DEVICE_TYPE_GPU; then + echo "PASS: Found a GPU for OpenCL" + else + echo "FAIL: No GPU available in clinfo" + exit 1 + fi +--- +id: graphics/cl_core_basic +depends: + - graphics/cl_gpu_avail +category_id: com.canonical.plainbox::graphics +flags: + - simple +user: root +summary: Run the basic tests from OpenCL-CTS (core) +environ: + - XDG_SESSION_TYPE + - XDG_RUNTIME_DIR +estimated_duration: 5m +command: opencl-cts.test basic/test_basic +siblings: + - id: graphics/cl_core_geometrics + summary: Run the geometrics tests from OpenCL-CTS (core) + command: opencl-cts.test geometrics/test_geometrics + - id: graphics/cl_core_api + summary: Run the api tests from OpenCL-CTS (core) + command: opencl-cts.test api/test_api + - id: graphics/cl_core_compiler + summary: Run the compiler tests from OpenCL-CTS (core) + command: opencl-cts.test compiler/test_compiler + - id: graphics/cl_core_commonfns + summary: Run the commonfns tests from OpenCL-CTS (core) + command: opencl-cts.test commonfns/test_commonfns + - id: graphics/cl_core_relationals + summary: Run the relationals tests from OpenCL-CTS (core) + command: opencl-cts.test relationals/test_relationals + - id: graphics/cl_core_thread_dimensions + summary: Run the thread_dimensions tests from OpenCL-CTS (core) + command: opencl-cts.test thread_dimensions/test_thread_dimensions full* + - id: graphics/cl_core_mult_device_contexts + summary: Run the mult_device_contexts tests from OpenCL-CTS (core) + command: opencl-cts.test multiple_device_context/test_multiples + - id: graphics/cl_core_atomics + summary: Run the atomics tests from OpenCL-CTS (core) + command: opencl-cts.test atomics/test_atomics + - id: graphics/cl_core_profiling + summary: Run the profiling tests from OpenCL-CTS (core) + command: opencl-cts.test profiling/test_profiling + - id: graphics/cl_core_events + summary: Run the events tests from OpenCL-CTS (core) + command: opencl-cts.test events/test_events + - id: graphics/cl_core_allocations_single + summary: Run the allocations_single tests from OpenCL-CTS (core) + command: opencl-cts.test allocations/test_allocations single 5 all + - id: graphics/cl_core_allocations_multiple + summary: Run the allocations_multiple tests from OpenCL-CTS (core) + command: opencl-cts.test allocations/test_allocations multiple 5 all + - id: graphics/cl_core_vectors + summary: Run the vectors tests from OpenCL-CTS (core) + command: opencl-cts.test vectors/test_vectors + - id: graphics/cl_core_printf + summary: Run the printf tests from OpenCL-CTS (core) + command: opencl-cts.test printf/test_printf + - id: graphics/cl_core_dev_partition + summary: Run the dev_partition tests from OpenCL-CTS (core) + command: opencl-cts.test device_partition/test_device_partition + - id: graphics/cl_core_buffers + summary: Run the buffers tests from OpenCL-CTS (core) + command: opencl-cts.test buffers/test_buffers + - id: graphics/cl_core_cl_get_info + summary: Run the cl_get_info tests from OpenCL-CTS (core) + command: opencl-cts.test images/clGetInfo/test_cl_get_info + - id: graphics/cl_core_kernel_image_methods + summary: Run the kernel_image_methods tests from OpenCL-CTS (core) + command: opencl-cts.test images/kernel_image_methods/test_kernel_image_methods + - id: graphics/cl_core_image_streams_nearest + summary: Run the image_streams_nearest tests from OpenCL-CTS (core) + command: opencl-cts.test images/kernel_read_write/test_image_streams CL_FILTER_NEAREST + - id: graphics/cl_core_image_streams_pitches_nearest + summary: Run the image_streams_pitches_nearest tests from OpenCL-CTS (core) + command: opencl-cts.test images/kernel_read_write/test_image_streams use_pitches CL_FILTER_NEAREST + - id: graphics/cl_core_image_streams_max_nearest + summary: Run the image_streams_max_nearest tests from OpenCL-CTS (core) + command: opencl-cts.test images/kernel_read_write/test_image_streams max_images CL_FILTER_NEAREST + - id: graphics/cl_core_cl_copy_images + summary: Run the cl_copy_images tests from OpenCL-CTS (core) + command: opencl-cts.test images/clCopyImage/test_cl_copy_images + - id: graphics/cl_core_cl_copy_small_images + summary: Run the cl_copy_small_images tests from OpenCL-CTS (core) + command: opencl-cts.test images/clCopyImage/test_cl_copy_images small_images + - id: graphics/cl_core_cl_copy_max_images + summary: Run the cl_copy_max_images tests from OpenCL-CTS (core) + command: opencl-cts.test images/clCopyImage/test_cl_copy_images max_images + - id: graphics/cl_core_read_write_images + summary: Run the read_write_images tests from OpenCL-CTS (core) + command: opencl-cts.test images/clReadWriteImage/test_cl_read_write_images + - id: graphics/cl_core_read_write_images_pitches + summary: Run the read_write_images_pitches tests from OpenCL-CTS (core) + command: opencl-cts.test images/clReadWriteImage/test_cl_read_write_images use_pitches + - id: graphics/cl_core_read_write_max_images + summary: Run the read_write_max_images tests from OpenCL-CTS (core) + command: opencl-cts.test images/clReadWriteImage/test_cl_read_write_images max_images + - id: graphics/cl_core_cl_fill_images + summary: Run the cl_fill_images tests from OpenCL-CTS (core) + command: opencl-cts.test images/clFillImage/test_cl_fill_images + - id: graphics/cl_core_cl_fill_images_pitches + summary: Run the cl_fill_images_pitches tests from OpenCL-CTS (core) + command: opencl-cts.test images/clFillImage/test_cl_fill_images use_pitches + - id: graphics/cl_core_cl_fill_images_max + summary: Run the cl_fill_images_max tests from OpenCL-CTS (core) + command: opencl-cts.test images/clFillImage/test_cl_fill_images max_images + - id: graphics/cl_core_samplerless_reads + summary: Run the samplerless_reads tests from OpenCL-CTS (core) + command: opencl-cts.test images/samplerlessReads/test_samplerless_reads + - id: graphics/cl_core_samplerless_reads_pitches + summary: Run the samplerless_reads_pitches tests from OpenCL-CTS (core) + command: opencl-cts.test images/samplerlessReads/test_samplerless_reads use_pitches + - id: graphics/cl_core_samplerless_reads_max + summary: Run the samplerless_reads_max tests from OpenCL-CTS (core) + command: opencl-cts.test images/samplerlessReads/test_samplerless_reads max_images + - id: graphics/cl_core_mem_host_flags + summary: Run the mem_host_flags tests from OpenCL-CTS (core) + command: opencl-cts.test mem_host_flags/test_mem_host_flags + - id: graphics/cl_core_image_streams_linear + summary: Run the image_streams_linear tests from OpenCL-CTS (core) + command: opencl-cts.test images/kernel_read_write/test_image_streams CL_FILTER_LINEAR + - id: graphics/cl_core_image_streams_linear_pitches + summary: Run the image_streams_linear_pitches tests from OpenCL-CTS (core) + command: opencl-cts.test images/kernel_read_write/test_image_streams use_pitches CL_FILTER_LINEAR + - id: graphics/cl_core_image_streams_linear_max + summary: Run the image_streams_linear_max tests from OpenCL-CTS (core) + command: opencl-cts.test images/kernel_read_write/test_image_streams max_images CL_FILTER_LINEAR + - id: graphics/cl_core_gl + summary: Run the gl tests from OpenCL-CTS (core) + command: opencl-cts.test gl/test_gl + - id: graphics/cl_core_select + summary: Run the select tests from OpenCL-CTS (core) + command: opencl-cts.test select/test_select + - id: graphics/cl_core_conversions + summary: Run the conversions tests from OpenCL-CTS (core) + command: opencl-cts.test conversions/test_conversions + - id: graphics/cl_core_contractions + summary: Run the contractions tests from OpenCL-CTS (core) + command: opencl-cts.test contractions/test_contractions + - id: graphics/cl_core_bruteforce + summary: Run the bruteforce tests from OpenCL-CTS (core) + command: opencl-cts.test math_brute_force/test_bruteforce + - id: graphics/cl_core_integer_ops + summary: Run the integer_ops tests from OpenCL-CTS (core) + command: opencl-cts.test integer_ops/test_integer_ops + - id: graphics/cl_core_half + summary: Run the half tests from OpenCL-CTS (core) + command: opencl-cts.test half/test_half + - id: graphics/cl_core_c11_atomics + summary: Run the c11_atomics tests from OpenCL-CTS (core) + command: opencl-cts.test c11_atomics/test_c11_atomics + - id: graphics/cl_core_device_execution + summary: Run the device_execution tests from OpenCL-CTS (core) + command: opencl-cts.test device_execution/test_device_execution + - id: graphics/cl_core_addr_space + summary: Run the addr_space tests from OpenCL-CTS (core) + command: opencl-cts.test generic_address_space/test_generic_address_space + - id: graphics/cl_core_non_uniform_work_group + summary: Run the non_uniform_work_group tests from OpenCL-CTS (core) + command: opencl-cts.test non_uniform_work_group/test_non_uniform_work_group + - id: graphics/cl_core_pipes + summary: Run the pipes tests from OpenCL-CTS (core) + command: opencl-cts.test pipes/test_pipes + - id: graphics/cl_core_svm + summary: Run the svm tests from OpenCL-CTS (core) + command: opencl-cts.test SVM/test_svm + - id: graphics/cl_core_workgroups + summary: Run the workgroups tests from OpenCL-CTS (core) + command: opencl-cts.test workgroups/test_workgroups + - id: graphics/cl_core_device_timer + summary: Run the device_timer tests from OpenCL-CTS (core) + command: opencl-cts.test device_timer/test_device_timer + - id: graphics/cl_core_spirv_new + summary: Run the spirv_new tests from OpenCL-CTS (core) + command: opencl-cts.test spirv_new/test_spirv_new --spirv-binaries-path spirv_bin + - id: graphics/cl_core_spir + summary: Run the spir tests from OpenCL-CTS (core) + command: opencl-cts.test spir/test_spir no-unzip + - id: graphics/cl_core_image_streams_mipmaps + summary: Run the image_streams_mipmaps tests from OpenCL-CTS (core) + command: opencl-cts.test images/kernel_read_write/test_image_streams test_mipmaps CL_FILTER_NEAREST + - id: graphics/cl_core_cl_copy_images_mipmaps + summary: Run the cl_copy_images_mipmaps tests from OpenCL-CTS (core) + command: opencl-cts.test images/clCopyImage/test_cl_copy_images test_mipmaps + - id: graphics/cl_core_cl_read_write_images_mipmaps + summary: Run the cl_read_write_images_mipmaps tests from OpenCL-CTS (core) + command: opencl-cts.test images/clReadWriteImage/test_cl_read_write_images test_mipmaps + - id: graphics/cl_core_subgroups + summary: Run the subgroups tests from OpenCL-CTS (core) + command: opencl-cts.test subgroups/test_subgroups +--- +unit: job +plugin: shell +id: graphics/cl_host_gpu_avail +category_id: com.canonical.plainbox::graphics +user: root +requires: + - executable.name == 'clinfo' +summary: Checks for GPU for OpenCL using host drivers +environ: + - XDG_SESSION_TYPE + - XDG_RUNTIME_DIR + - PATH +estimated_duration: 1s +command: cl_host.py resource +--- +unit: job +plugin: shell +id: graphics/cl_host_ocl_avail +category_id: com.canonical.plainbox::graphics +user: root +summary: Checks for host OpenCL ICD loader required by opencl-cts --no-confinement +estimated_duration: 1s +command: cl_host.py validate-install +--- +id: graphics/cl_host_basic +depends: + - graphics/cl_host_gpu_avail + - graphics/cl_host_ocl_avail +category_id: com.canonical.plainbox::graphics +flags: + - simple +user: root +summary: Run the basic tests from OpenCL-CTS (host) +environ: + - XDG_SESSION_TYPE + - XDG_RUNTIME_DIR +estimated_duration: 5m +command: cl_host.py run-test basic/test_basic +siblings: + - id: graphics/cl_host_geometrics + summary: Run the geometrics tests from OpenCL-CTS (host) + command: cl_host.py run-test geometrics/test_geometrics + - id: graphics/cl_host_api + summary: Run the api tests from OpenCL-CTS (host) + command: cl_host.py run-test api/test_api + - id: graphics/cl_host_compiler + summary: Run the compiler tests from OpenCL-CTS (host) + command: cl_host.py run-test compiler/test_compiler + - id: graphics/cl_host_commonfns + summary: Run the commonfns tests from OpenCL-CTS (host) + command: cl_host.py run-test commonfns/test_commonfns + - id: graphics/cl_host_relationals + summary: Run the relationals tests from OpenCL-CTS (host) + command: cl_host.py run-test relationals/test_relationals + - id: graphics/cl_host_thread_dimensions + summary: Run the thread_dimensions tests from OpenCL-CTS (host) + command: cl_host.py run-test thread_dimensions/test_thread_dimensions full* + - id: graphics/cl_host_mult_device_contexts + summary: Run the mult_device_contexts tests from OpenCL-CTS (host) + command: cl_host.py run-test multiple_device_context/test_multiples + - id: graphics/cl_host_atomics + summary: Run the atomics tests from OpenCL-CTS (host) + command: cl_host.py run-test atomics/test_atomics + - id: graphics/cl_host_profiling + summary: Run the profiling tests from OpenCL-CTS (host) + command: cl_host.py run-test profiling/test_profiling + - id: graphics/cl_host_events + summary: Run the events tests from OpenCL-CTS (host) + command: cl_host.py run-test events/test_events + - id: graphics/cl_host_allocations_single + summary: Run the allocations_single tests from OpenCL-CTS (host) + command: cl_host.py run-test allocations/test_allocations single 5 all + - id: graphics/cl_host_allocations_multiple + summary: Run the allocations_multiple tests from OpenCL-CTS (host) + command: cl_host.py run-test allocations/test_allocations multiple 5 all + - id: graphics/cl_host_vectors + summary: Run the vectors tests from OpenCL-CTS (host) + command: cl_host.py run-test vectors/test_vectors + - id: graphics/cl_host_printf + summary: Run the printf tests from OpenCL-CTS (host) + command: cl_host.py run-test printf/test_printf + - id: graphics/cl_host_dev_partition + summary: Run the dev_partition tests from OpenCL-CTS (host) + command: cl_host.py run-test device_partition/test_device_partition + - id: graphics/cl_host_buffers + summary: Run the buffers tests from OpenCL-CTS (host) + command: cl_host.py run-test buffers/test_buffers + - id: graphics/cl_host_cl_get_info + summary: Run the cl_get_info tests from OpenCL-CTS (host) + command: cl_host.py run-test images/clGetInfo/test_cl_get_info + - id: graphics/cl_host_kernel_image_methods + summary: Run the kernel_image_methods tests from OpenCL-CTS (host) + command: cl_host.py run-test images/kernel_image_methods/test_kernel_image_methods + - id: graphics/cl_host_image_streams_nearest + summary: Run the image_streams_nearest tests from OpenCL-CTS (host) + command: cl_host.py run-test images/kernel_read_write/test_image_streams CL_FILTER_NEAREST + - id: graphics/cl_host_image_streams_pitches_nearest + summary: Run the image_streams_pitches_nearest tests from OpenCL-CTS (host) + command: cl_host.py run-test images/kernel_read_write/test_image_streams use_pitches CL_FILTER_NEAREST + - id: graphics/cl_host_image_streams_max_nearest + summary: Run the image_streams_max_nearest tests from OpenCL-CTS (host) + command: cl_host.py run-test images/kernel_read_write/test_image_streams max_images CL_FILTER_NEAREST + - id: graphics/cl_host_cl_copy_images + summary: Run the cl_copy_images tests from OpenCL-CTS (host) + command: cl_host.py run-test images/clCopyImage/test_cl_copy_images + - id: graphics/cl_host_cl_copy_small_images + summary: Run the cl_copy_small_images tests from OpenCL-CTS (host) + command: cl_host.py run-test images/clCopyImage/test_cl_copy_images small_images + - id: graphics/cl_host_cl_copy_max_images + summary: Run the cl_copy_max_images tests from OpenCL-CTS (host) + command: cl_host.py run-test images/clCopyImage/test_cl_copy_images max_images + - id: graphics/cl_host_read_write_images + summary: Run the read_write_images tests from OpenCL-CTS (host) + command: cl_host.py run-test images/clReadWriteImage/test_cl_read_write_images + - id: graphics/cl_host_read_write_images_pitches + summary: Run the read_write_images_pitches tests from OpenCL-CTS (host) + command: cl_host.py run-test images/clReadWriteImage/test_cl_read_write_images use_pitches + - id: graphics/cl_host_read_write_max_images + summary: Run the read_write_max_images tests from OpenCL-CTS (host) + command: cl_host.py run-test images/clReadWriteImage/test_cl_read_write_images max_images + - id: graphics/cl_host_cl_fill_images + summary: Run the cl_fill_images tests from OpenCL-CTS (host) + command: cl_host.py run-test images/clFillImage/test_cl_fill_images + - id: graphics/cl_host_cl_fill_images_pitches + summary: Run the cl_fill_images_pitches tests from OpenCL-CTS (host) + command: cl_host.py run-test images/clFillImage/test_cl_fill_images use_pitches + - id: graphics/cl_host_cl_fill_images_max + summary: Run the cl_fill_images_max tests from OpenCL-CTS (host) + command: cl_host.py run-test images/clFillImage/test_cl_fill_images max_images + - id: graphics/cl_host_samplerless_reads + summary: Run the samplerless_reads tests from OpenCL-CTS (host) + command: cl_host.py run-test images/samplerlessReads/test_samplerless_reads + - id: graphics/cl_host_samplerless_reads_pitches + summary: Run the samplerless_reads_pitches tests from OpenCL-CTS (host) + command: cl_host.py run-test images/samplerlessReads/test_samplerless_reads use_pitches + - id: graphics/cl_host_samplerless_reads_max + summary: Run the samplerless_reads_max tests from OpenCL-CTS (host) + command: cl_host.py run-test images/samplerlessReads/test_samplerless_reads max_images + - id: graphics/cl_host_mem_host_flags + summary: Run the mem_host_flags tests from OpenCL-CTS (host) + command: cl_host.py run-test mem_host_flags/test_mem_host_flags + - id: graphics/cl_host_image_streams_linear + summary: Run the image_streams_linear tests from OpenCL-CTS (host) + command: cl_host.py run-test images/kernel_read_write/test_image_streams CL_FILTER_LINEAR + - id: graphics/cl_host_image_streams_linear_pitches + summary: Run the image_streams_linear_pitches tests from OpenCL-CTS (host) + command: cl_host.py run-test images/kernel_read_write/test_image_streams use_pitches CL_FILTER_LINEAR + - id: graphics/cl_host_image_streams_linear_max + summary: Run the image_streams_linear_max tests from OpenCL-CTS (host) + command: cl_host.py run-test images/kernel_read_write/test_image_streams max_images CL_FILTER_LINEAR + - id: graphics/cl_host_gl + summary: Run the gl tests from OpenCL-CTS (host) + command: cl_host.py run-test gl/test_gl + - id: graphics/cl_host_select + summary: Run the select tests from OpenCL-CTS (host) + command: cl_host.py run-test select/test_select + - id: graphics/cl_host_conversions + summary: Run the conversions tests from OpenCL-CTS (host) + command: cl_host.py run-test conversions/test_conversions + - id: graphics/cl_host_contractions + summary: Run the contractions tests from OpenCL-CTS (host) + command: cl_host.py run-test contractions/test_contractions + - id: graphics/cl_host_bruteforce + summary: Run the bruteforce tests from OpenCL-CTS (host) + command: cl_host.py run-test math_brute_force/test_bruteforce + - id: graphics/cl_host_integer_ops + summary: Run the integer_ops tests from OpenCL-CTS (host) + command: cl_host.py run-test integer_ops/test_integer_ops + - id: graphics/cl_host_half + summary: Run the half tests from OpenCL-CTS (host) + command: cl_host.py run-test half/test_half + - id: graphics/cl_host_c11_atomics + summary: Run the c11_atomics tests from OpenCL-CTS (host) + command: cl_host.py run-test c11_atomics/test_c11_atomics + - id: graphics/cl_host_device_execution + summary: Run the device_execution tests from OpenCL-CTS (host) + command: cl_host.py run-test device_execution/test_device_execution + - id: graphics/cl_host_addr_space + summary: Run the addr_space tests from OpenCL-CTS (host) + command: cl_host.py run-test generic_address_space/test_generic_address_space + - id: graphics/cl_host_non_uniform_work_group + summary: Run the non_uniform_work_group tests from OpenCL-CTS (host) + command: cl_host.py run-test non_uniform_work_group/test_non_uniform_work_group + - id: graphics/cl_host_pipes + summary: Run the pipes tests from OpenCL-CTS (host) + command: cl_host.py run-test pipes/test_pipes + - id: graphics/cl_host_svm + summary: Run the svm tests from OpenCL-CTS (host) + command: cl_host.py run-test SVM/test_svm + - id: graphics/cl_host_workgroups + summary: Run the workgroups tests from OpenCL-CTS (host) + command: cl_host.py run-test workgroups/test_workgroups + - id: graphics/cl_host_device_timer + summary: Run the device_timer tests from OpenCL-CTS (host) + command: cl_host.py run-test device_timer/test_device_timer + - id: graphics/cl_host_spirv_new + summary: Run the spirv_new tests from OpenCL-CTS (host) + command: cl_host.py run-test spirv_new/test_spirv_new --spirv-binaries-path spirv_bin + - id: graphics/cl_host_spir + summary: Run the spir tests from OpenCL-CTS (host) + command: cl_host.py run-test spir/test_spir no-unzip + - id: graphics/cl_host_image_streams_mipmaps + summary: Run the image_streams_mipmaps tests from OpenCL-CTS (host) + command: cl_host.py run-test images/kernel_read_write/test_image_streams test_mipmaps CL_FILTER_NEAREST + - id: graphics/cl_host_cl_copy_images_mipmaps + summary: Run the cl_copy_images_mipmaps tests from OpenCL-CTS (host) + command: cl_host.py run-test images/clCopyImage/test_cl_copy_images test_mipmaps + - id: graphics/cl_host_cl_read_write_images_mipmaps + summary: Run the cl_read_write_images_mipmaps tests from OpenCL-CTS (host) + command: cl_host.py run-test images/clReadWriteImage/test_cl_read_write_images test_mipmaps + - id: graphics/cl_host_subgroups + summary: Run the subgroups tests from OpenCL-CTS (host) + command: cl_host.py run-test subgroups/test_subgroups diff --git a/providers/base/units/graphics/opengl-cts.pxu b/providers/base/units/graphics/opengl-cts.pxu deleted file mode 100644 index 2c1664a7f5..0000000000 --- a/providers/base/units/graphics/opengl-cts.pxu +++ /dev/null @@ -1,309 +0,0 @@ -unit: setup job -plugin: shell -id: setup/install_opengl_cts -category_id: com.canonical.plainbox::graphics -_summary: Install opengl-cts snap -_purpose: - This job will install the opengl-cts snap, a dependency of opengl conformance testing -user: root -command: - if snap list opengl-cts &>/dev/null; then - snap refresh --beta opengl-cts - else - snap install --beta opengl-cts - fi -estimated_duration: 1m - -unit: job -plugin: shell -id: graphics/gl_gpu_avail -category_id: com.canonical.plainbox::graphics -_summary: Checks for OpenGL-capable GPU -environ: - XDG_SESSION_TYPE - XDG_RUNTIME_DIR - DISPLAY -estimated_duration: 1s -command: - if opengl-cts.glxinfo 2>&1 | grep "OpenGL renderer string" | grep -qiv "llvmpipe\|softpipe\|swrast"; then - echo "PASS: Found an OpenGL-capable GPU" - else - echo "FAIL: No OpenGL-capable GPU found" - exit 1 - fi - -id: graphics/gl_core_info -depends: - graphics/gl_gpu_avail -setup_include: - setup/install_opengl_cts -category_id: com.canonical.plainbox::graphics -flags: simple -_summary: Run the info tests from OpenGL-CTS (core) -environ: - XDG_SESSION_TYPE - XDG_RUNTIME_DIR -estimated_duration: 5m -command: - # All options can be found in opengl-cts.list-tests - opengl-cts.test --headless --deqp-case=KHR-GLES32.info.* -_siblings: [ - { "id": "graphics/gl_core_shaders", - "_summary": "Run the shaders tests from OpenGL-CTS (core)", - "command": "opengl-cts.test --headless --deqp-case=KHR-GLES32.shaders.*" }, - { "id": "graphics/gl_core_geometry_shader", - "_summary": "Run the geometry_shader tests from OpenGL-CTS (core)", - "command": "opengl-cts.test --headless --deqp-case=KHR-GLES32.core.geometry_shader.*" }, - { "id": "graphics/gl_core_gpu_shader5", - "_summary": "Run the gpu_shader5 tests from OpenGL-CTS (core)", - "command": "opengl-cts.test --headless --deqp-case=KHR-GLES32.core.gpu_shader5.*" }, - { "id": "graphics/gl_core_tessellation_shader", - "_summary": "Run the tessellation_shader tests from OpenGL-CTS (core)", - "command": "opengl-cts.test --headless --deqp-case=KHR-GLES32.core.tessellation_shader.*" }, - { "id": "graphics/gl_core_texture_cube_map_array", - "_summary": "Run the texture_cube_map_array tests from OpenGL-CTS (core)", - "command": "opengl-cts.test --headless --deqp-case=KHR-GLES32.core.texture_cube_map_array.*" }, - { "id": "graphics/gl_core_texture_border_clamp", - "_summary": "Run the texture_border_clamp tests from OpenGL-CTS (core)", - "command": "opengl-cts.test --headless --deqp-case=KHR-GLES32.core.texture_border_clamp.*" }, - { "id": "graphics/gl_core_texture_buffer", - "_summary": "Run the texture_buffer tests from OpenGL-CTS (core)", - "command": "opengl-cts.test --headless --deqp-case=KHR-GLES32.core.texture_buffer.*" }, - { "id": "graphics/gl_core_draw_buffers_indexed", - "_summary": "Run the draw_buffers_indexed tests from OpenGL-CTS (core)", - "command": "opengl-cts.test --headless --deqp-case=KHR-GLES32.core.draw_buffers_indexed.*" }, - { "id": "graphics/gl_core_constant_expressions", - "_summary": "Run the constant_expressions tests from OpenGL-CTS (core)", - "command": "opengl-cts.test --headless --deqp-case=KHR-GLES32.core.constant_expressions.*" }, - { "id": "graphics/gl_core_shader_macros", - "_summary": "Run the shader_macros tests from OpenGL-CTS (core)", - "command": "opengl-cts.test --headless --deqp-case=KHR-GLES32.core.shader_macros.*" }, - { "id": "graphics/gl_core_separable_programs_tf", - "_summary": "Run the separable_programs_tf tests from OpenGL-CTS (core)", - "command": "opengl-cts.test --headless --deqp-case=KHR-GLES32.core.separable_programs_tf.*" }, - { "id": "graphics/gl_core_copy_image", - "_summary": "Run the copy_image tests from OpenGL-CTS (core)", - "command": "opengl-cts.test --headless --deqp-case=KHR-GLES32.core.copy_image.*" }, - { "id": "graphics/gl_core_texture2d", - "_summary": "Run the texture2d tests from OpenGL-CTS (core)", - "command": "opengl-cts.test --headless --deqp-case=KHR-GLES32.core.internalformat.texture2d.*" }, - { "id": "graphics/gl_core_copy_tex_image", - "_summary": "Run the copy_tex_image tests from OpenGL-CTS (core)", - "command": "opengl-cts.test --headless --deqp-case=KHR-GLES32.core.internalformat.copy_tex_image.*" }, - { "id": "graphics/gl_core_renderbuffer", - "_summary": "Run the renderbuffer tests from OpenGL-CTS (core)", - "command": "opengl-cts.test --headless --deqp-case=KHR-GLES32.core.internalformat.renderbuffer.rgb5_a1" }, - { "id": "graphics/gl_core_renderbuffer_depth_component32f", - "_summary": "Run the renderbuffer_depth_component32f tests from OpenGL-CTS (core)", - "command": "opengl-cts.test --headless --deqp-case=KHR-GLES32.core.internalformat.renderbuffer.depth_component32f" }, - { "id": "graphics/gl_core_renderbuffer_depth32f_stencil8", - "_summary": "Run the renderbuffer_depth32f_stencil8 tests from OpenGL-CTS (core)", - "command": "opengl-cts.test --headless --deqp-case=KHR-GLES32.core.internalformat.renderbuffer.depth32f_stencil8" }, - { "id": "graphics/gl_core_sampler2darrayshadow_fragment", - "_summary": "Run the sampler2darrayshadow_fragment tests from OpenGL-CTS (core)", - "command": "opengl-cts.test --headless --deqp-case=KHR-GLES32.core.ext_texture_shadow_lod.texture.sampler2darrayshadow_fragment" }, - { "id": "graphics/gl_core_sampler2darrayshadow_bias_fragment", - "_summary": "Run the sampler2darrayshadow_bias_fragment tests from OpenGL-CTS (core)", - "command": "opengl-cts.test --headless --deqp-case=KHR-GLES32.core.ext_texture_shadow_lod.texture.sampler2darrayshadow_bias_fragment" }, - { "id": "graphics/gl_core_samplercubearrayshadow_vertex", - "_summary": "Run the samplercubearrayshadow_vertex tests from OpenGL-CTS (core)", - "command": "opengl-cts.test --headless --deqp-case=KHR-GLES32.core.ext_texture_shadow_lod.texture.samplercubearrayshadow_vertex" }, - { "id": "graphics/gl_core_samplercubearrayshadow_fragment", - "_summary": "Run the samplercubearrayshadow_fragment tests from OpenGL-CTS (core)", - "command": "opengl-cts.test --headless --deqp-case=KHR-GLES32.core.ext_texture_shadow_lod.texture.samplercubearrayshadow_fragment" }, - { "id": "graphics/gl_core_samplercubearrayshadow_bias_fragment", - "_summary": "Run the samplercubearrayshadow_bias_fragment tests from OpenGL-CTS (core)", - "command": "opengl-cts.test --headless --deqp-case=KHR-GLES32.core.ext_texture_shadow_lod.texture.samplercubearrayshadow_bias_fragment" }, - { "id": "graphics/gl_core_textureoffset_sampler2darrayshadow_vertex", - "_summary": "Run the textureoffset_sampler2darrayshadow_vertex tests from OpenGL-CTS (core)", - "command": "opengl-cts.test --headless --deqp-case=KHR-GLES32.core.ext_texture_shadow_lod.textureoffset.sampler2darrayshadow_vertex" }, - { "id": "graphics/gl_core_textureoffset_sampler2darrayshadow_fragment", - "_summary": "Run the textureoffset_sampler2darrayshadow_fragment tests from OpenGL-CTS (core)", - "command": "opengl-cts.test --headless --deqp-case=KHR-GLES32.core.ext_texture_shadow_lod.textureoffset.sampler2darrayshadow_fragment" }, - { "id": "graphics/gl_core_textureoffset_sampler2darrayshadow_bias_fragment", - "_summary": "Run the textureoffset_sampler2darrayshadow_bias_fragment tests from OpenGL-CTS (core)", - "command": "opengl-cts.test --headless --deqp-case=KHR-GLES32.core.ext_texture_shadow_lod.textureoffset.sampler2darrayshadow_bias_fragment" }, - { "id": "graphics/gl_core_texturelod_sampler2darrayshadow_vertex", - "_summary": "Run the texturelod_sampler2darrayshadow_vertex tests from OpenGL-CTS (core)", - "command": "opengl-cts.test --headless --deqp-case=KHR-GLES32.core.ext_texture_shadow_lod.texturelod.sampler2darrayshadow_vertex" }, - { "id": "graphics/gl_core_texturelod_sampler2darrayshadow_fragment", - "_summary": "Run the texturelod_sampler2darrayshadow_fragment tests from OpenGL-CTS (core)", - "command": "opengl-cts.test --headless --deqp-case=KHR-GLES32.core.ext_texture_shadow_lod.texturelod.sampler2darrayshadow_fragment" }, - { "id": "graphics/gl_core_texturelod_samplercubeshadow_vertex", - "_summary": "Run the texturelod_samplercubeshadow_vertex tests from OpenGL-CTS (core)", - "command": "opengl-cts.test --headless --deqp-case=KHR-GLES32.core.ext_texture_shadow_lod.texturelod.samplercubeshadow_vertex" }, - { "id": "graphics/gl_core_texturelod_samplercubeshadow_fragment", - "_summary": "Run the texturelod_samplercubeshadow_fragment tests from OpenGL-CTS (core)", - "command": "opengl-cts.test --headless --deqp-case=KHR-GLES32.core.ext_texture_shadow_lod.texturelod.samplercubeshadow_fragment" }, - { "id": "graphics/gl_core_texturelod_samplercubearrayshadow_fragment", - "_summary": "Run the texturelod_samplercubearrayshadow_fragment tests from OpenGL-CTS (core)", - "command": "opengl-cts.test --headless --deqp-case=KHR-GLES32.core.ext_texture_shadow_lod.texturelod.samplercubearrayshadow_fragment" }, - { "id": "graphics/gl_core_texturelodoffset_sampler2darrayshadow_vertex", - "_summary": "Run the texturelodoffset_sampler2darrayshadow_vertex tests from OpenGL-CTS (core)", - "command": "opengl-cts.test --headless --deqp-case=KHR-GLES32.core.ext_texture_shadow_lod.texturelodoffset.sampler2darrayshadow_vertex" }, - { "id": "graphics/gl_core_texturelodoffset_sampler2darrayshadow_fragment", - "_summary": "Run the texturelodoffset_sampler2darrayshadow_fragment tests from OpenGL-CTS (core)", - "command": "opengl-cts.test --headless --deqp-case=KHR-GLES32.core.ext_texture_shadow_lod.texturelodoffset.sampler2darrayshadow_fragment" }, - { "id": "graphics/gl_core_nearest_edge", - "_summary": "Run the nearest_edge tests from OpenGL-CTS (core)", - "command": "opengl-cts.test --headless --deqp-case=KHR-GLES32.core.nearest_edge.*" }, - { "id": "graphics/gl_core_framebuffer_completeness", - "_summary": "Run the framebuffer_completeness tests from OpenGL-CTS (core)", - "command": "opengl-cts.test --headless --deqp-case=KHR-GLES32.core.framebuffer_completeness.*" }, - { "id": "graphics/gl_core_texture_compatibility", - "_summary": "Run the texture_compatibility tests from OpenGL-CTS (core)", - "command": "opengl-cts.test --headless --deqp-case=KHR-GLES32.core.texture_compatibility.*" }, - { "id": "graphics/gl_core_compressed_format", - "_summary": "Run the compressed_format tests from OpenGL-CTS (core)", - "command": "opengl-cts.test --headless --deqp-case=KHR-GLES32.core.compressed_format.*" }] - -unit: job -plugin: shell -id: graphics/gl_classic_gpu_avail -category_id: com.canonical.plainbox::graphics -user: root -_summary: Checks for OpenGL-capable GPU using host drivers -environ: - XDG_SESSION_TYPE - XDG_RUNTIME_DIR - PATH -estimated_duration: 1s -command: gl_host.py resource - -unit: job -plugin: shell -id: graphics/gl_classic_gl_avail -category_id: com.canonical.plainbox::graphics -user: root -_summary: Checks for host OpenGL EGL loader required by opengl-cts --no-confinement -requires: package.name == 'libegl-dev' -estimated_duration: 1s -command: gl_host.py validate-install - -id: graphics/gl_classic_info -depends: - graphics/gl_classic_gpu_avail - graphics/gl_classic_gl_avail -setup_include: - setup/install_opengl_cts -category_id: com.canonical.plainbox::graphics -flags: simple -user: root -_summary: Run the info tests from OpenGL-CTS (classic) -environ: - XDG_SESSION_TYPE - XDG_RUNTIME_DIR -estimated_duration: 5m -command: - # All options can be found in opengl-cts.list-tests - # gl_host.py used to wrap extra env vars, paths, and flags vs Core tests - gl_host.py run-test --deqp-case=KHR-GLES32.info.* -_siblings: [ - { "id": "graphics/gl_classic_shaders", - "_summary": "Run the shaders tests from OpenGL-CTS (classic)", - "command": "gl_host.py run-test --deqp-case=KHR-GLES32.shaders.*" }, - { "id": "graphics/gl_classic_geometry_shader", - "_summary": "Run the geometry_shader tests from OpenGL-CTS (classic)", - "command": "gl_host.py run-test --deqp-case=KHR-GLES32.core.geometry_shader.*" }, - { "id": "graphics/gl_classic_gpu_shader5", - "_summary": "Run the gpu_shader5 tests from OpenGL-CTS (classic)", - "command": "gl_host.py run-test --deqp-case=KHR-GLES32.core.gpu_shader5.*" }, - { "id": "graphics/gl_classic_tessellation_shader", - "_summary": "Run the tessellation_shader tests from OpenGL-CTS (classic)", - "command": "gl_host.py run-test --deqp-case=KHR-GLES32.core.tessellation_shader.*" }, - { "id": "graphics/gl_classic_texture_cube_map_array", - "_summary": "Run the texture_cube_map_array tests from OpenGL-CTS (classic)", - "command": "gl_host.py run-test --deqp-case=KHR-GLES32.core.texture_cube_map_array.*" }, - { "id": "graphics/gl_classic_texture_border_clamp", - "_summary": "Run the texture_border_clamp tests from OpenGL-CTS (classic)", - "command": "gl_host.py run-test --deqp-case=KHR-GLES32.core.texture_border_clamp.*" }, - { "id": "graphics/gl_classic_texture_buffer", - "_summary": "Run the texture_buffer tests from OpenGL-CTS (classic)", - "command": "gl_host.py run-test --deqp-case=KHR-GLES32.core.texture_buffer.*" }, - { "id": "graphics/gl_classic_draw_buffers_indexed", - "_summary": "Run the draw_buffers_indexed tests from OpenGL-CTS (classic)", - "command": "gl_host.py run-test --deqp-case=KHR-GLES32.core.draw_buffers_indexed.*" }, - { "id": "graphics/gl_classic_constant_expressions", - "_summary": "Run the constant_expressions tests from OpenGL-CTS (classic)", - "command": "gl_host.py run-test --deqp-case=KHR-GLES32.core.constant_expressions.*" }, - { "id": "graphics/gl_classic_shader_macros", - "_summary": "Run the shader_macros tests from OpenGL-CTS (classic)", - "command": "gl_host.py run-test --deqp-case=KHR-GLES32.core.shader_macros.*" }, - { "id": "graphics/gl_classic_separable_programs_tf", - "_summary": "Run the separable_programs_tf tests from OpenGL-CTS (classic)", - "command": "gl_host.py run-test --deqp-case=KHR-GLES32.core.separable_programs_tf.*" }, - { "id": "graphics/gl_classic_copy_image", - "_summary": "Run the copy_image tests from OpenGL-CTS (classic)", - "command": "gl_host.py run-test --deqp-case=KHR-GLES32.core.copy_image.*" }, - { "id": "graphics/gl_classic_texture2d", - "_summary": "Run the texture2d tests from OpenGL-CTS (classic)", - "command": "gl_host.py run-test --deqp-case=KHR-GLES32.core.internalformat.texture2d.*" }, - { "id": "graphics/gl_classic_copy_tex_image", - "_summary": "Run the copy_tex_image tests from OpenGL-CTS (classic)", - "command": "gl_host.py run-test --deqp-case=KHR-GLES32.core.internalformat.copy_tex_image.*" }, - { "id": "graphics/gl_classic_renderbuffer", - "_summary": "Run the renderbuffer tests from OpenGL-CTS (classic)", - "command": "gl_host.py run-test --deqp-case=KHR-GLES32.core.internalformat.renderbuffer.rgb5_a1" }, - { "id": "graphics/gl_classic_renderbuffer_depth_component32f", - "_summary": "Run the renderbuffer_depth_component32f tests from OpenGL-CTS (classic)", - "command": "gl_host.py run-test --deqp-case=KHR-GLES32.core.internalformat.renderbuffer.depth_component32f" }, - { "id": "graphics/gl_classic_renderbuffer_depth32f_stencil8", - "_summary": "Run the renderbuffer_depth32f_stencil8 tests from OpenGL-CTS (classic)", - "command": "gl_host.py run-test --deqp-case=KHR-GLES32.core.internalformat.renderbuffer.depth32f_stencil8" }, - { "id": "graphics/gl_classic_sampler2darrayshadow_fragment", - "_summary": "Run the sampler2darrayshadow_fragment tests from OpenGL-CTS (classic)", - "command": "gl_host.py run-test --deqp-case=KHR-GLES32.core.ext_texture_shadow_lod.texture.sampler2darrayshadow_fragment" }, - { "id": "graphics/gl_classic_sampler2darrayshadow_bias_fragment", - "_summary": "Run the sampler2darrayshadow_bias_fragment tests from OpenGL-CTS (classic)", - "command": "gl_host.py run-test --deqp-case=KHR-GLES32.core.ext_texture_shadow_lod.texture.sampler2darrayshadow_bias_fragment" }, - { "id": "graphics/gl_classic_samplercubearrayshadow_vertex", - "_summary": "Run the samplercubearrayshadow_vertex tests from OpenGL-CTS (classic)", - "command": "gl_host.py run-test --deqp-case=KHR-GLES32.core.ext_texture_shadow_lod.texture.samplercubearrayshadow_vertex" }, - { "id": "graphics/gl_classic_samplercubearrayshadow_fragment", - "_summary": "Run the samplercubearrayshadow_fragment tests from OpenGL-CTS (classic)", - "command": "gl_host.py run-test --deqp-case=KHR-GLES32.core.ext_texture_shadow_lod.texture.samplercubearrayshadow_fragment" }, - { "id": "graphics/gl_classic_samplercubearrayshadow_bias_fragment", - "_summary": "Run the samplercubearrayshadow_bias_fragment tests from OpenGL-CTS (classic)", - "command": "gl_host.py run-test --deqp-case=KHR-GLES32.core.ext_texture_shadow_lod.texture.samplercubearrayshadow_bias_fragment" }, - { "id": "graphics/gl_classic_textureoffset_sampler2darrayshadow_vertex", - "_summary": "Run the textureoffset_sampler2darrayshadow_vertex tests from OpenGL-CTS (classic)", - "command": "gl_host.py run-test --deqp-case=KHR-GLES32.core.ext_texture_shadow_lod.textureoffset.sampler2darrayshadow_vertex" }, - { "id": "graphics/gl_classic_textureoffset_sampler2darrayshadow_fragment", - "_summary": "Run the textureoffset_sampler2darrayshadow_fragment tests from OpenGL-CTS (classic)", - "command": "gl_host.py run-test --deqp-case=KHR-GLES32.core.ext_texture_shadow_lod.textureoffset.sampler2darrayshadow_fragment" }, - { "id": "graphics/gl_classic_textureoffset_sampler2darrayshadow_bias_fragment", - "_summary": "Run the textureoffset_sampler2darrayshadow_bias_fragment tests from OpenGL-CTS (classic)", - "command": "gl_host.py run-test --deqp-case=KHR-GLES32.core.ext_texture_shadow_lod.textureoffset.sampler2darrayshadow_bias_fragment" }, - { "id": "graphics/gl_classic_texturelod_sampler2darrayshadow_vertex", - "_summary": "Run the texturelod_sampler2darrayshadow_vertex tests from OpenGL-CTS (classic)", - "command": "gl_host.py run-test --deqp-case=KHR-GLES32.core.ext_texture_shadow_lod.texturelod.sampler2darrayshadow_vertex" }, - { "id": "graphics/gl_classic_texturelod_sampler2darrayshadow_fragment", - "_summary": "Run the texturelod_sampler2darrayshadow_fragment tests from OpenGL-CTS (classic)", - "command": "gl_host.py run-test --deqp-case=KHR-GLES32.core.ext_texture_shadow_lod.texturelod.sampler2darrayshadow_fragment" }, - { "id": "graphics/gl_classic_texturelod_samplercubeshadow_vertex", - "_summary": "Run the texturelod_samplercubeshadow_vertex tests from OpenGL-CTS (classic)", - "command": "gl_host.py run-test --deqp-case=KHR-GLES32.core.ext_texture_shadow_lod.texturelod.samplercubeshadow_vertex" }, - { "id": "graphics/gl_classic_texturelod_samplercubeshadow_fragment", - "_summary": "Run the texturelod_samplercubeshadow_fragment tests from OpenGL-CTS (classic)", - "command": "gl_host.py run-test --deqp-case=KHR-GLES32.core.ext_texture_shadow_lod.texturelod.samplercubeshadow_fragment" }, - { "id": "graphics/gl_classic_texturelod_samplercubearrayshadow_fragment", - "_summary": "Run the texturelod_samplercubearrayshadow_fragment tests from OpenGL-CTS (classic)", - "command": "gl_host.py run-test --deqp-case=KHR-GLES32.core.ext_texture_shadow_lod.texturelod.samplercubearrayshadow_fragment" }, - { "id": "graphics/gl_classic_texturelodoffset_sampler2darrayshadow_vertex", - "_summary": "Run the texturelodoffset_sampler2darrayshadow_vertex tests from OpenGL-CTS (classic)", - "command": "gl_host.py run-test --deqp-case=KHR-GLES32.core.ext_texture_shadow_lod.texturelodoffset.sampler2darrayshadow_vertex" }, - { "id": "graphics/gl_classic_texturelodoffset_sampler2darrayshadow_fragment", - "_summary": "Run the texturelodoffset_sampler2darrayshadow_fragment tests from OpenGL-CTS (classic)", - "command": "gl_host.py run-test --deqp-case=KHR-GLES32.core.ext_texture_shadow_lod.texturelodoffset.sampler2darrayshadow_fragment" }, - { "id": "graphics/gl_classic_nearest_edge", - "_summary": "Run the nearest_edge tests from OpenGL-CTS (classic)", - "command": "gl_host.py run-test --deqp-case=KHR-GLES32.core.nearest_edge.*" }, - { "id": "graphics/gl_classic_framebuffer_completeness", - "_summary": "Run the framebuffer_completeness tests from OpenGL-CTS (classic)", - "command": "gl_host.py run-test --deqp-case=KHR-GLES32.core.framebuffer_completeness.*" }, - { "id": "graphics/gl_classic_texture_compatibility", - "_summary": "Run the texture_compatibility tests from OpenGL-CTS (classic)", - "command": "gl_host.py run-test --deqp-case=KHR-GLES32.core.texture_compatibility.*" }, - { "id": "graphics/gl_classic_compressed_format", - "_summary": "Run the compressed_format tests from OpenGL-CTS (classic)", - "command": "gl_host.py run-test --deqp-case=KHR-GLES32.core.compressed_format.*" }] diff --git a/providers/base/units/graphics/opengl-cts.yaml b/providers/base/units/graphics/opengl-cts.yaml new file mode 100644 index 0000000000..8cf66787ee --- /dev/null +++ b/providers/base/units/graphics/opengl-cts.yaml @@ -0,0 +1,335 @@ +unit: setup job +plugin: shell +id: setup/install_opengl_cts +category_id: com.canonical.plainbox::graphics +summary: Install opengl-cts snap +user: root +command: | + if snap list opengl-cts &>/dev/null; then + snap refresh --beta opengl-cts + else + snap install --beta opengl-cts + fi +estimated_duration: 1m +--- +unit: job +plugin: shell +id: graphics/gl_gpu_avail +category_id: com.canonical.plainbox::graphics +summary: Checks for OpenGL-capable GPU +environ: + - XDG_SESSION_TYPE + - XDG_RUNTIME_DIR + - DISPLAY +estimated_duration: 1s +command: | + if opengl-cts.glxinfo 2>&1 | grep "OpenGL renderer string" | grep -qiv "llvmpipe\|softpipe\|swrast"; then + echo "PASS: Found an OpenGL-capable GPU" + else + echo "FAIL: No OpenGL-capable GPU found" + exit 1 + fi +--- +id: graphics/gl_core_info +depends: + - graphics/gl_gpu_avail +category_id: com.canonical.plainbox::graphics +flags: + - simple +summary: Run the info tests from OpenGL-CTS (core) +environ: + - XDG_SESSION_TYPE + - XDG_RUNTIME_DIR +estimated_duration: 5m +command: | + # All options can be found in opengl-cts.list-tests + opengl-cts.test --headless --deqp-case=KHR-GLES32.info.* +siblings: + - id: graphics/gl_core_shaders + summary: Run the shaders tests from OpenGL-CTS (core) + command: opengl-cts.test --headless --deqp-case=KHR-GLES32.shaders.* + - id: graphics/gl_core_geometry_shader + summary: Run the geometry_shader tests from OpenGL-CTS (core) + command: opengl-cts.test --headless --deqp-case=KHR-GLES32.core.geometry_shader.* + - id: graphics/gl_core_gpu_shader5 + summary: Run the gpu_shader5 tests from OpenGL-CTS (core) + command: opengl-cts.test --headless --deqp-case=KHR-GLES32.core.gpu_shader5.* + - id: graphics/gl_core_tessellation_shader + summary: Run the tessellation_shader tests from OpenGL-CTS (core) + command: opengl-cts.test --headless --deqp-case=KHR-GLES32.core.tessellation_shader.* + - id: graphics/gl_core_texture_cube_map_array + summary: Run the texture_cube_map_array tests from OpenGL-CTS (core) + command: opengl-cts.test --headless --deqp-case=KHR-GLES32.core.texture_cube_map_array.* + - id: graphics/gl_core_texture_border_clamp + summary: Run the texture_border_clamp tests from OpenGL-CTS (core) + command: opengl-cts.test --headless --deqp-case=KHR-GLES32.core.texture_border_clamp.* + - id: graphics/gl_core_texture_buffer + summary: Run the texture_buffer tests from OpenGL-CTS (core) + command: opengl-cts.test --headless --deqp-case=KHR-GLES32.core.texture_buffer.* + - id: graphics/gl_core_draw_buffers_indexed + summary: Run the draw_buffers_indexed tests from OpenGL-CTS (core) + command: opengl-cts.test --headless --deqp-case=KHR-GLES32.core.draw_buffers_indexed.* + - id: graphics/gl_core_constant_expressions + summary: Run the constant_expressions tests from OpenGL-CTS (core) + command: opengl-cts.test --headless --deqp-case=KHR-GLES32.core.constant_expressions.* + - id: graphics/gl_core_shader_macros + summary: Run the shader_macros tests from OpenGL-CTS (core) + command: opengl-cts.test --headless --deqp-case=KHR-GLES32.core.shader_macros.* + - id: graphics/gl_core_separable_programs_tf + summary: Run the separable_programs_tf tests from OpenGL-CTS (core) + command: opengl-cts.test --headless --deqp-case=KHR-GLES32.core.separable_programs_tf.* + - id: graphics/gl_core_copy_image + summary: Run the copy_image tests from OpenGL-CTS (core) + command: opengl-cts.test --headless --deqp-case=KHR-GLES32.core.copy_image.* + - id: graphics/gl_core_texture2d + summary: Run the texture2d tests from OpenGL-CTS (core) + command: opengl-cts.test --headless --deqp-case=KHR-GLES32.core.internalformat.texture2d.* + - id: graphics/gl_core_copy_tex_image + summary: Run the copy_tex_image tests from OpenGL-CTS (core) + command: opengl-cts.test --headless --deqp-case=KHR-GLES32.core.internalformat.copy_tex_image.* + - id: graphics/gl_core_renderbuffer + summary: Run the renderbuffer tests from OpenGL-CTS (core) + command: opengl-cts.test --headless --deqp-case=KHR-GLES32.core.internalformat.renderbuffer.rgb5_a1 + - id: graphics/gl_core_renderbuffer_depth_component32f + summary: Run the renderbuffer_depth_component32f tests from OpenGL-CTS (core) + command: opengl-cts.test --headless --deqp-case=KHR-GLES32.core.internalformat.renderbuffer.depth_component32f + - id: graphics/gl_core_renderbuffer_depth32f_stencil8 + summary: Run the renderbuffer_depth32f_stencil8 tests from OpenGL-CTS (core) + command: opengl-cts.test --headless --deqp-case=KHR-GLES32.core.internalformat.renderbuffer.depth32f_stencil8 + - id: graphics/gl_core_sampler2darrayshadow_fragment + summary: Run the sampler2darrayshadow_fragment tests from OpenGL-CTS (core) + command: opengl-cts.test --headless + --deqp-case=KHR-GLES32.core.ext_texture_shadow_lod.texture.sampler2darrayshadow_fragment + - id: graphics/gl_core_sampler2darrayshadow_bias_fragment + summary: Run the sampler2darrayshadow_bias_fragment tests from OpenGL-CTS (core) + command: opengl-cts.test --headless + --deqp-case=KHR-GLES32.core.ext_texture_shadow_lod.texture.sampler2darrayshadow_bias_fragment + - id: graphics/gl_core_samplercubearrayshadow_vertex + summary: Run the samplercubearrayshadow_vertex tests from OpenGL-CTS (core) + command: opengl-cts.test --headless + --deqp-case=KHR-GLES32.core.ext_texture_shadow_lod.texture.samplercubearrayshadow_vertex + - id: graphics/gl_core_samplercubearrayshadow_fragment + summary: Run the samplercubearrayshadow_fragment tests from OpenGL-CTS (core) + command: opengl-cts.test --headless + --deqp-case=KHR-GLES32.core.ext_texture_shadow_lod.texture.samplercubearrayshadow_fragment + - id: graphics/gl_core_samplercubearrayshadow_bias_fragment + summary: Run the samplercubearrayshadow_bias_fragment tests from OpenGL-CTS (core) + command: opengl-cts.test --headless + --deqp-case=KHR-GLES32.core.ext_texture_shadow_lod.texture.samplercubearrayshadow_bias_fragment + - id: graphics/gl_core_textureoffset_sampler2darrayshadow_vertex + summary: Run the textureoffset_sampler2darrayshadow_vertex tests from OpenGL-CTS (core) + command: opengl-cts.test --headless + --deqp-case=KHR-GLES32.core.ext_texture_shadow_lod.textureoffset.sampler2darrayshadow_vertex + - id: graphics/gl_core_textureoffset_sampler2darrayshadow_fragment + summary: Run the textureoffset_sampler2darrayshadow_fragment tests from OpenGL-CTS (core) + command: opengl-cts.test --headless + --deqp-case=KHR-GLES32.core.ext_texture_shadow_lod.textureoffset.sampler2darrayshadow_fragment + - id: graphics/gl_core_textureoffset_sampler2darrayshadow_bias_fragment + summary: Run the textureoffset_sampler2darrayshadow_bias_fragment tests from OpenGL-CTS (core) + command: opengl-cts.test --headless + --deqp-case=KHR-GLES32.core.ext_texture_shadow_lod.textureoffset.sampler2darrayshadow_bias_fragment + - id: graphics/gl_core_texturelod_sampler2darrayshadow_vertex + summary: Run the texturelod_sampler2darrayshadow_vertex tests from OpenGL-CTS (core) + command: opengl-cts.test --headless + --deqp-case=KHR-GLES32.core.ext_texture_shadow_lod.texturelod.sampler2darrayshadow_vertex + - id: graphics/gl_core_texturelod_sampler2darrayshadow_fragment + summary: Run the texturelod_sampler2darrayshadow_fragment tests from OpenGL-CTS (core) + command: opengl-cts.test --headless + --deqp-case=KHR-GLES32.core.ext_texture_shadow_lod.texturelod.sampler2darrayshadow_fragment + - id: graphics/gl_core_texturelod_samplercubeshadow_vertex + summary: Run the texturelod_samplercubeshadow_vertex tests from OpenGL-CTS (core) + command: opengl-cts.test --headless + --deqp-case=KHR-GLES32.core.ext_texture_shadow_lod.texturelod.samplercubeshadow_vertex + - id: graphics/gl_core_texturelod_samplercubeshadow_fragment + summary: Run the texturelod_samplercubeshadow_fragment tests from OpenGL-CTS (core) + command: opengl-cts.test --headless + --deqp-case=KHR-GLES32.core.ext_texture_shadow_lod.texturelod.samplercubeshadow_fragment + - id: graphics/gl_core_texturelod_samplercubearrayshadow_fragment + summary: Run the texturelod_samplercubearrayshadow_fragment tests from OpenGL-CTS (core) + command: opengl-cts.test --headless + --deqp-case=KHR-GLES32.core.ext_texture_shadow_lod.texturelod.samplercubearrayshadow_fragment + - id: graphics/gl_core_texturelodoffset_sampler2darrayshadow_vertex + summary: Run the texturelodoffset_sampler2darrayshadow_vertex tests from OpenGL-CTS (core) + command: opengl-cts.test --headless + --deqp-case=KHR-GLES32.core.ext_texture_shadow_lod.texturelodoffset.sampler2darrayshadow_vertex + - id: graphics/gl_core_texturelodoffset_sampler2darrayshadow_fragment + summary: Run the texturelodoffset_sampler2darrayshadow_fragment tests from OpenGL-CTS (core) + command: opengl-cts.test --headless + --deqp-case=KHR-GLES32.core.ext_texture_shadow_lod.texturelodoffset.sampler2darrayshadow_fragment + - id: graphics/gl_core_nearest_edge + summary: Run the nearest_edge tests from OpenGL-CTS (core) + command: opengl-cts.test --headless --deqp-case=KHR-GLES32.core.nearest_edge.* + - id: graphics/gl_core_framebuffer_completeness + summary: Run the framebuffer_completeness tests from OpenGL-CTS (core) + command: opengl-cts.test --headless --deqp-case=KHR-GLES32.core.framebuffer_completeness.* + - id: graphics/gl_core_texture_compatibility + summary: Run the texture_compatibility tests from OpenGL-CTS (core) + command: opengl-cts.test --headless --deqp-case=KHR-GLES32.core.texture_compatibility.* + - id: graphics/gl_core_compressed_format + summary: Run the compressed_format tests from OpenGL-CTS (core) + command: opengl-cts.test --headless --deqp-case=KHR-GLES32.core.compressed_format.* +--- +unit: job +plugin: shell +id: graphics/gl_classic_gpu_avail +category_id: com.canonical.plainbox::graphics +user: root +summary: Checks for OpenGL-capable GPU using host drivers +environ: + - XDG_SESSION_TYPE + - XDG_RUNTIME_DIR + - PATH +estimated_duration: 1s +command: gl_host.py resource +--- +unit: job +plugin: shell +id: graphics/gl_classic_gl_avail +category_id: com.canonical.plainbox::graphics +user: root +summary: Checks for host OpenGL EGL loader required by opengl-cts --no-confinement +requires: + - package.name == 'libegl-dev' +estimated_duration: 1s +command: gl_host.py validate-install +--- +id: graphics/gl_classic_info +depends: + - graphics/gl_classic_gpu_avail + - graphics/gl_classic_gl_avail +category_id: com.canonical.plainbox::graphics +flags: + - simple +user: root +summary: Run the info tests from OpenGL-CTS (classic) +environ: + - XDG_SESSION_TYPE + - XDG_RUNTIME_DIR +estimated_duration: 5m +command: | + # All options can be found in opengl-cts.list-tests + # gl_host.py used to wrap extra env vars, paths, and flags vs Core tests + gl_host.py run-test --deqp-case=KHR-GLES32.info.* +siblings: + - id: graphics/gl_classic_shaders + summary: Run the shaders tests from OpenGL-CTS (classic) + command: gl_host.py run-test --deqp-case=KHR-GLES32.shaders.* + - id: graphics/gl_classic_geometry_shader + summary: Run the geometry_shader tests from OpenGL-CTS (classic) + command: gl_host.py run-test --deqp-case=KHR-GLES32.core.geometry_shader.* + - id: graphics/gl_classic_gpu_shader5 + summary: Run the gpu_shader5 tests from OpenGL-CTS (classic) + command: gl_host.py run-test --deqp-case=KHR-GLES32.core.gpu_shader5.* + - id: graphics/gl_classic_tessellation_shader + summary: Run the tessellation_shader tests from OpenGL-CTS (classic) + command: gl_host.py run-test --deqp-case=KHR-GLES32.core.tessellation_shader.* + - id: graphics/gl_classic_texture_cube_map_array + summary: Run the texture_cube_map_array tests from OpenGL-CTS (classic) + command: gl_host.py run-test --deqp-case=KHR-GLES32.core.texture_cube_map_array.* + - id: graphics/gl_classic_texture_border_clamp + summary: Run the texture_border_clamp tests from OpenGL-CTS (classic) + command: gl_host.py run-test --deqp-case=KHR-GLES32.core.texture_border_clamp.* + - id: graphics/gl_classic_texture_buffer + summary: Run the texture_buffer tests from OpenGL-CTS (classic) + command: gl_host.py run-test --deqp-case=KHR-GLES32.core.texture_buffer.* + - id: graphics/gl_classic_draw_buffers_indexed + summary: Run the draw_buffers_indexed tests from OpenGL-CTS (classic) + command: gl_host.py run-test --deqp-case=KHR-GLES32.core.draw_buffers_indexed.* + - id: graphics/gl_classic_constant_expressions + summary: Run the constant_expressions tests from OpenGL-CTS (classic) + command: gl_host.py run-test --deqp-case=KHR-GLES32.core.constant_expressions.* + - id: graphics/gl_classic_shader_macros + summary: Run the shader_macros tests from OpenGL-CTS (classic) + command: gl_host.py run-test --deqp-case=KHR-GLES32.core.shader_macros.* + - id: graphics/gl_classic_separable_programs_tf + summary: Run the separable_programs_tf tests from OpenGL-CTS (classic) + command: gl_host.py run-test --deqp-case=KHR-GLES32.core.separable_programs_tf.* + - id: graphics/gl_classic_copy_image + summary: Run the copy_image tests from OpenGL-CTS (classic) + command: gl_host.py run-test --deqp-case=KHR-GLES32.core.copy_image.* + - id: graphics/gl_classic_texture2d + summary: Run the texture2d tests from OpenGL-CTS (classic) + command: gl_host.py run-test --deqp-case=KHR-GLES32.core.internalformat.texture2d.* + - id: graphics/gl_classic_copy_tex_image + summary: Run the copy_tex_image tests from OpenGL-CTS (classic) + command: gl_host.py run-test --deqp-case=KHR-GLES32.core.internalformat.copy_tex_image.* + - id: graphics/gl_classic_renderbuffer + summary: Run the renderbuffer tests from OpenGL-CTS (classic) + command: gl_host.py run-test --deqp-case=KHR-GLES32.core.internalformat.renderbuffer.rgb5_a1 + - id: graphics/gl_classic_renderbuffer_depth_component32f + summary: Run the renderbuffer_depth_component32f tests from OpenGL-CTS (classic) + command: gl_host.py run-test --deqp-case=KHR-GLES32.core.internalformat.renderbuffer.depth_component32f + - id: graphics/gl_classic_renderbuffer_depth32f_stencil8 + summary: Run the renderbuffer_depth32f_stencil8 tests from OpenGL-CTS (classic) + command: gl_host.py run-test --deqp-case=KHR-GLES32.core.internalformat.renderbuffer.depth32f_stencil8 + - id: graphics/gl_classic_sampler2darrayshadow_fragment + summary: Run the sampler2darrayshadow_fragment tests from OpenGL-CTS (classic) + command: gl_host.py run-test + --deqp-case=KHR-GLES32.core.ext_texture_shadow_lod.texture.sampler2darrayshadow_fragment + - id: graphics/gl_classic_sampler2darrayshadow_bias_fragment + summary: Run the sampler2darrayshadow_bias_fragment tests from OpenGL-CTS (classic) + command: gl_host.py run-test + --deqp-case=KHR-GLES32.core.ext_texture_shadow_lod.texture.sampler2darrayshadow_bias_fragment + - id: graphics/gl_classic_samplercubearrayshadow_vertex + summary: Run the samplercubearrayshadow_vertex tests from OpenGL-CTS (classic) + command: gl_host.py run-test + --deqp-case=KHR-GLES32.core.ext_texture_shadow_lod.texture.samplercubearrayshadow_vertex + - id: graphics/gl_classic_samplercubearrayshadow_fragment + summary: Run the samplercubearrayshadow_fragment tests from OpenGL-CTS (classic) + command: gl_host.py run-test + --deqp-case=KHR-GLES32.core.ext_texture_shadow_lod.texture.samplercubearrayshadow_fragment + - id: graphics/gl_classic_samplercubearrayshadow_bias_fragment + summary: Run the samplercubearrayshadow_bias_fragment tests from OpenGL-CTS (classic) + command: gl_host.py run-test + --deqp-case=KHR-GLES32.core.ext_texture_shadow_lod.texture.samplercubearrayshadow_bias_fragment + - id: graphics/gl_classic_textureoffset_sampler2darrayshadow_vertex + summary: Run the textureoffset_sampler2darrayshadow_vertex tests from OpenGL-CTS (classic) + command: gl_host.py run-test + --deqp-case=KHR-GLES32.core.ext_texture_shadow_lod.textureoffset.sampler2darrayshadow_vertex + - id: graphics/gl_classic_textureoffset_sampler2darrayshadow_fragment + summary: Run the textureoffset_sampler2darrayshadow_fragment tests from OpenGL-CTS (classic) + command: gl_host.py run-test + --deqp-case=KHR-GLES32.core.ext_texture_shadow_lod.textureoffset.sampler2darrayshadow_fragment + - id: graphics/gl_classic_textureoffset_sampler2darrayshadow_bias_fragment + summary: Run the textureoffset_sampler2darrayshadow_bias_fragment tests from OpenGL-CTS (classic) + command: gl_host.py run-test + --deqp-case=KHR-GLES32.core.ext_texture_shadow_lod.textureoffset.sampler2darrayshadow_bias_fragment + - id: graphics/gl_classic_texturelod_sampler2darrayshadow_vertex + summary: Run the texturelod_sampler2darrayshadow_vertex tests from OpenGL-CTS (classic) + command: gl_host.py run-test + --deqp-case=KHR-GLES32.core.ext_texture_shadow_lod.texturelod.sampler2darrayshadow_vertex + - id: graphics/gl_classic_texturelod_sampler2darrayshadow_fragment + summary: Run the texturelod_sampler2darrayshadow_fragment tests from OpenGL-CTS (classic) + command: gl_host.py run-test + --deqp-case=KHR-GLES32.core.ext_texture_shadow_lod.texturelod.sampler2darrayshadow_fragment + - id: graphics/gl_classic_texturelod_samplercubeshadow_vertex + summary: Run the texturelod_samplercubeshadow_vertex tests from OpenGL-CTS (classic) + command: gl_host.py run-test --deqp-case=KHR-GLES32.core.ext_texture_shadow_lod.texturelod.samplercubeshadow_vertex + - id: graphics/gl_classic_texturelod_samplercubeshadow_fragment + summary: Run the texturelod_samplercubeshadow_fragment tests from OpenGL-CTS (classic) + command: gl_host.py run-test + --deqp-case=KHR-GLES32.core.ext_texture_shadow_lod.texturelod.samplercubeshadow_fragment + - id: graphics/gl_classic_texturelod_samplercubearrayshadow_fragment + summary: Run the texturelod_samplercubearrayshadow_fragment tests from OpenGL-CTS (classic) + command: gl_host.py run-test + --deqp-case=KHR-GLES32.core.ext_texture_shadow_lod.texturelod.samplercubearrayshadow_fragment + - id: graphics/gl_classic_texturelodoffset_sampler2darrayshadow_vertex + summary: Run the texturelodoffset_sampler2darrayshadow_vertex tests from OpenGL-CTS (classic) + command: gl_host.py run-test + --deqp-case=KHR-GLES32.core.ext_texture_shadow_lod.texturelodoffset.sampler2darrayshadow_vertex + - id: graphics/gl_classic_texturelodoffset_sampler2darrayshadow_fragment + summary: Run the texturelodoffset_sampler2darrayshadow_fragment tests from OpenGL-CTS (classic) + command: gl_host.py run-test + --deqp-case=KHR-GLES32.core.ext_texture_shadow_lod.texturelodoffset.sampler2darrayshadow_fragment + - id: graphics/gl_classic_nearest_edge + summary: Run the nearest_edge tests from OpenGL-CTS (classic) + command: gl_host.py run-test --deqp-case=KHR-GLES32.core.nearest_edge.* + - id: graphics/gl_classic_framebuffer_completeness + summary: Run the framebuffer_completeness tests from OpenGL-CTS (classic) + command: gl_host.py run-test --deqp-case=KHR-GLES32.core.framebuffer_completeness.* + - id: graphics/gl_classic_texture_compatibility + summary: Run the texture_compatibility tests from OpenGL-CTS (classic) + command: gl_host.py run-test --deqp-case=KHR-GLES32.core.texture_compatibility.* + - id: graphics/gl_classic_compressed_format + summary: Run the compressed_format tests from OpenGL-CTS (classic) + command: gl_host.py run-test --deqp-case=KHR-GLES32.core.compressed_format.* diff --git a/providers/base/units/graphics/test-plan.pxu b/providers/base/units/graphics/test-plan.pxu deleted file mode 100644 index dbcc62d4ef..0000000000 --- a/providers/base/units/graphics/test-plan.pxu +++ /dev/null @@ -1,526 +0,0 @@ -id: graphics-gpu-cert-full -unit: test plan -_name: Graphics tests (GPU) -_description: - Graphics tests (GPU) -include: -bootstrap_include: - graphics_card -nested_part: - com.canonical.certification::graphics-gpu-cert-automated - com.canonical.certification::graphics-gpu-cert-manual - -id: graphics-gpu-cert-automated -unit: test plan -_name: Graphics tests (Automated) -_description: - Graphics tests (Automated) -include: - graphics/VESA_drivers_not_in_use certification-status=blocker - graphics/1_driver_version_.* certification-status=blocker - graphics/1_gl_support_.* certification-status=blocker - graphics/1_minimum_resolution_.* - graphics/2_driver_version_.* certification-status=blocker - graphics/2_minimum_resolution_.* - graphics/1_auto_glxgears_.* certification-status=blocker - graphics/2_auto_glxgears_.* certification-status=blocker - graphics/auto_glxgears certification-status=blocker - graphics/auto_glxgears_fullscreen certification-status=blocker - suspend/resolution_before_suspend certification-status=blocker - graphics/1_vkcube_.* certification-status=non-blocker - graphics/2_vkcube_.* certification-status=non-blocker - graphics/vulkaninfo.* certification-status=non-blocker -bootstrap_include: - graphics_card - -id: graphics-gpu-cert-26-04-automated -unit: test plan -_name: Graphics tests for 26.04 (Automated) -_description: - Graphics tests (Automated) -include: - graphics/VESA_drivers_not_in_use certification-status=blocker - graphics/index_driver_version_product_slug certification-status=blocker - graphics/gl_support_primary certification-status=blocker - graphics/index_minimum_resolution_product_slug certification-status=blocker - graphics/index_auto_glxgears_product_slug certification-status=blocker - graphics/index_auto_glxgears_fullscreen_product_slug certification-status=blocker - graphics/auto_glxgears certification-status=blocker - graphics/auto_glxgears_fullscreen certification-status=blocker - suspend/resolution_before_suspend certification-status=blocker - graphics/index_vkcube_product_slug certification-status=blocker - graphics/vulkaninfo-debug certification-status=blocker - graphics/vulkaninfo-api-version certification-status=blocker -bootstrap_include: - graphics_card - -id: graphics-gpu-cert-manual -unit: test plan -_name: Graphics tests (Manual) -_description: - Graphics tests (Manual) -include: - miscellanea/chvt - graphics/1_maximum_resolution_.* certification-status=blocker - graphics/1_rotation_.* certification-status=blocker - graphics/1_video_.* certification-status=blocker - graphics/1_cycle_resolution_.* certification-status=non-blocker - graphics/1_valid_glxgears_.* certification-status=blocker - graphics/2_valid_glxgears_.* certification-status=blocker - graphics/valid_glxgears certification-status=blocker - graphics/valid_glxgears_fullscreen certification-status=blocker -bootstrap_include: - graphics_card - -id: graphics-gpu-cert-26-04-manual -unit: test plan -_name: Graphics tests for 26.04 (Manual) -_description: - Graphics tests (Manual) -include: - miscellanea/chvt - graphics/maximum_resolution_primary certification-status=blocker - graphics/rotation_primary certification-status=blocker - graphics/video_primary certification-status=blocker - graphics/cycle_resolution_primary certification-status=blocker - graphics/index_valid_glxgears_product_slug certification-status=blocker - graphics/index_valid_glxgears_fullscreen_product_slug certification-status=blocker - graphics/valid_glxgears certification-status=blocker - graphics/valid_glxgears_fullscreen certification-status=blocker -bootstrap_include: - graphics_card - -id: after-suspend-graphics-gpu-cert-full -unit: test plan -_name: After suspend tests -_description: After suspend tests -include: -nested_part: - com.canonical.certification::after-suspend-graphics-gpu-cert-automated - com.canonical.certification::after-suspend-graphics-gpu-cert-manual - -id: after-suspend-graphics-gpu-cert-26-04-automated -unit: test plan -_name: After suspend tests for 26.04 (GPU automated) -_description: After suspend tests (GPU automated) -include: - suspend/suspend-time-check certification-status=non-blocker - suspend/suspend-single-log-attach certification-status=non-blocker - after-suspend-graphics/VESA_drivers_not_in_use certification-status=blocker - after-suspend-graphics/index_driver_version_product_slug certification-status=blocker - after-suspend-graphics/gl_support_primary certification-status=blocker - after-suspend-graphics/index_minimum_resolution_product_slug certification-status=blocker - after-suspend-graphics/index_auto_glxgears_product_slug certification-status=blocker - after-suspend-graphics/index_auto_glxgears_fullscreen_product_slug certification-status=blocker - after-suspend-graphics/auto_glxgears certification-status=blocker - after-suspend-graphics/auto_glxgears_fullscreen certification-status=blocker - suspend/resolution_after_suspend certification-status=blocker - -id: after-suspend-graphics-gpu-cert-automated -unit: test plan -_name: After suspend tests (GPU automated) -_description: After suspend tests (GPU automated) -include: - suspend/suspend-time-check certification-status=non-blocker - suspend/suspend-single-log-attach certification-status=non-blocker - after-suspend-graphics/VESA_drivers_not_in_use certification-status=blocker - after-suspend-graphics/1_driver_version_.* certification-status=blocker - after-suspend-graphics/1_gl_support_.* certification-status=blocker - after-suspend-graphics/1_minimum_resolution_.* - after-suspend-graphics/1_auto_glxgears_.* certification-status=blocker - after-suspend-graphics/2_auto_glxgears_.* certification-status=blocker - after-suspend-graphics/auto_glxgears certification-status=blocker - after-suspend-graphics/auto_glxgears_fullscreen certification-status=blocker - suspend/resolution_after_suspend certification-status=blocker - -id: after-suspend-graphics-gpu-cert-manual -unit: test plan -_name: After suspend tests (GPU manual) -_description: After suspend tests (GPU manual) -include: - power-management/lid_close_suspend_open certification-status=blocker - power-management/lid certification-status=blocker - after-suspend-miscellanea/chvt - suspend/display_after_suspend certification-status=blocker - after-suspend-graphics/1_maximum_resolution_.* certification-status=blocker - after-suspend-graphics/1_rotation_.* certification-status=blocker - after-suspend-graphics/1_video_.* certification-status=blocker - after-suspend-graphics/1_cycle_resolution_.* certification-status=non-blocker - after-suspend-graphics/1_valid_glxgears_.* certification-status=blocker - after-suspend-graphics/2_valid_glxgears_.* certification-status=blocker - after-suspend-graphics/valid_glxgears certification-status=blocker - after-suspend-graphics/valid_glxgears_fullscreen certification-status=blocker - suspend/1_xrandr_screens_after_suspend.tar.gz_auto - -id: after-suspend-graphics-gpu-cert-26-04-manual -unit: test plan -_name: After suspend tests for 26.04 (GPU manual) -_description: After suspend tests (GPU manual) -include: - power-management/lid_close_suspend_open certification-status=blocker - power-management/lid certification-status=blocker - after-suspend-miscellanea/chvt - suspend/display_after_suspend certification-status=blocker - after-suspend-graphics/maximum_resolution_primary certification-status=blocker - after-suspend-graphics/rotation_primary certification-status=blocker - after-suspend-graphics/video_primary certification-status=blocker - after-suspend-graphics/cycle_resolution_primary certification-status=blocker - after-suspend-graphics/index_valid_glxgears_product_slug certification-status=blocker - after-suspend-graphics/index_valid_glxgears_fullscreen_product_slug certification-status=blocker - after-suspend-graphics/valid_glxgears certification-status=blocker - after-suspend-graphics/valid_glxgears_fullscreen certification-status=blocker - suspend/xrandr_screens_after_suspend_primary - -id: graphics-integrated-gpu-cert-full -unit: test plan -_name: Graphics tests (integrated GPU) -_description: - Graphics tests (integrated GPU) -include: -bootstrap_include: - graphics_card -nested_part: - com.canonical.certification::graphics-integrated-gpu-cert-automated - com.canonical.certification::graphics-integrated-gpu-cert-manual - -id: graphics-integrated-gpu-cert-manual -unit: test plan -_name: Graphics tests (integrated GPU) (Manual) -_description: - Graphics tests (integrated GPU) (Manual) -include: - miscellanea/chvt - graphics/1_maximum_resolution_.* certification-status=blocker - graphics/1_glxgears_.* certification-status=blocker - graphics/1_rotation_.* certification-status=blocker - graphics/1_video_.* certification-status=blocker - graphics/1_cycle_resolution_.* certification-status=non-blocker -bootstrap_include: - graphics_card - -id: graphics-integrated-gpu-cert-automated -unit: test plan -_name: Graphics tests (integrated GPU) (Automated) -_description: - Graphics tests (integrated GPU) (Automated) -include: - graphics/1_auto_switch_card_.* certification-status=blocker - graphics/VESA_drivers_not_in_use certification-status=blocker - graphics/1_driver_version_.* certification-status=blocker - graphics/1_gl_support_.* certification-status=blocker - graphics/1_minimum_resolution_.* - suspend/1_resolution_before_suspend_.*_auto certification-status=blocker -bootstrap_include: - graphics_card - - -id: graphics-discrete-gpu-cert-full -unit: test plan -_name: Graphics tests (discrete GPU) -_description: - Graphics tests (discrete GPU) -include: -bootstrap_include: - graphics_card -nested_part: - com.canonical.certification::graphics-discrete-gpu-cert-automated - com.canonical.certification::graphics-discrete-gpu-cert-manual - -id: graphics-discrete-gpu-cert-manual -unit: test plan -_name: Graphics tests (discrete GPU) (Manual) -_description: - Graphics tests (discrete GPU) (Manual) -include: - graphics/2_maximum_resolution_.* certification-status=blocker - graphics/2_glxgears_.* certification-status=blocker - graphics/2_rotation_.* certification-status=blocker - graphics/2_video_.* certification-status=blocker - graphics/2_cycle_resolution_.* certification-status=non-blocker -bootstrap_include: - graphics_card - -id: graphics-discrete-gpu-cert-automated -unit: test plan -_name: Graphics tests (discrete GPU) (Automated) -_description: - Graphics tests (discrete GPU) (Automated) -include: - graphics/2_auto_switch_card_.* certification-status=blocker - graphics/2_valid_opengl_renderer_.* certification-status=blocker - graphics/2_driver_version_.* certification-status=blocker - graphics/2_gl_support_.* certification-status=blocker - graphics/2_minimum_resolution_.* - suspend/2_resolution_before_suspend_.*_auto certification-status=blocker -bootstrap_include: - graphics_card - -id: after-suspend-graphics-integrated-gpu-cert-full -unit: test plan -_name: After suspend tests (integrated GPU) -_description: After suspend tests (integrated GPU) -include: -nested_part: - com.canonical.certification::after-suspend-graphics-integrated-gpu-cert-automated - com.canonical.certification::after-suspend-graphics-integrated-gpu-cert-manual - -id: after-suspend-graphics-integrated-gpu-cert-automated -unit: test plan -_name: After suspend tests (integrated GPU automated) -_description: After suspend tests (integrated GPU automated) -include: - after-suspend-graphics/1_auto_switch_card_.* certification-status=blocker - suspend/1_suspend_after_switch_to_card_.*_auto certification-status=blocker - # The following after suspend jobs will automatically select the right suspend job - # depending on the amount of graphic cards available on the SUT: - # suspend/suspend_advanced_auto (one GPU) - # or suspend/{{ index }}_suspend_after_switch_to_card_{{ product_slug }}_auto (two GPUs) - suspend/1_suspend-time-check_.*_auto certification-status=non-blocker - suspend/1_suspend-single-log-attach_.*_auto certification-status=non-blocker - after-suspend-graphics/VESA_drivers_not_in_use certification-status=blocker - after-suspend-graphics/1_driver_version_.* certification-status=blocker - after-suspend-graphics/1_gl_support_.* certification-status=blocker - after-suspend-graphics/1_minimum_resolution_.* - suspend/1_resolution_after_suspend_.*_auto certification-status=blocker - -id: after-suspend-graphics-integrated-gpu-cert-manual -unit: test plan -_name: After suspend tests (integrated GPU manual) -_description: After suspend tests (integrated GPU manual) -include: - # The following after suspend jobs will automatically select the right suspend job - # depending on the amount of graphic cards available on the SUT: - # suspend/suspend_advanced_auto (one GPU) - # or suspend/{{ index }}_suspend_after_switch_to_card_{{ product_slug }}_auto (two GPUs) - after-suspend-miscellanea/chvt - suspend/1_display_after_suspend_.*_graphics certification-status=blocker - after-suspend-graphics/1_maximum_resolution_.* certification-status=blocker - after-suspend-graphics/1_glxgears_.* certification-status=blocker - after-suspend-graphics/1_rotation_.* certification-status=blocker - after-suspend-graphics/1_video_.* certification-status=blocker - after-suspend-graphics/1_cycle_resolution_.* certification-status=non-blocker - suspend/1_xrandr_screens_after_suspend.tar.gz_auto - power-management/lid_close_suspend_open certification-status=blocker - power-management/lid certification-status=blocker - -id: after-suspend-graphics-discrete-gpu-cert-full -unit: test plan -_name: After suspend tests (discrete GPU) -_description: After suspend tests (discrete GPU) -include: -nested_part: - com.canonical.certification::after-suspend-graphics-discrete-gpu-cert-automated - com.canonical.certification::after-suspend-graphics-discrete-gpu-cert-manual - -id: after-suspend-graphics-discrete-gpu-cert-automated -unit: test plan -_name: After suspend tests (discrete GPU automated) -_description: After suspend tests (discrete GPU automated) -include: - suspend/2_suspend_after_switch_to_card_.*_auto certification-status=blocker - suspend/2_suspend-time-check_.*_auto certification-status=non-blocker - suspend/2_suspend-single-log-attach_.*_auto certification-status=non-blocker - after-suspend-graphics/2_driver_version_.* certification-status=blocker - after-suspend-graphics/2_gl_support_.* certification-status=blocker - after-suspend-graphics/2_minimum_resolution_.* - suspend/2_resolution_after_suspend_.*_auto certification-status=blocker - -id: after-suspend-graphics-discrete-gpu-cert-manual -unit: test plan -_name: After suspend tests (discrete GPU manual) -_description: After suspend tests (discrete GPU manual) -include: - suspend/2_display_after_suspend_.*_graphics certification-status=blocker - after-suspend-graphics/2_maximum_resolution_.* certification-status=blocker - after-suspend-graphics/2_glxgears_.* certification-status=blocker - after-suspend-graphics/2_rotation_.* certification-status=blocker - after-suspend-graphics/2_video_.* certification-status=blocker - after-suspend-graphics/2_cycle_resolution_.* certification-status=non-blocker - suspend/2_xrandr_screens_after_suspend_.*.tar.gz_auto - -id: graphics-integrated-gpu-cert-blockers -unit: test plan -_name: Graphics tests (integrated GPU, certification blockers only) -_description: Graphics tests (integrated GPU, certification blockers only) -include: - graphics/1_auto_switch_card_.* certification-status=blocker - graphics/VESA_drivers_not_in_use certification-status=blocker - graphics/1_maximum_resolution_.* certification-status=blocker - graphics/1_glxgears_.* certification-status=blocker - graphics/1_driver_version_.* certification-status=blocker - graphics/1_gl_support_.* certification-status=blocker - graphics/1_rotation_.* certification-status=blocker - graphics/1_video_.* certification-status=blocker - suspend/1_resolution_before_suspend_.*_auto certification-status=blocker -bootstrap_include: - graphics_card - -id: graphics-discrete-gpu-cert-blockers -unit: test plan -_name: Graphics tests (discrete GPU, certification blockers only) -_description: Graphics tests (discrete GPU, certification blockers only) -include: - graphics/2_auto_switch_card_.* certification-status=blocker - graphics/2_maximum_resolution_.* certification-status=blocker - graphics/2_valid_opengl_renderer_.* certification-status=blocker - graphics/2_glxgears_.* certification-status=blocker - graphics/2_driver_version_.* certification-status=blocker - graphics/2_gl_support_.* certification-status=blocker - graphics/2_rotation_.* certification-status=blocker - graphics/2_video_.* certification-status=blocker -bootstrap_include: - graphics_card - -id: after-suspend-graphics-integrated-gpu-cert-blockers -unit: test plan -_name: After suspend tests (integrated GPU, certification blockers only) -_description: After suspend tests (integrated GPU, certification blockers only) -include: - after-suspend-graphics/1_auto_switch_card_.* certification-status=blocker - suspend/1_suspend_after_switch_to_card_.*_auto certification-status=blocker - suspend/1_gl_support_after_suspend_.*_auto certification-status=blocker - suspend/1_driver_version_after_suspend_.*_auto certification-status=blocker - suspend/1_resolution_after_suspend_.*_auto certification-status=blocker - suspend/1_display_after_suspend_.*_graphics certification-status=blocker - suspend/1_glxgears_after_suspend_.*_graphics certification-status=blocker - suspend/1_rotation_after_suspend_.*_graphics certification-status=blocker - suspend/1_video_after_suspend_.*_graphics certification-status=blocker - power-management/lid_close_suspend_open certification-status=blocker - power-management/lid certification-status=blocker - -id: after-suspend-graphics-discrete-gpu-cert-blockers -unit: test plan -_name: After suspend tests (discrete GPU, certification blockers only) -_description: After suspend tests (discrete GPU, certification blockers only) -include: - suspend/2_resolution_before_suspend_.*_auto certification-status=blocker - suspend/2_suspend_after_switch_to_card_.*_graphics certification-status=blocker - suspend/2_gl_support_after_suspend_.*_auto certification-status=blocker - suspend/2_driver_version_after_suspend_.*_auto certification-status=blocker - suspend/2_resolution_after_suspend_.*_auto certification-status=blocker - suspend/2_display_after_suspend_.*_graphics certification-status=blocker - suspend/2_glxgears_after_suspend_.*_graphics certification-status=blocker - suspend/2_rotation_after_suspend_.*_graphics certification-status=blocker - suspend/2_video_after_suspend_.*_graphics certification-status=blocker - -id: webgl-conformance-test -unit: test plan -_name: WebGL conformance test -_description: WebGL conformance test -include: - graphics/webgl-conformance-test-.* -bootstrap_include: - browser_resource - -id: after-suspend-webgl-conformance-test -unit: test plan -_name: WebGL conformance test (After suspend) -_description: WebGL conformance test -include: - after-suspend-graphics/webgl-conformance-test-.* -bootstrap_include: - browser_resource - -id: graphic-base-26-04-manual -unit: test plan -_name: Graphics for 26.04 (Manual) -_description: Manual tests for graphics -include: - keys/video-out - after-suspend-keys/video-out -nested_part: - submission-cert-full - graphics-gpu-cert-26-04-manual - monitor-gpu-cert-26-04-manual - after-suspend-graphics-gpu-cert-26-04-manual - after-suspend-monitor-gpu-cert-26-04-manual - info-attachment-cert-full - -id: graphic-base-26-04-automated -unit: test plan -_name: Graphic for 26.04 (Automated) -_description: Automated tests for graphic -include: -nested_part: - graphics-gpu-cert-26-04-automated - after-suspend-graphics-gpu-cert-26-04-automated - -id: opencl-core-test-plan -unit: test plan -_name: Graphics test plan for verifying OpenCL (core/snap) -include: - setup/install_opencl_cts - graphics/cl_core_.* -bootstrap_include: - graphics_card - executable - -id: opencl-host-test-plan -unit: test plan -_name: Graphics test plan for verifying OpenCL (host) -include: - setup/install_opencl_cts - graphics/cl_host_.* -bootstrap_include: - graphics_card - executable - -id: vulkan-core-test-plan -unit: test plan -_name: Graphics test plan for verifying Vulkan CTS (core/snap) -include: - setup/install_vulkan_cts - graphics/vk_core_.* -bootstrap_include: - graphics_card - executable - -id: vulkan-classic-test-plan -unit: test plan -_name: Graphics test plan for verifying Vulkan CTS (classic) -include: - setup/install_vulkan_cts - graphics/vk_classic_.* -bootstrap_include: - graphics_card - executable - -id: opengl-core-test-plan -unit: test plan -_name: Graphics test plan for verifying OpenGL CTS (core/snap) -include: - setup/install_opengl_cts - graphics/gl_core_.* -bootstrap_include: - graphics_card - executable - -id: opengl-classic-test-plan -unit: test plan -_name: Graphics test plan for verifying OpenGL CTS (classic) -include: - setup/install_opengl_cts - graphics/gl_classic_.* -bootstrap_include: - graphics_card - executable - -id: crucible-core-test-plan -unit: test plan -_name: Graphics test plan for crucible (core/snap) -include: - setup/install_crucible - graphics/crucible_core_.* -bootstrap_include: - graphics_card - executable - -id: crucible-classic-test-plan -unit: test plan -_name: Graphics test plan for crucible (classic) -include: - setup/install_crucible - graphics/crucible_classic_.* -bootstrap_include: - graphics_card - executable diff --git a/providers/base/units/graphics/test-plan.yaml b/providers/base/units/graphics/test-plan.yaml new file mode 100644 index 0000000000..9bb6609091 --- /dev/null +++ b/providers/base/units/graphics/test-plan.yaml @@ -0,0 +1,695 @@ +id: graphics-gpu-cert-full +unit: test plan +name: Graphics tests (GPU) +description: Graphics tests (GPU) +include: [] +bootstrap_include: + - graphics_card +nested_part: + - com.canonical.certification::graphics-gpu-cert-automated + - com.canonical.certification::graphics-gpu-cert-manual +--- +id: graphics-gpu-cert-automated +unit: test plan +name: Graphics tests (Automated) +description: Graphics tests (Automated) +include: + - graphics/VESA_drivers_not_in_use: + certification-status: blocker + - graphics/1_driver_version_.*: + certification-status: blocker + - graphics/1_gl_support_.*: + certification-status: blocker + - graphics/1_minimum_resolution_.* + - graphics/2_driver_version_.*: + certification-status: blocker + - graphics/2_minimum_resolution_.* + - graphics/1_auto_glxgears_.*: + certification-status: blocker + - graphics/2_auto_glxgears_.*: + certification-status: blocker + - graphics/auto_glxgears: + certification-status: blocker + - graphics/auto_glxgears_fullscreen: + certification-status: blocker + - suspend/resolution_before_suspend: + certification-status: blocker + - graphics/1_vkcube_.*: + certification-status: non-blocker + - graphics/2_vkcube_.*: + certification-status: non-blocker + - graphics/vulkaninfo.*: + certification-status: non-blocker +bootstrap_include: + - graphics_card +--- +id: graphics-gpu-cert-26-04-automated +unit: test plan +name: Graphics tests for 26.04 (Automated) +description: Graphics tests (Automated) +include: + - graphics/VESA_drivers_not_in_use: + certification-status: blocker + - graphics/index_driver_version_product_slug: + certification-status: blocker + - graphics/gl_support_primary: + certification-status: blocker + - graphics/index_minimum_resolution_product_slug: + certification-status: blocker + - graphics/index_auto_glxgears_product_slug: + certification-status: blocker + - graphics/index_auto_glxgears_fullscreen_product_slug: + certification-status: blocker + - graphics/auto_glxgears: + certification-status: blocker + - graphics/auto_glxgears_fullscreen: + certification-status: blocker + - suspend/resolution_before_suspend: + certification-status: blocker + - graphics/index_vkcube_product_slug: + certification-status: blocker + - graphics/vulkaninfo-debug: + certification-status: blocker + - graphics/vulkaninfo-api-version: + certification-status: blocker +bootstrap_include: + - graphics_card +--- +id: graphics-gpu-cert-manual +unit: test plan +name: Graphics tests (Manual) +description: Graphics tests (Manual) +include: + - miscellanea/chvt + - graphics/1_maximum_resolution_.*: + certification-status: blocker + - graphics/1_rotation_.*: + certification-status: blocker + - graphics/1_video_.*: + certification-status: blocker + - graphics/1_cycle_resolution_.*: + certification-status: non-blocker + - graphics/1_valid_glxgears_.*: + certification-status: blocker + - graphics/2_valid_glxgears_.*: + certification-status: blocker + - graphics/valid_glxgears: + certification-status: blocker + - graphics/valid_glxgears_fullscreen: + certification-status: blocker +bootstrap_include: + - graphics_card +--- +id: graphics-gpu-cert-26-04-manual +unit: test plan +name: Graphics tests for 26.04 (Manual) +description: Graphics tests (Manual) +include: + - miscellanea/chvt + - graphics/maximum_resolution_primary: + certification-status: blocker + - graphics/rotation_primary: + certification-status: blocker + - graphics/video_primary: + certification-status: blocker + - graphics/cycle_resolution_primary: + certification-status: blocker + - graphics/index_valid_glxgears_product_slug: + certification-status: blocker + - graphics/index_valid_glxgears_fullscreen_product_slug: + certification-status: blocker + - graphics/valid_glxgears: + certification-status: blocker + - graphics/valid_glxgears_fullscreen: + certification-status: blocker +bootstrap_include: + - graphics_card +--- +id: after-suspend-graphics-gpu-cert-full +unit: test plan +name: After suspend tests +description: After suspend tests +include: [] +nested_part: + - com.canonical.certification::after-suspend-graphics-gpu-cert-automated + - com.canonical.certification::after-suspend-graphics-gpu-cert-manual +--- +id: after-suspend-graphics-gpu-cert-26-04-automated +unit: test plan +name: After suspend tests for 26.04 (GPU automated) +description: After suspend tests (GPU automated) +include: + - suspend/suspend-time-check: + certification-status: non-blocker + - suspend/suspend-single-log-attach: + certification-status: non-blocker + - after-suspend-graphics/VESA_drivers_not_in_use: + certification-status: blocker + - after-suspend-graphics/index_driver_version_product_slug: + certification-status: blocker + - after-suspend-graphics/gl_support_primary: + certification-status: blocker + - after-suspend-graphics/index_minimum_resolution_product_slug: + certification-status: blocker + - after-suspend-graphics/index_auto_glxgears_product_slug: + certification-status: blocker + - after-suspend-graphics/index_auto_glxgears_fullscreen_product_slug: + certification-status: blocker + - after-suspend-graphics/auto_glxgears: + certification-status: blocker + - after-suspend-graphics/auto_glxgears_fullscreen: + certification-status: blocker + - suspend/resolution_after_suspend: + certification-status: blocker +--- +id: after-suspend-graphics-gpu-cert-automated +unit: test plan +name: After suspend tests (GPU automated) +description: After suspend tests (GPU automated) +include: + - suspend/suspend-time-check: + certification-status: non-blocker + - suspend/suspend-single-log-attach: + certification-status: non-blocker + - after-suspend-graphics/VESA_drivers_not_in_use: + certification-status: blocker + - after-suspend-graphics/1_driver_version_.*: + certification-status: blocker + - after-suspend-graphics/1_gl_support_.*: + certification-status: blocker + - after-suspend-graphics/1_minimum_resolution_.* + - after-suspend-graphics/1_auto_glxgears_.*: + certification-status: blocker + - after-suspend-graphics/2_auto_glxgears_.*: + certification-status: blocker + - after-suspend-graphics/auto_glxgears: + certification-status: blocker + - after-suspend-graphics/auto_glxgears_fullscreen: + certification-status: blocker + - suspend/resolution_after_suspend: + certification-status: blocker +--- +id: after-suspend-graphics-gpu-cert-manual +unit: test plan +name: After suspend tests (GPU manual) +description: After suspend tests (GPU manual) +include: + - power-management/lid_close_suspend_open: + certification-status: blocker + - power-management/lid: + certification-status: blocker + - after-suspend-miscellanea/chvt + - suspend/display_after_suspend: + certification-status: blocker + - after-suspend-graphics/1_maximum_resolution_.*: + certification-status: blocker + - after-suspend-graphics/1_rotation_.*: + certification-status: blocker + - after-suspend-graphics/1_video_.*: + certification-status: blocker + - after-suspend-graphics/1_cycle_resolution_.*: + certification-status: non-blocker + - after-suspend-graphics/1_valid_glxgears_.*: + certification-status: blocker + - after-suspend-graphics/2_valid_glxgears_.*: + certification-status: blocker + - after-suspend-graphics/valid_glxgears: + certification-status: blocker + - after-suspend-graphics/valid_glxgears_fullscreen: + certification-status: blocker + - suspend/1_xrandr_screens_after_suspend.tar.gz_auto +--- +id: after-suspend-graphics-gpu-cert-26-04-manual +unit: test plan +name: After suspend tests for 26.04 (GPU manual) +description: After suspend tests (GPU manual) +include: + - power-management/lid_close_suspend_open: + certification-status: blocker + - power-management/lid: + certification-status: blocker + - after-suspend-miscellanea/chvt + - suspend/display_after_suspend: + certification-status: blocker + - after-suspend-graphics/maximum_resolution_primary: + certification-status: blocker + - after-suspend-graphics/rotation_primary: + certification-status: blocker + - after-suspend-graphics/video_primary: + certification-status: blocker + - after-suspend-graphics/cycle_resolution_primary: + certification-status: blocker + - after-suspend-graphics/index_valid_glxgears_product_slug: + certification-status: blocker + - after-suspend-graphics/index_valid_glxgears_fullscreen_product_slug: + certification-status: blocker + - after-suspend-graphics/valid_glxgears: + certification-status: blocker + - after-suspend-graphics/valid_glxgears_fullscreen: + certification-status: blocker + - suspend/xrandr_screens_after_suspend_primary +--- +id: graphics-integrated-gpu-cert-full +unit: test plan +name: Graphics tests (integrated GPU) +description: Graphics tests (integrated GPU) +include: [] +bootstrap_include: + - graphics_card +nested_part: + - com.canonical.certification::graphics-integrated-gpu-cert-automated + - com.canonical.certification::graphics-integrated-gpu-cert-manual +--- +id: graphics-integrated-gpu-cert-manual +unit: test plan +name: Graphics tests (integrated GPU) (Manual) +description: Graphics tests (integrated GPU) (Manual) +include: + - miscellanea/chvt + - graphics/1_maximum_resolution_.*: + certification-status: blocker + - graphics/1_glxgears_.*: + certification-status: blocker + - graphics/1_rotation_.*: + certification-status: blocker + - graphics/1_video_.*: + certification-status: blocker + - graphics/1_cycle_resolution_.*: + certification-status: non-blocker +bootstrap_include: + - graphics_card +--- +id: graphics-integrated-gpu-cert-automated +unit: test plan +name: Graphics tests (integrated GPU) (Automated) +description: Graphics tests (integrated GPU) (Automated) +include: + - graphics/1_auto_switch_card_.*: + certification-status: blocker + - graphics/VESA_drivers_not_in_use: + certification-status: blocker + - graphics/1_driver_version_.*: + certification-status: blocker + - graphics/1_gl_support_.*: + certification-status: blocker + - graphics/1_minimum_resolution_.* + - suspend/1_resolution_before_suspend_.*_auto: + certification-status: blocker +bootstrap_include: + - graphics_card +--- +id: graphics-discrete-gpu-cert-full +unit: test plan +name: Graphics tests (discrete GPU) +description: Graphics tests (discrete GPU) +include: [] +bootstrap_include: + - graphics_card +nested_part: + - com.canonical.certification::graphics-discrete-gpu-cert-automated + - com.canonical.certification::graphics-discrete-gpu-cert-manual +--- +id: graphics-discrete-gpu-cert-manual +unit: test plan +name: Graphics tests (discrete GPU) (Manual) +description: Graphics tests (discrete GPU) (Manual) +include: + - graphics/2_maximum_resolution_.*: + certification-status: blocker + - graphics/2_glxgears_.*: + certification-status: blocker + - graphics/2_rotation_.*: + certification-status: blocker + - graphics/2_video_.*: + certification-status: blocker + - graphics/2_cycle_resolution_.*: + certification-status: non-blocker +bootstrap_include: + - graphics_card +--- +id: graphics-discrete-gpu-cert-automated +unit: test plan +name: Graphics tests (discrete GPU) (Automated) +description: Graphics tests (discrete GPU) (Automated) +include: + - graphics/2_auto_switch_card_.*: + certification-status: blocker + - graphics/2_valid_opengl_renderer_.*: + certification-status: blocker + - graphics/2_driver_version_.*: + certification-status: blocker + - graphics/2_gl_support_.*: + certification-status: blocker + - graphics/2_minimum_resolution_.* + - suspend/2_resolution_before_suspend_.*_auto: + certification-status: blocker +bootstrap_include: + - graphics_card +--- +id: after-suspend-graphics-integrated-gpu-cert-full +unit: test plan +name: After suspend tests (integrated GPU) +description: After suspend tests (integrated GPU) +include: [] +nested_part: + - com.canonical.certification::after-suspend-graphics-integrated-gpu-cert-automated + - com.canonical.certification::after-suspend-graphics-integrated-gpu-cert-manual +--- +id: after-suspend-graphics-integrated-gpu-cert-automated +unit: test plan +name: After suspend tests (integrated GPU automated) +description: After suspend tests (integrated GPU automated) +include: + - after-suspend-graphics/1_auto_switch_card_.*: + certification-status: blocker + - suspend/1_suspend_after_switch_to_card_.*_auto: + certification-status: blocker + - suspend/1_suspend-time-check_.*_auto: + certification-status: non-blocker + - suspend/1_suspend-single-log-attach_.*_auto: + certification-status: non-blocker + - after-suspend-graphics/VESA_drivers_not_in_use: + certification-status: blocker + - after-suspend-graphics/1_driver_version_.*: + certification-status: blocker + - after-suspend-graphics/1_gl_support_.*: + certification-status: blocker + - after-suspend-graphics/1_minimum_resolution_.* + - suspend/1_resolution_after_suspend_.*_auto: + certification-status: blocker +--- +id: after-suspend-graphics-integrated-gpu-cert-manual +unit: test plan +name: After suspend tests (integrated GPU manual) +description: After suspend tests (integrated GPU manual) +include: +# or suspend/{{index}}_suspend_after_switch_to_card_{{product_slug}}_auto (two GPUs) + - after-suspend-miscellanea/chvt + - suspend/1_display_after_suspend_.*_graphics: + certification-status: blocker + - after-suspend-graphics/1_maximum_resolution_.*: + certification-status: blocker + - after-suspend-graphics/1_glxgears_.*: + certification-status: blocker + - after-suspend-graphics/1_rotation_.*: + certification-status: blocker + - after-suspend-graphics/1_video_.*: + certification-status: blocker + - after-suspend-graphics/1_cycle_resolution_.*: + certification-status: non-blocker + - suspend/1_xrandr_screens_after_suspend.tar.gz_auto + - power-management/lid_close_suspend_open: + certification-status: blocker + - power-management/lid: + certification-status: blocker +--- +id: after-suspend-graphics-discrete-gpu-cert-full +unit: test plan +name: After suspend tests (discrete GPU) +description: After suspend tests (discrete GPU) +include: [] +nested_part: + - com.canonical.certification::after-suspend-graphics-discrete-gpu-cert-automated + - com.canonical.certification::after-suspend-graphics-discrete-gpu-cert-manual +--- +id: after-suspend-graphics-discrete-gpu-cert-automated +unit: test plan +name: After suspend tests (discrete GPU automated) +description: After suspend tests (discrete GPU automated) +include: + - suspend/2_suspend_after_switch_to_card_.*_auto: + certification-status: blocker + - suspend/2_suspend-time-check_.*_auto: + certification-status: non-blocker + - suspend/2_suspend-single-log-attach_.*_auto: + certification-status: non-blocker + - after-suspend-graphics/2_driver_version_.*: + certification-status: blocker + - after-suspend-graphics/2_gl_support_.*: + certification-status: blocker + - after-suspend-graphics/2_minimum_resolution_.* + - suspend/2_resolution_after_suspend_.*_auto: + certification-status: blocker +--- +id: after-suspend-graphics-discrete-gpu-cert-manual +unit: test plan +name: After suspend tests (discrete GPU manual) +description: After suspend tests (discrete GPU manual) +include: + - suspend/2_display_after_suspend_.*_graphics: + certification-status: blocker + - after-suspend-graphics/2_maximum_resolution_.*: + certification-status: blocker + - after-suspend-graphics/2_glxgears_.*: + certification-status: blocker + - after-suspend-graphics/2_rotation_.*: + certification-status: blocker + - after-suspend-graphics/2_video_.*: + certification-status: blocker + - after-suspend-graphics/2_cycle_resolution_.*: + certification-status: non-blocker + - suspend/2_xrandr_screens_after_suspend_.*.tar.gz_auto +--- +id: graphics-integrated-gpu-cert-blockers +unit: test plan +name: Graphics tests (integrated GPU, certification blockers only) +description: Graphics tests (integrated GPU, certification blockers only) +include: + - graphics/1_auto_switch_card_.*: + certification-status: blocker + - graphics/VESA_drivers_not_in_use: + certification-status: blocker + - graphics/1_maximum_resolution_.*: + certification-status: blocker + - graphics/1_glxgears_.*: + certification-status: blocker + - graphics/1_driver_version_.*: + certification-status: blocker + - graphics/1_gl_support_.*: + certification-status: blocker + - graphics/1_rotation_.*: + certification-status: blocker + - graphics/1_video_.*: + certification-status: blocker + - suspend/1_resolution_before_suspend_.*_auto: + certification-status: blocker +bootstrap_include: + - graphics_card +--- +id: graphics-discrete-gpu-cert-blockers +unit: test plan +name: Graphics tests (discrete GPU, certification blockers only) +description: Graphics tests (discrete GPU, certification blockers only) +include: + - graphics/2_auto_switch_card_.*: + certification-status: blocker + - graphics/2_maximum_resolution_.*: + certification-status: blocker + - graphics/2_valid_opengl_renderer_.*: + certification-status: blocker + - graphics/2_glxgears_.*: + certification-status: blocker + - graphics/2_driver_version_.*: + certification-status: blocker + - graphics/2_gl_support_.*: + certification-status: blocker + - graphics/2_rotation_.*: + certification-status: blocker + - graphics/2_video_.*: + certification-status: blocker +bootstrap_include: + - graphics_card +--- +id: after-suspend-graphics-integrated-gpu-cert-blockers +unit: test plan +name: After suspend tests (integrated GPU, certification blockers only) +description: After suspend tests (integrated GPU, certification blockers only) +include: + - after-suspend-graphics/1_auto_switch_card_.*: + certification-status: blocker + - suspend/1_suspend_after_switch_to_card_.*_auto: + certification-status: blocker + - suspend/1_gl_support_after_suspend_.*_auto: + certification-status: blocker + - suspend/1_driver_version_after_suspend_.*_auto: + certification-status: blocker + - suspend/1_resolution_after_suspend_.*_auto: + certification-status: blocker + - suspend/1_display_after_suspend_.*_graphics: + certification-status: blocker + - suspend/1_glxgears_after_suspend_.*_graphics: + certification-status: blocker + - suspend/1_rotation_after_suspend_.*_graphics: + certification-status: blocker + - suspend/1_video_after_suspend_.*_graphics: + certification-status: blocker + - power-management/lid_close_suspend_open: + certification-status: blocker + - power-management/lid: + certification-status: blocker +--- +id: after-suspend-graphics-discrete-gpu-cert-blockers +unit: test plan +name: After suspend tests (discrete GPU, certification blockers only) +description: After suspend tests (discrete GPU, certification blockers only) +include: + - suspend/2_resolution_before_suspend_.*_auto: + certification-status: blocker + - suspend/2_suspend_after_switch_to_card_.*_graphics: + certification-status: blocker + - suspend/2_gl_support_after_suspend_.*_auto: + certification-status: blocker + - suspend/2_driver_version_after_suspend_.*_auto: + certification-status: blocker + - suspend/2_resolution_after_suspend_.*_auto: + certification-status: blocker + - suspend/2_display_after_suspend_.*_graphics: + certification-status: blocker + - suspend/2_glxgears_after_suspend_.*_graphics: + certification-status: blocker + - suspend/2_rotation_after_suspend_.*_graphics: + certification-status: blocker + - suspend/2_video_after_suspend_.*_graphics: + certification-status: blocker +--- +id: webgl-conformance-test +unit: test plan +name: WebGL conformance test +description: WebGL conformance test +include: + - graphics/webgl-conformance-test-.* +bootstrap_include: + - browser_resource +--- +id: after-suspend-webgl-conformance-test +unit: test plan +name: WebGL conformance test (After suspend) +description: WebGL conformance test +include: + - after-suspend-graphics/webgl-conformance-test-.* +bootstrap_include: + - browser_resource +--- +id: graphic-base-26-04-manual +unit: test plan +name: Graphics for 26.04 (Manual) +description: Manual tests for graphics +include: + - keys/video-out + - after-suspend-keys/video-out +nested_part: + - submission-cert-full + - graphics-gpu-cert-26-04-manual + - monitor-gpu-cert-26-04-manual + - after-suspend-graphics-gpu-cert-26-04-manual + - after-suspend-monitor-gpu-cert-26-04-manual + - info-attachment-cert-full +--- +id: graphic-base-26-04-automated +unit: test plan +name: Graphic for 26.04 (Automated) +description: Automated tests for graphic +include: [] +nested_part: + - graphics-gpu-cert-26-04-automated + - after-suspend-graphics-gpu-cert-26-04-automated +--- +id: opencl-core-test-plan +unit: test plan +name: Graphics test plan for verifying OpenCL (core/snap) +include: + - setup/install_opencl_cts + - graphics/cl_core_.* +bootstrap_include: + - graphics_card + - executable +--- +id: opencl-host-test-plan +unit: test plan +name: Graphics test plan for verifying OpenCL (host) +include: + - setup/install_opencl_cts + - graphics/cl_host_.* +bootstrap_include: + - graphics_card + - executable +--- +id: vulkan-core-test-plan +unit: test plan +name: Graphics test plan for verifying Vulkan CTS (core/snap) +include: + - setup/install_vulkan_cts + - graphics/vk_core_.* +bootstrap_include: + - graphics_card + - executable +--- +id: vulkan-classic-test-plan +unit: test plan +name: Graphics test plan for verifying Vulkan CTS (classic) +include: + - setup/install_vulkan_cts + - graphics/vk_classic_.* +bootstrap_include: + - graphics_card + - executable +--- +id: opengl-core-test-plan +unit: test plan +name: Graphics test plan for verifying OpenGL CTS (core/snap) +include: + - setup/install_opengl_cts + - graphics/gl_core_.* +bootstrap_include: + - graphics_card + - executable +--- +id: opengl-classic-test-plan +unit: test plan +name: Graphics test plan for verifying OpenGL CTS (classic) +include: + - setup/install_opengl_cts + - graphics/gl_classic_.* +bootstrap_include: + - graphics_card + - executable +--- +id: crucible-core-test-plan +unit: test plan +name: Graphics test plan for crucible (core/snap) +include: + - setup/install_crucible + - graphics/crucible_core_.* +bootstrap_include: + - graphics_card + - executable +--- +id: crucible-classic-test-plan +unit: test plan +name: Graphics test plan for crucible (classic) +include: + - setup/install_crucible + - graphics/crucible_classic_.* +bootstrap_include: + - graphics_card + - executable +--- +id: level-zero-core-test-plan +unit: test plan +name: Graphics test plan for verifying Level Zero (core/snap) +include: + - setup/install_level_zero_tests + - graphics/lz_core_.* +bootstrap_include: + - graphics_card + - executable +--- +id: level-zero-classic-test-plan +unit: test plan +name: Graphics test plan for verifying Level Zero (classic) +include: + - setup/install_level_zero_tests + - graphics/lz_classic_.* +bootstrap_include: + - graphics_card + - executable diff --git a/providers/base/units/graphics/vulkan-cts.pxu b/providers/base/units/graphics/vulkan-cts.pxu deleted file mode 100644 index 2d7c043402..0000000000 --- a/providers/base/units/graphics/vulkan-cts.pxu +++ /dev/null @@ -1,680 +0,0 @@ -unit: setup job -plugin: shell -id: setup/install_vulkan_cts -category_id: com.canonical.plainbox::graphics -_summary: Install vulkan-cts snap -_purpose: - This job will install the vulkan-cts snap, a dependency of vulkan conformance testing -user: root -command: - if snap list vulkan-cts &>/dev/null; then - snap refresh --beta vulkan-cts - else - snap install --beta vulkan-cts - fi -estimated_duration: 1m - -plugin: resource -id: graphics/vk_gpu_avail -category_id: com.canonical.plainbox::graphics -user: root -_summary: Checks for Vulkan-capable GPU -environ: - XDG_SESSION_TYPE - XDG_RUNTIME_DIR -estimated_duration: 1s -command: - # Unset DISPLAY so vulkaninfo skips surface/window-system checks and runs - # in headless mode - if env -u DISPLAY vulkan-cts.vulkaninfo --summary 2>&1 | grep "PHYSICAL_DEVICE_TYPE_.*_GPU"; then - echo "PASS: Found a Vulkan-capable GPU" - else - echo "FAIL: No Vulkan-capable GPU found" - exit 1 - fi - -id: graphics/vk_core_api -depends: - graphics/vk_gpu_avail -setup_include: - setup/install_vulkan_cts -category_id: com.canonical.plainbox::graphics -flags: simple -user: root -_summary: Run the api tests from Vulkan-CTS (core) -environ: - XDG_SESSION_TYPE - XDG_RUNTIME_DIR -estimated_duration: 30m -command: - # mustpass/main/vk-default/api.txt is contained in the vulkan-cts snap - # All options can be found in vulkan-cts.list-tests - vulkan-cts.test --caselist=mustpass/main/vk-default/api.txt -_siblings: [ - { "id": "graphics/vk_core_binding_model", - "_summary": "Run the binding-model tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/binding-model.txt" }, - { "id": "graphics/vk_core_clipping", - "_summary": "Run the clipping tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/clipping.txt" }, - { "id": "graphics/vk_core_compute", - "_summary": "Run the compute tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/compute.txt" }, - { "id": "graphics/vk_core_conditional_rendering", - "_summary": "Run the conditional-rendering tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/conditional-rendering.txt" }, - { "id": "graphics/vk_core_cooperative_vector", - "_summary": "Run the cooperative-vector tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/cooperative-vector.txt" }, - { "id": "graphics/vk_core_depth", - "_summary": "Run the depth tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/depth.txt" }, - { "id": "graphics/vk_core_descriptor_indexing", - "_summary": "Run the descriptor-indexing tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/descriptor-indexing.txt" }, - { "id": "graphics/vk_core_device_group", - "_summary": "Run the device-group tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/device-group.txt" }, - { "id": "graphics/vk_core_dgc", - "_summary": "Run the dgc tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/dgc.txt" }, - { "id": "graphics/vk_core_draw", - "_summary": "Run the draw tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/draw.txt" }, - { "id": "graphics/vk_core_drm_format_modifiers", - "_summary": "Run the drm-format-modifiers tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/drm-format-modifiers.txt" }, - { "id": "graphics/vk_core_dynamic_state", - "_summary": "Run the dynamic-state tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/dynamic-state.txt" }, - { "id": "graphics/vk_core_fragment_operations", - "_summary": "Run the fragment-operations tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/fragment-operations.txt" }, - { "id": "graphics/vk_core_fragment_shader_interlock", - "_summary": "Run the fragment-shader-interlock tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/fragment-shader-interlock.txt" }, - { "id": "graphics/vk_core_fragment_shading_barycentric", - "_summary": "Run the fragment-shading-barycentric tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/fragment-shading-barycentric.txt" }, - { "id": "graphics/vk_core_fragment_shading_rate", - "_summary": "Run the fragment-shading-rate tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/fragment-shading-rate.txt" }, - { "id": "graphics/vk_core_geometry", - "_summary": "Run the geometry tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/geometry.txt" }, - { "id": "graphics/vk_core_glsl", - "_summary": "Run the glsl tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/glsl.txt" }, - { "id": "graphics/vk_core_graphicsfuzz", - "_summary": "Run the graphicsfuzz tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/graphicsfuzz.txt" }, - { "id": "graphics/vk_core_image_2d_array_compatible", - "_summary": "Run the image/2d-array-compatible tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/image/2d-array-compatible.txt" }, - { "id": "graphics/vk_core_image_astc_decode_mode", - "_summary": "Run the image/astc-decode-mode tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/image/astc-decode-mode.txt" }, - { "id": "graphics/vk_core_image_astc_sample", - "_summary": "Run the image/astc-sample tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/image/astc-sample.txt" }, - { "id": "graphics/vk_core_image_atomic_operations", - "_summary": "Run the image/atomic-operations tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/image/atomic-operations.txt" }, - { "id": "graphics/vk_core_image_concurrent_copy", - "_summary": "Run the image/concurrent-copy tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/image/concurrent-copy.txt" }, - { "id": "graphics/vk_core_image_depth_stencil_descriptor", - "_summary": "Run the image/depth-stencil-descriptor tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/image/depth-stencil-descriptor.txt" }, - { "id": "graphics/vk_core_image_depth_stencil_separate_access", - "_summary": "Run the image/depth-stencil-separate-access tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/image/depth-stencil-separate-access.txt" }, - { "id": "graphics/vk_core_image_device_scope_access", - "_summary": "Run the image/device-scope-access tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/image/device-scope-access.txt" }, - { "id": "graphics/vk_core_image_extend_operands_spirv1p4", - "_summary": "Run the image/extend-operands-spirv1p4 tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/image/extend-operands-spirv1p4.txt" }, - { "id": "graphics/vk_core_image_extended_usage_bit_compatibility", - "_summary": "Run the image/extended-usage-bit-compatibility tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/image/extended-usage-bit-compatibility.txt" }, - { "id": "graphics/vk_core_image_extended_usage_bit", - "_summary": "Run the image/extended-usage-bit tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/image/extended-usage-bit.txt" }, - { "id": "graphics/vk_core_image_format_reinterpret", - "_summary": "Run the image/format-reinterpret tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/image/format-reinterpret.txt" }, - { "id": "graphics/vk_core_image_general_layout", - "_summary": "Run the image/general-layout tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/image/general-layout.txt" }, - { "id": "graphics/vk_core_image_host_image_copy", - "_summary": "Run the image/host-image-copy tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/image/host-image-copy.txt" }, - { "id": "graphics/vk_core_image_image_size", - "_summary": "Run the image/image-size tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/image/image-size.txt" }, - { "id": "graphics/vk_core_image_load_store_lod", - "_summary": "Run the image/load-store-lod tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/image/load-store-lod.txt" }, - { "id": "graphics/vk_core_image_load_store_multisample", - "_summary": "Run the image/load-store-multisample tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/image/load-store-multisample.txt" }, - { "id": "graphics/vk_core_image_load_store", - "_summary": "Run the image/load-store tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/image/load-store.txt" }, - { "id": "graphics/vk_core_image_misaligned_cube", - "_summary": "Run the image/misaligned-cube tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/image/misaligned-cube.txt" }, - { "id": "graphics/vk_core_image_mismatched_formats", - "_summary": "Run the image/mismatched-formats tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/image/mismatched-formats.txt" }, - { "id": "graphics/vk_core_image_mismatched_write_op", - "_summary": "Run the image/mismatched-write-op tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/image/mismatched-write-op.txt" }, - { "id": "graphics/vk_core_image_mutable", - "_summary": "Run the image/mutable tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/image/mutable.txt" }, - { "id": "graphics/vk_core_image_non_uniform_offset_sample", - "_summary": "Run the image/non-uniform-offset-sample tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/image/non-uniform-offset-sample.txt" }, - { "id": "graphics/vk_core_image_nontemporal_operand", - "_summary": "Run the image/nontemporal-operand tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/image/nontemporal-operand.txt" }, - { "id": "graphics/vk_core_image_qualifiers", - "_summary": "Run the image/qualifiers tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/image/qualifiers.txt" }, - { "id": "graphics/vk_core_image_queue_transfer", - "_summary": "Run the image/queue-transfer tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/image/queue-transfer.txt" }, - { "id": "graphics/vk_core_image_sample_cubemap", - "_summary": "Run the image/sample-cubemap tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/image/sample-cubemap.txt" }, - { "id": "graphics/vk_core_image_sample_texture", - "_summary": "Run the image/sample-texture tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/image/sample-texture.txt" }, - { "id": "graphics/vk_core_image_store", - "_summary": "Run the image/store tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/image/store.txt" }, - { "id": "graphics/vk_core_image_subresource_layout", - "_summary": "Run the image/subresource-layout tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/image/subresource-layout.txt" }, - { "id": "graphics/vk_core_image_swapchain_mutable", - "_summary": "Run the image/swapchain-mutable tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/image/swapchain-mutable.txt" }, - { "id": "graphics/vk_core_image_texel_view_compatible", - "_summary": "Run the image/texel-view-compatible tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/image/texel-view-compatible.txt" }, - { "id": "graphics/vk_core_image_processing", - "_summary": "Run the image-processing tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/image-processing.txt" }, - { "id": "graphics/vk_core_imageless_framebuffer", - "_summary": "Run the imageless-framebuffer tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/imageless-framebuffer.txt" }, - { "id": "graphics/vk_core_info", - "_summary": "Run the info tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/info.txt" }, - { "id": "graphics/vk_core_memory_model", - "_summary": "Run the memory-model tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/memory-model.txt" }, - { "id": "graphics/vk_core_memory", - "_summary": "Run the memory tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/memory.txt" }, - { "id": "graphics/vk_core_mesh_shader", - "_summary": "Run the mesh-shader tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/mesh-shader.txt" }, - { "id": "graphics/vk_core_multiview", - "_summary": "Run the multiview tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/multiview.txt" }, - { "id": "graphics/vk_core_pipeline_fast_linked_library", - "_summary": "Run the pipeline/fast-linked-library tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/pipeline/fast-linked-library.txt" }, - { "id": "graphics/vk_core_pipeline_monolithic", - "_summary": "Run the pipeline/monolithic tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/pipeline/monolithic.txt" }, - { "id": "graphics/vk_core_pipeline_no_queues", - "_summary": "Run the pipeline/no-queues tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/pipeline/no-queues.txt" }, - { "id": "graphics/vk_core_pipeline_library", - "_summary": "Run the pipeline/pipeline-library tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/pipeline/pipeline-library.txt" }, - { "id": "graphics/vk_core_pipeline_shader_object_linked_binary", - "_summary": "Run the pipeline/shader-object-linked-binary tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/pipeline/shader-object-linked-binary.txt" }, - { "id": "graphics/vk_core_pipeline_shader_object_linked_spirv", - "_summary": "Run the pipeline/shader-object-linked-spirv tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/pipeline/shader-object-linked-spirv.txt" }, - { "id": "graphics/vk_core_pipeline_shader_object_unlinked_binary", - "_summary": "Run the pipeline/shader-object-unlinked-binary tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/pipeline/shader-object-unlinked-binary.txt" }, - { "id": "graphics/vk_core_pipeline_shader_object_unlinked_spirv", - "_summary": "Run the pipeline/shader-object-unlinked-spirv tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/pipeline/shader-object-unlinked-spirv.txt" }, - { "id": "graphics/vk_core_protected_memory", - "_summary": "Run the protected-memory tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/protected-memory.txt" }, - { "id": "graphics/vk_core_query_pool", - "_summary": "Run the query-pool tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/query-pool.txt" }, - { "id": "graphics/vk_core_rasterization", - "_summary": "Run the rasterization tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/rasterization.txt" }, - { "id": "graphics/vk_core_ray_query", - "_summary": "Run the ray-query tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/ray-query.txt" }, - { "id": "graphics/vk_core_ray_tracing_pipeline", - "_summary": "Run the ray-tracing-pipeline tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/ray-tracing-pipeline.txt" }, - { "id": "graphics/vk_core_reconvergence", - "_summary": "Run the reconvergence tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/reconvergence.txt" }, - { "id": "graphics/vk_core_renderpass", - "_summary": "Run the renderpass tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/renderpass.txt" }, - { "id": "graphics/vk_core_renderpasses", - "_summary": "Run the renderpasses tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/renderpasses.txt" }, - { "id": "graphics/vk_core_robustness", - "_summary": "Run the robustness tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/robustness.txt" }, - { "id": "graphics/vk_core_shader_object_api", - "_summary": "Run the shader-object/api tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/shader-object/api.txt" }, - { "id": "graphics/vk_core_shader_object_binary", - "_summary": "Run the shader-object/binary tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/shader-object/binary.txt" }, - { "id": "graphics/vk_core_shader_object_binding", - "_summary": "Run the shader-object/binding tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/shader-object/binding.txt" }, - { "id": "graphics/vk_core_shader_object_create", - "_summary": "Run the shader-object/create tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/shader-object/create.txt" }, - { "id": "graphics/vk_core_shader_object_link", - "_summary": "Run the shader-object/link tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/shader-object/link.txt" }, - { "id": "graphics/vk_core_shader_object_misc", - "_summary": "Run the shader-object/misc tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/shader-object/misc.txt" }, - { "id": "graphics/vk_core_shader_object_pipeline_interaction", - "_summary": "Run the shader-object/pipeline-interaction tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/shader-object/pipeline-interaction.txt" }, - { "id": "graphics/vk_core_shader_object_rendering", - "_summary": "Run the shader-object/rendering tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/shader-object/rendering.txt" }, - { "id": "graphics/vk_core_shader_object_tessellation", - "_summary": "Run the shader-object/tessellation tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/shader-object/tessellation.txt" }, - { "id": "graphics/vk_core_sparse_resources", - "_summary": "Run the sparse-resources tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/sparse-resources.txt" }, - { "id": "graphics/vk_core_spirv_assembly", - "_summary": "Run the spirv-assembly tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/spirv-assembly.txt" }, - { "id": "graphics/vk_core_ssbo", - "_summary": "Run the ssbo tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/ssbo.txt" }, - { "id": "graphics/vk_core_subgroups", - "_summary": "Run the subgroups tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/subgroups.txt" }, - { "id": "graphics/vk_core_synchronization", - "_summary": "Run the synchronization tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/synchronization.txt" }, - { "id": "graphics/vk_core_synchronization2", - "_summary": "Run the synchronization2 tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/synchronization2.txt" }, - { "id": "graphics/vk_core_tessellation", - "_summary": "Run the tessellation tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/tessellation.txt" }, - { "id": "graphics/vk_core_texture", - "_summary": "Run the texture tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/texture.txt" }, - { "id": "graphics/vk_core_transform_feedback", - "_summary": "Run the transform-feedback tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/transform-feedback.txt" }, - { "id": "graphics/vk_core_ubo", - "_summary": "Run the ubo tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/ubo.txt" }, - { "id": "graphics/vk_core_video", - "_summary": "Run the video tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/video.txt" }, - { "id": "graphics/vk_core_wsi", - "_summary": "Run the wsi tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/wsi.txt" }, - { "id": "graphics/vk_core_ycbcr", - "_summary": "Run the ycbcr tests from Vulkan-CTS (core)", - "command": "vulkan-cts.test --caselist=mustpass/main/vk-default/ycbcr.txt" }] - -unit: job -plugin: shell -id: graphics/vk_classic_gpu_avail -category_id: com.canonical.plainbox::graphics -user: root -requires: - executable.name == 'vulkaninfo' -_summary: Checks for Vulkan-capable GPU using host drivers -environ: - XDG_SESSION_TYPE - XDG_RUNTIME_DIR - PATH -estimated_duration: 1s -command: vk_host.py resource - -unit: job -plugin: shell -id: graphics/vk_classic_vk_avail -category_id: com.canonical.plainbox::graphics -user: root -_summary: Checks for host Vulkan ICD loader required by vulkan-cts --no-confinement -estimated_duration: 1s -command: vk_host.py validate-install - -id: graphics/vk_classic_api -depends: - graphics/vk_classic_gpu_avail - graphics/vk_classic_vk_avail -setup_include: - setup/install_vulkan_cts -category_id: com.canonical.plainbox::graphics -flags: simple -user: root -_summary: Run the api tests from Vulkan-CTS (classic) -environ: - XDG_SESSION_TYPE - XDG_RUNTIME_DIR -estimated_duration: 30m -command: - # mustpass/main/vk-default/api.txt is contained in the vulkan-cts snap - # All options can be found in vulkan-cts.list-tests - # vk_host.py used to wrap extra env vars, paths, and flags vs Core tests - vk_host.py run-test --caselist=mustpass/main/vk-default/api.txt -_siblings: [ - { "id": "graphics/vk_classic_binding_model", - "_summary": "Run the binding-model tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/binding-model.txt" }, - { "id": "graphics/vk_classic_clipping", - "_summary": "Run the clipping tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/clipping.txt" }, - { "id": "graphics/vk_classic_compute", - "_summary": "Run the compute tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/compute.txt" }, - { "id": "graphics/vk_classic_conditional_rendering", - "_summary": "Run the conditional-rendering tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/conditional-rendering.txt" }, - { "id": "graphics/vk_classic_cooperative_vector", - "_summary": "Run the cooperative-vector tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/cooperative-vector.txt" }, - { "id": "graphics/vk_classic_depth", - "_summary": "Run the depth tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/depth.txt" }, - { "id": "graphics/vk_classic_descriptor_indexing", - "_summary": "Run the descriptor-indexing tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/descriptor-indexing.txt" }, - { "id": "graphics/vk_classic_device_group", - "_summary": "Run the device-group tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/device-group.txt" }, - { "id": "graphics/vk_classic_dgc", - "_summary": "Run the dgc tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/dgc.txt" }, - { "id": "graphics/vk_classic_draw", - "_summary": "Run the draw tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/draw.txt" }, - { "id": "graphics/vk_classic_drm_format_modifiers", - "_summary": "Run the drm-format-modifiers tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/drm-format-modifiers.txt" }, - { "id": "graphics/vk_classic_dynamic_state", - "_summary": "Run the dynamic-state tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/dynamic-state.txt" }, - { "id": "graphics/vk_classic_fragment_operations", - "_summary": "Run the fragment-operations tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/fragment-operations.txt" }, - { "id": "graphics/vk_classic_fragment_shader_interlock", - "_summary": "Run the fragment-shader-interlock tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/fragment-shader-interlock.txt" }, - { "id": "graphics/vk_classic_fragment_shading_barycentric", - "_summary": "Run the fragment-shading-barycentric tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/fragment-shading-barycentric.txt" }, - { "id": "graphics/vk_classic_fragment_shading_rate", - "_summary": "Run the fragment-shading-rate tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/fragment-shading-rate.txt" }, - { "id": "graphics/vk_classic_geometry", - "_summary": "Run the geometry tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/geometry.txt" }, - { "id": "graphics/vk_classic_glsl", - "_summary": "Run the glsl tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/glsl.txt" }, - { "id": "graphics/vk_classic_graphicsfuzz", - "_summary": "Run the graphicsfuzz tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/graphicsfuzz.txt" }, - { "id": "graphics/vk_classic_image_2d_array_compatible", - "_summary": "Run the image/2d-array-compatible tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/image/2d-array-compatible.txt" }, - { "id": "graphics/vk_classic_image_astc_decode_mode", - "_summary": "Run the image/astc-decode-mode tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/image/astc-decode-mode.txt" }, - { "id": "graphics/vk_classic_image_astc_sample", - "_summary": "Run the image/astc-sample tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/image/astc-sample.txt" }, - { "id": "graphics/vk_classic_image_atomic_operations", - "_summary": "Run the image/atomic-operations tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/image/atomic-operations.txt" }, - { "id": "graphics/vk_classic_image_concurrent_copy", - "_summary": "Run the image/concurrent-copy tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/image/concurrent-copy.txt" }, - { "id": "graphics/vk_classic_image_depth_stencil_descriptor", - "_summary": "Run the image/depth-stencil-descriptor tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/image/depth-stencil-descriptor.txt" }, - { "id": "graphics/vk_classic_image_depth_stencil_separate_access", - "_summary": "Run the image/depth-stencil-separate-access tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/image/depth-stencil-separate-access.txt" }, - { "id": "graphics/vk_classic_image_device_scope_access", - "_summary": "Run the image/device-scope-access tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/image/device-scope-access.txt" }, - { "id": "graphics/vk_classic_image_extend_operands_spirv1p4", - "_summary": "Run the image/extend-operands-spirv1p4 tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/image/extend-operands-spirv1p4.txt" }, - { "id": "graphics/vk_classic_image_extended_usage_bit_compatibility", - "_summary": "Run the image/extended-usage-bit-compatibility tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/image/extended-usage-bit-compatibility.txt" }, - { "id": "graphics/vk_classic_image_extended_usage_bit", - "_summary": "Run the image/extended-usage-bit tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/image/extended-usage-bit.txt" }, - { "id": "graphics/vk_classic_image_format_reinterpret", - "_summary": "Run the image/format-reinterpret tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/image/format-reinterpret.txt" }, - { "id": "graphics/vk_classic_image_general_layout", - "_summary": "Run the image/general-layout tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/image/general-layout.txt" }, - { "id": "graphics/vk_classic_image_host_image_copy", - "_summary": "Run the image/host-image-copy tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/image/host-image-copy.txt" }, - { "id": "graphics/vk_classic_image_image_size", - "_summary": "Run the image/image-size tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/image/image-size.txt" }, - { "id": "graphics/vk_classic_image_load_store_lod", - "_summary": "Run the image/load-store-lod tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/image/load-store-lod.txt" }, - { "id": "graphics/vk_classic_image_load_store_multisample", - "_summary": "Run the image/load-store-multisample tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/image/load-store-multisample.txt" }, - { "id": "graphics/vk_classic_image_load_store", - "_summary": "Run the image/load-store tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/image/load-store.txt" }, - { "id": "graphics/vk_classic_image_misaligned_cube", - "_summary": "Run the image/misaligned-cube tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/image/misaligned-cube.txt" }, - { "id": "graphics/vk_classic_image_mismatched_formats", - "_summary": "Run the image/mismatched-formats tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/image/mismatched-formats.txt" }, - { "id": "graphics/vk_classic_image_mismatched_write_op", - "_summary": "Run the image/mismatched-write-op tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/image/mismatched-write-op.txt" }, - { "id": "graphics/vk_classic_image_mutable", - "_summary": "Run the image/mutable tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/image/mutable.txt" }, - { "id": "graphics/vk_classic_image_non_uniform_offset_sample", - "_summary": "Run the image/non-uniform-offset-sample tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/image/non-uniform-offset-sample.txt" }, - { "id": "graphics/vk_classic_image_nontemporal_operand", - "_summary": "Run the image/nontemporal-operand tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/image/nontemporal-operand.txt" }, - { "id": "graphics/vk_classic_image_qualifiers", - "_summary": "Run the image/qualifiers tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/image/qualifiers.txt" }, - { "id": "graphics/vk_classic_image_queue_transfer", - "_summary": "Run the image/queue-transfer tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/image/queue-transfer.txt" }, - { "id": "graphics/vk_classic_image_sample_cubemap", - "_summary": "Run the image/sample-cubemap tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/image/sample-cubemap.txt" }, - { "id": "graphics/vk_classic_image_sample_texture", - "_summary": "Run the image/sample-texture tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/image/sample-texture.txt" }, - { "id": "graphics/vk_classic_image_store", - "_summary": "Run the image/store tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/image/store.txt" }, - { "id": "graphics/vk_classic_image_subresource_layout", - "_summary": "Run the image/subresource-layout tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/image/subresource-layout.txt" }, - { "id": "graphics/vk_classic_image_swapchain_mutable", - "_summary": "Run the image/swapchain-mutable tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/image/swapchain-mutable.txt" }, - { "id": "graphics/vk_classic_image_texel_view_compatible", - "_summary": "Run the image/texel-view-compatible tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/image/texel-view-compatible.txt" }, - { "id": "graphics/vk_classic_image_processing", - "_summary": "Run the image-processing tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/image-processing.txt" }, - { "id": "graphics/vk_classic_imageless_framebuffer", - "_summary": "Run the imageless-framebuffer tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/imageless-framebuffer.txt" }, - { "id": "graphics/vk_classic_info", - "_summary": "Run the info tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/info.txt" }, - { "id": "graphics/vk_classic_memory_model", - "_summary": "Run the memory-model tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/memory-model.txt" }, - { "id": "graphics/vk_classic_memory", - "_summary": "Run the memory tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/memory.txt" }, - { "id": "graphics/vk_classic_mesh_shader", - "_summary": "Run the mesh-shader tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/mesh-shader.txt" }, - { "id": "graphics/vk_classic_multiview", - "_summary": "Run the multiview tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/multiview.txt" }, - { "id": "graphics/vk_classic_pipeline_fast_linked_library", - "_summary": "Run the pipeline/fast-linked-library tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/pipeline/fast-linked-library.txt" }, - { "id": "graphics/vk_classic_pipeline_monolithic", - "_summary": "Run the pipeline/monolithic tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/pipeline/monolithic.txt" }, - { "id": "graphics/vk_classic_pipeline_no_queues", - "_summary": "Run the pipeline/no-queues tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/pipeline/no-queues.txt" }, - { "id": "graphics/vk_classic_pipeline_library", - "_summary": "Run the pipeline/pipeline-library tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/pipeline/pipeline-library.txt" }, - { "id": "graphics/vk_classic_pipeline_shader_object_linked_binary", - "_summary": "Run the pipeline/shader-object-linked-binary tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/pipeline/shader-object-linked-binary.txt" }, - { "id": "graphics/vk_classic_pipeline_shader_object_linked_spirv", - "_summary": "Run the pipeline/shader-object-linked-spirv tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/pipeline/shader-object-linked-spirv.txt" }, - { "id": "graphics/vk_classic_pipeline_shader_object_unlinked_binary", - "_summary": "Run the pipeline/shader-object-unlinked-binary tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/pipeline/shader-object-unlinked-binary.txt" }, - { "id": "graphics/vk_classic_pipeline_shader_object_unlinked_spirv", - "_summary": "Run the pipeline/shader-object-unlinked-spirv tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/pipeline/shader-object-unlinked-spirv.txt" }, - { "id": "graphics/vk_classic_protected_memory", - "_summary": "Run the protected-memory tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/protected-memory.txt" }, - { "id": "graphics/vk_classic_query_pool", - "_summary": "Run the query-pool tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/query-pool.txt" }, - { "id": "graphics/vk_classic_rasterization", - "_summary": "Run the rasterization tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/rasterization.txt" }, - { "id": "graphics/vk_classic_ray_query", - "_summary": "Run the ray-query tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/ray-query.txt" }, - { "id": "graphics/vk_classic_ray_tracing_pipeline", - "_summary": "Run the ray-tracing-pipeline tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/ray-tracing-pipeline.txt" }, - { "id": "graphics/vk_classic_reconvergence", - "_summary": "Run the reconvergence tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/reconvergence.txt" }, - { "id": "graphics/vk_classic_renderpass", - "_summary": "Run the renderpass tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/renderpass.txt" }, - { "id": "graphics/vk_classic_renderpasses", - "_summary": "Run the renderpasses tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/renderpasses.txt" }, - { "id": "graphics/vk_classic_robustness", - "_summary": "Run the robustness tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/robustness.txt" }, - { "id": "graphics/vk_classic_shader_object_api", - "_summary": "Run the shader-object/api tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/shader-object/api.txt" }, - { "id": "graphics/vk_classic_shader_object_binary", - "_summary": "Run the shader-object/binary tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/shader-object/binary.txt" }, - { "id": "graphics/vk_classic_shader_object_binding", - "_summary": "Run the shader-object/binding tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/shader-object/binding.txt" }, - { "id": "graphics/vk_classic_shader_object_create", - "_summary": "Run the shader-object/create tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/shader-object/create.txt" }, - { "id": "graphics/vk_classic_shader_object_link", - "_summary": "Run the shader-object/link tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/shader-object/link.txt" }, - { "id": "graphics/vk_classic_shader_object_misc", - "_summary": "Run the shader-object/misc tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/shader-object/misc.txt" }, - { "id": "graphics/vk_classic_shader_object_pipeline_interaction", - "_summary": "Run the shader-object/pipeline-interaction tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/shader-object/pipeline-interaction.txt" }, - { "id": "graphics/vk_classic_shader_object_rendering", - "_summary": "Run the shader-object/rendering tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/shader-object/rendering.txt" }, - { "id": "graphics/vk_classic_shader_object_tessellation", - "_summary": "Run the shader-object/tessellation tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/shader-object/tessellation.txt" }, - { "id": "graphics/vk_classic_sparse_resources", - "_summary": "Run the sparse-resources tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/sparse-resources.txt" }, - { "id": "graphics/vk_classic_spirv_assembly", - "_summary": "Run the spirv-assembly tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/spirv-assembly.txt" }, - { "id": "graphics/vk_classic_ssbo", - "_summary": "Run the ssbo tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/ssbo.txt" }, - { "id": "graphics/vk_classic_subgroups", - "_summary": "Run the subgroups tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/subgroups.txt" }, - { "id": "graphics/vk_classic_synchronization", - "_summary": "Run the synchronization tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/synchronization.txt" }, - { "id": "graphics/vk_classic_synchronization2", - "_summary": "Run the synchronization2 tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/synchronization2.txt" }, - { "id": "graphics/vk_classic_tessellation", - "_summary": "Run the tessellation tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/tessellation.txt" }, - { "id": "graphics/vk_classic_texture", - "_summary": "Run the texture tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/texture.txt" }, - { "id": "graphics/vk_classic_transform_feedback", - "_summary": "Run the transform-feedback tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/transform-feedback.txt" }, - { "id": "graphics/vk_classic_ubo", - "_summary": "Run the ubo tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/ubo.txt" }, - { "id": "graphics/vk_classic_video", - "_summary": "Run the video tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/video.txt" }, - { "id": "graphics/vk_classic_wsi", - "_summary": "Run the wsi tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/wsi.txt" }, - { "id": "graphics/vk_classic_ycbcr", - "_summary": "Run the ycbcr tests from Vulkan-CTS (classic)", - "command": "vk_host.py run-test --caselist=mustpass/main/vk-default/ycbcr.txt" }] diff --git a/providers/base/units/graphics/vulkan-cts.yaml b/providers/base/units/graphics/vulkan-cts.yaml new file mode 100644 index 0000000000..54c6f46ab1 --- /dev/null +++ b/providers/base/units/graphics/vulkan-cts.yaml @@ -0,0 +1,676 @@ +unit: setup job +plugin: shell +id: setup/install_vulkan_cts +category_id: com.canonical.plainbox::graphics +summary: Install vulkan-cts snap +user: root +command: | + if snap list vulkan-cts &>/dev/null; then + snap refresh --beta vulkan-cts + else + snap install --beta vulkan-cts + fi +estimated_duration: 1m +--- +plugin: resource +id: graphics/vk_gpu_avail +category_id: com.canonical.plainbox::graphics +user: root +summary: Checks for Vulkan-capable GPU +environ: + - XDG_SESSION_TYPE + - XDG_RUNTIME_DIR +estimated_duration: 1s +command: | + # Unset DISPLAY so vulkaninfo skips surface/window-system checks and runs + # in headless mode + if env -u DISPLAY vulkan-cts.vulkaninfo --summary 2>&1 | grep "PHYSICAL_DEVICE_TYPE_.*_GPU"; then + echo "PASS: Found a Vulkan-capable GPU" + else + echo "FAIL: No Vulkan-capable GPU found" + exit 1 + fi +--- +id: graphics/vk_core_api +depends: + - graphics/vk_gpu_avail +category_id: com.canonical.plainbox::graphics +flags: + - simple +user: root +summary: Run the api tests from Vulkan-CTS (core) +environ: + - XDG_SESSION_TYPE + - XDG_RUNTIME_DIR +estimated_duration: 30m +command: | + # mustpass/main/vk-default/api.txt is contained in the vulkan-cts snap + # All options can be found in vulkan-cts.list-tests + vulkan-cts.test --caselist=mustpass/main/vk-default/api.txt +siblings: + - id: graphics/vk_core_binding_model + summary: Run the binding-model tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/binding-model.txt + - id: graphics/vk_core_clipping + summary: Run the clipping tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/clipping.txt + - id: graphics/vk_core_compute + summary: Run the compute tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/compute.txt + - id: graphics/vk_core_conditional_rendering + summary: Run the conditional-rendering tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/conditional-rendering.txt + - id: graphics/vk_core_cooperative_vector + summary: Run the cooperative-vector tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/cooperative-vector.txt + - id: graphics/vk_core_depth + summary: Run the depth tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/depth.txt + - id: graphics/vk_core_descriptor_indexing + summary: Run the descriptor-indexing tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/descriptor-indexing.txt + - id: graphics/vk_core_device_group + summary: Run the device-group tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/device-group.txt + - id: graphics/vk_core_dgc + summary: Run the dgc tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/dgc.txt + - id: graphics/vk_core_draw + summary: Run the draw tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/draw.txt + - id: graphics/vk_core_drm_format_modifiers + summary: Run the drm-format-modifiers tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/drm-format-modifiers.txt + - id: graphics/vk_core_dynamic_state + summary: Run the dynamic-state tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/dynamic-state.txt + - id: graphics/vk_core_fragment_operations + summary: Run the fragment-operations tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/fragment-operations.txt + - id: graphics/vk_core_fragment_shader_interlock + summary: Run the fragment-shader-interlock tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/fragment-shader-interlock.txt + - id: graphics/vk_core_fragment_shading_barycentric + summary: Run the fragment-shading-barycentric tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/fragment-shading-barycentric.txt + - id: graphics/vk_core_fragment_shading_rate + summary: Run the fragment-shading-rate tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/fragment-shading-rate.txt + - id: graphics/vk_core_geometry + summary: Run the geometry tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/geometry.txt + - id: graphics/vk_core_glsl + summary: Run the glsl tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/glsl.txt + - id: graphics/vk_core_graphicsfuzz + summary: Run the graphicsfuzz tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/graphicsfuzz.txt + - id: graphics/vk_core_image_2d_array_compatible + summary: Run the image/2d-array-compatible tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/image/2d-array-compatible.txt + - id: graphics/vk_core_image_astc_decode_mode + summary: Run the image/astc-decode-mode tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/image/astc-decode-mode.txt + - id: graphics/vk_core_image_astc_sample + summary: Run the image/astc-sample tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/image/astc-sample.txt + - id: graphics/vk_core_image_atomic_operations + summary: Run the image/atomic-operations tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/image/atomic-operations.txt + - id: graphics/vk_core_image_concurrent_copy + summary: Run the image/concurrent-copy tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/image/concurrent-copy.txt + - id: graphics/vk_core_image_depth_stencil_descriptor + summary: Run the image/depth-stencil-descriptor tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/image/depth-stencil-descriptor.txt + - id: graphics/vk_core_image_depth_stencil_separate_access + summary: Run the image/depth-stencil-separate-access tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/image/depth-stencil-separate-access.txt + - id: graphics/vk_core_image_device_scope_access + summary: Run the image/device-scope-access tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/image/device-scope-access.txt + - id: graphics/vk_core_image_extend_operands_spirv1p4 + summary: Run the image/extend-operands-spirv1p4 tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/image/extend-operands-spirv1p4.txt + - id: graphics/vk_core_image_extended_usage_bit_compatibility + summary: Run the image/extended-usage-bit-compatibility tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/image/extended-usage-bit-compatibility.txt + - id: graphics/vk_core_image_extended_usage_bit + summary: Run the image/extended-usage-bit tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/image/extended-usage-bit.txt + - id: graphics/vk_core_image_format_reinterpret + summary: Run the image/format-reinterpret tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/image/format-reinterpret.txt + - id: graphics/vk_core_image_general_layout + summary: Run the image/general-layout tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/image/general-layout.txt + - id: graphics/vk_core_image_host_image_copy + summary: Run the image/host-image-copy tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/image/host-image-copy.txt + - id: graphics/vk_core_image_image_size + summary: Run the image/image-size tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/image/image-size.txt + - id: graphics/vk_core_image_load_store_lod + summary: Run the image/load-store-lod tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/image/load-store-lod.txt + - id: graphics/vk_core_image_load_store_multisample + summary: Run the image/load-store-multisample tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/image/load-store-multisample.txt + - id: graphics/vk_core_image_load_store + summary: Run the image/load-store tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/image/load-store.txt + - id: graphics/vk_core_image_misaligned_cube + summary: Run the image/misaligned-cube tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/image/misaligned-cube.txt + - id: graphics/vk_core_image_mismatched_formats + summary: Run the image/mismatched-formats tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/image/mismatched-formats.txt + - id: graphics/vk_core_image_mismatched_write_op + summary: Run the image/mismatched-write-op tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/image/mismatched-write-op.txt + - id: graphics/vk_core_image_mutable + summary: Run the image/mutable tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/image/mutable.txt + - id: graphics/vk_core_image_non_uniform_offset_sample + summary: Run the image/non-uniform-offset-sample tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/image/non-uniform-offset-sample.txt + - id: graphics/vk_core_image_nontemporal_operand + summary: Run the image/nontemporal-operand tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/image/nontemporal-operand.txt + - id: graphics/vk_core_image_qualifiers + summary: Run the image/qualifiers tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/image/qualifiers.txt + - id: graphics/vk_core_image_queue_transfer + summary: Run the image/queue-transfer tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/image/queue-transfer.txt + - id: graphics/vk_core_image_sample_cubemap + summary: Run the image/sample-cubemap tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/image/sample-cubemap.txt + - id: graphics/vk_core_image_sample_texture + summary: Run the image/sample-texture tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/image/sample-texture.txt + - id: graphics/vk_core_image_store + summary: Run the image/store tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/image/store.txt + - id: graphics/vk_core_image_subresource_layout + summary: Run the image/subresource-layout tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/image/subresource-layout.txt + - id: graphics/vk_core_image_swapchain_mutable + summary: Run the image/swapchain-mutable tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/image/swapchain-mutable.txt + - id: graphics/vk_core_image_texel_view_compatible + summary: Run the image/texel-view-compatible tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/image/texel-view-compatible.txt + - id: graphics/vk_core_image_processing + summary: Run the image-processing tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/image-processing.txt + - id: graphics/vk_core_imageless_framebuffer + summary: Run the imageless-framebuffer tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/imageless-framebuffer.txt + - id: graphics/vk_core_info + summary: Run the info tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/info.txt + - id: graphics/vk_core_memory_model + summary: Run the memory-model tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/memory-model.txt + - id: graphics/vk_core_memory + summary: Run the memory tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/memory.txt + - id: graphics/vk_core_mesh_shader + summary: Run the mesh-shader tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/mesh-shader.txt + - id: graphics/vk_core_multiview + summary: Run the multiview tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/multiview.txt + - id: graphics/vk_core_pipeline_fast_linked_library + summary: Run the pipeline/fast-linked-library tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/pipeline/fast-linked-library.txt + - id: graphics/vk_core_pipeline_monolithic + summary: Run the pipeline/monolithic tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/pipeline/monolithic.txt + - id: graphics/vk_core_pipeline_no_queues + summary: Run the pipeline/no-queues tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/pipeline/no-queues.txt + - id: graphics/vk_core_pipeline_library + summary: Run the pipeline/pipeline-library tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/pipeline/pipeline-library.txt + - id: graphics/vk_core_pipeline_shader_object_linked_binary + summary: Run the pipeline/shader-object-linked-binary tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/pipeline/shader-object-linked-binary.txt + - id: graphics/vk_core_pipeline_shader_object_linked_spirv + summary: Run the pipeline/shader-object-linked-spirv tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/pipeline/shader-object-linked-spirv.txt + - id: graphics/vk_core_pipeline_shader_object_unlinked_binary + summary: Run the pipeline/shader-object-unlinked-binary tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/pipeline/shader-object-unlinked-binary.txt + - id: graphics/vk_core_pipeline_shader_object_unlinked_spirv + summary: Run the pipeline/shader-object-unlinked-spirv tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/pipeline/shader-object-unlinked-spirv.txt + - id: graphics/vk_core_protected_memory + summary: Run the protected-memory tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/protected-memory.txt + - id: graphics/vk_core_query_pool + summary: Run the query-pool tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/query-pool.txt + - id: graphics/vk_core_rasterization + summary: Run the rasterization tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/rasterization.txt + - id: graphics/vk_core_ray_query + summary: Run the ray-query tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/ray-query.txt + - id: graphics/vk_core_ray_tracing_pipeline + summary: Run the ray-tracing-pipeline tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/ray-tracing-pipeline.txt + - id: graphics/vk_core_reconvergence + summary: Run the reconvergence tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/reconvergence.txt + - id: graphics/vk_core_renderpass + summary: Run the renderpass tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/renderpass.txt + - id: graphics/vk_core_renderpasses + summary: Run the renderpasses tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/renderpasses.txt + - id: graphics/vk_core_robustness + summary: Run the robustness tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/robustness.txt + - id: graphics/vk_core_shader_object_api + summary: Run the shader-object/api tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/shader-object/api.txt + - id: graphics/vk_core_shader_object_binary + summary: Run the shader-object/binary tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/shader-object/binary.txt + - id: graphics/vk_core_shader_object_binding + summary: Run the shader-object/binding tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/shader-object/binding.txt + - id: graphics/vk_core_shader_object_create + summary: Run the shader-object/create tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/shader-object/create.txt + - id: graphics/vk_core_shader_object_link + summary: Run the shader-object/link tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/shader-object/link.txt + - id: graphics/vk_core_shader_object_misc + summary: Run the shader-object/misc tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/shader-object/misc.txt + - id: graphics/vk_core_shader_object_pipeline_interaction + summary: Run the shader-object/pipeline-interaction tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/shader-object/pipeline-interaction.txt + - id: graphics/vk_core_shader_object_rendering + summary: Run the shader-object/rendering tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/shader-object/rendering.txt + - id: graphics/vk_core_shader_object_tessellation + summary: Run the shader-object/tessellation tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/shader-object/tessellation.txt + - id: graphics/vk_core_sparse_resources + summary: Run the sparse-resources tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/sparse-resources.txt + - id: graphics/vk_core_spirv_assembly + summary: Run the spirv-assembly tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/spirv-assembly.txt + - id: graphics/vk_core_ssbo + summary: Run the ssbo tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/ssbo.txt + - id: graphics/vk_core_subgroups + summary: Run the subgroups tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/subgroups.txt + - id: graphics/vk_core_synchronization + summary: Run the synchronization tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/synchronization.txt + - id: graphics/vk_core_synchronization2 + summary: Run the synchronization2 tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/synchronization2.txt + - id: graphics/vk_core_tessellation + summary: Run the tessellation tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/tessellation.txt + - id: graphics/vk_core_texture + summary: Run the texture tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/texture.txt + - id: graphics/vk_core_transform_feedback + summary: Run the transform-feedback tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/transform-feedback.txt + - id: graphics/vk_core_ubo + summary: Run the ubo tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/ubo.txt + - id: graphics/vk_core_video + summary: Run the video tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/video.txt + - id: graphics/vk_core_wsi + summary: Run the wsi tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/wsi.txt + - id: graphics/vk_core_ycbcr + summary: Run the ycbcr tests from Vulkan-CTS (core) + command: vulkan-cts.test --caselist=mustpass/main/vk-default/ycbcr.txt +--- +unit: job +plugin: shell +id: graphics/vk_classic_gpu_avail +category_id: com.canonical.plainbox::graphics +user: root +requires: + - executable.name == 'vulkaninfo' +summary: Checks for Vulkan-capable GPU using host drivers +environ: + - XDG_SESSION_TYPE + - XDG_RUNTIME_DIR + - PATH +estimated_duration: 1s +command: vk_host.py resource +--- +unit: job +plugin: shell +id: graphics/vk_classic_vk_avail +category_id: com.canonical.plainbox::graphics +user: root +summary: Checks for host Vulkan ICD loader required by vulkan-cts --no-confinement +estimated_duration: 1s +command: vk_host.py validate-install +--- +id: graphics/vk_classic_api +depends: + - graphics/vk_classic_gpu_avail + - graphics/vk_classic_vk_avail +category_id: com.canonical.plainbox::graphics +flags: + - simple +user: root +summary: Run the api tests from Vulkan-CTS (classic) +environ: + - XDG_SESSION_TYPE + - XDG_RUNTIME_DIR +estimated_duration: 30m +command: | + # mustpass/main/vk-default/api.txt is contained in the vulkan-cts snap + # All options can be found in vulkan-cts.list-tests + # vk_host.py used to wrap extra env vars, paths, and flags vs Core tests + vk_host.py run-test --caselist=mustpass/main/vk-default/api.txt +siblings: + - id: graphics/vk_classic_binding_model + summary: Run the binding-model tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/binding-model.txt + - id: graphics/vk_classic_clipping + summary: Run the clipping tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/clipping.txt + - id: graphics/vk_classic_compute + summary: Run the compute tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/compute.txt + - id: graphics/vk_classic_conditional_rendering + summary: Run the conditional-rendering tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/conditional-rendering.txt + - id: graphics/vk_classic_cooperative_vector + summary: Run the cooperative-vector tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/cooperative-vector.txt + - id: graphics/vk_classic_depth + summary: Run the depth tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/depth.txt + - id: graphics/vk_classic_descriptor_indexing + summary: Run the descriptor-indexing tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/descriptor-indexing.txt + - id: graphics/vk_classic_device_group + summary: Run the device-group tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/device-group.txt + - id: graphics/vk_classic_dgc + summary: Run the dgc tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/dgc.txt + - id: graphics/vk_classic_draw + summary: Run the draw tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/draw.txt + - id: graphics/vk_classic_drm_format_modifiers + summary: Run the drm-format-modifiers tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/drm-format-modifiers.txt + - id: graphics/vk_classic_dynamic_state + summary: Run the dynamic-state tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/dynamic-state.txt + - id: graphics/vk_classic_fragment_operations + summary: Run the fragment-operations tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/fragment-operations.txt + - id: graphics/vk_classic_fragment_shader_interlock + summary: Run the fragment-shader-interlock tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/fragment-shader-interlock.txt + - id: graphics/vk_classic_fragment_shading_barycentric + summary: Run the fragment-shading-barycentric tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/fragment-shading-barycentric.txt + - id: graphics/vk_classic_fragment_shading_rate + summary: Run the fragment-shading-rate tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/fragment-shading-rate.txt + - id: graphics/vk_classic_geometry + summary: Run the geometry tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/geometry.txt + - id: graphics/vk_classic_glsl + summary: Run the glsl tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/glsl.txt + - id: graphics/vk_classic_graphicsfuzz + summary: Run the graphicsfuzz tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/graphicsfuzz.txt + - id: graphics/vk_classic_image_2d_array_compatible + summary: Run the image/2d-array-compatible tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/image/2d-array-compatible.txt + - id: graphics/vk_classic_image_astc_decode_mode + summary: Run the image/astc-decode-mode tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/image/astc-decode-mode.txt + - id: graphics/vk_classic_image_astc_sample + summary: Run the image/astc-sample tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/image/astc-sample.txt + - id: graphics/vk_classic_image_atomic_operations + summary: Run the image/atomic-operations tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/image/atomic-operations.txt + - id: graphics/vk_classic_image_concurrent_copy + summary: Run the image/concurrent-copy tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/image/concurrent-copy.txt + - id: graphics/vk_classic_image_depth_stencil_descriptor + summary: Run the image/depth-stencil-descriptor tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/image/depth-stencil-descriptor.txt + - id: graphics/vk_classic_image_depth_stencil_separate_access + summary: Run the image/depth-stencil-separate-access tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/image/depth-stencil-separate-access.txt + - id: graphics/vk_classic_image_device_scope_access + summary: Run the image/device-scope-access tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/image/device-scope-access.txt + - id: graphics/vk_classic_image_extend_operands_spirv1p4 + summary: Run the image/extend-operands-spirv1p4 tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/image/extend-operands-spirv1p4.txt + - id: graphics/vk_classic_image_extended_usage_bit_compatibility + summary: Run the image/extended-usage-bit-compatibility tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/image/extended-usage-bit-compatibility.txt + - id: graphics/vk_classic_image_extended_usage_bit + summary: Run the image/extended-usage-bit tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/image/extended-usage-bit.txt + - id: graphics/vk_classic_image_format_reinterpret + summary: Run the image/format-reinterpret tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/image/format-reinterpret.txt + - id: graphics/vk_classic_image_general_layout + summary: Run the image/general-layout tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/image/general-layout.txt + - id: graphics/vk_classic_image_host_image_copy + summary: Run the image/host-image-copy tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/image/host-image-copy.txt + - id: graphics/vk_classic_image_image_size + summary: Run the image/image-size tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/image/image-size.txt + - id: graphics/vk_classic_image_load_store_lod + summary: Run the image/load-store-lod tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/image/load-store-lod.txt + - id: graphics/vk_classic_image_load_store_multisample + summary: Run the image/load-store-multisample tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/image/load-store-multisample.txt + - id: graphics/vk_classic_image_load_store + summary: Run the image/load-store tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/image/load-store.txt + - id: graphics/vk_classic_image_misaligned_cube + summary: Run the image/misaligned-cube tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/image/misaligned-cube.txt + - id: graphics/vk_classic_image_mismatched_formats + summary: Run the image/mismatched-formats tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/image/mismatched-formats.txt + - id: graphics/vk_classic_image_mismatched_write_op + summary: Run the image/mismatched-write-op tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/image/mismatched-write-op.txt + - id: graphics/vk_classic_image_mutable + summary: Run the image/mutable tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/image/mutable.txt + - id: graphics/vk_classic_image_non_uniform_offset_sample + summary: Run the image/non-uniform-offset-sample tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/image/non-uniform-offset-sample.txt + - id: graphics/vk_classic_image_nontemporal_operand + summary: Run the image/nontemporal-operand tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/image/nontemporal-operand.txt + - id: graphics/vk_classic_image_qualifiers + summary: Run the image/qualifiers tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/image/qualifiers.txt + - id: graphics/vk_classic_image_queue_transfer + summary: Run the image/queue-transfer tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/image/queue-transfer.txt + - id: graphics/vk_classic_image_sample_cubemap + summary: Run the image/sample-cubemap tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/image/sample-cubemap.txt + - id: graphics/vk_classic_image_sample_texture + summary: Run the image/sample-texture tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/image/sample-texture.txt + - id: graphics/vk_classic_image_store + summary: Run the image/store tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/image/store.txt + - id: graphics/vk_classic_image_subresource_layout + summary: Run the image/subresource-layout tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/image/subresource-layout.txt + - id: graphics/vk_classic_image_swapchain_mutable + summary: Run the image/swapchain-mutable tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/image/swapchain-mutable.txt + - id: graphics/vk_classic_image_texel_view_compatible + summary: Run the image/texel-view-compatible tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/image/texel-view-compatible.txt + - id: graphics/vk_classic_image_processing + summary: Run the image-processing tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/image-processing.txt + - id: graphics/vk_classic_imageless_framebuffer + summary: Run the imageless-framebuffer tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/imageless-framebuffer.txt + - id: graphics/vk_classic_info + summary: Run the info tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/info.txt + - id: graphics/vk_classic_memory_model + summary: Run the memory-model tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/memory-model.txt + - id: graphics/vk_classic_memory + summary: Run the memory tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/memory.txt + - id: graphics/vk_classic_mesh_shader + summary: Run the mesh-shader tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/mesh-shader.txt + - id: graphics/vk_classic_multiview + summary: Run the multiview tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/multiview.txt + - id: graphics/vk_classic_pipeline_fast_linked_library + summary: Run the pipeline/fast-linked-library tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/pipeline/fast-linked-library.txt + - id: graphics/vk_classic_pipeline_monolithic + summary: Run the pipeline/monolithic tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/pipeline/monolithic.txt + - id: graphics/vk_classic_pipeline_no_queues + summary: Run the pipeline/no-queues tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/pipeline/no-queues.txt + - id: graphics/vk_classic_pipeline_library + summary: Run the pipeline/pipeline-library tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/pipeline/pipeline-library.txt + - id: graphics/vk_classic_pipeline_shader_object_linked_binary + summary: Run the pipeline/shader-object-linked-binary tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/pipeline/shader-object-linked-binary.txt + - id: graphics/vk_classic_pipeline_shader_object_linked_spirv + summary: Run the pipeline/shader-object-linked-spirv tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/pipeline/shader-object-linked-spirv.txt + - id: graphics/vk_classic_pipeline_shader_object_unlinked_binary + summary: Run the pipeline/shader-object-unlinked-binary tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/pipeline/shader-object-unlinked-binary.txt + - id: graphics/vk_classic_pipeline_shader_object_unlinked_spirv + summary: Run the pipeline/shader-object-unlinked-spirv tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/pipeline/shader-object-unlinked-spirv.txt + - id: graphics/vk_classic_protected_memory + summary: Run the protected-memory tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/protected-memory.txt + - id: graphics/vk_classic_query_pool + summary: Run the query-pool tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/query-pool.txt + - id: graphics/vk_classic_rasterization + summary: Run the rasterization tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/rasterization.txt + - id: graphics/vk_classic_ray_query + summary: Run the ray-query tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/ray-query.txt + - id: graphics/vk_classic_ray_tracing_pipeline + summary: Run the ray-tracing-pipeline tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/ray-tracing-pipeline.txt + - id: graphics/vk_classic_reconvergence + summary: Run the reconvergence tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/reconvergence.txt + - id: graphics/vk_classic_renderpass + summary: Run the renderpass tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/renderpass.txt + - id: graphics/vk_classic_renderpasses + summary: Run the renderpasses tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/renderpasses.txt + - id: graphics/vk_classic_robustness + summary: Run the robustness tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/robustness.txt + - id: graphics/vk_classic_shader_object_api + summary: Run the shader-object/api tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/shader-object/api.txt + - id: graphics/vk_classic_shader_object_binary + summary: Run the shader-object/binary tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/shader-object/binary.txt + - id: graphics/vk_classic_shader_object_binding + summary: Run the shader-object/binding tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/shader-object/binding.txt + - id: graphics/vk_classic_shader_object_create + summary: Run the shader-object/create tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/shader-object/create.txt + - id: graphics/vk_classic_shader_object_link + summary: Run the shader-object/link tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/shader-object/link.txt + - id: graphics/vk_classic_shader_object_misc + summary: Run the shader-object/misc tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/shader-object/misc.txt + - id: graphics/vk_classic_shader_object_pipeline_interaction + summary: Run the shader-object/pipeline-interaction tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/shader-object/pipeline-interaction.txt + - id: graphics/vk_classic_shader_object_rendering + summary: Run the shader-object/rendering tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/shader-object/rendering.txt + - id: graphics/vk_classic_shader_object_tessellation + summary: Run the shader-object/tessellation tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/shader-object/tessellation.txt + - id: graphics/vk_classic_sparse_resources + summary: Run the sparse-resources tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/sparse-resources.txt + - id: graphics/vk_classic_spirv_assembly + summary: Run the spirv-assembly tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/spirv-assembly.txt + - id: graphics/vk_classic_ssbo + summary: Run the ssbo tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/ssbo.txt + - id: graphics/vk_classic_subgroups + summary: Run the subgroups tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/subgroups.txt + - id: graphics/vk_classic_synchronization + summary: Run the synchronization tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/synchronization.txt + - id: graphics/vk_classic_synchronization2 + summary: Run the synchronization2 tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/synchronization2.txt + - id: graphics/vk_classic_tessellation + summary: Run the tessellation tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/tessellation.txt + - id: graphics/vk_classic_texture + summary: Run the texture tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/texture.txt + - id: graphics/vk_classic_transform_feedback + summary: Run the transform-feedback tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/transform-feedback.txt + - id: graphics/vk_classic_ubo + summary: Run the ubo tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/ubo.txt + - id: graphics/vk_classic_video + summary: Run the video tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/video.txt + - id: graphics/vk_classic_wsi + summary: Run the wsi tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/wsi.txt + - id: graphics/vk_classic_ycbcr + summary: Run the ycbcr tests from Vulkan-CTS (classic) + command: vk_host.py run-test --caselist=mustpass/main/vk-default/ycbcr.txt