summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-08-03Improvements around Artifact (#2346)jsmall-nvidia
* #include an absolute path didn't work - because paths were taken to always be relative. * WIP with hierarchical enums. * Some small fixes and improvements around artifact desc related types. * Improvements around hierarchical enum. * Fixes to get Artifact types refactor to be able to execute tests. * Attempt to better categorize PTX. * Work around for potentially unused function warning. * Typo fix. * Simplify Artifact header. * Small improvements around Artifact kind/payload/style. * Added IDestroyable/ICastable * Add IArtifactList. * First impl of IArtifactUtil. * Use the ICastable interface for IArtifactRepresentation. * Added IArtifactRepresentation & IArtifactAssociated. * Add SLANG_OVERRIDE to avoid gcc/clang warning. * Fix calling convention issue on win32. * Fix missing SLANG_OVERRIDE.
2022-08-03Basic pointer usages. (#2342)Yong He
2022-07-28Create nvapi-support.mdjsmall-nvidia
2022-07-27Split render-cpu into smaller files (#2340)lucy96chen
* render-cpu split, does not compile * split finished, one compile error * added missing include and missing destructor implementation * Rerun TeamCity CI
2022-07-27Updated slang-binaries (#2341)jsmall-nvidia
* #include an absolute path didn't work - because paths were taken to always be relative. * Upgrade slang-binaries.
2022-07-25Split render-cuda.cpp into smaller files (#2334)lucy96chen
* render-cuda split, compile errors galore due to missing includes etc. * render-cuda split and fully compiles * Ran premake.bat to disable cuda; Added all new files * Removed render-cuda files * CI fixes * Rerun CI
2022-07-25Update Slang binaries (#2339)jsmall-nvidia
* #include an absolute path didn't work - because paths were taken to always be relative. * Use version of slang-binaries without glslang binaries/premake alpha 13. Co-authored-by: Yong He <yonghe@outlook.com>
2022-07-25Allow `class` to implement COM interface, [DLLExport] (#2338)Yong He
* Allow `class` to implement COM interface, [DLLExport] * Fix [COM] usage in tests and examples with UUIDs. Co-authored-by: Yong He <yhe@nvidia.com>
2022-07-21Small fixes for github actions for windows. (#2337)jsmall-nvidia
2022-07-21Allow dynamic dispatch to handle nested interface-typed fields. (#2336)Yong He
2022-07-21Upgrade SPIR-V Tools and GLSLANG (#2335)jsmall-nvidia
* #include an absolute path didn't work - because paths were taken to always be relative. * Upgrade of SPIR-V Tools * Use slang-pack to get slang-glslang (previously was in slang-binaries) Update slang-glslang used
2022-07-19Typo fixes in cpu-target.md. (#2333)jsmall-nvidia
* #include an absolute path didn't work - because paths were taken to always be relative. * Small improvements to cpu-target documentation. * More improvements to cpu-target.md doc. * More CPU target doc improvements. * More improvements around cpu-target.md * More fixes and improvements. * Added test for behavior of actual global and reflection. * Add category to determine cpu word size, so that reflection tests can target width. * Fix some typos in cpu-target.md
2022-07-19Yet more improvements/fixes to cpu-target.md (#2330)jsmall-nvidia
* #include an absolute path didn't work - because paths were taken to always be relative. * Small improvements to cpu-target documentation. * More improvements to cpu-target.md doc. * More CPU target doc improvements. * More improvements around cpu-target.md * More fixes and improvements. * Added test for behavior of actual global and reflection. * Add category to determine cpu word size, so that reflection tests can target width.
2022-07-18Added forward-mode autodiff support for more instructions (#2331)Sai Praveen Bangaru
* Merge slang-ir-diff-jvp.cpp * Added support and tests for other float vector types * Added swizzle test and code to handle it (tests failing currently) * Fixed one test, the other is still pending * Fixed instruction cloning logic to avoid modifying original function * Fixed an issue with custom 'pow_jvp' and added support for vector contructor * Minor update to comments * Fixed support for division * Fixed an issue with uninitialized diagnostic sink * Moved derivative processing to after mandatory inlining. Skip instructions that don't have side-effects and aren't used by anything. * WIP: Handling unconditional control flow and multi-block functions * Support for unconditional multi-block functions * Added a dead code elimination step to the derivative pass * Changed name of 'hasNoSideEffects()'
2022-07-18Atomic ref counting for ISlangSharedLibrary (#2332)jsmall-nvidia
* #include an absolute path didn't work - because paths were taken to always be relative. * Make ISlangSharedLibrary atomic ref counted. Update docs to say most COM interfaces are *not* atomic ref counted. * Upgrade slang-llvm to use version that atomic ref counts ISlangSharedLibrary. * Fix some typos in docs. * Fix ref count typo. * Fix missing 'override'
2022-07-15More cpu-target.md improvements. (#2329)jsmall-nvidia
* #include an absolute path didn't work - because paths were taken to always be relative. * Small improvements to cpu-target documentation. * More improvements to cpu-target.md doc. * More CPU target doc improvements. * More improvements around cpu-target.md
2022-07-15Improvements to cpu-target documentation (#2328)jsmall-nvidia
* #include an absolute path didn't work - because paths were taken to always be relative. * Small improvements to cpu-target documentation. * More improvements to cpu-target.md doc.
2022-07-14Language Server: Auto format bug fixes. (#2326)Yong He
2022-07-13Added support for differentiating out and inout parameters. (#2323)Sai Praveen Bangaru
* Added out/inout tests * Added support for out and inout parameters. Still untested * Fixed and tested support for out and inout types * Removed some comments
2022-07-13Small improvements around 'size versioning' and TargetDesc (#2325)jsmall-nvidia
* #include an absolute path didn't work - because paths were taken to always be relative. * Small improvement around struct size versioning with TargetDesc. * Small improvements around handling structure size. * Check the structureSize field is the first field. * Work around some issues with gcc and SLANG_OFFSET_OF.
2022-07-12Support `class` types. (#2321)Yong He
* Support `class` types. * Ignore class-keyword test * Fix codereview comments and warnings. Co-authored-by: Yong He <yhe@nvidia.com>
2022-07-12Fixed incorrectly scoped variable causing crashes on certain linux ↵Sai Praveen Bangaru
toolchains (#2319)
2022-07-11Added support for differentiating calls to basic functions, as well as ↵Sai Praveen Bangaru
arithmetic on the float3 type (#2313) * Added support for differentiating calls to basic functions, as well as arithmetic on the float3 type * Added test expected result
2022-07-06WAR for double/host-callable/x86 (#2314)jsmall-nvidia
* #include an absolute path didn't work - because paths were taken to always be relative. * Work around for issue with double/x86/llvm.
2022-07-01Language server: auto completion of `import` file and directories. (#2312)Yong He
* Language server: auto completion of `import` file and directories. * Completion of include path. * Improvements. Co-authored-by: Yong He <yhe@nvidia.com>
2022-07-01Fix for issue with redirecting stdout/err to a file (#2311)jsmall-nvidia
2022-07-01Upgrade to glslang 11.10.0+ (#2306)jsmall-nvidia
* #include an absolute path didn't work - because paths were taken to always be relative. * Upgrade to glslang 11.10.0 Co-authored-by: Yong He <yonghe@outlook.com>
2022-06-30Added `[__custom_jvp(func)]` attribute, and modified the derivative pass to ↵Sai Praveen Bangaru
only process referenced functions. (#2309) * Added JVPTranscriber to handle differentiation of load, store, var, param and return instructions, as well as conversion of data and function types * Changed class names to be more in line with convention. Added correct type checking for __jvp() and verified that simple calls with only loads and stores are processed correctly * Added logic to differentiate basic arithmetic and literals inside IRConstruct and fixed the way parameters are differentiated * Replaced some SLANG_UNEXPECTED macro uses with diagnostics instead * Added work-list-based on-demand generation of derivative functions * Fixed up a couple of TODOs * Added attribute [__custom_jvp(f)] to assign a custom derivative function to a declaration * Added a test for CustomJVPAttribute on a redeclaration of an imported function * Moving arithmetic test to new folder * Moving arithmetic test to new folder (2) * Added missing test module * Fixed a minor note Co-authored-by: Yong He <yonghe@outlook.com>
2022-06-30Language server: extract documentation from ordinary comments (#2308)Yong He
* Language server: improved documentation formatting. * Extend doc extractor to search in ordinary comments. Reuse language server instance between tests. * Fix test case. * Fix comment. * Fix crash. * Fix enum case doc extraction. * Doc extractor fixes. * Fix. * Fix. Co-authored-by: Yong He <yhe@nvidia.com>
2022-06-30Split render-d3d11.cpp into smaller files (#2307)lucy96chen
* render-d3d11 split, does not compile * Compiles but unit tests failing * ran premake.bat * Readded constructor code that was accidentally removed
2022-06-29Native call marshalling for ComPtr parameters and return values. (#2305)Yong He
Co-authored-by: Yong He <yhe@nvidia.com>
2022-06-27Language server fixes and improvements (#2304)Yong He
* Language server: Inlay hints. * Signature help for base exprs that is not a declref. * Fix checking of jvp operator. * Fix. * Add clang-format based auto formatting. * Fix clang error. * Fix clang-format discovery logic. * Fine tune auto formatting and completion experience. * Update macos workflow. * Fixes to configurations. * Fix parser recovery to trigger completion for index exprs. * Typo fix. Co-authored-by: Yong He <yhe@nvidia.com>
2022-06-25Specialize generic/existential calls within generic functions. (#2294)Yong He
* Expose internals of dce and use it to implement call graph walk. * Specialize calls in generic functions. * Fix clang error. Co-authored-by: Yong He <yhe@nvidia.com>
2022-06-25Added basic auto-diff capabilities for local load/store and simple ↵Sai Praveen Bangaru
arithmetic. Also added type-checking during the semantic stage. (#2303) * Added JVPTranscriber to handle differentiation of load, store, var, param and return instructions, as well as conversion of data and function types * Changed class names to be more in line with convention. Added correct type checking for __jvp() and verified that simple calls with only loads and stores are processed correctly * Added logic to differentiate basic arithmetic and literals inside IRConstruct and fixed the way parameters are differentiated Co-authored-by: Yong He <yonghe@outlook.com>
2022-06-24Fix language server crash when processing predefind macros. (#2302)Yong He
Co-authored-by: Yong He <yhe@nvidia.com> Co-authored-by: jsmall-nvidia <jsmall@nvidia.com>
2022-06-24xcode4 premake support (#2300)jsmall-nvidia
* #include an absolute path didn't work - because paths were taken to always be relative. * Attempt to make premake work for xcode4. * Make architecture ARM64. * Using ARM64 didn't make any difference.
2022-06-24Handling of temporary files (#2299)jsmall-nvidia
* #include an absolute path didn't work - because paths were taken to always be relative. * Work around windows issue with temporary file clash. * Handle the temporary file path actually creates a file. * Fix typo. * Fix typo in linux for temporary file. * Add unit test for io. Tests generateTemporary operation.
2022-06-24Add multithreading doc section (#2298)jsmall-nvidia
* #include an absolute path didn't work - because paths were taken to always be relative. * Attempt to describe how to multi-thread slang. * Fix HTML typo. * Improve multithreading doc. * Small typo fix.
2022-06-23Added basic syntax to mark and request function derivatives, as well as the ↵Sai Praveen Bangaru
framework for passes to process them. (#2297) * Added a decorator to mark functions for forward-mode differentiation * Fill out support for calls to non-decl values The existing compiler logic has a few places (semantic checking plus AST-to-IR lowering) where it assumes that function calls (`InvokeExpr`) are only ever made to expressions that resolve to a specific `Decl` (`DeclRefExpr`). This assumption allows semantic checking and lowering code to inspect things like the parameter list of an actual declaration, rather than just the type signature of the callee, and that infrastructure is used to support various features (e.g., default argument values on parameters). The AST and IR representations themselves have no matching requirement, and the places where the more general case of call expressions would need to be supported were relatively clear in the code. This change attempts to add suitable logic into each of those places. Note that this change does *not* surface any valid way to form input code that would cause these new code paths to be executed, so it is entirely possible that there are bugs in the logic as written here. The primary goal of this change is simply to get a sketch of the correct code checked in so that we have something to build on once we have language features that will require this support. * fixup: warnings-as-errors * Added parser logic for '__jvp(<fn-name>)' operator * Fixed issue with missing overload candidate item and added basic parsing test for the __jvp syntax * Added a blank JVP Auto-diff pass and a pass that replaces 'JVPDerivativeOf' calls with the differentiated function * Added a couple comments * Added parameter handling for the JVP pass Co-authored-by: Theresa Foley <tfoley@nvidia.com>
2022-06-23Preserve specialization cache in IR for specialization pass. (#2293)Yong He
* Perserve specialization cache in IR for specialization pass. * Fix compile error. * Fix. * Fix. * Fix test case. * Fix. Co-authored-by: Yong He <yhe@nvidia.com>
2022-06-23Define proper diagnostic item for two common "unimplemented" cases. (#2296)Yong He
2022-06-22 More Language Server Improvements. (#2289)Yong He
2022-06-21Lower throwing COM interface method. (#2282)Yong He
* Lower throwing COM interface method. * Fix. * Fix warnings. Co-authored-by: Yong He <yhe@nvidia.com>
2022-06-21Added a second set of shaders to the ray tracing test and added another test ↵lucy96chen
that uses these shaders; Fixed a bug in Vulkan's RayTracingCommandEncoder::dispatchRays() where the supplied raygen shader index wasn't being used (#2290)
2022-06-21Add CPU executable compile test (#2278)Yong He
* Add cpu executable compile test * Fix. * Fix permission on linux * retrigger build Co-authored-by: Yong He <yhe@nvidia.com>
2022-06-16Added a decorator to mark functions for forward-mode differentiation (#2283)Sai Praveen Bangaru
2022-06-16Fix macos release workflow. (#2288)Yong He
Co-authored-by: Yong He <yhe@nvidia.com>
2022-06-16Language server: document symbols (#2287)Yong He
* Language Server: Document Symbol outline. * Fix highlighting of extension decls. Co-authored-by: Yong He <yhe@nvidia.com>
2022-06-16Update MacOS workflow to sign and notarize binaries (#2286)Yong He
* Don't sign slang-llvm and slang-glslang * fix * fix * fix 2 * fix macos release workflow * fix * fix * fix2 * test * fix Co-authored-by: Yong He <yhe@nvidia.com>
2022-06-15Add signing to Macos release workflow. (#2285)Yong He
* Update macos workflow * Fetch submodule * fix Co-authored-by: Yong He <yhe@nvidia.com>