Skip to content

Add Level Zero testing (New) - #2664

Open
mckees wants to merge 5 commits into
canonical:mainfrom
mckees:lvl-zero-mainline
Open

Add Level Zero testing (New)#2664
mckees wants to merge 5 commits into
canonical:mainfrom
mckees:lvl-zero-mainline

Conversation

@mckees

@mckees mckees commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

Description

Level Zero is a direct-to-silicon API used by Intel's oneAPI. It is one of the dependencies for Intel's compute-runtime OpenCL driver, so testing it is important for the integrity of the stack. These test plans run the tests from the upstream source

Documentation

Read more about Level Zero here:
https://github.com/oneapi-src/level-zero

Tests

Ran the classic and core test suites for Level Zero

Copilot AI review requested due to automatic review settings July 8, 2026 15:25
@codecov

codecov Bot commented Jul 8, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 60.06%. Comparing base (5a06fdb) to head (caad71a).
⚠️ Report is 4 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2664      +/-   ##
==========================================
+ Coverage   60.01%   60.06%   +0.05%     
==========================================
  Files         487      488       +1     
  Lines       48931    48993      +62     
  Branches     8764     8772       +8     
==========================================
+ Hits        29368    29430      +62     
+ Misses      18641    18638       -3     
- Partials      922      925       +3     
Flag Coverage Δ
provider-base 36.74% <100.00%> (+0.22%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds Intel Level Zero conformance testing to the Checkbox providers/base graphics provider by introducing new job units, a host helper script for classic (host-driver) execution, and new test plans to run both “core/snap” and “classic” variants.

Changes:

  • Added two new graphics test plans to select Level Zero core vs classic test jobs.
  • Added a new level-zero.pxu unit file defining the Level Zero installer job plus core/classic test jobs.
  • Added lz_host.py to support running Level Zero tests against host drivers with --no-confinement.

Reviewed changes

Copilot reviewed 2 out of 3 changed files in this pull request and generated 4 comments.

File Description
providers/base/units/graphics/test-plan.pxu Adds Level Zero core/classic test plans that include the installer and appropriate job ID patterns.
providers/base/units/graphics/level-zero.pxu Introduces the Level Zero snap install job, GPU availability checks, and core/classic test job definitions.
providers/base/bin/lz_host.py Adds a host helper used by classic jobs to validate host prerequisites and run tests with --no-confinement.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@@ -0,0 +1,777 @@
unit: job
plugin: shell
id: setup/install_level_zero
Comment on lines +19 to +23
id: graphics/lz_gpu_avail
category_id: com.canonical.plainbox::graphics
user: root
_summary: Checks for GPU for level-zero-tests
environ:
Comment on lines +36 to +38
depends:
graphics/lz_gpu_avail
setup/install_level_zero
Comment on lines +421 to +422
setup_include:
setup/install_level_zero
@tomli380576

tomli380576 commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

Since this is a new test plan I think it's a good opportunity to move test plans to yaml. You can translate the existing pxu files with this command if you have the checkbox virtual environment

# if checkbox complains about not having the translate module, do this inside the venv
# 
# cd checkbox/checkbox-ng
# pip install -Ue ".[translator]"

# from inside checkbox venv
checkbox-cli translate /path/to/your/job.pxu

Or if you want to start from scratch, there are schema files in checkbox/unit_json_schema that can help with writing jobs. (on my vscode the yaml extension was able to automatically pick up these schemas and show autocomplete options)

(for some reason github doesn't let me upload yamls but this is what it looks like after translation)
unit: job
plugin: shell
id: setup/install_level_zero
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
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
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_include:
  - setup/install_level_zero
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

@mckees mckees changed the title Add Intel Level Zero testing Add Intel Level Zero testing (New) Jul 10, 2026
@mckees mckees changed the title Add Intel Level Zero testing (New) Add Level Zero testing (New) Jul 10, 2026
@mckees
mckees force-pushed the lvl-zero-mainline branch from 930f0e2 to 2eda223 Compare July 15, 2026 17:18
mckees added 2 commits July 21, 2026 19:36
Translate level-zero.pxu and test-plan.pxu to YAML format
per the provider convention for new unit files, and add
test_lz_host.py covering all branches in lz_host.py.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 4 out of 5 changed files in this pull request and generated 4 comments.

Comment thread providers/base/units/graphics/level-zero.yaml Outdated
Comment thread providers/base/units/graphics/level-zero.yaml Outdated
Comment thread providers/base/units/graphics/level-zero.yaml Outdated
Comment thread providers/base/units/graphics/level-zero.yaml
@mckees
mckees requested a review from frenchwr July 23, 2026 10:56
@mckees

mckees commented Jul 23, 2026

Copy link
Copy Markdown
Contributor Author

@frenchwr this should look familiar after the last one

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants