Skip to content

Conversation

@jvepsalainen-nv
Copy link
Contributor

Adds a nightly CI workflow to compile RTX Remix (dxvk-remix) shaders as a validation test for Slang compiler changes. This addresses issue #8655 by testing against a real-world, complex shader codebase (195 shader variants with raytracing, path tracing, and advanced material systems).

Implementation Details:

  • Runs daily at 3 AM UTC (after coverage runs)
  • Uses NVIDIA Packman to download shader compilation tools
  • Compiles shaders in ~3-4 minutes (total CI time: 10-15 min first run)
  • Caches Packman packages for speed (~8 min on cached runs)
  • Non-blocking: informational only, doesn't block PRs

Key Optimizations:

  • No Vulkan SDK required (saves 500MB + 5-10 min)
  • No MinGW-w64 required (shader-only build)
  • Packman caching reduces setup time by 2-5 minutes

Fixes #8655

Adds a nightly CI workflow to compile RTX Remix (dxvk-remix) shaders as
a validation test for Slang compiler changes. This addresses issue #8655
by testing against a real-world, complex shader codebase (195 shader
variants with raytracing, path tracing, and advanced material systems).

Implementation Details:
- Runs daily at 3 AM UTC (after coverage runs)
- Uses NVIDIA Packman to download shader compilation tools
- Compiles shaders in ~3-4 minutes (total CI time: 10-15 min first run)
- Caches Packman packages for speed (~8 min on cached runs)
- Non-blocking: informational only, doesn't block PRs

Key Optimizations:
- No Vulkan SDK required (saves 500MB + 5-10 min)
- No MinGW-w64 required (shader-only build)
- Packman caching reduces setup time by 2-5 minutes

Fixes #8655
@jvepsalainen-nv jvepsalainen-nv self-assigned this Nov 18, 2025
jvepsalainen-nv and others added 12 commits November 18, 2025 21:50
Adds testing for the
[slangpy-samples](https://github.com/shader-slang/slangpy-samples)
repository to provide integration testing of slangpy with real-world
examples.

# Implementation

The `test-slangpy` job now includes slangpy-samples testing alongside
the existing slangpy pytest tests. After running slangpy's own tests,
the job:

1. Clones the `slangpy-samples` repository
2. Installs dependencies from `requirements.txt`
3. Runs `pytest -n 4 slangpy-samples/tests` (parallel execution with 4
workers)

The implementation follows the [original issue's preferred
solution](#8186 (comment)).

# When It Runs

Same conditions as the main slangpy tests, ensuring we test integration
examples alongside the core slangpy functionality.

Fixes #8186
)

This adds a minimal workflow framework that can be manually triggered or
run on a nightly schedule. The placeholder allows the workflow to be
registered with GitHub Actions, enabling testing of the full
implementation from a PR branch before merging.

The complete implementation (including dxvk-remix cloning, packman
setup, and shader compilation steps) will be added in a subsequent PR
and can be tested by manually triggering this workflow from the feature
branch.

Related to #8655
Replace manual meson setup with the dxvk-remix build_shaders_only.ps1
script, which handles both configuration and compilation with correct
parameters. This fixes the "Process completed with exit code 1" error.
The workflow was using a pre-built Slang from packman instead of the
checked-out source code. Now builds Slang and adds it to PATH before
running build_shaders_only.ps1, ensuring RTX Remix shaders are compiled
with the current Slang compiler being tested.
The workflow was using pre-built Slang from packman instead of the
checked-out source, defeating the purpose of testing compiler changes.

Now builds Slang with cmake default (Ninja) preset and adds it to PATH
before running build_shaders_only.ps1. Also fixes the meson setup error
by using the official dxvk-remix build script.

Follows build recommendations from docs/building.md.
Ninja needs MSVC compiler to be available on PATH. Add ilammy/msvc-dev-cmd
action to set up the environment for cmake configure step.
Use cmake --workflow --preset release with LLVM disabled, matching the
proven CI build process. Merge configure and build into one step.
Use -version instead of --version.
- Remove redundant slangc version check (wrong flag, already checked)
- Add error checking after shader build to catch failures immediately
- Remove commented-out issue creation code

Ensures shader build failures are properly detected with clear errors.
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.

Additional codebase for CI testing

2 participants