summaryrefslogtreecommitdiff
path: root/source/slang
AgeCommit message (Collapse)Author
2023-04-25Support recomputing phi params in bwd prop func. (#2841)Yong He
2023-04-25StringBuilder to lowerCamel (#2840)jsmall-nvidia
* #include an absolute path didn't work - because paths were taken to always be relative. * WIP lowerCamel Dictionary. * WIP more lowerCamel fixes for Dictionary. * Add/Remove/Clear * GetValue/Contains * Fix tabs in dictionary. Count -> getCount * Fix fields with caps. * Key -> key Value -> value Use m_ for members where appropriate. Use lowerCamel in linked list. * Some small fixes/improvements to Dictionary. * Kick CI. * Small tidy on String. * Append -> append * ToString -> toString ProduceString -> produceString * Small fixes. * StringToXXX -> stringToXXX * Fix typo introduced by Append -> append. * Made intToAscii do reversal at the end. --------- Co-authored-by: Yong He <yonghe@outlook.com>
2023-04-25Cleanup checkpointing policy impl. (#2837)Yong He
* Cleanup checkpointing policy impl. * More cleanup. --------- Co-authored-by: Yong He <yhe@nvidia.com>
2023-04-25Bump glm and stb + small neatenings (#2831)Ellie Hermaszewska
* bump glm to fix c++20 warnings * bump stb_image to fix c++20 warnings * Use static_assert for SLANG_COMPILE_TIME_ASSERT * Remove uses of deprecated is_pod * Remove bit operations between different enums
2023-04-25Dictionary using lowerCamel (#2835)jsmall-nvidia
* #include an absolute path didn't work - because paths were taken to always be relative. * WIP lowerCamel Dictionary. * WIP more lowerCamel fixes for Dictionary. * Add/Remove/Clear * GetValue/Contains * Fix tabs in dictionary. Count -> getCount * Fix fields with caps. * Key -> key Value -> value Use m_ for members where appropriate. Use lowerCamel in linked list. * Some small fixes/improvements to Dictionary. * Kick CI.
2023-04-24Change AD checkpointing policy to recompute more. (#2836)Yong He
Co-authored-by: Yong He <yhe@nvidia.com>
2023-04-24Fix issue with Obfuscated hash (#2834)jsmall-nvidia
* #include an absolute path didn't work - because paths were taken to always be relative. * Remove legacy container writing. Test using module without source map. * Change hashing for obfuscated source map such that takes into account different line endings.
2023-04-23Add support for `kIROp_MakeExistential` (#2832)Sai Praveen Bangaru
2023-04-22Fix corner case with multi-level break elimination (#2828)Sai Praveen Bangaru
2023-04-21Add support for `kIROp_FloatCast` (#2824)Sai Praveen Bangaru
* Add support for `kIROp_FloatCast` * Update float-cast.slang * Added flag to d3d options
2023-04-21Refactor checkpointing policy and availability pass. (#2826)Yong He
Co-authored-by: Yong He <yhe@nvidia.com>
2023-04-21AD: Various fixes around dynamic dispatch (#2820)Sai Praveen Bangaru
* Add a test for the new diff material system * Various fixes for AD - inout primal context params converted to out params, - added attributed types to list of stored types - used differentiated primal func type instead of type of differentiated func to avoid tangling with user-code differential types. --------- Co-authored-by: Lifan Wu <lifanw@nvidia.com>
2023-04-21Add warning for returning without initializing out parameter (#2807)Ellie Hermaszewska
* Add warning for returning without initializing out parameter * Add unused prelude function to squash uninitialized out variable warnings
2023-04-20Improvements outputting containers (#2815)jsmall-nvidia
* #include an absolute path didn't work - because paths were taken to always be relative. * Moved JSON source map writing logic to JSONSourceMapUtil. * Use ArtifactHandler to read/write SourceMaps. Use ObjectCastableAdapter to hold SourceMap Only serialize SourceMap <-> JSON on demand. * Make some types swappable. * BoxValue impl. * Added asBoxValue. * Remove const get funcs. * Fix typo in asBoxValue. * Fix another typo in asBoxValue. * Slightly simplify conversion to blob of SourceMap. * WIP Api improvements around sourcemap/artifact/line-directive. * Small fix for asBoxValue * WIP outputting container with multiple artifacts. * Added ArtifactContailerUtil::filter to produce an artifact hierarchy that only contains "signficant" and "blobable" artifacts. * Make emitting IR disjoint to using a container. Added -emit-ir option. Simplfiy output. * Fix typo in options parsing. * Add a test that ouputs with an emit source map. * Enable emitting our SlangIR module if no targets are specified. * Fix issues constructing container. * Extra checks getting obfuscated source map from a translation unit. * Fix typo.
2023-04-19Make SourceMap a value type (#2812)jsmall-nvidia
* #include an absolute path didn't work - because paths were taken to always be relative. * Moved JSON source map writing logic to JSONSourceMapUtil. * Use ArtifactHandler to read/write SourceMaps. Use ObjectCastableAdapter to hold SourceMap Only serialize SourceMap <-> JSON on demand. * Make some types swappable. * BoxValue impl. * Added asBoxValue. * Remove const get funcs. * Fix typo in asBoxValue. * Fix another typo in asBoxValue. * Slightly simplify conversion to blob of SourceMap. * Small fix for asBoxValue
2023-04-19Fixed issue with function signatures in higher-order AD (#2814)Sai Praveen Bangaru
Also added GetStringHash to non-differentiable insts Co-authored-by: Yong He <yonghe@outlook.com>
2023-04-18On demand SourceMap JSON serialization (#2811)jsmall-nvidia
* #include an absolute path didn't work - because paths were taken to always be relative. * Moved JSON source map writing logic to JSONSourceMapUtil. * Use ArtifactHandler to read/write SourceMaps. Use ObjectCastableAdapter to hold SourceMap Only serialize SourceMap <-> JSON on demand.
2023-04-17Round trip source map (#2810)jsmall-nvidia
* #include an absolute path didn't work - because paths were taken to always be relative. * Make output of obfuscation locs work in a slang-module. * Tidy up detection for writing serialized source locs. * Support for .zip references. Handling of obfuscated source maps read from containers. A test to check obfuscated source map working on a module. * When using obfuscation, always obfuscate locs instead of stripping them. We keep a source map, so we can still produce reasonable errors. * Write out source locs if debug information is enabled. * Check output without sourcemap. * Small fixes. * Small improvements around hash calculation for source map name. * Disable test that fails on x86 gcc linux for now. * Fix issues around obfuscated source map using lines rather than columns. Fix some issues around encoding/decoding. * Make column calculation of source locs take into account utf8/tabs. Don't special case obfuscated source map for lookup for source loc. * Support following multiple source maps. * Small fixes/improvements around SourceMap lookup.
2023-04-17WIP: "deprecated" attribute (#2698)Ellie Hermaszewska
* Implement deprecated attribute * Prevent duplicate deprecated diagnostic on non-overloaded functions * Use FileCheck for deprecation test * formatting
2023-04-14Bugfix: compiler will run forever to eliminate dead code (#2809)winmad
* Add a test case that the compile will run forever * Fix. * fix. --------- Co-authored-by: Lifan Wu <lifanw@nvidia.com> Co-authored-by: Yong He <yhe@nvidia.com>
2023-04-14Diagnose on using uninitialized `out` param. (#2803)Yong He
* Diagnose on using uninitialized `out` param. * Hack to allow `out Vertices<T>`. * Fix. --------- Co-authored-by: Yong He <yhe@nvidia.com>
2023-04-13Warn on float-to-double coercion for arguments. (#2802)Yong He
* Warn on float-to-double coercion for arguments. * Fix test. * Rename. * Fixup. --------- Co-authored-by: Yong He <yhe@nvidia.com>
2023-04-13Fix scalar swizzle write. (#2801)Yong He
Co-authored-by: Yong He <yhe@nvidia.com>
2023-04-13Set sharedMem argument to 0 when launching cuda kernel. (#2799)Yong He
Co-authored-by: Yong He <yhe@nvidia.com>
2023-04-13Fix stack overflow in lookupWitness lowering pass. (#2798)Yong He
Co-authored-by: Yong He <yhe@nvidia.com>
2023-04-14Set the executable bit on Executable artifact files (#2796)Ellie Hermaszewska
* Set the executable bit on Executable artifact files * Don't zero out other permission bits in makeExecutable
2023-04-13Matrix swizzle writes (#2713)Ellie Hermaszewska
* Add a bunch of builder emit wrappers for constant indices To avoid cluttering any calling code with int instruction construction * Matrix swizzle stores Closes https://github.com/shader-slang/slang/issues/2512 * Matrix swizzle store tests * Squash vs warnings * Select scalar for singular swizzles * Test singular swizzle materialization * Use IRIntegerValue over UInt for IR wrappers * Correct size of swizzle vector type * Remove variable shadowing
2023-04-12Combine lookupWitness lowering with specialization. (#2794)Yong He
2023-04-12Reading artifact hierarchy from file system interface (#2787)jsmall-nvidia
* #include an absolute path didn't work - because paths were taken to always be relative. * WIP simplifying artifact interface. * Use ContainedKind. * Remove LazyCastableList. Use ContainedKind for find. * Remove ICastableList. * Remove need for ICastableList. * Remove IArtifactContainer. * Small fixes. * Small improvements around Artifact. * Make explicit find is for *representations* that can cast. Fix bug in handling casting in lookup. * Made associated items artifacts too. * Small fixes. * Small improvements around writing a container. * WIP artifact container format. * Make the root a special case. * Special case if the artifact doesn't have children/associated. * First pass handling of interpretting a file system into artifact hierarchy. * Explain the final structure. Make the file system available. * Remove addArtifact from IArtifact interface - means will be compatible with previous version. * Rename function to get compile result as a filesytem.
2023-04-12Artifact Container (#2783)jsmall-nvidia
* #include an absolute path didn't work - because paths were taken to always be relative. * WIP simplifying artifact interface. * Use ContainedKind. * Remove LazyCastableList. Use ContainedKind for find. * Remove ICastableList. * Remove need for ICastableList. * Remove IArtifactContainer. * Small fixes. * Small improvements around Artifact. * Make explicit find is for *representations* that can cast. Fix bug in handling casting in lookup. * Made associated items artifacts too. * Small fixes. * Small improvements around writing a container. * WIP artifact container format. * Make the root a special case. * Special case if the artifact doesn't have children/associated.
2023-04-11Fix missing `f` suffix for float lits in CUDA backend. (#2791)Yong He
Co-authored-by: Yong He <yhe@nvidia.com>
2023-04-11Small fixes to TorchTensor. (#2790)Yong He
Co-authored-by: Yong He <yhe@nvidia.com>
2023-04-11Artifact simplification (#2781)jsmall-nvidia
* #include an absolute path didn't work - because paths were taken to always be relative. * WIP simplifying artifact interface. * Use ContainedKind. * Remove LazyCastableList. Use ContainedKind for find. * Remove ICastableList. * Remove need for ICastableList. * Remove IArtifactContainer. * Small fixes. * Small improvements around Artifact. * Make explicit find is for *representations* that can cast. Fix bug in handling casting in lookup. * Made associated items artifacts too. * Small fixes. * Small improvements around writing a container.
2023-04-10Fix inlining. (#2786)Yong He
Co-authored-by: Yong He <yhe@nvidia.com>
2023-04-10Cleaner impl of unary stdlib derivative functions. (#2785)Yong He
* Cleaner impl of unary stdlib derivative functions. * fixup * Fix. --------- Co-authored-by: Yong He <yhe@nvidia.com>
2023-04-07Diagnose on attempt to specialize with interface type. (#2780)Yong He
* Diagnose on attempt to specialize with interface type. Fixes ##1445. * Enable fixed test. * Fix test. * Fix. --------- Co-authored-by: Yong He <yhe@nvidia.com>
2023-04-07Add SLANG_IID_PPV_ARGS (#2784)Ellie Hermaszewska
* Add SLANG_IID_PPV_ARGS To mirror IID_PPV_ARGS from the COM Coding Practices: https://learn.microsoft.com/en-us/windows/win32/LearnWin32/com-coding-practices#the-iid_ppv_args-macro * Make getTypeGuid constexpr --------- Co-authored-by: Yong He <yonghe@outlook.com>
2023-04-07Fix crash on overloaded custom derivative function (#2782)Sai Praveen Bangaru
* Fix issue with resolving overloaded custom forward derivative methods. * Add test
2023-04-05Warn on dangling comparison operator. (#2779)Yong He
Fixes #1685 Co-authored-by: Yong He <yhe@nvidia.com>
2023-04-05Fix linking issue in slangpy + no mask param for kernels. (#2778)Yong He
* Fix linking issue in slangpy + no mask param for kernels. * add cuda header changes * fix * More correct change of active mask insertion. --------- Co-authored-by: Yong He <yhe@nvidia.com>
2023-04-05Register `IDifferentiable` witnesses for the differential associated types ↵Sai Praveen Bangaru
of registered types. (#2777) * Create high-order-forward-diff-struct.slang * Add a small pass to register differentials for differentials of registered types * Remove type reg pass and apply logic in differentiable type loading instead * Update slang-ir-autodiff.cpp * Fix comments. --------- Co-authored-by: Yong He <yonghe@outlook.com>
2023-04-04Diagnose on using assignment as predicate expr. (#2774)Yong He
Co-authored-by: Yong He <yhe@nvidia.com>
2023-04-04Preliminary support for realtime clock (#2772)jsmall-nvidia
* #include an absolute path didn't work - because paths were taken to always be relative. * Initial support for realtime clock. * Add realtime-clock render feature where seems appropriate. * Fixes to make NVAPI compile properly. Change realtime-clock.slang check to use maths that can't overflow.
2023-04-04Simplification around ArtifactRepresentation and unique identity (#2771)jsmall-nvidia
* #include an absolute path didn't work - because paths were taken to always be relative. * WIP in handling artifacts/SourceFiles. * Add getUniqueIdentity to IPathArtifactRepresentation * Simplification because around using the representation to provide the uniqueIdentity.
2023-04-04Fix crash on encountering undefined identifier when checking derivative ↵Sai Praveen Bangaru
attributes (#2773) * Fix compiler crash if referencing undefined method in the deriavative decorator * Delete sample.comp --------- Co-authored-by: Yong He <yonghe@outlook.com>
2023-04-03Emit simpler vector element access code. (#2770)Yong He
* Emit simpler vector element access code * Fix. --------- Co-authored-by: Yong He <yhe@nvidia.com>
2023-04-02Fix type legalization pass. (#2768)Yong He
2023-03-30Fix stdlib definitions for tensor interlocked methods. (#2761)Yong He
Co-authored-by: Yong He <yhe@nvidia.com>
2023-03-30More builtin library support in torch backend. (#2760)Yong He
Co-authored-by: Yong He <yhe@nvidia.com>
2023-03-30Fix autodiff pass duplicates exported functions. (#2759)Yong He
Co-authored-by: Yong He <yhe@nvidia.com>