summaryrefslogtreecommitdiff
path: root/.github/workflows/ci.yml
AgeCommit message (Collapse)Author
2025-06-27Enable Vulkan Validation Layer in CI (#7543)Gangzheng Tong
* 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.
2025-06-24Document supported compiler versions in building.md (#7512)Ellie Hermaszewska
* Document supported compiler versions in building.md Closes https://github.com/shader-slang/slang/issues/7376 * multiple checked versions
2025-06-19Fix wasm releases (#7313)Elie Michel
* Update ci.yml * Update ci.yml --------- Co-authored-by: Harsh Aggarwal (NVIDIA) <haaggarwal@nvidia.com> Co-authored-by: Yong He <yonghe@outlook.com>
2025-06-19Update slang-rhi (#7457)Simon Kallweit
* update slang-rhi * enable all slang-rhi tests
2025-06-18Add merge queue CI trigger. (#7485)Yong He
2025-06-18Fix retry logic for unit test (#7471)Jay Kwak
* 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>
2025-06-18Update CMake version to 3.26 (#7459)Gangzheng Tong
Fixes: #7453
2025-06-17Fix slangpy not using correct slang backend (#7334)amey asgaonkar
- 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.
2025-06-13Print CUDA version on CI servers (#7413)Jay Kwak
* Print CUDA version on CI servers
2025-06-13Re-enable running slang-rhi-tests (#7360)Simon Kallweit
* 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>
2025-06-10Include CPU test on Windows CI (#7392)Jay Kwak
2025-06-06Update slang-rhi (#7303)Simon Kallweit
* 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>
2025-06-05Check the supported backends in CI (#7346)Jay Kwak
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.
2025-06-04Break down record replay to individual tests to avoid timeout (#7340)Jay Kwak
* 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
2025-06-04Disable 23 tests failing assertions (#7317)Jay Kwak
2025-06-02Add a new slang-test option `-enable-debug-layers` (#7300)Jay Kwak
* 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.
2025-05-29Update ubuntu runners to use 22.04 (#7142)amey asgaonkar
* 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
2025-05-27Enable slang-rhi integration testing (#7218)amey asgaonkar
2025-05-22Add slangpy testing in slang CI (#7083)amey asgaonkar
* Add slangpy testing in slang CI * Add slangpy tests to CI * break CI to test
2025-05-20Fix retry logic and skip high intermittent test failure (#7175)Gangzheng Tong
* 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
2025-05-16Enable Windows full debug testsuite in CI (#7085)Gangzheng Tong
* 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>
2025-05-01Smoke test WASM as a part of CI (#6969)Jay Kwak
* Simplify build of slang-wasm * Add smoke-test for slang-wasm in ci * Avoid git-clone playground
2025-04-15Use the latest Ubuntu version not specific old version (#6825)Jay Kwak
* Use the latest Ubuntu version not specific old version
2025-04-04fix(d3d11): correct parameter in VSSetConstantBuffers1 from uavCount … (#6690)Harsh Aggarwal (NVIDIA)
* 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>
2025-04-01re-enable macos test (#6731)kaizhangNV
MacOS test is accidentally disabled in #6491. Re-enable it.
2025-04-02Fix the broken workflow for linux/release/gcc/wasm (#6730)Jay Kwak
2025-03-07Show adapter info in slang-test CI runs (#6535)cheneym2
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.
2025-03-05Fix codegen bug when targeting PTX with new API (#6506)Anders Leino
* 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.
2025-02-27Fix CI settings. (#6491)Yong He
* fix ci. * fix. * format code --------- Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>
2025-02-27Map `SV_InstanceID` to `gl_InstanceIndex-gl_BaseInstance` (#6468)Yong He
* Map `SV_InstanceID` to `gl_InstanceIndex-gl_BaseInstance` * Fix ci.
2025-02-27Make capability diagnostic message more friendly. (#6474)Yong He
* Make capability diagnostic message more friendly. * Fix. * Fix. * Fix. * Fix test. * Update expected fail setting for aarch64/linux * Fix.
2025-02-24set depth 2 for CI submodules (#6436)Mukund Keshava
2025-02-24Do not perform deep checkout of submodules (#6410)Mukund Keshava
* Do not perform deep checkout of submodules Fixes #5465 * Remove shallow clone for release as suggested by csyonghe --------- Co-authored-by: Ellie Hermaszewska <ellieh@nvidia.com>
2025-02-07Add test for visibility in translation unit with multiple source files (#6306)Anders Leino
This closes #6221.
2025-01-09Upgrade actions/upload-artifact from v3 to v4 (#6051)Jay Kwak
The version 3 of actions/upload-artifact will be deprecated soon. https://github.blog/changelog/2024-04-16-deprecation-notice-v3-of-the-artifact-actions/ This commit upgrades to v4. There is a document describing how to migrate/upgrade: https://github.com/actions/upload-artifact/blob/main/docs/MIGRATION.md The breaking change on v4 is that the uploaded files are immutable and we can no longer append files with the same name. We don't seem to be doing it so it should be fine for us. Closes #6050
2025-01-05CI: Build the full slang-wasm.[js|wasm] targets instead of just the slang ↵Anders Leino
library. (#5998) A recent build breakage for slang-wasm.[js|wasm] was not noticed by CI since it built the slang library target instead of the slang-wasm.js "executable" target. (We added a that used objcopy to split debug info from executables. objcopy does not report errors when it finds object files with unexpected format inside static libraries, but it *does* report errors when it's run on an exceutable of unexpected format, such as in the case of slang-wasm.js.) This closes #5959.
2024-12-19Enable more examples in CI (#5915)Anders Leino
* CI: examples: Add support for filtering on platform * Add platform field to example run IDs - Remove the reflection-api entry for Windows. - Add 'aarch64' as platform for all 'macos' entries. - Add 'x86_64' as platform for all other entries. - This will implicitly enable all aarch64 tests for Linux. This helps to address issue #5520.
2024-12-18Add slang example tests to CI (#5879)Anders Leino
* Examples: Don't proceed if 'initializeBase' fails * Examples: Only access gWindow if it's been initialized * Examples: Free memory from CommandLineToArgvW * Add example run step to CI Lots of examples are still unexpectedly failing, but is one small step towards addressing issue #5520.
2024-12-12use Release over RelWithDebInfo for ci (#5846)Ellie Hermaszewska
This will necessetate changing the "required tests" setting on the GitHub repo Co-authored-by: Yong He <yonghe@outlook.com>
2024-12-04Relocate the step of 'Add bash to PATH' (#5759)kaizhangNV
* Relocate the step of 'Add bash to PATH' Relocate the step of 'Add bash to PATH' at beginning of the CI to avoid the issue of "bash command not found". * formatting * Do not remove 'Add bash to PATH' from common-setup
2024-12-04Run a do-nothing CI job for documentation changes (#5747)Ellie Hermaszewska
Closes https://github.com/shader-slang/slang/issues/5689
2024-11-27Update workflow YML files for renamed files (#5688)Jay Kwak
Recently we renamed a few files and directories and they should be reflected on the workflow YAML files. - LICENCE is a typo of LICENSE. - We recently created a new "LICENSES/" - CONTRIBUTION.md was renamed to CONTRIBUTING.md Closes #5686
2024-11-21ci: Update `actions/checkout` to always use v4 (#5634)Bruce Mitchener
CI was using a mix of version 3 and 4. Version 3 results in a warning within the GitHub Actions UI as it was using a version of NodeJS that is deprecated within the GitHub Actions infrastructure.
2024-11-05Update slang-rhi and fix error handling (#5485)cheneym2
Update slang-rhi to pick up a fix in webgpu compilation error handling. In doRenderComparisonTestRun(), only return TestResult::Pass if the shader is ran actually compiled. A similar check is in place elsewhere in slang-test-main, but was missed in doRenderComparisonTestRun(). Add two tests to the github CI skiplist, and use the skiplist in one additional CI config that was running without it. Closes 5291
2024-10-30format yaml and json (#5428)Ellie Hermaszewska
* format yaml and json * format shell scripts
2024-10-29Put debug symbols in releases (#5370)Ellie Hermaszewska
2024-09-30Disable the building of slang-llvm when targeting wasm platform (#5196)Jay Kwak
Co-authored-by: Yong He <yonghe@outlook.com>
2024-09-27Add CI step to build WebAssembly version of Slang (#5164)Jay Kwak
Closes #5117 This adds a build step of WebAssembly version of Slang. Currently it is enabled only for Linux/Release to reduce the time cost of CI, but the builds were all successful on all platforms and configurations when tested.
2024-08-30Draft: integrate slang-rhi (#4970)Simon Kallweit
* add slang-rhi submodule * refactor render-test to use slang-rhi and remove OpenGL support * remove -vk -glsl tests * remove gl test * disable failing test * allow recursive submodules in github actions * update slang-rhi * update slang-rhi --------- Co-authored-by: Yong He <yonghe@outlook.com>
2024-08-26Feature/record unit test (#4910)kaizhangNV
* Fix the slang-test bug Since we reorganize the build directory, now the libraries are located at different directory with executables in non-Windows platform, we have to change the code on how to find the dll directory. * Integrate the record/replay test into slang-unit-test We create a unit-test-record-replay.cpp to run the converted slang examples in child process as our tests for the record-replay layer. * Disable the test on Apple Due to the limitation of current examples, we temporarily disable them on apples. Change the ci to make this test only be run on the gpu-equipped runners, for other runners we add a white-list file "expected-failure-record-replay-tests.txt". * Remove 'hello-world' example from unit test "hello-world" doesn't use gfx abstract library, instead it uses vk directly, it's not a preferable way. So we will drop this test, instead, we will use cpu-hello-world example.