https://github.com/shader-slang/slang
Name Target Message Date
HEAD 1b3887f Fix __init() functions that returns an existing value (#3866) Fixes the issue #3671 * The __init constructors are not expected to return a value like other member functions, but must construct a new value and return the struct type or none. * This patch enables this behavior in the IR lowering without complaining about illegal situations where the user returns an invalid type or none at all. Translate ordinary struct `return ...;` to `this = ...; return this;` Translate NonCopyableType struct `return ...;` to `return this;` * This patch also fixes the issue with type checking when __init() returns a void that mismatches the base type of the struct/ class Translate ordinary struct `return;` to `return this;` Translate NonCopyableType struct `return;` to `return;` * Add end-to-end test and compile only tests to check the above behavior. 05 April 2024, 23:47:47 UTC
refs/heads/cpp 46fee08 Support emitting generic target_intrinsic type. 12 March 2024, 16:33:24 UTC
refs/heads/csyonghe-patch-1 f6c0177 Update a1-02-slangpy.md 21 September 2023, 05:28:23 UTC
refs/heads/csyonghe-patch-2 b5307ee Merge branch 'master' into csyonghe-patch-2 21 September 2023, 23:03:08 UTC
refs/heads/csyonghe-patch-3 da4545c Update a1-04-interop.md 13 October 2023, 20:42:08 UTC
refs/heads/csyonghe-patch-4 41b5c2f Update README.md 17 November 2023, 21:26:01 UTC
refs/heads/csyonghe-patch-5 7aeac97 Update README.md 07 December 2023, 01:56:16 UTC
refs/heads/csyonghe-patch-6 1f22129 Update 09-reflection.md 18 March 2024, 18:12:03 UTC
refs/heads/csyonghe-patch-7 2c24cc8 Merge branch 'master' into csyonghe-patch-7 03 April 2024, 18:47:12 UTC
refs/heads/csyonghe-patch-8 61fc9fe Merge branch 'master' into csyonghe-patch-8 03 April 2024, 18:46:52 UTC
refs/heads/glsl c181d43 Merge branch 'master' into glsl 13 November 2023, 18:12:16 UTC
refs/heads/hlsl-rt-pipeline-tests 78515e9 Merge branch 'master' into hlsl-rt-pipeline-tests 01 April 2024, 15:02:29 UTC
refs/heads/master 1b3887f Fix __init() functions that returns an existing value (#3866) Fixes the issue #3671 * The __init constructors are not expected to return a value like other member functions, but must construct a new value and return the struct type or none. * This patch enables this behavior in the IR lowering without complaining about illegal situations where the user returns an invalid type or none at all. Translate ordinary struct `return ...;` to `this = ...; return this;` Translate NonCopyableType struct `return ...;` to `return this;` * This patch also fixes the issue with type checking when __init() returns a void that mismatches the base type of the struct/ class Translate ordinary struct `return;` to `return this;` Translate NonCopyableType struct `return;` to `return;` * Add end-to-end test and compile only tests to check the above behavior. 05 April 2024, 23:47:47 UTC
refs/tags/'' b1317cd Yet more definitions moved into the stdlib (#1263) The only big catch that I ran into with this batch was that I found the `float.getPi()` function was being emitted to the output GLSL even when that function wasn't being used. This seems to have been a latent problem in the earlier PR, but was only surfaced in the tests once a Slang->GLSL test started using another intrinsic that led to the `float : __BuiltinFloatingPointType` witness table being live in the IR. The fix for the gotcha here was to add a late IR pass that basically empties out all witness tables in the IR, so that functions that are only referenced by witness tables can then be removed as dead code. This pass is something we should *not* apply if/when we start supporting real dynamic dispatch through witness tables, but that is a problem to be solved on another day. The remaining tricky pieces of this change were: * Needed to remember to mark functions as target intrinsics on HLSL and/or GLSL as appropriate (hopefully I caught all the cases) so they don't get emitted as source there. * The `msad4` function in HLSL is very poorly documented, so filling in its definition was tricky. I made my best effort based on how it is described on MSDN, but it is likely that if anybody wants to rely on this function they will need us to vet our results with some tests. 09 March 2020, 16:02:36 UTC
refs/tags/v'' b1317cd Yet more definitions moved into the stdlib (#1263) The only big catch that I ran into with this batch was that I found the `float.getPi()` function was being emitted to the output GLSL even when that function wasn't being used. This seems to have been a latent problem in the earlier PR, but was only surfaced in the tests once a Slang->GLSL test started using another intrinsic that led to the `float : __BuiltinFloatingPointType` witness table being live in the IR. The fix for the gotcha here was to add a late IR pass that basically empties out all witness tables in the IR, so that functions that are only referenced by witness tables can then be removed as dead code. This pass is something we should *not* apply if/when we start supporting real dynamic dispatch through witness tables, but that is a problem to be solved on another day. The remaining tricky pieces of this change were: * Needed to remember to mark functions as target intrinsics on HLSL and/or GLSL as appropriate (hopefully I caught all the cases) so they don't get emitted as source there. * The `msad4` function in HLSL is very poorly documented, so filling in its definition was tricky. I made my best effort based on how it is described on MSDN, but it is likely that if anybody wants to rely on this function they will need us to vet our results with some tests. 09 March 2020, 16:02:36 UTC
refs/tags/v0.12.19 bb4a2ac Enable spriv-opt on spirv (#1076) * Add spirv-tools module and set ENABLE_OPT to be true * Add spirv-headers dependency * Build spirv-opt into glslang project * Add optimization pass * Add generated spirv-opt files Modify solution to avoid obj file conflicts * Add optimization pass to SPIR-V generation * Don't pass additional optimizer options to glslang * Build spirv-opt in Linux 17 October 2019, 21:22:46 UTC
refs/tags/v0.12.26 9a3ebcd Update slang-binaries to use docker built glslsang (#1134) 22 November 2019, 01:43:03 UTC
refs/tags/v0.12.27 27fd4b4 Add command line option to override language file extension (#1135) 22 November 2019, 23:20:18 UTC
refs/tags/v0.12.28 27fd4b4 Add command line option to override language file extension (#1135) 22 November 2019, 23:20:18 UTC
refs/tags/v0.12.29 27fd4b4 Add command line option to override language file extension (#1135) 22 November 2019, 23:20:18 UTC
refs/tags/v0.13.4 79ec0cf DownstreamCompiler abstraction (#1149) * CPPCompiler -> DownstreamCompiler * Added DownstreamCompileResult to start abstraction such that we don't need files. * * Split out slang-blob.cpp * Made CompileResult hold a DownstreamCompileResult - for access to binary or ISlangSharedLibrary * Keep temporary files in scope. * Add a hash to the hex dump stream. * Move all file tracking into DownstreamCompiler. 10 December 2019, 15:02:19 UTC
refs/tags/v0.13.5 1533554 Use DownstreamCompiler for all downstream compilers (#1152) * CPPCompiler -> DownstreamCompiler * Added DownstreamCompileResult to start abstraction such that we don't need files. * * Split out slang-blob.cpp * Made CompileResult hold a DownstreamCompileResult - for access to binary or ISlangSharedLibrary * Keep temporary files in scope. * Add a hash to the hex dump stream. * Move all file tracking into DownstreamCompiler. * WIP support for nvrtc. * WIP: Adding support for nvrtc compiler. Adding enum types, wiring up the nvrtc into slang. * Fix remaining CPPCompiler references. * Fix order issue on target string matching. * Use ISlangSharedLibrary for nvrtc. * Use DownstreamCompiler for nvrtc. * WIP first pass at compilation win nvrtc. * Added testing if file is on file system into CommandLineDownstreamCompiler. Added sourceContentsPath. * Make test cuda-compile.cu work by just compiling not comparing output. * Genearlize DownstreamCompiler usage. * Fix warning on clang. * Remove CompilerType from DownstreamCompiler. * Use DownstreamCompiler interface for all compilers. NOTE for FXC, DXC and GLSLANG this doesn't mean using 'compile' - it's still extracting functions from shared library. * Fix compiling on gcc/clang for DownstreamCompiler. * Fix problem on non-vc builds with not having return on locateCompilers for VS. * Change so no warning for code not reachable on locateCompilers for vs. 12 December 2019, 19:53:44 UTC
refs/tags/v0.13.6 15b46af If a locator is not set for a DownstreamCompiler type, that doesn't *necessarily* mean that there isn't one, for example with the GENERIC_C_CPP option. This could also be fixed by say giving this type an empty locator, or special casing. The option chosen here, is to allow lookup even if there isn't a locator. Note that there is some special case handling, where a generic lookup, will prime all of the specific types. (#1154) 16 December 2019, 16:19:37 UTC
refs/tags/v0.13.6.1 55a764c Check library modules for explicit entry point names as well (#1188) 29 January 2020, 05:51:09 UTC
refs/tags/v0.24.39 ea99c27 Initial version of DeviceLimits implemented in d3d12, d3d11, vulkan and cuda (#2496) 07 November 2022, 16:59:15 UTC
refs/tags/v0.24.40 e743ddd f32tof16 and f16tof32 support for CPU targets (#2500) * #include an absolute path didn't work - because paths were taken to always be relative. * Float16 support for C++/CPU based targets with f16tof32 and f32tof16. * Small correction around INF/NAN handling for f32tof16 * Small improvement to f16tof32 * Disable CUDA test for now. 09 November 2022, 14:15:15 UTC
refs/tags/v0.24.41 e743ddd f32tof16 and f16tof32 support for CPU targets (#2500) * #include an absolute path didn't work - because paths were taken to always be relative. * Float16 support for C++/CPU based targets with f16tof32 and f32tof16. * Small correction around INF/NAN handling for f32tof16 * Small improvement to f16tof32 * Disable CUDA test for now. 09 November 2022, 14:15:15 UTC
refs/tags/v0.24.42 cedd936 Fix supported shader model check in D3D12 device (#2503) * Fix supported shader model check in D3D12 device * Add comment on shader model list order. Co-authored-by: jsmall-nvidia <jsmall@nvidia.com> 09 November 2022, 19:56:55 UTC
refs/tags/v0.24.48 9d04835 Added support for nested calls (#2562) * Added initial support for nested calls * removed comments Co-authored-by: Yong He <yonghe@outlook.com> 12 December 2022, 22:33:44 UTC
refs/tags/v0.24.49 1c2c490 Fix code generation for matrix reshape. (#2568) Co-authored-by: Yong He <yhe@nvidia.com> 14 December 2022, 17:37:55 UTC
refs/tags/v0.24.50 2c43749 Switched to a much simpler method to transpose control flow, nested control flow works now (#2595) 15 January 2023, 20:00:20 UTC
refs/tags/v0.24.52 1f4c7ca Unify UpdateField and UpdateElement with access chain. (#2611) * Unify UpdateField and UpdateElement with access chain. * Fix warnings. Co-authored-by: Yong He <yhe@nvidia.com> 26 January 2023, 01:27:40 UTC
refs/tags/v0.8.3 227f9f5 Merge pull request #173 from tfoleyNV/resources-in-structs-fixes Fix some resources-in-structs bugs 26 August 2017, 03:13:19 UTC
refs/tags/v0.8.4 6207340 Merge pull request #174 from tfoleyNV/modifier-lowering-fix Fix some issues around cloned modifiers. 31 August 2017, 18:08:54 UTC
refs/tags/v0.8.5 892b339 Travis: try to fix deployment script (#206) 09 October 2017, 22:05:03 UTC
refs/tags/v0.8.5-rc 892b339 Travis: try to fix deployment script (#206) 09 October 2017, 22:05:03 UTC
refs/tags/v0.8.6 28ca4dc Fixup: re-enable exception guard (#208) This is intended to produce a better experience for end users when they encounter internal compiler errors. 11 October 2017, 23:05:09 UTC
refs/tags/v0.8.6-rc 28ca4dc Fixup: re-enable exception guard (#208) This is intended to produce a better experience for end users when they encounter internal compiler errors. 11 October 2017, 23:05:09 UTC
refs/tags/v0.8.7 9a231a5 Do loop fix (#209) * Bug fix: emit logic for `do` loops This case was never tested, and I was outputting some garbage characters. This comit fixes the codegen and adds a test case. * Bug fix: make sure to pass through `[allow_uav_condition]` This also fixes the standard library definition of `IncrementCounter()` so that it returns a `uint` instead of `void`. 12 October 2017, 17:30:48 UTC
refs/tags/v0.8.8 88023ae Reflection: allow querying of semantics on varying input/output (#224) This is functionality required to support a Falcor bug fix. Most of the code to compute the right semantic name/index for a parameter was already present. This change adds: - Storage for semantic name/index on every `VarLayout` - Note: this is wasteful and should be optimized later - A public API to query the semantic name/index - The contract is that this API returns `NULL` if the parameter had no semantic - A bit of work in `parameter-binding.cpp` to attach semantics to varying input/output when traversing varying parameters. - Note: this is intentionally set up so that it associates semantics even with non-leaf parameters, so that an API user can query the semantic of a `struct` parameter and know that its members will be assigned sequential semantic indices from its starting value. - Support for dumping this information in reflection tests One notable thing that I did *not* change here is that the reflection test fixture doesn't report information on the output of an entry point, even though it really should. That should be fixed in a separate change, though, because it would affect many of the expected outputs. 19 October 2017, 18:49:16 UTC
refs/tags/v2023.5.5 8dd04c8 Fix funcs w/ buffer load being treated as readnone. (#3441) Co-authored-by: Yong He <yhe@nvidia.com> 09 January 2024, 20:41:07 UTC
back to top