https://github.com/shader-slang/slang

sort by:
Revision Author Date Message Commit Date
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
c2dc1a8 Refactor shader cache (#2558) * Fix a bug in Path::find * Fix code formatting * Fix LockFile and add LockFileGuard * Add PersistentCache and unit test * Replace file path dependency list with source file dependency list * Add note on ordering in Module/FileDependencyList * Remove old shader cache code * Refactor shader cache implementation * Temporarily skip unit tests reading/writing files * Fix warning * Reenable lock file test * Rename shader cache tests and disable crashing test * Testing * Stop using Path::getCanonical * Fix persistent cache lock and test * Fix threading issues * Move adding file dependency hashes to getEntryPointHash() * Fix handling of #include files * Allow specifying additional search paths for gfx testing device * Work on shader cache tests * Update project files * Revive shader cache graphics tests * Split graphics pipeline test * Fix compilation 12 December 2022, 18:25:48 UTC
8d359fc Add `diffPair` stdlib function. (#2560) 09 December 2022, 17:09:53 UTC
41eb19e Auto-diff for matrix operations. (#2559) Co-authored-by: Yong He <yhe@nvidia.com> 08 December 2022, 22:56:20 UTC
468bb7e More type support for reverse-mode (#2551) * Add vector arithmetic test. Make gradient accumulation work for any IRLoad * Added support for general vector types, and split transposition into transpose & materialize to allow emitting the fully accumulated gradient for complex types. * Several bug fixes + finished up support for vector & struct types + removed prop pass * minor fixes (int/uint casts) * Removed IRConstruct * Added some type casts to prevent warnings * minor fix for unused variable 08 December 2022, 16:50:55 UTC
53e891e Rename IR opcodes to unify style. (#2556) Co-authored-by: Yong He <yhe@nvidia.com> 07 December 2022, 21:42:48 UTC
7071470 Remove `construct` IR op. (#2555) Co-authored-by: Yong He <yhe@nvidia.com> 07 December 2022, 20:52:20 UTC
3a3a8b5 Lower-to-ir no longer produce `Construct` inst. (#2553) Co-authored-by: Yong He <yhe@nvidia.com> 07 December 2022, 20:02:30 UTC
f116f43 Make slang-test depend on test tool libraries (#2554) 07 December 2022, 16:21:22 UTC
989ea01 Move `performanceStringInlining` to after `finalizeAutoDiffPass`. (#2550) Co-authored-by: Yong He <yhe@nvidia.com> 02 December 2022, 18:27:33 UTC
fcffce7 Disable end of line trim in .editorconfig (#2546) * #include an absolute path didn't work - because paths were taken to always be relative. * Disable end of line whitespace. 02 December 2022, 16:47:48 UTC
e9b7c66 Cleanup crypto utilities (#2549) * Consolidate crypto functions into single module * Migrate rest of code to new crypto module * Fix name conflict 02 December 2022, 15:34:53 UTC
92ae494 Inline functions with string param/return for GPU targets (#2544) * #include an absolute path didn't work - because paths were taken to always be relative. * WIP inlining of functions that take or return string related types on GPU targets. * Small fixes. * Added a test. * Add checking for any getStringHash insts are valid. * Support getStringHash on CUDA. * Tweak diagnostic. 02 December 2022, 14:29:38 UTC
30b5335 Add helper functions to update DifferentialPair (#2547) 02 December 2022, 09:01:58 UTC
1562e73 Cleanup creation of `IDifferentiableType` in semantics checking. (#2548) Co-authored-by: Yong He <yhe@nvidia.com> 02 December 2022, 06:30:24 UTC
f7d32a3 include `slang-rt` in windows release package. (#2542) Co-authored-by: Yong He <yhe@nvidia.com> 02 December 2022, 05:28:38 UTC
6ba4e6c Enable multithread build in premake (#2545) 02 December 2022, 03:03:37 UTC
e7df853 Allow `no_diff` on `this` parameter. (#2543) 02 December 2022, 02:55:43 UTC
f51f69d Fix missing semantic highlighting in attributes and ExtractExitentialValueExpr. (#2541) * Fix missing semantic highlighting in attributes and ExtractExitentialValueExpr. * Fix regression on partially specialized generic expr highlighting. * Add regression test. Co-authored-by: Yong He <yhe@nvidia.com> 30 November 2022, 22:53:53 UTC
976f578 Cleanup DigestBuilder and MD5HashGen (#2539) * Cleanup DigestBuilder and MD5HashGen * Fix templates Co-authored-by: Yong He <yonghe@outlook.com> 30 November 2022, 21:26:55 UTC
0968422 Support `no_diff` on existential typed params. (#2540) Co-authored-by: Yong He <yhe@nvidia.com> 30 November 2022, 21:24:39 UTC
f52b4de Allow `no_diff` modifier on parameters (#2538) 30 November 2022, 02:17:33 UTC
f558178 Refactored reverse-mode implementation to use 4 separate passes. (#2531) * Added partial implementation for reverse-mode * Fixing several compile and runtime errors. * Fixed several issues with reverse-mode passes. * Fixed more issues. Basic reverse-mode tests passing Co-authored-by: Edward Liu <shiqiu1105@gmail.com> 30 November 2022, 01:01:41 UTC
af7f400 Complete removal of DifferentialBottom type. (#2537) Co-authored-by: Yong He <yhe@nvidia.com> 29 November 2022, 22:16:05 UTC
d85c7b8 FileStream-based implementation for updating cache index file (#2485) * Draft FileStream-based implementation for updating cache file * File streams fully integrated into shader cache code paths; Tests will not run unless file system is on disk as file streams do not play nicely with in-memory * Brought old code back as fallback path, but tests need to ensure previous is freed first * Testing structure updated, beginning cleanup work * All tests working * Cleanup changes * Removed an extra tab at the end of a line * Cleanup change * Undo externals change * Removed redundant logic for OS vs memory file system handling of the shader cache; Removed extra helper function left over from old cache implementation * Reverted performance change to generate contents hashes when modules are being loaded as this code path is not always followed; Contents hashing now uses a combination of hashing and checking the last modified time for all file dependencies, only reading in and hashing the contents of all files if the last modified hash does not match * Added handling to Module::updateContentsBasedHash for file dependencies which are not from a physical source file on disk; Added test for above Co-authored-by: Lucy Chen <lucchen@nvidia.com> Co-authored-by: Yong He <yonghe@outlook.com> 29 November 2022, 20:35:54 UTC
d60c925 Bug fix: partially specialized non-static generic invoke missing `this` argument. (#2536) * Fix non-static generic func call issue. * Add test case. * Revert unnecessary change. * Update test comment. Co-authored-by: Yong He <yhe@nvidia.com> 29 November 2022, 19:44:47 UTC
a54471a Add LockFile helper class (#2535) * Add LockFile helper class 28 November 2022, 16:18:29 UTC
1b40fe5 Make differentiable data-flow pass recognize interface methods. (#2530) * Make differentiable data-flow pass recognize interface methods. * Make existing test to work with `[TreatAsDifferentiable]`. Co-authored-by: Yong He <yhe@nvidia.com> 24 November 2022, 01:50:02 UTC
d4787e9 Update comments in test. (#2529) Co-authored-by: Yong He <yhe@nvidia.com> 24 November 2022, 00:09:10 UTC
4ad0470 Fix issues around dynamic generic function and autodiff. (#2528) * Fix issues around dynamic generic function and autodiff. * Fix return type issue. * Fix type unification for generic `inout` parameter. * Fix. Co-authored-by: Yong He <yhe@nvidia.com> 24 November 2022, 00:02:56 UTC
97cb485 Autodiff through simple dynamic dispatch. (#2527) * Autodiff through simple dynamic dispatch. * Revert changes. * Fix. Co-authored-by: Yong He <yhe@nvidia.com> 23 November 2022, 17:39:08 UTC
6178cb6 Refactor Auto-diff passes (#2526) * Initial refactor * Refactor passes tests * Removed Differential Bottom references from the IR side 22 November 2022, 17:36:28 UTC
d9b014c Added autodiff design doc (#2524) Co-authored-by: Yong He <yonghe@outlook.com> 21 November 2022, 20:24:34 UTC
b5626d4 Improve parser recovery around invalid function definitions. (#2525) * Improve parser recovery around invalid function definitions. * Fix. * Clean up. * Clean up. Co-authored-by: Yong He <yhe@nvidia.com> 21 November 2022, 20:23:01 UTC
545de51 WIP: Fixed inout struct and added testing for calls to non-differentiable functions (#2505) * Added non-differentiable call test * Extended testing for nondifferentiable calls * Fixed subtle issue with extensions on generic types not applying the correct substitutions, leading to unspecialized generics at the emit stage * More fixes. inout struct params now work fine * Update inout-struct-parameters-jvp.slang * Update slang-ir.cpp * Fixed hoisting lookup_interface_method * Fixed non-diff call return value * Fixed issue with phi nodes * Fixed problem with IRSpecialize preventing hoisitng of DifferentialPairType * Fixed non-diff call test to conform to the new 'no_diff' system 21 November 2022, 15:29:57 UTC
d58e08f Data flow validation pass for diagnosing derivative loss. (#2523) 18 November 2022, 20:37:27 UTC
0a050a4 Small fixes around SER on VK (#2522) * #include an absolute path didn't work - because paths were taken to always be relative. * Fixes for Shader Execution Reordering for VK based on testing via GLSLANG with SER support. * Update test results with SER VK fixes. 18 November 2022, 20:25:12 UTC
e13d38b Language server improvements for auto-diff. (#2521) 17 November 2022, 00:08:51 UTC
801aa3b Clean up type checking of higher order expressions. (#2519) * Clean up type checking of higher order expressions. * Replace `goto` with `break` to pacify clang. * Fix. * Fixes. * Fix more tests. * Fix lowerWitnessTable parameter error. * Exclude attributes from ast printing. Co-authored-by: Yong He <yhe@nvidia.com> 16 November 2022, 20:17:49 UTC
09d8e04 Squash warnings (#2515) * Don't use uname -p It's not portable (doesn't work on my machine) * Disable maybe-uninitialized warning on gcc Only false positives at the moment * Squash warning in miniz Allow it to use 64 bit file handing functions with gcc * Use noreturn c++11 attribute in SLANG_RETURN_NEVER * Squash uninitialized variable warnings * Squash const char/char conversion warnings Co-authored-by: Yong He <yonghe@outlook.com> 16 November 2022, 19:33:10 UTC
8d50047 `slang-llvm` 13.x-32 (#2518) * #include an absolute path didn't work - because paths were taken to always be relative. * Upgrade to slang-llvm-13.x-32 16 November 2022, 15:17:19 UTC
1643471 Mesh shader support (#2464) * Add gdb generated files to .gitignore * Switch to c++17 TODO: Ellie update coding style doc * WIP mesh shaders * Add MeshOutputType and mesh output decorations * Lift array type layout creation out of _createTypeLayout in preparation for sharing it elsewhere * Initial pass at GLSL legalization for mesh shaders * Create output types for builtin mesh outputs This should be rendered as an out paramter block * Handle writes to member fields in mesh shader output * Per primitive output from mesh shaders * Add mesh shader tests * Redeclare mesh output builtins * Remove unused instruction * Emit explicit mesh output max max size * Add unimplemented warning for array members in mesh output * Implement mesh output splitting for GLSL in terms of getSubscriptVal * Allow HLSL syntax for mesh output modifiers * Improve error messages for mesh output * Add test for HLSL style mesh output syntax * Emit explicit mesh output indices max size * HLSL generation support for mesh shaders * Better errors for mesh shader misuse * Neaten comments * Regenerate vs2019 project files * Fix build on vs2019 * Retreat on c++17 Will make the change in a separate PR * slang-glslang binary dep 11.10.0 -> 11.12.0-32 * Fixes for msvc compiler * Update msvc project 16 November 2022, 01:49:06 UTC
4917d71 Shader Execution Reordering for VK (#2491) * #include an absolute path didn't work - because paths were taken to always be relative. * Fixes around MakeMiss. * Add preliminary support for HitObject::MakeHit. * Make Nop. * Add HitObject::TraceRay. * HitObject::Invoke for VK. * Remove line numbers from SER GLSL output. * Add support for HitObjectAttributes Add support for GLSL HitObject.GetAttributes<T>() Simplified code around getting locations. * Be more explicit about requiring GL_EXT_ray_tracing in SER. * Split out LocationTracker from CLikeEmitter. * Small doc improvements. * Add motion ray support. * Use inlining to get correct GLSL behavior around hitObjectNV. * Add assignment HitObject test. * Add a HitObject array test. Shows doesn't work correctly for VK/GLSL. * Add call to `hitObjectGetAttributesNV` before getting attributes. 15 November 2022, 20:27:28 UTC
7222b6c Specify downstream compiler include paths (#2517) * #include an absolute path didn't work - because paths were taken to always be relative. * WIP around testing with NVAPI. * Make -I work for downstream compilers. Update docs. * Small improvement around ignoring tests. 15 November 2022, 19:38:25 UTC
069768d Add mesh and amplification shaders to slang-glslang (#2516) 15 November 2022, 14:37:05 UTC
25affe8 Adding some math functions and their derivatives (#2497) 15 November 2022, 00:43:55 UTC
368ec31 Minimum binary arithmetic reverse autodiff working. (#2514) * Initial plumbing of backward autodiff in the frontend. * More plumbing. * Initial reverse autodiff working. * Bug fixes. * Misc. * Remove redundant code. * More clean up. * Misc. * Rebase and add backward diff test. * Disable test. * Clean up. * Minor fix. Co-authored-by: Yong He <yhe@nvidia.com> 14 November 2022, 20:08:01 UTC
623f5c3 glslang: 11.10.0-16-g42398c93 -> 11.12.0-32-gf74f37c5 (#2507) 14 November 2022, 03:27:00 UTC
3e312b3 Improvements to NVRTC diagnostic parsing (#2504) * #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. * Improvements to NVRTC diagnostic parsing. Handle compilerSpecificArgs. Fix issue with terminating nul ending up in diagnostic string. * Improved NVRTC error parsing. f32tof16 and f16tof32 work in principal on CUDA. * Small update to test, although they remain disabled. * Work around SLANG_E_NOT_AVAILABLE being turned into ignored, when a legitimate error is found * A more tightly constrained fallback NVRTC diagnostic parsing. * Remove CharUtil, as not neeed. Co-authored-by: Yong He <yonghe@outlook.com> 10 November 2022, 23:38:19 UTC
0b05fe3 Fix inlining pass. (#2506) * Fix inlining pass. * Add more check against corner cases. * Revise comments. * Fixes. * Fix premake script. * Fixes. Co-authored-by: Yong He <yhe@nvidia.com> 10 November 2022, 22:19:20 UTC
10834e6 Update nvapi-support.md 10 November 2022, 21:10:14 UTC
610851a Fix document toc. (#2510) Co-authored-by: Yong He <yhe@nvidia.com> 10 November 2022, 17:44:00 UTC
66b5351 Update document toc (#2509) Co-authored-by: Yong He <yhe@nvidia.com> 10 November 2022, 17:32:30 UTC
d5e4854 Update documentation on new features (#2508) * Update documentation on new features * Fix. Co-authored-by: Yong He <yhe@nvidia.com> 10 November 2022, 17:19:55 UTC
004f6e3 Add `[ForwardDerivativeOf]` attribute. (#2501) * Add [ForwardDerivativeOf] attribute. * Fix handling around phi nodes. * Fixes. * Remove IR opcode for ForwardDerivativeOfDecoration. Co-authored-by: Yong He <yhe@nvidia.com> 10 November 2022, 03:19:17 UTC
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
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
bf67309 Make `__BuiltinFloatingPointType` conform to `IDifferentiable`. (#2499) 08 November 2022, 18:07:57 UTC
ca882a1 Small cleanups on forward differentiation. (#2498) Co-authored-by: Yong He <yhe@nvidia.com> 07 November 2022, 20:26:29 UTC
ea99c27 Initial version of DeviceLimits implemented in d3d12, d3d11, vulkan and cuda (#2496) 07 November 2022, 16:59:15 UTC
72ce058 Make adapterLUID const pointer (#2494) 07 November 2022, 14:06:58 UTC
a20f6a0 Use property for `DifferentialPair` accessors. (#2493) 05 November 2022, 00:06:29 UTC
c6e6b7a Higher order differentiation. (#2487) Co-authored-by: Yong He <yhe@nvidia.com> 04 November 2022, 16:36:23 UTC
015bde8 Add AdapterLUID to identify GPU adapters (#2492) * Add AdapterLUID to identify GPU adapters * Remove adapter option in render-test 04 November 2022, 16:34:53 UTC
9a3a4b0 Shader Execution Reordering without HLSL2021 (#2489) * #include an absolute path didn't work - because paths were taken to always be relative. * Disable SER tests and enabling HLSL2021 by default. * Small typos fix. Improve SER coverage in testing. * Fix typo. 03 November 2022, 18:31:51 UTC
8f9d584 Add gfxGetAdapters function (currently implemented for D3D12/Vulkan) (#2486) * Add gfxGetAdapters function (currently implemented for D3D12/Vulkan) * Extend to handle DirectX11 and CUDA * Use blob to return adapter list and add AdapterList helper * Replace strncpy with memcpy Co-authored-by: jsmall-nvidia <jsmall@nvidia.com> 03 November 2022, 15:58:49 UTC
203b5d7 Disable HLSL2021 by default (#2488) * #include an absolute path didn't work - because paths were taken to always be relative. * Disable SER tests and enabling HLSL2021 by default. 03 November 2022, 15:48:43 UTC
2e1c15f Rework differential conformance dictionary checking. (#2483) * Rework differential conformance dictionary checking. * Revert space changes. Co-authored-by: Yong He <yhe@nvidia.com> 02 November 2022, 19:12:18 UTC
fb29bd3 Shader Execution Reordering (via NVAPI) (#2484) * #include an absolute path didn't work - because paths were taken to always be relative. * Preliminary SER NVAPI support. * Set the DXC compiler version. Fix typo in premake5.lua * Improve DXC version detection. Enable HLSL2021 on late enough version of DXC. * Fix typo. * Fix launch. * Test via DXIL output. * Update dxc-error output. 02 November 2022, 13:47:35 UTC
487855e Remove unnecessary `:IDifferentiable` conformance in tests. (#2482) Co-authored-by: Yong He <yhe@nvidia.com> 01 November 2022, 17:24:04 UTC
1817e95 Added a vector intrinsic definition for exp (to serve as template for other vector intrinsics) (#2481) * Added vector exp definition * Naming 01 November 2022, 16:55:36 UTC
cbc1eff Make `DifferentialPair` able to nest. (#2477) 01 November 2022, 15:46:57 UTC
b707a07 Upgrade slang-binaries (#2479) * #include an absolute path didn't work - because paths were taken to always be relative. * Upgrade slang binaries to include "DX Compiler release for July 2022" https://github.com/microsoft/DirectXShaderCompiler/releases/tag/v1.7.2207 01 November 2022, 13:43:19 UTC
64c9669 Make cpp-host prelude include scalar intrinsics. (#2478) * Make cpp-host prelude include scalar intrinsics. * Fix. Co-authored-by: Yong He <yhe@nvidia.com> 31 October 2022, 15:32:38 UTC
883d9f7 Shader cache bugfixes and test additions (#2467) * Preliminary graphics shader test * Added test checking that a graphics shader is correctly split into two different entries * Removed testing only addition * Changed RequirementDictionary to an OrderedDictionary and added SerialTypeInfo for OrderedDictionary; Added entry point mangled name to the dependency hash * Added test covering failure case discovered as part of Falcor integration * Changed DifferentiableTypeSemanticContext::m_mapTypeToIDifferentiableWitness to an OrderedDictionary * Added serializedAST field to Module in order to save serialized ASTs to avoid reserialization as much as possible; Added classes field to Session in order to save the output of SerialClassesUtil::create to avoid recreating as much as possible * Changed AST hashing to hash the contents of a Module's file dependencies; Renamed all references to AST hashing to contents hashing * Further cleanup * Moved contents hash computation up to Linkage::loadModule and added field to Module to save the computed contents digest * Changed PreprocessorHandler::handleFileDependency to optionally take an ISlangBlob* containing file contents and changed FrontEndPreprocessorHandler::handleFileDependency to add the source code for an included file to the module's contents digest * Removed extraneous addToDigest call * Fixed accidental removal of source code hash for module being loaded 29 October 2022, 19:08:41 UTC
5a510ab Fix language server crash on incomplete higher order invoke expr. (#2476) Co-authored-by: Yong He <yhe@nvidia.com> 28 October 2022, 17:41:42 UTC
f9b1c56 More renaming in jvp pass. (#2475) Co-authored-by: Yong He <yhe@nvidia.com> 27 October 2022, 21:38:44 UTC
e6dc9a9 Rename 'IDifferentiable.zero' -> `IDifferentiable.dzero`. (#2474) Co-authored-by: Yong He <yhe@nvidia.com> 27 October 2022, 20:08:45 UTC
79af29a Rename `[__custom_jvp]` -> `[ForwardDerivative]`. (#2473) * Rename `[__custom_jvp]` -> `[ForwardDerivative]`. * Rename the classes. * More renaming. Co-authored-by: Yong He <yhe@nvidia.com> 27 October 2022, 20:08:30 UTC
8dc9efd Rename `JVPDerivativeModifier` -> `ForwardDifferentiableAttribute`. (#2472) Co-authored-by: Yong He <yhe@nvidia.com> 27 October 2022, 19:30:15 UTC
0cbef6f Rename `__jvp`-->`__fwd_diff`. (#2471) Co-authored-by: Yong He <yhe@nvidia.com> 27 October 2022, 19:19:30 UTC
351e78f Extend test coverage for differential method synthesis. (#2470) Co-authored-by: Yong He <yhe@nvidia.com> 27 October 2022, 18:49:58 UTC
8e11063 Auto synthesis of IDifferntial interface methods. (#2469) * Auto synthesis of IDifferntial interface methods. * Add comments. Co-authored-by: Yong He <yhe@nvidia.com> 27 October 2022, 18:06:14 UTC
f7f0dca Adding a differentiable standard library (#2465) 27 October 2022, 02:21:29 UTC
939be44 Auto synthesis of Differential type (#2466) 26 October 2022, 15:32:24 UTC
4fc34b1 Legalize array return types. (#2463) 26 October 2022, 15:29:30 UTC
072bd7f Fix d3d debug layer error on setting clear value. (#2458) 26 October 2022, 15:28:51 UTC
26e6222 Fix D3D12 dispatchRays() when using an empty miss and/or hitgroup table (#2468) 26 October 2022, 15:28:16 UTC
41cb7c1 Rework differentiation of member access through `[DerivativeMember(DiffType.field)]` (#2460) * wip: remove auto-diff for member access, add diff through property accessors. * Fix getter-setter test. * Fix getter-setter-multi test. * Fix nested-jvp test. * Use [DerivativeMember] attribute to differentiate through member access. * Clean up. * More cleanup. Co-authored-by: Yong He <yhe@nvidia.com> 25 October 2022, 05:19:38 UTC
1093218 Modified the new type system to support generic differentiable types … (#2413) * Modified the new type system to support generic differentiable types and added support for differentiating overloaded functions. * Changed a few asserts to release asserts to avoid unreferenced variable errors * Fixed a naming issue with TypeWitnessBreadcumb::Flavor::Decl * Added logic to avoid tracking differentiable types if the module does not use auto-diff or define differentiable types. * Moved the auto-diff passes to after the specialization step, added a more complex generics test * Added a generics stress test and fixed AST-side logic. IR side needs some more work * Added differential getter and setter logic, fixed multiple issues with DifferentiableTypeDictionary, added support for loops and conditions * Changed differential getters to use pointer types, added getter type checking * Fixed some bugs related to diff type registration and differential getters * Removed some superfluous code * Removed some more unused code. * Fixed an issue with witness substitution * Minor fix Co-authored-by: Yong He <yonghe@outlook.com> 20 October 2022, 18:22:00 UTC
576c840 Cache eviction policy test refinement (#2456) * Refined cache eviction test; Added check to cache file load to ensure only the maximum number of allowed entries is loaded * Fixed logic error in entry count check * Changed getCacheFile to not append the newline at the end of cache files * Refined if check 20 October 2022, 16:33:48 UTC
dec9301 PersistentShaderCache integration (#2453) * Shader cache index integrated into RendererBase; Added test for cache eviction policy (which currently does not pass) * Restructured main if block in getEntryPointCodeFromShaderCache; Post-rebase cleanup * undo local testing only change * Fixed issues causing shader cache tests to fail * Edited gfx.slang to reflect structural changes to IDevice::Desc and to include ShaderCacheDesc; Modified how the cache is reading in the file from disk; Added a check to the cache eviction policy test that checks for correct order of entries in the cache as well as eight total expected output files for D3D12 and Vulkan * Removed line in gfx-unit-test.cpp for local testing * Edited .gitignore to ignore all shaders automatically generated by the shader cache tests and removed the test shaders that were previously added; Review changes, most notably with an overhaul of how the cache eviction policy test handles checking order of entries * Ran premake; Removed local testing specific line (again) * Removed expected comparison files from earlier commit; Ran premake * Edited premake5.lua to also ignore the auto-generated shader files from specific shader cache tests * Fixed weird indent in premake5.lua 19 October 2022, 16:36:41 UTC
8add41a Shader cache index implementation (#2452) 18 October 2022, 00:38:59 UTC
09408e3 Allow multi-level breaks to break out of `switch` statements. (#2451) * Allow multi-level breaks to break out of `switch` statements. * Rename loop->region. * Add `[ForceInline]` attribute. Co-authored-by: Yong He <yhe@nvidia.com> 14 October 2022, 03:31:30 UTC
27d7961 Shader cache index header (#2448) * checkpoint * Added shaderCachePath field to IDevice desc in gfx.slang, gfx-smoke.slang should be functional * ran premake * Revert erroneous commits from rebasing * Added ShaderCacheIndex class header with design details * Header edits * more header edits * Post-rebase premake.bat run to fix solution weirdness; Initialize commitHash to nullptr and check that a commitHash is successfully returned 14 October 2022, 00:07:54 UTC
e03026a Add getVersionString() to IDownstreamCompiler (#2446) * checkpoint * Added shaderCachePath field to IDevice desc in gfx.slang, gfx-smoke.slang should be functional * ran premake * Added getVersionString() to IDownstreamCompiler and implemented it in DownstreamCompilerBase, GlslangDownstreamCompiler, and DXCDownstreamCompiler * Added hashInto to Val and implemented for all subtypes which contain _getHashCodeOverride implementations; nothing hooked up to caching yet * Revert erroneous commits from rebasing * Re-ran premake.bat; changed hashInto implementations to _hashIntoOverride * downstream compiler getVersionString hooked up into shader cache * Rebuild CI, Win32 Release builds successfully locally * Rebuild CI, Win32 and x64 Release build successfully locally * Reverted Val::hashInto changes, deferred for later; modified init() for downstream compilers to fetch, hash, and save the hashes of their corresponding dlls (currently implemented for glslang and dxc), changed getVersionString() to directly return the saved hash for key computation * call site changes post-merge; fixing CI build failures * Removed remaining hashInto; Updated hashToString to produce string one byte at a time * Fixed expected output to match new hashToString output order * Missed string edit in hashing related unit tests * Updated dxcapi.h; Replaced getVersionString implementation in glslang with the shared library timestamp, dxc implementation queries for IDxcVersionInfo and IDxcVersionInfo2 then fetches and returns the relevant values * Fixing CI build failures * Changed RawBlob to StringBlob for strings * Modified getVersionString for dxc to always return either the version plus commit hash or shared library timestamp 13 October 2022, 23:00:05 UTC
09054f7 Make `optimalClearValue` optional in `ITextureResource::Desc` (#2450) Co-authored-by: Yong He <yhe@nvidia.com> 13 October 2022, 21:07:26 UTC
afa9f4b Fix missing implementations in ConjunctionSubtypeWitness. (#2449) * Fix missing implementations in ConjunctionSubtypeWitness. * Fix. Co-authored-by: Yong He <yhe@nvidia.com> 13 October 2022, 20:42:05 UTC
344898b Add gfx debug layer trampoline for D3D12 interfaces. (#2445) Co-authored-by: Yong He <yhe@nvidia.com> 12 October 2022, 21:51:13 UTC
d96250b Allow setting shader model upon d3d device creation. (#2442) * Allow setting shader model upon d3d device creation. * Add sm_6_7 profile. * More fixes and cleanups. Co-authored-by: Yong He <yhe@nvidia.com> 12 October 2022, 21:43:48 UTC
back to top