summaryrefslogtreecommitdiffstats
path: root/.github
Commit message (Collapse)AuthorAge
...
* Add slang-gfx build target back for Falcor (#7700)Gangzheng Tong2025-07-11
| | | | | | | | | | | | | | * Update falcor perf test CI * Add slang-gfx build back since Falcor is still using it * format code (#7704) Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com> --------- Co-authored-by: slangbot <ellieh+slangbot@nvidia.com> Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>
* Fix#7676 - Add Claude Code Assistant for using LLMs (#7673)Harsh Aggarwal (NVIDIA)2025-07-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add Claude Code Assistant for using LLMs add claude.md files for context to the LLM * format code * Update claude.yml add pull request target * Force test claude.yml * Remove sensitive flag - Update claude.yml * Update claude.yml Reverted the direct_prompt * format code (#7674) Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com> * Fix Claude workflow based on PR review feedback - Remove unused pull_request_review_comment trigger - Increase timeout from 30 to 60 minutes - Change fetch-depth from 0 to 2 for minimal git history - Add recursive submodule checkout following copilot pattern - Add environment setup with libx11-dev dependency - Switch to release build config following copilot pattern - Increase max_turns from 10 to 20 for longer conversations - Update custom instructions with build commands and OS info 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Update workflow - configure debug build * Update max turns to 50 for M size work * Add Claude Code settings with auto-formatting hook - Create .claude/settings.json with PostToolUse hook - Automatically runs ./extras/formatting.sh after Write/Edit/MultiEdit operations - Ensures code formatting consistency when Claude makes changes 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> --------- Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com> Co-authored-by: slangbot <ellieh+slangbot@nvidia.com> Co-authored-by: Claude <noreply@anthropic.com>
* copilot instruction prompt: emphasize to format changes.Yong He2025-07-10
|
* Fix internal error when a generic in an extension is unused (#7665)Copilot2025-07-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Initial plan * Add diagnostic for unreferenced generic parameters in extensions Co-authored-by: csyonghe <2652293+csyonghe@users.noreply.github.com> * Use GenericTypeParamDeclBase and eliminate intermediate list Co-authored-by: csyonghe <2652293+csyonghe@users.noreply.github.com> * Update test to use filecheck format for better verification Co-authored-by: csyonghe <2652293+csyonghe@users.noreply.github.com> * Update extension validation to use getMembersOfType for better constraint collection Co-authored-by: csyonghe <2652293+csyonghe@users.noreply.github.com> * Add temporary workaround for inheritance constraints but issue persists Co-authored-by: csyonghe <2652293+csyonghe@users.noreply.github.com> * Fix inheritance constraint validation by moving to SemanticsDeclConformancesVisitor Co-authored-by: csyonghe <2652293+csyonghe@users.noreply.github.com> * Fix inheritance constraint validation by removing inheritance declaration checks Co-authored-by: csyonghe <2652293+csyonghe@users.noreply.github.com> * Move extension generic parameter validation back to SemanticsDeclBasesVisitor Co-authored-by: csyonghe <2652293+csyonghe@users.noreply.github.com> * Fix test. * format code (#7671) Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com> * Fix and update. * Refine fix. --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: csyonghe <2652293+csyonghe@users.noreply.github.com> Co-authored-by: Yong He <yonghe@outlook.com> Co-authored-by: slangbot <ellieh+slangbot@nvidia.com> Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>
* 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>
* Remove swiftshader (#7600)Gangzheng Tong2025-07-02
|
* 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>
* Add copilot environment configuration. (#7586)Yong He2025-07-02
| | | | | | | | | | | * Add copilot environment configuration. * Add instructions. * 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
* remove sccache due to the instability (#7484)Gangzheng Tong2025-06-19
|
* 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
|
* Add release workflow targeting glibc2.17 with ubuntu 18 (#7363)Gangzheng Tong2025-06-09
| | | | | | | | | | | | | | * Add release workflow targeting glibc 2.17 * format code (#7366) Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com> * Update comment --------- Co-authored-by: slangbot <ellieh+slangbot@nvidia.com> Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>
* Disable Link-Time-Optimization by default (#7345)Jay Kwak2025-06-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Disable Link-Time-Optimization by default LTO was requested for the release package a while ago. When we added it, LTO was enabled by default although it was needed only for the release packages. Later we found that the Release build cannot be incrementally recompiled when LTO is enabled. It sometimes works fine, but it required full recompilation when it doesn't work. We added a new CMake option, `SLANG_ENABLE_RELEASE_LTO`, to disable it for developers. But many Slang developers don't know the option exists. I was going to update the document, CONTRIBUTING.md, but I thought it will be better to change the default behavior. * Fix a compiler warning treated as an error on linux A padding variable was uninitialized, which is fine, but the compiler was complaining about it. * Fix other gcc error for uninitialized variable * Fix more compile warning treated as error * Fix compiler warning from gcc 11 It appears that this is a valid warning that the `delete this` is done on an offset 8 when the class uses multiple inheritance. The compiler warning is following: ``` In file included from /home/runner/work/slang/slang/source/core/slang-memory-file-system.h:5, from /home/runner/work/slang/slang/tools/slang-unit-test/unit-test-module-ptr.cpp:3: In destructor ‘virtual Slang::ComBaseObject::~ComBaseObject()’, inlined from ‘uint32_t Slang::ComBaseObject::_releaseImpl()’ at /home/runner/work/slang/slang/source/core/slang-com-object.h:49:16, inlined from ‘virtual uint32_t Slang::MemoryFileSystem::release()’ at /home/runner/work/slang/slang/source/core/slang-memory-file-system.h:34:5: /home/runner/work/slang/slang/source/core/slang-com-object.h:33:31: error: ‘void operator delete(void*, std::size_t)’ called on pointer ‘<unknown>’ with nonzero offset 8 [-Werror=free-nonheap-object] 33 | virtual ~ComBaseObject() {} | ^ In destructor ‘virtual Slang::ComBaseObject::~ComBaseObject()’, inlined from ‘uint32_t Slang::ComBaseObject::_releaseImpl()’ at /home/runner/work/slang/slang/source/core/slang-com-object.h:49:16, inlined from ‘virtual uint32_t Slang::MemoryFileSystem::release()’ at /home/runner/work/slang/slang/source/core/slang-memory-file-system.h:34:5, inlined from ‘Slang::ComPtr<T>::~ComPtr() [with T = ISlangMutableFileSystem]’ at /home/runner/work/slang/slang/include/slang-com-ptr.h:113:34, inlined from ‘void _modulePtr_impl(UnitTestContext*)’ at /home/runner/work/slang/slang/tools/slang-unit-test/unit-test-module-ptr.cpp:92:1: /home/runner/work/slang/slang/source/core/slang-com-object.h:33:31: error: ‘void operator delete(void*, std::size_t)’ called on pointer ‘<unknown>’ with nonzero offset 8 [-Werror=free-nonheap-object] 33 | virtual ~ComBaseObject() {} | ^ /home/runner/work/slang/slang/tools/slang-unit-test/unit-test-module-ptr.cpp: In function ‘void _modulePtr_impl(UnitTestContext*)’: /home/runner/work/slang/slang/tools/slang-unit-test/unit-test-module-ptr.cpp:36:69: note: returned from ‘void* operator new(std::size_t)’ 36 | ComPtr<ISlangMutableFileSystem>(new Slang::MemoryFileSystem()); | ^ ``` The problem is on the fact that `ComBaseObject` is not the first in the multiple inheritance: ``` class MemoryFileSystem : public ISlangMutableFileSystem, public ComBaseObject { public: // ISlangUnknown SLANG_COM_BASE_IUNKNOWN_ALL ``` It should be: ``` class MemoryFileSystem : public ComBaseObject, public ISlangMutableFileSystem ``` The chain of ComObject release is little complicated and it is easy to make a mistake. Here is summary with details, 1. `release()` is declared as a pure-virtual in ISlangUnknown, which is one of the base classes of `ISlangMutableFileSystem`. ``` struct ISlangUnknown { virtual SLANG_NO_THROW uint32_t SLANG_MCALL release() = 0; ``` 2. `release()` is implemented with the macro `SLANG_COM_BASE_IUNKNOWN_RELEASE`. ``` SLANG_NO_THROW uint32_t SLANG_MCALL release() SLANG_OVERRIDE \ { \ return _releaseImpl(); \ } inline uint32_t ComBaseObject::_releaseImpl() { // Check there is a ref count to avoid underflow SLANG_ASSERT(m_refCount != 0); const uint32_t count = --m_refCount; if (count == 0) { delete this; } return count; } ``` 3. The instance of `MemoryFileSystem` is handled by ComPtr. And `ComPtr::~ComPtr()` calls the `release()`. ``` ComPtr<ISlangMutableFileSystem> memoryFileSystem = ComPtr<ISlangMutableFileSystem>(new Slang::MemoryFileSystem()); SLANG_FORCE_INLINE ~ComPtr() { if (m_ptr) ((Ptr)m_ptr)->release(); } ``` 4. When `delete this` is called, because ComBaseObject is not the first in the multiple inheritance, `this` is 8 byte off from the actual instance address. A fix for this is to change the order of the inheritance and make ComBaseObject to be the first in the order.
* 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
* Update the MacOS signing to use Khronos (#7157)Gangzheng Tong2025-05-19
|
* 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>
* Fix slangc path used by cmdline reference doc regeneration action (#7128)aidanfnv2025-05-15
| | | | | This change uses a different path for accessing the slangc binary during the command line reference doc regeneration action, as the environment variable referenced for the bin directory may not be accurate. This change also makes some exclusions from the slang build in the command line reference actions, to speed up those builds for checking/regenerating.
* Make Command Line Reference readthedocs compatible (#7048)aidanfnv2025-05-14
| | | | | | | | | | | | This change modifies the code that generates the Command Line Reference doc to output H2 headings in place of H1 headings, and H3 in place of existing H2, so that readthedocs will not treat the additional H1 headings as titles. This change also regenerates the Command Line Reference doc, as the current copy in the repo appears to be quite out-of-date. The existing copy is also encoded as UTF-16LE, whereas the other docs are all UTF-8. The regenerated doc is also UTF-8, and all I did to generate that was run slangc.exe -help-style markdown -h > docs\command-line-slangc-reference.md 2>&1 after building slangc on Windows. This change also adds GitHub actions workflows to check the contents of the doc, fail if a regenerated version needs to be checked in, and provide an option to regenerate it with a bot, all in a similar manner to User Guide TOC regeneration. The doc writer was producing different results from my local build until I changed how the writer sorts the shader stages. In the action, the order of pixel and fragment was reversed, despite the only difference from my local build being the OS. --------- Co-authored-by: slangbot <ellieh+slangbot@nvidia.com> Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>
* Update falcor perf test path (#6975)jarcherNV2025-05-01
| | | | | Update the falcor perf test path environment variable so that it checks existing paths only after the build path. This is needed to prevent it from accidentally using a previously installed version of Slang.
* 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
* Copy slang-glsl-module.dll for vk-cts test (#6855)Jay Kwak2025-04-18
|
* Use the latest Ubuntu version not specific old version (#6825)Jay Kwak2025-04-15
| | | | * Use the latest Ubuntu version not specific old version
* Update the access tokens used for auto labeling CI (#6811)sricker-nvidia2025-04-14
| | | | | | | The auto labeling CI has been failing as a result of the SLANGBOT_PAT token not having all of the necessary permissions. Change updates the tokens used for requests to use new tokens that were created with the specific permissions needed for the operations in this CI workflow.
* Add a workflow for auto labeling issues (#6776)sricker-nvidia2025-04-10
| | | | | | Change introduces a workflow that will automatically run on new issues and add a "Dev Opened" label if opened by select dev members. This workflow can be used to add additional labels in the future.
* 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
|
* Delete unused Dockerfile (#6629)Sam Estep2025-03-20
| | | Co-authored-by: Ellie Hermaszewska <ellieh@nvidia.com>
* fix trimming of "v" from version string (#6605)Paradox842025-03-15
| | | | | | | | Current releases are removing "v" from "vulkan-sdk-1.4.309.0" when they were supposed to remove it from something like "v1.2.4" https://github.com/shader-slang/slang/releases/tag/vulkan-sdk-1.4.309.0 Fixed it so it only removes "v", if next character is a number Co-authored-by: Yong He <yonghe@outlook.com>
* 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 release CI. (#6492)Yong He2025-02-27
| | | | | | | | | | | * Fix release CI. * fix. * format code --------- Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>