summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-10-09Run curated spirv-opt passes through slang-glslang. (#3266)Yong He
* Run curated spirv-opt passes through slang-glslang. * Cleanup. * Replace spirv-dis downstream compiler with glslang. * delete slang-spirv-opt.cpp. --------- Co-authored-by: Yong He <yhe@nvidia.com>
2023-10-06Small type system fixes. (#3265)Yong He
2023-10-05Add intellisense support for spirv_asm blocks. (#3264)Yong He
Co-authored-by: Yong He <yhe@nvidia.com>
2023-10-05Various AD Fixes (#3263)Sai Praveen Bangaru
* Various fixes * Remove unused parameter * Update slang-ir-loop-unroll.cpp --------- Co-authored-by: Yong He <yonghe@outlook.com>
2023-10-05Check for extension support before enabling a feature (#3262)Ellie Hermaszewska
Co-authored-by: Yong He <yonghe@outlook.com>
2023-10-05Use designated compiler ID in SPIRV backend. (#3261)Yong He
Co-authored-by: Yong He <yhe@nvidia.com>
2023-10-04Add `kIROp_BitOr` to known non-differentiable inst list. (#3259)Yong He
Co-authored-by: Yong He <yhe@nvidia.com>
2023-10-04SPIRV compiler performance fixes. (#3258)Yong He
* SPIRV compiler performance fixes. * Cleanup. * update project files * Cleanup debug code. * Make redundancy removal non-recursive. --------- Co-authored-by: Yong He <yhe@nvidia.com>
2023-10-02More direct-SPIRV fixes. (#3257)Yong He
* More direct-SPIRV fixes. * Fix array-reg-to-mem. --------- Co-authored-by: Yong He <yhe@nvidia.com>
2023-10-02Use const ref for mesh payload (#3254)Ellie Hermaszewska
* Use const ref for mesh payload * Test mesh payload hlsl output
2023-10-02Add SPIRV intrinsics for ShaderExecutionReordering and RW/Buffer. (#3252)Yong He
* Add SPIRV intrinsics for ShaderExecutionReordering. * Add intrinsics for `Buffer` and `RWBuffer`. * Various spirv fixes. * Marshal bool vector type. * Inline global constants + OpFOrdNotEqual->OpFUnordNotEqual. * Fix. --------- Co-authored-by: Yong He <yhe@nvidia.com>
2023-09-29Fix for problem with OrderedHashSet causing crash (#3251)jsmall-nvidia
* Fix for problem with OrderedHashSet causing crashes during running tests on on g++ 7.3 * Fix typo
2023-09-29Add `requirePrelude()` intrinsic function. (#3250)Yong He
* Add `requirePrelude()` intrinsic function. * Fix. --------- Co-authored-by: Yong He <yhe@nvidia.com>
2023-09-28[Direct SPIRV]: ray tracing pipeline intrinsics. (#3244)Yong He
* Use a dedicated inst opcode to retrieve ray payload locations. * [Direct SPIRV]: ray tracing pipeline intrinsics. * Fix. --------- Co-authored-by: Yong He <yhe@nvidia.com>
2023-09-28Support `constref` parameters passing. (#3249)Yong He
* Support `constref` parameters passing. * Fix. * Fix. * Add test and diagnostic on mix use of __constref and no_diff. * check for [constref] on differentiable member method. --------- Co-authored-by: Yong He <yhe@nvidia.com>
2023-09-27Fix `TensorView.store()` definition (#3248)Sai Praveen Bangaru
2023-09-27Remove `[NoSideEffect]` from `DiffTensorView.store()` (#3247)Sai Praveen Bangaru
Co-authored-by: Yong He <yonghe@outlook.com>
2023-09-27Fix a bug in `canInstHaveSideEffectAtAddress`. (#3246)Yong He
Co-authored-by: Yong He <yhe@nvidia.com>
2023-09-27Fix regression on no_diff type transcription. (#3245)Yong He
Co-authored-by: Yong He <yhe@nvidia.com>
2023-09-27Fix `isMovableInst`. (#3243)Yong He
Co-authored-by: Yong He <yhe@nvidia.com>
2023-09-27WIP Mesh shaders for SPIR-V (#3226)Ellie Hermaszewska
* SPIR-V impl for SetMeshOutputCounts and DispatchMesh * Unsightly fix for legalization ordering differences between GLSL and SPIR-V * spelling * Start a new block after terminating one in the OpEmitMeshTasksExt SPIR-V asm block * Emit mesh shader decorations in SPIR-V * Mesh and task shader stages for spir-v * Output explicit gl builtins for spir-v * Be more hygenic when SOAizing mesh outputs * Do not create builtin paramter block for spirv mesh outputs * Pass mesh payloads around by ref * comment * less expected failure * remove unused * Add spirv op * Correct type query for default flat modifier --------- Co-authored-by: Yong He <yonghe@outlook.com>
2023-09-27Avoid make copies of __ref parameters when doing autodiff. (#3242)Yong He
Co-authored-by: Yong He <yhe@nvidia.com>
2023-09-27Various SPIRV fixes. (#3231)Yong He
* Various SPIRV fixes. - Geometry shader support (WIP). - Fix texture get dimension and load. - Fold global GetElement(MakeArray/MakeVector) insts. - Call spvopt to inline all functions. - Translate OpImageSubscript. - Emit struct member names and global variable names. - Fix lowering of OpBitNot -> OpNot, instead of OpBitReverse. * Fix test. * Fix geometry shader. * Fix geometry shader emit. * Add atomic Image access test. * Fix tests. * don't fail if spirv-opt fails. * Update comments. * Fix test. * Cleanups. * indentation --------- Co-authored-by: Yong He <yhe@nvidia.com> Co-authored-by: Ellie Hermaszewska <ellieh@nvidia.com>
2023-09-26Handle the case where the parent if-else region's after-block is ↵Sai Praveen Bangaru
unreachable. (#3241) Also added a test for this. Co-authored-by: Yong He <yonghe@outlook.com>
2023-09-26Fix for epoch/ASTBuilder* nullptr issue (#3240)jsmall-nvidia
* Fix issue with failing tests tests/serialization/serialized-module-test.slang tests/serialization/extern/extern-test.slang * Fix issue with session destruction order on Session. * Improve comment.
2023-09-25Add test for vector-element contiguity error (#3235)Sai Praveen Bangaru
2023-09-25Update a1-02-slangpy.md (#3237)Sai Praveen Bangaru
2023-09-25Fix for threading issues around global session & epoch ids. (#3232)jsmall-nvidia
* Fix for threading issues around global session & epoch ids. * Make m_epochId atomic for thread visibility.
2023-09-23More `slangpy` features + polishing (#3233)Sai Praveen Bangaru
* Update user-guide with new slangpy features * More polishing of new slangpy docs * Update a1-02-slangpy.md * Only require contiguity for vector element types * Added `loadOnce/storeOnce` and subscript operations * Added docs, `DiffTensorView.dims()` & `DiffTensorView.stride(uint)` * Add constructors, remove storeOnce/loadOnce test * Adjusted intrinsic definitions
2023-09-21Update a1-02-slangpy.md (#3228)Yong He
2023-09-21Revert inlining change in #3217. (#3229)Yong He
Co-authored-by: Yong He <yhe@nvidia.com>
2023-09-21Various slangpy fixes. (#3227)Yong He
* Make dynamic cast transparent through `IRAttributedType`. * Add [CUDAXxx] variant of attributes. * Support marshaling of vector types. * Wrap cuda kernels in `extern "C"` block. --------- Co-authored-by: Yong He <yhe@nvidia.com>
2023-09-21Misc SPIRV fixes. (#3220)Yong He
Co-authored-by: Yong He <yhe@nvidia.com>
2023-09-21Emit loads for array resources correctly (#3214)Ellie Hermaszewska
* Emit loads for array resources correctly * Put arrays of UniformConstant resources in UniformConstant * less expected failure * This code was actually used --------- Co-authored-by: Yong He <yonghe@outlook.com>
2023-09-21move global initializers to entry point for spirv (#3225)Ellie Hermaszewska
* move global initializers to entry point for spirv * less expected failure --------- Co-authored-by: Yong He <yonghe@outlook.com>
2023-09-21Do not move movable insts in fuse-satcoop (#3221)Ellie Hermaszewska
* Do not move movable insts in fuse-satcoop * Add case for IRCall in isMovableInst --------- Co-authored-by: Yong He <yonghe@outlook.com>
2023-09-21fix warnings (#3224)Ellie Hermaszewska
* Remove unused variable * Remove unused variable * Remove unused if bindings
2023-09-20Update a1-02-slangpy.md (#3223)Yong He
2023-09-20Update user-guide with new slangpy features (#3222)Sai Praveen Bangaru
2023-09-20Move force inlining step to before `processAutodiffCalls` (and run in loop) ↵Sai Praveen Bangaru
(#3217) * Move auto-diff force inlining step to before `processAutodiffCalls` * Fix `replaceUsesWith` to handle existing inst defined after current use. * Fix. --------- Co-authored-by: Yong He <yhe@nvidia.com>
2023-09-20Redirect destination-driven lowering logic to regular lowering for ↵Sai Praveen Bangaru
`SelectExpr` (#3219) * Redirect destination-driven lowering logic to regular lowering for select expr * Add test
2023-09-20Fix `atan2` stdlib derivative + add tests. (#3218)Sai Praveen Bangaru
* Fix atan2 stdlib derivative. Add tests for atan2 * Create dstdlib-atan2.slang.expected.txt * Update tests
2023-09-20Direct SPIRV: Rasterization pipeline tests. (#3216)Yong He
* Direct SPIRV: Rasterization pipeline tests. * Fixup. * Fix. --------- Co-authored-by: Yong He <yhe@nvidia.com>
2023-09-19Added `[AutoPyBindCUDA]` for automatic kernel binding + `[PyExport]` for ↵Sai Praveen Bangaru
exporting type information (#3209) * Initial: add a DiffTensor impl * Auto-binding and diff tensor implementations now work * Refactored diff-tensor implementation + added py-export for struct types * Cleanup * Update slang-ir-pytorch-cpp-binding.cpp * Updated test names * Update autodiff-data-flow.slang.expected * Add more versions of load/store & default generic args for DiffTensorView. * Add diagnostic for default generic arg and more tests * Add more `[AutoPyBind]` tests
2023-09-19Handle combined image and samplers in spirv (#3213)Ellie Hermaszewska
* Handle combined image and samplers in spirv * less expected failure --------- Co-authored-by: Yong He <yonghe@outlook.com>
2023-09-19Memoize types in spirv asm blocks (#3215)Ellie Hermaszewska
* Neaten emitInst * Memoize types in spirv asm blocks * less expected failure
2023-09-19Direct SPIRV ParameterBlock fix. (#3212)Yong He
Co-authored-by: Yong He <yhe@nvidia.com>
2023-09-18Use target-dependent pointer size in natural layout. (#3210)Yong He
Co-authored-by: Yong He <yhe@nvidia.com>
2023-09-18Fix loop inversion issue that caused ordinary blocks with multiple ↵Sai Praveen Bangaru
predecessors (#3211) * Add test case for while loop * Fix loop inversion issue that caused ordinary blocks with multiple predecessors The original version can leave the CFG in an invalid state with `e4` not being a break block or merge point, but having multiple predecessors. The updated version creates a separate jump block for each break instruction to avoid this issue. * Fixup tests
2023-09-18Fix highlighting of generic types without argument. (#3208)Yong He
Co-authored-by: Yong He <yhe@nvidia.com>