<feed xmlns='http://www.w3.org/2005/Atom'>
<title>slang.git/tools/gfx/persistent-shader-cache.cpp, branch master</title>
<subtitle>Making it easier to work with shaders</subtitle>
<id>https://git.yummers.dev/slang.git/atom?h=master</id>
<link rel='self' href='https://git.yummers.dev/slang.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/'/>
<updated>2022-12-12T18:25:48+00:00</updated>
<entry>
<title>Refactor shader cache (#2558)</title>
<updated>2022-12-12T18:25:48+00:00</updated>
<author>
<name>skallweitNV</name>
<email>64953474+skallweitNV@users.noreply.github.com</email>
</author>
<published>2022-12-12T18:25:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=c2dc1a86ed2f5e160749fe9f99b70db6c3e4d7a6'/>
<id>urn:sha1:c2dc1a86ed2f5e160749fe9f99b70db6c3e4d7a6</id>
<content type='text'>
* 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</content>
</entry>
<entry>
<title>Cleanup crypto utilities (#2549)</title>
<updated>2022-12-02T15:34:53+00:00</updated>
<author>
<name>skallweitNV</name>
<email>64953474+skallweitNV@users.noreply.github.com</email>
</author>
<published>2022-12-02T15:34:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=e9b7c66a541636e72659fbfcc9a3f20a85f2bee8'/>
<id>urn:sha1:e9b7c66a541636e72659fbfcc9a3f20a85f2bee8</id>
<content type='text'>
* Consolidate crypto functions into single module

* Migrate rest of code to new crypto module

* Fix name conflict</content>
</entry>
<entry>
<title>FileStream-based implementation for updating cache index file (#2485)</title>
<updated>2022-11-29T20:35:54+00:00</updated>
<author>
<name>lucy96chen</name>
<email>47800040+lucy96chen@users.noreply.github.com</email>
</author>
<published>2022-11-29T20:35:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=d85c7b809d02e6dc0844aab07e66a6bac2462017'/>
<id>urn:sha1:d85c7b809d02e6dc0844aab07e66a6bac2462017</id>
<content type='text'>
* 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 &lt;lucchen@nvidia.com&gt;
Co-authored-by: Yong He &lt;yonghe@outlook.com&gt;</content>
</entry>
<entry>
<title>Shader cache bugfixes and test additions (#2467)</title>
<updated>2022-10-29T19:08:41+00:00</updated>
<author>
<name>lucy96chen</name>
<email>47800040+lucy96chen@users.noreply.github.com</email>
</author>
<published>2022-10-29T19:08:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=883d9f7cccf1080739213282602c0dbae5fa7fe6'/>
<id>urn:sha1:883d9f7cccf1080739213282602c0dbae5fa7fe6</id>
<content type='text'>
* 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</content>
</entry>
<entry>
<title>Cache eviction policy test refinement (#2456)</title>
<updated>2022-10-20T16:33:48+00:00</updated>
<author>
<name>lucy96chen</name>
<email>47800040+lucy96chen@users.noreply.github.com</email>
</author>
<published>2022-10-20T16:33:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=576c8407e60143682cd40c68101c6eae8563ca3d'/>
<id>urn:sha1:576c8407e60143682cd40c68101c6eae8563ca3d</id>
<content type='text'>
* 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</content>
</entry>
<entry>
<title>PersistentShaderCache integration (#2453)</title>
<updated>2022-10-19T16:36:41+00:00</updated>
<author>
<name>lucy96chen</name>
<email>47800040+lucy96chen@users.noreply.github.com</email>
</author>
<published>2022-10-19T16:36:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=dec930150f42a22892e567c769a1c9e24e761fde'/>
<id>urn:sha1:dec930150f42a22892e567c769a1c9e24e761fde</id>
<content type='text'>
* 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</content>
</entry>
<entry>
<title>Shader cache index implementation (#2452)</title>
<updated>2022-10-18T00:38:59+00:00</updated>
<author>
<name>lucy96chen</name>
<email>47800040+lucy96chen@users.noreply.github.com</email>
</author>
<published>2022-10-18T00:38:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=8add41a6e37994577d928bc312801ddfa1c33173'/>
<id>urn:sha1:8add41a6e37994577d928bc312801ddfa1c33173</id>
<content type='text'>
</content>
</entry>
</feed>
