summaryrefslogtreecommitdiffstats
path: root/.github/workflows/ci.yml
Commit message (Collapse)AuthorAge
* Check if any required jobs failed (allow success or skipped) (#8495)Gangzheng Tong2025-09-19
| | | This allows doc only changes to PASS the CI by skipping jobs.
* Enhances CI reliability and debug logging (#8393)Gangzheng Tong2025-09-07
| | | | | | | | | | | | | | | | | 1. Adds retry logic - Implements 3-attempt retry mechanism for intermittent test failures 2. Reduces parallelism for Linux - Changes server counts back to 1 for more stable execution, given the test is short in Linux for now 3. Adds detailed error logging - Enhanced diagnostic information for test parsing failures 4. Add Python 3.10 setup for slangpy tests for github runners 5. Removes submodule checkout for slang and slasngpy tests 6. Adds check-ci job - Implements consolidated CI status for simplified branch protection rule --------- Co-authored-by: slangbot <ellieh+slangbot@nvidia.com> Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>
* Remove unnecessary check and adust server count etc. in CI (#8374)Gangzheng Tong2025-09-05
| | | | | | | | | | | | | | | | - This PR removes "wasm" check from the test job, since there is no test job for "wasm" yet. - Also, move the check for slang-rhi and slangpy test to the job level to skip the setup etc. if no run is needed. - Update the macos compiler version in building.md to match the clang compiler used in CI. - Reduce the server count in Linux and Mac when running slang-test to ease the machine load - Run slangpy test with `-n auto --maxprocesses=4` to speed up --------- Co-authored-by: slangbot <ellieh+slangbot@nvidia.com> Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>
* Split CI to build and test jobs (#8359)Gangzheng Tong2025-09-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The CI has been re-organized with the following: ``` ci.yml (Main Orchestrator) ├── filter job │ ├── Documentation Only? → Yes → Skip CI │ └── Documentation Only? → No → Continue CI │ ├── Build Jobs │ └── ci-slang-build.yml │ ├── common-setup action │ ├── Build & Package │ └── Upload Artifacts (Build package and Tests package) │ └── Test Jobs └── ci-slang-test.yml └── common-test-setup action ├── Download Tests Artifacts ← (from Build) └── Run Tests ``` To achieve fine-grained build->test dependency, instead of using `matrix strategy` in single build (or single test) job, the main ci.yml statically defines the each config of the build and test job. e.g. `build-windows-debug-cl-x86_64-gpu` and `test-windows-debug-cl-x86_64-gpu` are a pair of the build-test job for the windows/debug/ci config. Closes: https://github.com/shader-slang/slang/issues/6728 --------- Co-authored-by: slangbot <ellieh+slangbot@nvidia.com> Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>
* Enable ccache for self-hosted runner (#8345)Gangzheng Tong2025-09-03
| | | | | | | | Related to https://github.com/shader-slang/slang/issues/6728 --------- Co-authored-by: slangbot <ellieh+slangbot@nvidia.com> Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>
* Enable slangpy and slang-rhi tests for Mac (#8297)Gangzheng Tong2025-08-29
| | | | | | | | | | | | | | | | | This PR enables slang-rhi and slangpy tests in the slang CI for MacOS. * exclude the slang-rhi `sampler-array` test for mac; issue tracked in https://github.com/shader-slang/slang/issues/8246 * update slang-rhi for fix of `nested-parameter-block-2` * for slangpy test, install the required python package in the github mac runner only each CI run. Closes: https://github.com/shader-slang/slang/issues/7330 --------- Co-authored-by: slangbot <ellieh+slangbot@nvidia.com> Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>
* Fail slang-test when VVL printed errors (#8280)Jay Kwak2025-08-26
| | | | | | | | | | | | | | | | | | | | | | fixes https://github.com/shader-slang/slang/issues/8271 This PR does the following, - Fail slang-test when there are VVL error messages. - VVL error for `gfx-unit-test-tool/` were not captured properly by the debug callback. - Set an environment variable, `VK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_validation`, for CI and VisualStudio project setup. - Ignores VVL error about NullHandle is used for the acceleration structure; a fix is at ToT of VVL and not available from release build yet. - Fix VVL error complaining about the varying inputs are not provided for the tests, `gfx-unit-test-tool/linkTimeTypeLayout.internal` and `gfx-unit-test-tool/linkTimeTypeLayoutNested.internal`. --------- Co-authored-by: slangbot <ellieh+slangbot@nvidia.com> Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>
* Print GPU driver version in CI.yml (#8275)Jay Kwak2025-08-25
| | | | | This commit prints an additional information of GPU version while running CI.yml. This can help us to debug when things don't work as expected.
* Enabling via-glsl test for "merge" event (#8133)Jay Kwak2025-08-20
| | | | | There was a case where a PR passed CI test a long time ago, and when it is merged, it caused a regression. We like to run via-glsl test when it gets merged to prevent it.
* Fix#8076 - Re-enable slangpy test (#8087)Harsh Aggarwal (NVIDIA)2025-08-20
| | | Commit bdda8a9 from PR #7862 had to disable some slangy tests in ci.yml
* Be conservative for checking if PR is doc changes only (#8130)Jay Kwak2025-08-09
| | | Fixes https://github.com/shader-slang/slang/issues/8098
* Run extras/verify-documented-compiler-version.sh only when built (#8097)Jay Kwak2025-08-07
| | | | | | | | | | | | | | | | The script, `extras/verify-documented-compiler-version.sh`, depends on CMakeCache.txt, which gets built as a part of the slang build step. But if the PR is just a document changes, the build step will be skipped. And the script will print a warning that CMakeCache.txt is not found. The script should run only when Slang was built. You can see the current warning here, https://github.com/shader-slang/slang/actions/runs/16788651517/job/47545476533#step:12:5 Co-authored-by: Ellie Hermaszewska <ellieh@nvidia.com>
* Reenable debug-layers on CI (#8017)Jay Kwak2025-08-01
|
* Fix 7441: CUDA boolean vector layout to use 1-byte elements (#7862)Harsh Aggarwal (NVIDIA)2025-08-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Fix 7441: CUDA boolean vector layout to use 1-byte elements Boolean vectors (bool1, bool2, bool3, bool4) were incorrectly implemented as integer-based types using 4 bytes per element instead of actual 1-byte boolean elements on CUDA targets. Changes: - Update CUDA prelude to define boolean vectors as structs with bool fields instead of typedef aliases to integer vectors - Implement CUDALayoutRulesImpl::GetVectorLayout to use 1-byte alignment for boolean vectors, matching actual CUDA memory layout behavior - Update make_bool functions to populate struct fields correctly This ensures boolean vectors have the same memory layout as bool[4] arrays: - bool1: 1 byte (was 4 bytes) - bool2: 2 bytes (was 8 bytes) - bool3: 3 bytes (was 12 bytes) - bool4: 4 bytes (was 16 bytes) Fixes memory layout mismatch between Slang reflection API and actual CUDA compilation, achieving 75% memory savings for boolean vector usage. * Fix CI issues - Add and update associated functions and operators * Make boolX same as uchar * Use align construct on struct for boolX * Improve Test case for robust alignment checks * Formatting * Disable selected slangpy tests * add metal check which is slightly different than cuda * Test-1 * Test-2 * Test-3 * Test-4 * ReflectionChange * cleanup and update * _slang_select with plain bool is needed for reverse-loop-checkpoint-test
* Exclude a list of expensive slang-rhi tests to speed up CI (#8004)Simon Kallweit2025-07-31
|
* Reduce merge_group CI workload. (#7996)Yong He2025-07-30
| | | | | * Reduce merge_group CI workload. * fix.
* Disable debug-layers temporarlily on CI (#7972)Jay Kwak2025-07-30
|
* Add CI to check ir module versioning (#7821)Ellie Hermaszewska2025-07-22
|
* Stable names and backwards compat for serialized IR modules (#7644)Ellie Hermaszewska2025-07-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * stable names * tests, options and ci for stable names * Add back compat design document * fix warnings * formatting * comment * neaten * regenerate command line reference * consolidate ci scripts * faster ci * remove libreadline * Move new function to end of interface --------- Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>
* Run full check on merge_queue, but not on push. (#7596)Yong He2025-07-02
| | | | | | | * Run full check on merge_queue, but not on push. * Fix. * Update copilot instructions.
* Don't run full gpu tests on merge queue. (#7587)Yong He2025-07-02
| | | | | | | | | | | * Don't run full gpu tests on merge queue. * Fix yml. * format code --------- Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>
* Enable Vulkan Validation Layer in CI (#7543)Gangzheng Tong2025-06-27
| | | | | | | | | | | | | * Disable spirv-opt for the tests with debugfunction VVL errors * Enable VVL in CI * Add 2 expected failure tests until we update VVL to 1.4.319 which contains the fix * update slang-rhi * Revert "Disable spirv-opt for the tests with debugfunction VVL errors" This reverts commit 5327460057f533af81ea60a556e43abe805d5816.
* Document supported compiler versions in building.md (#7512)Ellie Hermaszewska2025-06-24
| | | | | | | * Document supported compiler versions in building.md Closes https://github.com/shader-slang/slang/issues/7376 * multiple checked versions
* Fix wasm releases (#7313)Elie Michel2025-06-19
| | | | | | | | | | * Update ci.yml * Update ci.yml --------- Co-authored-by: Harsh Aggarwal (NVIDIA) <haaggarwal@nvidia.com> Co-authored-by: Yong He <yonghe@outlook.com>
* Update slang-rhi (#7457)Simon Kallweit2025-06-19
| | | | | * update slang-rhi * enable all slang-rhi tests
* Add merge queue CI trigger. (#7485)Yong He2025-06-18
|
* Fix retry logic for unit test (#7471)Jay Kwak2025-06-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Fix the ignored unit-tests on retry * Retrigger CI * Add more error messages * Don't use test-server for retry of unit-test to see error messages * Clean up cl.yml Remove 'has-gpu' because it is unused after debug became full-gpu-test. Renamed files to make the meaning more clear: - Renamed expected-failure.txt to expected-failure-via-glsl.txt - Renamed expected-failure-github-runner.txt to expected-failure-no-gpu.txt * Rename cpu-hello-world.slang to avoid name conflict to example We have an example whose executable name is cpu-hello-world.exe. It gets built when you run `cmake --build`, but it gets overwritten by slang-test when it tests `tests/cpu-program/cpu-hello-world.slang`. This PR renames to avoid the name conflict. * Remove debug code --------- Co-authored-by: Yong He <yonghe@outlook.com>
* Update CMake version to 3.26 (#7459)Gangzheng Tong2025-06-18
| | | Fixes: #7453
* Fix slangpy not using correct slang backend (#7334)amey asgaonkar2025-06-17
| | | | | | | - fix path conversion from linux to windows - add exit on fail for lib copy This ensures the slang backend built in CI is indeed the one used for tests.
* Print CUDA version on CI servers (#7413)Jay Kwak2025-06-13
| | | * Print CUDA version on CI servers
* Re-enable running slang-rhi-tests (#7360)Simon Kallweit2025-06-13
| | | | | | | | | | | | | | | | | | | | * enable building slang-rhi-tests * re-enable running slang-rhi-tests * format code * fix typo * update slang-rhi * build slang-rhi-tests without glfw dependency * skip fence tests --------- Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com> Co-authored-by: amey asgaonkar <160177341+aasgaonkar@users.noreply.github.com>
* Include CPU test on Windows CI (#7392)Jay Kwak2025-06-10
|
* Update slang-rhi (#7303)Simon Kallweit2025-06-06
| | | | | | | | | | | | | | | | | | | | | * update slang-rhi * adapt to new slang-rhi API * enable slang-rhi agility sdk * fix handling empty list * disable failing slang-rhi tests * format code * fix slang-rhi-tests ci step * skip running slang-rhi-tests --------- Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>
* Check the supported backends in CI (#7346)Jay Kwak2025-06-05
| | | | | slang-test is ran with a simple test, tests/render/check-backend-support-on-ci.slang. And the github CI,yaml will check if certain keywords are found. This is to prevent the regression on the CI server where a set of backend was supported at some point and it stopped supporting it siliently.
* Break down record replay to individual tests to avoid timeout (#7340)Jay Kwak2025-06-04
| | | | | | | | | | | | | | | | * Break down RecordReply to individual tests to avoid timeout In Debug build, RecordReplay unit-test was timing out. It was running six tests all in one unit-test, but this commit breaks it down to individual test so that each unit test can be done within the timeout limit. This issue has seen only in Debug build but it has been unnoticed because even when the test failed with test-server, it was still passing on its retry because the time-out applies only when using test-server. * Reduce the retry from 2 times to 1 time * Remove RecordReplay from expected failure
* Disable 23 tests failing assertions (#7317)Jay Kwak2025-06-04
|
* Add a new slang-test option `-enable-debug-layers` (#7300)Jay Kwak2025-06-02
| | | | | | | | | | | | | | | | | | | | | | * Add a new slang-test option `-enable-debug-layers` A variable `disableDebugLayer` is renamed to `enableDebugLayers`, and a corresponding command-line argument is added, `-enable-debug-layers`. The previous option `-disable-debug-layer` is still available, but it prints a deprecation warning message. The reason why it is added is to make the option available to both Debug and Release. On Debug build, it will be enabled by default, and it will be disabled on Release build. We should be able to not only disable it, but also enable it on Release build. Ideally this option should be enabled all the time, but currently there are too many VUID error messages printed and we are enabling only for Debug build for now. Note that the CI/CD will run with the option disabled until we resolve all of VUID errors.
* Update ubuntu runners to use 22.04 (#7142)amey asgaonkar2025-05-29
| | | | | | | * Update ubuntu runners to use 22.04 - Use ubuntu-22.04 runners instead of latest - Leverage glibc-2.35 for release pkg - delete centos/glibc2.17 release workflow yaml
* Enable slang-rhi integration testing (#7218)amey asgaonkar2025-05-27
|
* Add slangpy testing in slang CI (#7083)amey asgaonkar2025-05-22
| | | | | | | * Add slangpy testing in slang CI * Add slangpy tests to CI * break CI to test
* Fix retry logic and skip high intermittent test failure (#7175)Gangzheng Tong2025-05-20
| | | | | | | | | * skip recordReplay; fix retrying logic for unit test * Allow the CI to run with manual dispatch * increase failed test limit to 100 * reduce the serve count to 2
* Enable Windows full debug testsuite in CI (#7085)Gangzheng Tong2025-05-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Unify Debug Layer Control Logic and Add Disable Option for Debug Builds This PR refactors and unifies the debug layer control logic in slang-test. A new `-disable-debug-layers` option is introduced, allowing debug builds to skip enabling the validation (debug) layer. This is currently needed to ensure stability in the debug test suite. Previously, different toggles such as ENABLE_VALIDATION_LAYER, ENABLE_DEBUG_LAYER, and debugLayerEnabled were used inconsistently across different components of slang-test. This PR standardizes the logic by using a single variable, debugLayerEnabled, to control the enabling/disabling of the debug layer internally. Notes: By default, the debug/validation layer is enabled in debug builds and is not supported in release builds of slang-test. Fixes: #7132 * Disable spirv-opt for the DebugFunctionDefinition issue * Run debug build only in GCP machines * Fix VUID-vkCmdPipelineBarrier-pBufferMemoryBarriers-02818 dstAcessMask can't include VK_ACCESS_TRANSFER_READ_BIT when stage mask has VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR * Set failed retry limit to 32 --------- Co-authored-by: slangbot <ellieh+slangbot@nvidia.com> Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>
* Smoke test WASM as a part of CI (#6969)Jay Kwak2025-05-01
| | | | | | | * Simplify build of slang-wasm * Add smoke-test for slang-wasm in ci * Avoid git-clone playground
* Use the latest Ubuntu version not specific old version (#6825)Jay Kwak2025-04-15
| | | | * Use the latest Ubuntu version not specific old version
* fix(d3d11): correct parameter in VSSetConstantBuffers1 from uavCount … (#6690)Harsh Aggarwal (NVIDIA)2025-04-04
| | | | | | | | | | | | | | | | | | | | * fix(d3d11): correct parameter in VSSetConstantBuffers1 from uavCount to cbvCount (fixes #6531) Root cause - Incorrect parameter passing in slang-rhi 1. slang-rhi #281 - Add the correct cbvCount for setting Constant Buffer 2. Prevent render tests from overwriting reference images * Add missing tests/render/multiple-stage-io-locations.slang.3.expected.png * Add more expected images from texture2d-gather * Add new option: skipReferenceImageGeneration For Github CI we set this to true - So we don't overwrite the expected images --------- Co-authored-by: Jay Kwak <82421531+jkwak-work@users.noreply.github.com>
* re-enable macos test (#6731)kaizhangNV2025-04-01
| | | MacOS test is accidentally disabled in #6491. Re-enable it.
* Fix the broken workflow for linux/release/gcc/wasm (#6730)Jay Kwak2025-04-02
|
* Show adapter info in slang-test CI runs (#6535)cheneym22025-03-07
| | | | | | | It might be beneficial for debugging issues to know what graphics adapters are in use for CI runs. It is also helpful to ensure the -show-adapter-info option in slang-test doesn't bitrot.
* Fix codegen bug when targeting PTX with new API (#6506)Anders Leino2025-03-05
| | | | | | | | | | | | | | | | | | | | | | * Add cuda codegen bug repro This just compiles tests/compute/simlpe.slang for PTX with the new compilation API, in order to reproduce a code generation bug. * Detect entrypoint more robustly when applying ConstRef hack during lowring For shaders like tests/compute/simple.slang, which have a 'numthreads' attribute but no 'shader' attribute, the old compile request API would add an EntryPointAttribute to the AST node of the entry point. However, the new API doesn't, and so a certain ConstRef hack doesn't get applied when using the new API, leading to subsequent code generation issues. This patch also checks for a 'numthreads' attribute when deciding whether to apply the ConstRef hack. This closes issue #6507 and helps to resolve issue #4760. * Add expected failure list for GitHub runners Our GitHub runners don't have the CUDA toolkits installed, so they can't run all tests.
* Fix CI settings. (#6491)Yong He2025-02-27
| | | | | | | | | | | * fix ci. * fix. * format code --------- Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>