<feed xmlns='http://www.w3.org/2005/Atom'>
<title>slang.git/tools/slang-unit-test/unit-test-checksum.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-10-18T00:38:59+00:00</updated>
<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>
<entry>
<title>Add getVersionString() to IDownstreamCompiler (#2446)</title>
<updated>2022-10-13T23:00:05+00:00</updated>
<author>
<name>lucy96chen</name>
<email>47800040+lucy96chen@users.noreply.github.com</email>
</author>
<published>2022-10-13T23:00:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=e03026a07c4aa32c1a2de5ce199d910d74511c27'/>
<id>urn:sha1:e03026a07c4aa32c1a2de5ce199d910d74511c27</id>
<content type='text'>
* 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</content>
</entry>
<entry>
<title>Shader caching (#2432)</title>
<updated>2022-10-12T16:55:09+00:00</updated>
<author>
<name>lucy96chen</name>
<email>47800040+lucy96chen@users.noreply.github.com</email>
</author>
<published>2022-10-12T16:55:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=f0cd62b37c5dfbbdb3fb205f1be2b8beba0dfed4'/>
<id>urn:sha1:f0cd62b37c5dfbbdb3fb205f1be2b8beba0dfed4</id>
<content type='text'>
* Changed all getEntryPointCode calls to use RendererBase::getEntryPointCodeFromShaderCache

* Hashing hooked up, tests pass but need to add more to fully test functionality

* checkpoint

* Checkpoint: File system creation seems functional, saving is broken

* checkpoint: Fixed filename generation from MD5 hash, shader blob might be going missing ahead of pipeline state creation

* Fixed a lot of bugs related to hash code generation, shader cache is likely working but needs further testing

* Added workaround for module loading by re-creating the test device, shader cache test functional

* Vulkan shader caching bug fixed, checkpoint commit before more refinement

* pre-ToT merge checkpoint

* checkpoint commit, improving cache keys

* Significantly expanded items included in the dependency hash for Module; Added dependency hash functions to SpecializedComponentType and RenamedEntryPointComponentType

* Temporarily disable shader cache test

* Mid cleanup changes, solution successfully builds

* Added several helper update functions to slang-md5 to help simplify usage; Added a function under ISession to compute a hash for all linkage-related items; Function renames and cleaned up some comments

* Ran premake.bat; Renamed getASTBasedHashCode to computeASTBasedHash

* Added slang unit tests for Checksum and MD5; Extended gfx shader cache test to test with multiple shader files and one shader file with multiple entry points

* Solution builds and shader cache tests pass, but at least a couple other tests now failing

* ran premake.bat

* More cleanup changes

* Added shaderCachePath field to IDevice desc in gfx.slang, gfx-smoke.slang should be functional

* ran premake

* cleanup changes; Adding test printf to getEntryPointCodeFromShaderCache to see if output can be seen in CI

* Removed debugging printfs; Added handling for getEntryPointCode() failing

* Cleanup changes; Jonathan's fixes to SerialWriter to zero initialize otherwise uninitialized memory; Change to SwizzleExpr creation to zero initialize elementCount

* Changed enable_if_t to enable_if

* Fixed enable_if

* Added test for import vs include and changes to included and imported files; Fixed build errors in CUDA; Renamed shader cache statistics fields

* cleanup changes

* Readd removed file

* Restructured computeDependencyBasedHash calls, added computeDependencyBasedHashImpl to all classes dervied from ComponentType

* Applied same restructuring to the AST hash functions

* Cleanup changes; Moved HashBuilder out to slang-digest.h and added some helper functions to streamline the process of adding items to a hash

* Cleanup; Fixed incorrect expected results for shader import and include test</content>
</entry>
</feed>
