| Commit message (Collapse) | Author | Age |
| |
|
|
|
|
|
|
|
| |
Fixes #8335
---------
Co-authored-by: Mukund Keshava <mkeshava@nvidia.com>
Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>
Co-authored-by: Ellie Hermaszewska <ellieh@nvidia.com>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch changes the order of searching slangc executable. This bug
affects the following scenario: let's assume that user has a binary
release of slang package and wants to use it via `find_package(slang
CONFIG HINTS <path to binary release>)`, but there is also an
environment variable that points to some other slang release (e.g. user
has Vulkan SDK in the `$PATH`). In that case, find_package will
successfully find a desired slang package, but find_program in
slangConfig.cmake will check environment variable first, and in the
result SLANGC_EXECUTABLE will point to slangc from Vulkan SDK and not
from the downloaded package.
Co-authored-by: Ellie Hermaszewska <ellieh@nvidia.com>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Full set of mutually exclusive choices for upgrading LLVM:
- #8031 (you are here)
- #8035
- #8036
- #8034
- #8038
- #8039
- #8033
Alternative to #8028. Required some minor changes due to these upstream
commits:
- llvm/llvm-project@e463b69736da8b0a950ecd937cf990401bdfcdeb
- llvm/llvm-project@89b57061f7b769e9ea9bf6ed686e284f3e55affe
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Closes https://github.com/shader-slang/slang/issues/7722 without adding
SONAME
```
e@light-hope in ~/work/slang on HEAD (68b0125) [nix-shell] [direnv]
$ nm -DC --defined-only build/Debug/lib/libslang-llvm.so
0000000001a4b637 T createLLVMDownstreamCompiler_V4
0000000001a427ed T createLLVMFileCheck_V1
0000000001a4b91e W std::type_info::operator==(std::type_info const&) const
0000000001a4bb07 W std::_Sp_make_shared_tag::_S_ti()
0000000001059165 u std::ranges::_Cpo::iter_move
0000000005f92ac0 V typeinfo for std::_Sp_make_shared_tag
0000000005f92938 V vtable for std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>
e@light-hope in ~/work/slang on HEAD (68b0125) [nix-shell] [direnv]
$ nm -DC --defined-only build/Debug/lib/libslang-glslang.so
00000000004701a2 T glslang_compile
000000000047012b T glslang_compile_1_1
000000000046ffd9 T glslang_compile_1_2
000000000046db75 T glslang_disassembleSPIRV
000000000046da42 T glslang_disassembleSPIRVWithResult
000000000047028b T glslang_linkSPIRV
000000000046d8fa T glslang_validateSPIRV
e@light-hope in ~/work/slang on HEAD (68b0125) [nix-shell] [direnv]
$ nm -DC --defined-only build/Debug/lib/libslang-glsl-module.so
0000000000135bf9 T slang_getEmbeddedModule
```
I think that the exports from libslang-llvm are unavoidable I believe,
however these are weak exports so should exhibit the same problem.
@NBickford-NV does this look good for you?
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This PR is to allow a compiler warning even when all warnings
are requested to be treated as errors.
The following pattern is very common in Slang code base:
if (auto var = as<...>(...))
And when `var` is not used, the compiler prints a warning.
Alternatively we can remove `auto var =` part but there are too many.
Co-authored-by: Jay Kwak <jkwak@jkwak-mlt.client.nvidia.com>
|
| |
|
|
|
| |
* Reset minimum cmake version to 3.22
* update slang-rhi
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Revert "Disable OptiX tests by default. (#1331)"
This reverts commit e45f8c1f49855cebe90b6722324ec24146ff5a3d.
* Enable optix submodule to build
Add support for default entry points in compilation
Implemented logic to check for defined entry points in the module
when no explicit entry points are provided. If found, these entry points
are added to the `specializedEntryPoints` list, with the assumption that
no specialization is needed for them at this time.
* Disable optix if cuda is not enabled
* Add submodule OptixSDK path in search
* Distinguish user-explicit vs auto-detected SLANG_ENABLE_OPTIX
When SLANG_ENABLE_OPTIX is explicitly set by user and CUDA is not available,
show SEND_ERROR to maintain strict validation. When OptiX is auto-detected
(e.g., local submodule present) but CUDA unavailable, gracefully disable
with STATUS message to allow builds to continue.
This addresses review feedback to keep error for explicit requests while
handling auto-detection gracefully.
* Apply CMake formatting to SLANG_ENABLE_OPTIX validation logic
* revert: slang-rhi changes
as those are merged independently as in PR # slang-rhi#400
|
| |
|
|
|
|
|
|
|
|
|
| |
* Add the missing generator expression for install build targts
Fixes #7351.
* Formatted
---------
Co-authored-by: Harsh Aggarwal (NVIDIA) <haaggarwal@nvidia.com>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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>
|
| |
|
|
|
|
|
|
|
| |
* Correct incorrect enum usage on metal
* Update C++ standard to C++20
Closes https://github.com/shader-slang/slang/issues/6945
* use bit_cast
|
| |
|
| |
Co-authored-by: Yong He <yonghe@outlook.com>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This PR fixes the compiler warning like following,
lld-link: warning: ignoring unknown argument '--no-undefined'
lld-link: warning: ignoring unknown argument '--build-id', did you mean '-build-id'
chatGPT said that those options are for ELF and not for Windows:
These warnings happen because the Clang toolchain on Windows is invoking lld-link, which is the LLVM linker frontend for link.exe compatibility (i.e., it acts like the MSVC linker). The arguments --no-undefined and --build-id are ELF-specific flags, which are valid when targeting Linux, but not valid in the PE/COFF (Windows) environment.
Here's a breakdown:
⚠️ Warning messages explained:
lld-link: warning: ignoring unknown argument '--no-undefined'
→ This is a Linux/ELF flag. On Windows, this has no effect and is unknown.
lld-link: warning: ignoring unknown argument '--build-id', did you mean '-build-id'
→ Again, --build-id is for ELF binaries to include a unique build ID. Not valid for Windows targets.
|
| |
|
| |
* Fix compiler warning with clang 18.1.8 on windows
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Use GITHUB_TOKEN for fetching prebuilt
This PR extends Commit c6b702c to use GITHUB_TOKEN if set for fetching
prebuilt binaries.
This allows webgpu-dawn and slang-tint to be downloaded for certain IPs
where the github API rate is limited.
Fixes #6689
* Don't ignore download failure if github token is provided
* Update readme for getting github access token
* format code
* combine cmake_parse_arguments calls
* format code
---------
Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>
Co-authored-by: Jay Kwak <82421531+jkwak-work@users.noreply.github.com>
Co-authored-by: Ellie Hermaszewska <ellieh@nvidia.com>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Fix: Respect user-defined output directory settings for libraries
Modified SlangTarget.cmake to properly respect CMAKE_LIBRARY_OUTPUT_DIRECTORY, CMAKE_RUNTIME_OUTPUT_DIRECTORY and CMAKE_ARCHIVE_OUTPUT_DIRECTORY variables when they are explicitly set by the user.
This ensures libraries and executables are placed in the directories specified by the user, including handling Multi-Config generators like Visual Studio, Xcode, and Ninja Multi-Config.
Fixes #5896: Shared library build output location ignores CMAKE setting
* format code
---------
Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>
|
| |
|
|
|
|
|
|
|
|
|
| |
* Set static stbi flag for static builds
* Add missing SYSTEM directive for external includes
* Add instructions for linking statically against slang
---------
Co-authored-by: Yong He <yonghe@outlook.com>
|
| |
|
|
|
|
|
| |
* Add SLANG_ENABLE_RELEASE_LTO cmake option
* Fix cmake static build
* Disable install SlangTargets to avoid static build failing
|
| |
|
|
|
|
|
|
|
|
|
| |
* Fix documentation on DescriptorHandle.
* Fix.
* format code
---------
Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
* Remove unnecessary warnings on windows
* Correctly set debug flags on gcc
* Emit debug info for Release builds
* Perform LTO for relwithdebinfo builds
* Release from release builds not relwithdebinfo
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Split debug info for all targets
Work towards https://github.com/shader-slang/slang/issues/5724
* release separate debug info
Closes https://github.com/shader-slang/slang/issues/5724
* Add split debug info support for MacOS
* Add SLANG_ENABLE_SPLIT_DEBUG_INFO option
* Sign and package debug info on MacOS
* Set --build-id where available
* Correct debug info installing
* Keep cpack macos signing workaround
* Neaten cmake
* Disable sccache if building split debug info on Windows
* Only repack necessary files on MacOS releases
|
| |
|
|
|
| |
Closes https://github.com/shader-slang/slang/issues/5764
Also mention other installed targets in cmake config
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
* Modify package config
* Apply formatting.
* Make sure build works for Emscripten
* Add documentation on install target.
---------
Co-authored-by: obhi-d <obi.de.online@gmail.com>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Install PDB files when available
Closes https://github.com/shader-slang/slang/issues/5562
* format code
* format code
---------
Co-authored-by: Jay Kwak <82421531+jkwak-work@users.noreply.github.com>
Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>
|
| |
|
| |
Closes https://github.com/shader-slang/slang/issues/5706 and https://github.com/shader-slang/slang/issues/5657
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This commit enables Link Time Code Generation, or LTCG for short, for
the release builds.
Because "incremental" build is enabled, this ends up using
"/LTCG:incremental" rather than the full "/LTCG". It is still expected
to more performant than without any "/LTCG" at all.
In order to use the full LTCG, we will need to give up the incremental
build option for the Release build. We will need to decide if we wants
to do it later.
|
| |
|
|
|
|
|
|
| |
This stops adding the repo root to the include path for anything linking
with slang. This enabled a bunch of convenient includes, but might lead
to confusing behavior for anyone including slang. Not to mention
differences including it from an install vs source.
Co-authored-by: Yong He <yonghe@outlook.com>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The previous attempt to enable Structured Exception Handling in
(only) MSVC using the /EHa compiler flag caused trouble with flags
defined with Cmake Generator Expressions. These expressions are
not fully resolved, and they fail validation checks in
check_cxx_compiler_flag(). The previous attempt at applying
/EHa to only MVSC involved refactoring a direct call to
target_compile_options() with a call to the Slang helper function
add_supported_cxx_flags() where an additional MSVC filter was
introduced, but the helper also calls check_cxx_compiler_flag() to
see if flags are supported. It was okay for /EHa, but not some
other flags that ended up getting newly validated.
The above issue is fixed by re-implementing the change that added
/EHa to only MSVC. This change goes back to adding compiler flags
without the helper function with its extra validation, instead using
an additional cmake generator expression to apply /EHa only to MSVC.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Catch all exceptions in render-test
In MSVC, the /EHsc flag is used by default,
it causes only C++ (synchronous) exceptions
to be caught by try/catch blocks.
The /EHa flag can instead be used to catch
both synchronous C++ exceptions as well
as structured asynchronous exceptions
such as those seen in segfaults or other
typical bugs.
Using /EHa allows render-test to not crash
completely if there is a buggy graphics driver in the system.
Issue 5275
|
| | |
|
| |
|
|
|
|
|
|
|
| |
* format cmake files
* format code
---------
Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Split examples cmake desc
* declutter top level CMakeLists.txt
* fail if building tests without gfx
* Move llvm fetching to another cmake file
* Further split CMakeLists.txt
* Neaten llvm fetching
* Remove last premake remnant
* correct cross builds
* Neaten
* Neaten project organization in vs
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Make slang-llvm fetching and failure more robust
Improve error reporting when things go wrong.
Fall back by default to a non-llvm build
Closes https://github.com/shader-slang/slang/issues/5247
Tested sensible behavior with:
- `FETCH_BINARY_IF_POSSIBLE`, valid tag
- No errors or warnings, successful build with llvm
- `FETCH_BINARY_IF_POSSIBLE`, no valid tag
- Warning message, successful llvm build with slang-llvm from latest release
- `FETCH_BINARY_IF_POSSIBLE`, no valid tag, bad `SLANG_SLANG_LLVM_BINARY_URL` specified
- Warning message, successful no-llvm build
- `FETCH_BINARY_IF_POSSIBLE`, no valid tag, unable to fetch release information
- Warning message, successful no-llvm build
- `FETCH_BINARY`, valid tag
- No errors or warnings, successful build with llvm
- `FETCH_BINARY`, no valid tag
- Warning message, successful llvm build with slang-llvm from latest release
- `FETCH_BINARY`, no valid tag, bad `SLANG_SLANG_LLVM_BINARY_URL` specified
- Error, explaining that we couldn't fetch it
- `FETCH_BINARY`, no valid tag, unable to fetch release info
- Error, explaining that we couldn't fetch it
* Allow downloading from a local file
---------
Co-authored-by: Yong He <yonghe@outlook.com>
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
* Fix race condition for building stdlib headers
Fixes https://github.com/shader-slang/slang/issues/5270
* Generalize slangtarget install options
* Install slang-without-embedded-stdlib with generators
---------
Co-authored-by: Yong He <yonghe@outlook.com>
|
| |
|
|
|
|
|
| |
* Restrict stdlib embed macros to single source file
* Build slang-without-embedded-stdlib with the same target type as libslang
To avoid building everything twice
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Add options to prevent usage of own submodules
Signed-off-by: Jacki <jacki@thejackimonster.de>
* Allow using external unordered dense headers
Signed-off-by: Jacki <jacki@thejackimonster.de>
* Link system wide installed unordered dense
Signed-off-by: Jacki <jacki@thejackimonster.de>
* Allow external header usage for lz4 and spirv
Signed-off-by: Jacki <jacki@thejackimonster.de>
* Add more options to disable targets
Signed-off-by: Jacki <jacki@thejackimonster.de>
* Add option to provide explizit path for spirv headers and remove earlier options that break the build process
Signed-off-by: Jacki <jacki@thejackimonster.de>
* Rename options to use common prefix
Signed-off-by: Jacki <jacki@thejackimonster.de>
* Fix indentation for the cmake changes
Signed-off-by: Jacki <jacki@thejackimonster.de>
* Add advanced_option function for cmake
* Normalize includes between system and submodule dependencies
Fix any before-accidentally-working problems
* Add option for enabling/disabling slang-rhi
Signed-off-by: Jacki <jacki@thejackimonster.de>
* Pass correct include path for cpu tests
* Correct include path
---------
Signed-off-by: Jacki <jacki@thejackimonster.de>
Co-authored-by: Ellie Hermaszewska <ellieh@nvidia.com>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Use GITHUB_TOKEN if set
We have been having an error from Github saying that API rate limit
exceeded for IP. It hits the limit more often if your public IP is
shared by many other collegues.
{"message":"API rate limit exceeded for 216.228.112.22. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.)","documentation_url":"https://docs.github.com/rest/overview/resources-in-the-rest-api#rate-limiting"}
The suggested solution from GitHub is to use gh.exe tool with "auth
login" arguments. It will store a token and allow us to use API more
than the limit set for IP without token.
However, our cmake build doesn't use gh.exe and API is called via REST.
This commit adds an extra header to the HTTP request with the
infomration of the github token if the value is.
Usage: cmake.exe --preset vs2019 -DSLANG_GITHUB_TOKEN=your_token_here
* Adding a warning message to use LANG_GITHUB_TOKEN
---------
Co-authored-by: Yong He <yonghe@outlook.com>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Dont require llvm for building generators
* Fetch slang-llvm.so from correct release (#4847)
* Fetch slang-llvm.so from correct release
Closes https://github.com/shader-slang/slang/issues/4648
Should close https://github.com/shader-slang/slang/issues/4812
* Update docs
* Correct documentation on cmake option
* Neaten cmake script
* Fix fetching on windows
---------
Co-authored-by: Yong He <yonghe@outlook.com>
* Be a bit more careful dealing with release list fetching failure
* clarify error messages
---------
Co-authored-by: Yong He <yonghe@outlook.com>
|
| |
|
| |
This reverts commit 579d59c761cb0460701e0e820eb066275fe357b3.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Fetch slang-llvm.so from correct release
Closes https://github.com/shader-slang/slang/issues/4648
Should close https://github.com/shader-slang/slang/issues/4812
* Update docs
* Correct documentation on cmake option
* Neaten cmake script
* Fix fetching on windows
---------
Co-authored-by: Yong He <yonghe@outlook.com>
|
| |
|
|
|
|
|
|
|
|
|
| |
* spelling
* Reduce duplication in slang lib builds
Closes (as much as possible) https://github.com/shader-slang/slang/issues/4615
The only case where we could actually make a difference would be an
embedded stdlib and static slang, which isn't a configuration anyone
actually uses. Nonetheless, clean up this bit
|
| |
|
|
|
| |
* Remove generated file from source and build at build time
* comments
|
| | |
|
| |
|
|
|
|
|
|
|
| |
* Cope with failed version parsing
* Better version parsing
* populate slang-tag-version with cmake
* Neaten cmake
|
| |
|
|
|
|
|
|
|
| |
* Remove syntax error in release script
* Make ci scripts more robust
* Remove lib copying
* Add bin directory to RPATH
|
| |
|
|
|
|
|
|
|
|
|
| |
* Specialize address space during spirv legalization.
* Fix.
* Fix building doc.
* Fix cmake.
* Update assert.
|