https://github.com/shader-slang/slang
Revision 45d9961a6a86d184248ef84f6a07125b0c224f97 authored by Ellie Hermaszewska on 16 August 2023, 00:57:47 UTC, committed by GitHub on 16 August 2023, 00:57:47 UTC
* Correct namespace for getClockFrequency

* missing const

* Add missing assignment operator

* Remove unused variables

* Return correct modified variable

* Use stable hash code for file system identity

* terse static_assert

* Structured binding for map iteration

* Make (==) and getHashCode const on many structs

* Add ConstIterator for LinkedList

* Replace uses of ItemProxy::getValue with Dictionary::at

* Extract list of loads from gradientsMap before updating it

* Const correctness in type layout

* Add unordered_dense hashmap submodule

* Use wyhash or getHashCode in slang-hash.h

* refactor slang-hash.h

* Use ankerl/unordered_dense as a hashmap implementation

Notable changes:
- The subscript operator returns a reference directly to the value,
  rather than a lazy ItemProxy (pair of dict pointer and key)

slang-profile time (95% over 10 runs):

- Before: 6.3913906 (±0.0746)
- After:  5.9276123 (±0.0964)

* 64 bit hash for strings

So they have the same hash as char buffers with the same contents

* Narrowing warnings for gcc to match msvc

* revert back to c++17

* Correct c++ version for msvc

* Use path to unordered_dense which keeps tests happy

* Do not assign to and read from map in same expression

* Remove redundant map operations in primal-hoist

* Split out stable hash functions into slang-stable-hash.h

* 64 bit hash by default

* regenerate vs projects

* Correct return type from HashSetBase::getCount()

* correct width for call to Dictionary::reserve

* Use stable hash for obfuscated module ids

* Signed int for reserve

* clearer variable naming

* Parameterize Dictionary on hash and equality functors

* Allow heterogenous lookup for Dictionary

* missing const

* Use set over operator[] in some places

* Remove unused function

* s/at/getValue
1 parent e34b005
History
Tip revision: 45d9961a6a86d184248ef84f6a07125b0c224f97 authored by Ellie Hermaszewska on 16 August 2023, 00:57:47 UTC
Use ankerl/unordered_dense as a hashmap implementation (#3036)
Tip revision: 45d9961
File Mode Size
.github
build
deps
docs
examples
external
extras
prelude
source
tests
tools
.editorconfig -rw-r--r-- 984 bytes
.gitattributes -rw-r--r-- 95 bytes
.gitignore -rw-r--r-- 1.5 KB
.gitmodules -rw-r--r-- 1.1 KB
.mailmap -rw-r--r-- 84 bytes
CODE_OF_CONDUCT.md -rw-r--r-- 3.1 KB
LICENSE -rw-r--r-- 1.1 KB
README.md -rw-r--r-- 6.1 KB
github_build.sh -rw-r--r-- 1.3 KB
github_macos_build.sh -rw-r--r-- 1.2 KB
github_test.sh -rw-r--r-- 1015 bytes
make-slang-tag-version.bat -rw-r--r-- 210 bytes
premake.bat -rw-r--r-- 120 bytes
premake5.lua -rw-r--r-- 61.1 KB
slang-com-helper.h -rw-r--r-- 4.9 KB
slang-com-ptr.h -rw-r--r-- 5.0 KB
slang-gfx.h -rw-r--r-- 86.8 KB
slang-tag-version.h -rw-r--r-- 36 bytes
slang.h -rw-r--r-- 195.3 KB
slang.sln -rw-r--r-- 45.0 KB
test.bat -rw-r--r-- 1.4 KB

README.md

back to top