summaryrefslogtreecommitdiffstats
path: root/source
Commit message (Collapse)AuthorAge
* Reflection Fixes. (#6346)Yong He2025-02-13
| | | | | | | | | | | * Fix 6317. * Fixes #6316. * Fix cmake preset. --------- Co-authored-by: Ellie Hermaszewska <ellieh@nvidia.com>
* Allow LHS of `where` to be any type. (#6333)Yong He2025-02-12
| | | | | | | | | | | | | * Allow LHS of `where` to be any type. * Register free-form extensions when loading precompiled module. * Fix test. * Fix. * Fix `as<IRType>`. * try fix precompiled module test.
* Fix crash when handling uninitialized resource type (#6338)kaizhangNV2025-02-12
| | | | | | | | | | | | * Fix crash when handling uninitialized resource type close #6328. When declare a var with struct type, if the struct has a resource type field and it doesn't provide explicit constructor, because slang won't implicit construct such variable at declare site if user doesn't explicitly call the initializer list, we should report the resource type field uninitialized as an error to prevent future possible crash when legalize any use of such variable.
* build core and glsl modules in the same slang-bootstrap invocation (#6341)Ellie Hermaszewska2025-02-11
| | | Closes https://github.com/shader-slang/slang/issues/6339
* Correct dependencies on core module source (#6340)Ellie Hermaszewska2025-02-12
| | | | | | | | | | | | | | | | | | | | | | | * Publicly link core module sources Closes https://github.com/shader-slang/slang/issues/6037 * format * format * remove unnecessary conditional * comments * neaten * Only build embedded core modules when necessary * Make dependencies on core module source more precise * more precice dependencies on core module source * Neaten
* Correct location of copy-headers target (#6327)Ellie Hermaszewska2025-02-11
|
* Add checking for differentiability of the primal substitute function. (#6277)Sai Praveen Bangaru2025-02-11
| | | | Co-authored-by: Yong He <yonghe@outlook.com> Co-authored-by: Ellie Hermaszewska <ellieh@nvidia.com>
* Add raypayload decoration to ray payload structs (#6164)Ellie Hermaszewska2025-02-11
| | | | | | | | | * Add raypayload decoration to ray payload structs Closes https://github.com/shader-slang/slang/issues/6104 * Disable PAQs when compiling with DXC See https://github.com/shader-slang/slang/issues/3448
* Emit missing atomic64 capability, fix int-typed builtin used in both vs and ↵Yong He2025-02-11
| | | | | fs. (#6314) Co-authored-by: Ellie Hermaszewska <ellieh@nvidia.com>
* Remove the docs/proposals directory (#6313)Anders Leino2025-02-10
| | | | | | | | | | | | | | | | * Remove the docs/proposals directory This directory will get added to the spec repository in the following PR: https://github.com/shader-slang/spec/pull/6 This closes #6155. * Remove entry from .github/CODEOWNERS file * Redirect some proposal references --------- Co-authored-by: Yong He <yonghe@outlook.com>
* Add support for Metal subgroup/simd operations (#6247)Darren Wihandi2025-02-10
| | | | | | | | | | | | | | | | | | | | | * initial work for metal subgroups * add glsl intrinsics * enable wave tests * enable glsl subgroup tests, glsl barrier fixes * minor fixes * fix incorrect test target * disable some glsl functional tests * disable failing glsl test --------- Co-authored-by: Yong He <yonghe@outlook.com>
* Fix compilation on musl libc targets (#6334)Colin Marc2025-02-10
| | | | | | | | | | | | | | The musl libc replacement removed fopen64, fgetpos64, and other 64-bit variants because it's 64-bit only. However, it does have the following in its headers: #define fgetpos64 fgetpos Just importing <stdio.h> is enough to get slang compiling on musl systems like Alpine Linux. Fixes #6330. Co-authored-by: Yong He <yonghe@outlook.com>
* Add WGSL to list of formats supporting multiple entry points (#6324)David A Roberts2025-02-10
| | | | | * Add WGSL to list of formats supporting multiple entry points * Add a test for generating multiple WGSL entrypoints
* Propagate the MemoryQualifierSetDecoration (#6315)Tony (Atanas) Zlatinski2025-02-08
| | | | | | | | | | | | | | | | | | | Propagate the kIROp_MemoryQualifierSetDecoration memory decorations when converting from structures to flat global resources struct Tex { globallycoherent float4 bias = { 0.1, 0.3, 0.9, 1.5}; }; uniform Tex gTex; should have the following code generated in GLSL: coherent layout(rgba32f) layout(binding = 2) uniform image2D globalParams_gTex_tex_0; This closes #6079
* Use and() and or() functions for logical-AND and OR (#6310)Jay Kwak2025-02-07
| | | | | | | | | | | | * Use and() and or() functions for logical-AND and OR With this commit, Slang will emit function calls to `and()` and `or()` for the logical-AND and logical-OR when the operands are non-scalar and the target profile is SM6.0 and above. This is required change from SM6.0. For WGSL, there is no operator overloadings of `&&` and `||` when the operands are non-scalar. Unlike HLSL, WGSL also don't have `and()` nor `or()`. Alternatively, we can use `select()`.
* Support stage_switch. (#6311)Yong He2025-02-06
| | | | | | | | | * Support stage_switch. * Update proposal status. * Fix gl_InstanceID. * Fix.
* Don't overwrite existing module decl scopes when parsing new source files ↵Anders Leino2025-02-06
| | | | | | | | | | | | | | | | (#6292) When a module consists of multiple source files, the module scope gets over-written for each source file that's parsed into the module. The result is that if you do something like the following, where source1.slang contains an import statement, then the imported module will get imported into the module scope corresponding to source2.slang, but won't be found from the scope of source1.slang. slangc source1.slang source2.slang # 1 module from 2 source files This patch fixes this problem by not over-writing existing container decl scope when parsing new source files into the container. This closes $6221.
* Allow tuples to work with initializer list. (#6301)Yong He2025-02-05
| | | | | * Allow tuples to work with initiailizer list. * Update definition of C-Style types.
* maxtessfactor attribute should take a floating point value (#6289)Jay Kwak2025-02-05
| | | | | * maxtessfactor attribute should take a floating point value * Support integer value on maxtessfactor
* Fix DCE for calls to functions that have associations (#6272)Sai Praveen Bangaru2025-02-05
| | | | | | | * Fix DCE for calls to functions that have associations * Update slang-ir-util.cpp * Update slang-ir-util.cpp
* Use two-stage parsing to disambiguate generic app and comparison. (#6281)Yong He2025-02-05
| | | | | | | * Use two-stage parsing to disambiguate generic app and comparison. * Typo fix. * Update doc.
* Feature/initialize list side branch (#6058)kaizhangNV2025-02-05
| | | | | | | | | | | | | | | | | | | | | | * SP004: implement initialize list translation to ctor - We synthesize a member-wise constructor for each struct follow the rules described in SP004. - Add logic to translate the initialize list to constructor invoke - Add cuda-host decoration for the synthesized constructor - Remove the default constructor when we have a valid member init constructor - Disable -zero-initialize option, will re-implement it in followup (#6109). - Fix the overload lookup issue When creating invoke expression for ctor, we need to call ResolveInvoke() to find us the best candidates, however the existing lookup logic could find us the base constructor for child struct, we should eliminate this case by providing the LookupOptions::IgnoreInheritance to lookup, this requires us to create a subcontext on SemanticsVisitor to indicate that we only want to use this option on looking the constructor. - Do not implicit initialize a struct that doesn't have explicit default constructor. Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>
* Fix autodiff issue for vector<T, N> (#6275)kaizhangNV2025-02-05
| | | | | | | | | | | | | | | | * Fix autodiff issue for vector<T, N> Close #6154 We didn't implement correctly for vector<T, N> regarding the differentiablity. As we check differentiable before specialization, however according to the definition of vector, it has to be specialized to IFloat to know it's conformed to IDifferential type. Therefore for parameter type vector<T, N> will become no_diff. Therefore, we change the implementation a to make it explicit conform to IDifferential type. * fix typo
* Fix non-square matrix derivatives (#6282)Sai Praveen Bangaru2025-02-04
|
* Fix warning about push constants, shaderRecordEXT (#6269)cheneym22025-02-04
| | | | | | | | | | | * Fix warning about push constants, shaderRecordEXT These resources should not warn about missing vk::binding. * format code --------- Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>
* Auto enable `-fvk-use-entrypoint-name` when there is more than one ↵Yong He2025-02-03
| | | | | | | entrypoint. (#6260) * Auto enable `-fvk-use-entrypoint-name` when there is more than one entrypoint. * Fix.
* Add support for WGSL subgroup operations (#6213)Darren Wihandi2025-02-02
| | | | | | | | | | | | | | | | | | | | | * initial work * more work * more work on glsl intrinsics * add subgroup broadcast for glsl * wip add wgsl extension tracking * enable tests, enable extensions and added some todos * format and warning fixes * fix wgsl extension tracker --------- Co-authored-by: Yong He <yonghe@outlook.com>
* Fix build issue when SLANG_EMBED_CORE_MODULE is OFF. (#6243)Yong He2025-01-31
|
* Respect per-target debug options (#6193)Anders Leino2025-01-31
| | | | | | | | | | | | | | | | | * Base compiler options for targets on target-specific compiler options Before this change, the target compiler options were based on the linkage-wide compiler options, which where later again inherited from (basically a no-op). With this change, the target-specific compiler options are added first, and then the linkage-wide comnpiler options are inherited from. * Remove debug instructions if target-specific setting is NONE This helps to address #6092. * Make sure the linkage debug info level is sufficient for each target This closes #6092.
* Distribute slang-glsl-module.bin in release packages. (#6233)Yong He2025-01-31
| | | | | | | | | * Distribute slang-glsl-module.bin in release packages. * Fix. * fix2. * Build glsl modlue into a dll.
* [Docs] Auto-diff documentation overhaul (#6202)Sai Praveen Bangaru2025-01-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * AD: Docs Update * More documentation * More documentation * More docs fixes * Cleanup documentation * More docs polish. Add docs for the [Differentiable] attributes * Fixup code sections * Fixup * Address review comments * regenerate documentation Table of Contents * Update docs with more playground links --------- Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com> Co-authored-by: Yong He <yonghe@outlook.com>
* Declare `VariablePointers` capability when needed. (#6231)Yong He2025-01-30
|
* Add coop-vec insts to non-differentiable insts list (#6227)Sai Praveen Bangaru2025-01-30
|
* Support cooperative vector (#6223)Jay Kwak2025-01-30
| | | | | | | * Support cooperative vector without Vulkan-header update Adding a Slang support for cooperative vector. But this commit doesn't have Vulkan-header update.
* Fix ConstantIntVal::toText when the val is a enum. (#6224)Yong He2025-01-29
| | | | | * Fix ConstantIntVal::toText when the val is a enum. * Fix comment.
* Update SPIRV submodules and fix tests (#6222)Jay Kwak2025-01-29
|
* Fix combined sampler documentation and warning (#6207)cheneym22025-01-29
| | | | | | | | | | | * Fix combined sampler documentation and warning * Update comment, show detailed '-fvk-t-shift' message in warning instead of generic '-fvk-xxx-shift' * format code --------- Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>
* Fix the type coerce issue (#6215)kaizhangNV2025-01-29
| | | | | | | | * Fix the type coerce issue When synthesize the default ctor, if there is a base type we will synthesize an InvokeExpr to call base type's default ctor as well. But we should use the type of the inheritanceDecl instead of base struct decl.
* Fix loophole in hoisting where an `OpVar`'s uses might not be properly ↵Sai Praveen Bangaru2025-01-29
| | | | | | | registered for replacement (#6212) * ix loophole in hoisting where an IRVar's uses might not be properly registered for replacement * fix formatting
* Implement WaveMultiPrefix* for SPIRV and GLSL (#6182)Darren Wihandi2025-01-29
|
* Fix exact-match witness synthesis for static functions (#6204)Darren Wihandi2025-01-29
| | | | | | | | | | | | | * fix non-static methods when trying to synthesize method requirement witness * add tests * update test * improve test --------- Co-authored-by: Yong He <yonghe@outlook.com>
* Fix UIntSet calcSubtract to handle mismatched buffer sizes (#6205)Darren Wihandi2025-01-28
| | | | | | | | | * fix calcSubtract on UIntSet * add test --------- Co-authored-by: Yong He <yonghe@outlook.com>
* Allow requiring glsl language extensions on structs (#6173)Ellie Hermaszewska2025-01-28
| | | | | | | | | | * Allow requiring glsl language extensions on structs * format code --------- Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com> Co-authored-by: Yong He <yonghe@outlook.com>
* Delete invalid ASSERT in `isTypeOperandEqual`. (#6196)Yong He2025-01-28
|
* Fix geometry shader related modifier lowering. (#6197)Yong He2025-01-28
| | | | | | | | | | | * Fix geometry shader related modifier lowering. * Cleanup. * Delete obselete test. * Enable geometryShader test on windows only. * Fix test.
* Add a unit test to cover type-conformance compilation API. (#6178)Yong He2025-01-28
| | | Co-authored-by: Anders Leino <aleino@nvidia.com>
* Properly plumbing layout for global varyings. (#6198)Yong He2025-01-27
| | | | | * Properly plumbing layout for global varyings. * Fix test.
* Fix an incorrect iteration with a workList (#6177)Jay Kwak2025-01-27
| | | | | | | | | | | | | | * Fix an incorrect iteration with a workList We cannot modify workList while iterating it, because its type `List` is actually an array container. * Change based on the feedback * Use `Index` instead of `int` for for-loop index --------- Co-authored-by: Yong He <yonghe@outlook.com>
* Fix depth texture sampling on Metal. (#6168)Yong He2025-01-24
|
* Add intptr_t abs/min/max operations for CPU & CUDA targets (#6160)Julius Ikkala2025-01-24
| | | | | | | | | * Add intptr_t abs/min/max operations for CPU & CUDA targets * Define intptr_t and uintptr_t with CUDACC_RTC --------- Co-authored-by: Yong He <yonghe@outlook.com>