Ezleak / VulkanCI

Action to enable running Vulkan apps on GitHub runners

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

VulkanCI

test

This action performs minimal setup to enable building and running Vulkan applications on GitHub-hosted runners. It installs the Vulkan headers, loader, and validation layers, as well as SwiftShader (a software-only Vulkan implementation), and sets up the GitHub environment with the necessary variables.

Usage

- uses: NcStudios/VulkanCI@v1.0
  with:
    # VulkanSDK version to use
    # Must be a supported version
    # The default value is 1.3.283.0
    sdkVersion: 1.3.283.0

    # Optional path to installation path
    # The default value is '${{ github.workspace }}`
    installPath: 'myArtifacts'

Outputs

  • vulkan-install-path Path where the VulkanSDK was installed
  • swiftshader-install-path Path where SwiftShader was installed

Variables can be accessed through the step outputs: ${{ steps.<id>.outputs.swiftshader-install-path }}.

In addition to the output variables, the action updates the following contexts to allow files and libraries to be found:

  • github.env
    • VULKAN_SDK
    • VULKAN_SDK_VERSION
    • VK_LAYER_PATH
    • VK_DRIVER_FILES (points to a SwiftShader manifest at swiftshader-install-path/vk_swiftshader_icd.json)
    • LD_LIBRARY_PATH (Linux only)
    • DYLD_LIBRARY_PATH (macOS only)
  • github.path
    • $VULKAN_SDK/bin (Windows only)

Supported VulkanSDK Versions

  • 1.3.283.0
  • 1.3.280.0
  • 1.3.275.0
  • 1.3.261.1

Supported Runners

The intention is to support all standard GitHub-hosted runners. Tests currently run on:

  • windows-2019
  • windows-2022
  • ubuntu20.04
  • ubuntu22.04
  • ubuntu24.04
  • macOS-12
  • macOS-13
  • macOS-14

Known Limitations

Due to significant build times, pre-built artifacts are downloaded from the corresponding release of this action. This requires the action version to be specified as a tag - targeting a SHA will not work.

The Vulkan loader is built with LOADER_USE_UNSAFE_FILE_SEARCH=ON to more reliably allow file discovery through environment variables. To state the obvious, the artifacts provided here are not intended for use outside of testing environments.

Currently, all macOS binaries are built for x86_64.

About

Action to enable running Vulkan apps on GitHub runners


Languages

Language:C++ 87.1%Language:CMake 12.9%