<feed xmlns='http://www.w3.org/2005/Atom'>
<title>slang.git/tools/render-test/bind-location.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>2021-03-17T19:55:30+00:00</updated>
<entry>
<title>Remove old code paths from render-test (#1760)</title>
<updated>2021-03-17T19:55:30+00:00</updated>
<author>
<name>Tim Foley</name>
<email>tfoleyNV@users.noreply.github.com</email>
</author>
<published>2021-03-17T19:55:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=6e5d85efb9fa5f647f7f0c7ef784a9fd09b29023'/>
<id>urn:sha1:6e5d85efb9fa5f647f7f0c7ef784a9fd09b29023</id>
<content type='text'>
* Remove old code paths from render-test

Historically, the `render-test` tool was using three different code paths:

* One based on `gfx` and manual (non-reflection-based) parameter setting, used for OpenGL, D3D11, D3D12, and Vulkan
* One for CPU that used reflection-based parameter setting but shared no code with the first
* One for CUDA that used reflection-based parameter setting and shared some, but not all, code with the CPU path

Recently we've updated `render-test` to include a fourth option:

* Using `gfx` and the "shader object" system it exposes for a unified reflection-based parameter-setting system taht works across OpenGL, D3D11, D3D12, Vulkan, CUDA, and CPU

This change removes the first three options and leaves only the single unified path. A sa result, a bunch of code in `render-test` is no longer needed, and the codebase no longer relies on things like the `IDescriptorSet`-related APIs in `gfx`.

Several existing tests had to be disabled to make this change possible. Those tests will need to be audited and either re-enabled once we fix issues in the shader object system, or permanently removed if they don't test stuff we intend to support in the long run (e.g., global-scope type parameters, which aren't a clear necessity).

* fixup: CUDA detection logic</content>
</entry>
<entry>
<title>Support shader parameters that are an array of existential type. (#1542)</title>
<updated>2020-09-14T19:26:54+00:00</updated>
<author>
<name>Yong He</name>
<email>yonghe@outlook.com</email>
</author>
<published>2020-09-14T19:26:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=03050997b90b6c07bfdc5ca9c0c08cd278b1b1dd'/>
<id>urn:sha1:03050997b90b6c07bfdc5ca9c0c08cd278b1b1dd</id>
<content type='text'>
* Support shader parameters that are an array of existential type.

* Rename to getFirstNonExistentialValueCategory

Co-authored-by: Yong He &lt;yhe@nvidia.com&gt;</content>
</entry>
<entry>
<title>Improvements around hashing (#1355)</title>
<updated>2020-05-26T17:53:10+00:00</updated>
<author>
<name>jsmall-nvidia</name>
<email>jsmall@nvidia.com</email>
</author>
<published>2020-05-26T17:53:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=b1369040c3d6d6a8704bdb17d9de99f36a108e07'/>
<id>urn:sha1:b1369040c3d6d6a8704bdb17d9de99f36a108e07</id>
<content type='text'>
* Fields from upper to lower case in slang-ast-decl.h

* Lower camel field names in slang-ast-stmt.h

* Fix fields in slang-ast-expr.h

* slang-ast-type.h make fields lowerCamel.

* slang-ast-base.h members functions lowerCamel.

* Method names in slang-ast-type.h to lowerCamel.

* GetCanonicalType -&gt; getCanonicalType

* Substitute -&gt; substitute

* Equals -&gt; equals
ToString -&gt; toString

* ParentDecl -&gt; parentDecl
Members -&gt; members

* * Make hash code types explicit
* Use HashCode as return type of GetHashCode
* Added conversion from double to int64_t
* Split Stable from other hash functions

* toHash32/64 to convert a HashCode to the other styles.
GetHashCode32/64 -&gt; getHashCode32/64
GetStableHashCode32/64 -&gt; getStableHashCode32/64

* Other Get/Stable/HashCode32/64 fixes

* GetHashCode -&gt; getHashCode

* Equals -&gt; equals

* CreateCanonicalType -&gt; createCanonicalType

* Catches of polymorphic types should be through references otherwise slicing can occur.

* Fixes for newer verison of gcc.
Fix hashing problem on gcc for Dictionary.

* Another fix for GetHashPos

* Fix signed issue around GetHashPos</content>
</entry>
<entry>
<title>Feature/test for double behavior (#1186)</title>
<updated>2020-01-29T14:02:55+00:00</updated>
<author>
<name>jsmall-nvidia</name>
<email>jsmall@nvidia.com</email>
</author>
<published>2020-01-29T14:02:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=58cea79d8622a08b0887dbfda8f8042e42679c8f'/>
<id>urn:sha1:58cea79d8622a08b0887dbfda8f8042e42679c8f</id>
<content type='text'>
* Split out binding writing.

* Pass in the entry type.

* Take into account output type with -output-using-type
Added GPULikeBindRoot
Added dxbc-double-problem test.

* Add the dxbc-double-problem test.
</content>
</entry>
<entry>
<title>When using setUniform clamp the amount of data written to the buffer size. (#1181)</title>
<updated>2020-01-27T21:50:57+00:00</updated>
<author>
<name>jsmall-nvidia</name>
<email>jsmall@nvidia.com</email>
</author>
<published>2020-01-27T21:50:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=5c6ab6d5198ebff276da9cb8d3024802f22ba9f3'/>
<id>urn:sha1:5c6ab6d5198ebff276da9cb8d3024802f22ba9f3</id>
<content type='text'>
</content>
</entry>
<entry>
<title>WIP HLSL intrinsic coverage (#1171)</title>
<updated>2020-01-22T16:06:20+00:00</updated>
<author>
<name>jsmall-nvidia</name>
<email>jsmall@nvidia.com</email>
</author>
<published>2020-01-22T16:06:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=c74a700681b0be44a74f16b0f9eaad05bba159d2'/>
<id>urn:sha1:c74a700681b0be44a74f16b0f9eaad05bba159d2</id>
<content type='text'>
* Added hlsl-intrinsic test folder.
Enabled ceil as works across targets.

* log10 support.

* Fix float % on CPU/CUDA to match HLSL which is fmod (not fremainder).

* Added log10 tests back to scalar-float.slang

* Don't add the ( for $Sx - it's clearer what's going on without it.

* Works on CUDA/CPU. Problem with asint/asuint do not seem to be found.

* Only asuint exists for double.

* Support countbits on CUDA and C++.

* Fix typo in C++ population count.

* First pass at int vector intrinsic tests.

* Swizzle for int.

* Bit cast tests on CUDA.

* Fix warning on gcc.

* Fix bit-cast-double execution on CUDA.

* scalar-int test working on gcc release.
</content>
</entry>
<entry>
<title>Slang -&gt; CUDA kernel runs correctly in test infrastructure (#1167)</title>
<updated>2020-01-17T14:15:06+00:00</updated>
<author>
<name>jsmall-nvidia</name>
<email>jsmall@nvidia.com</email>
</author>
<published>2020-01-17T14:15:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=a8669ade5cb3add8b9ce08e2c3bd96e93190bca8'/>
<id>urn:sha1:a8669ade5cb3add8b9ce08e2c3bd96e93190bca8</id>
<content type='text'>
* First pass at BindLocation.

* Added BindSet::init - for initializing with two input constant buffers. Needs better name, and perhaps should be another class.

* Fix handling of constant buffer stripping.
Improved initialization.

* Trying to generalize BindLocation a little more.
Split out CPULikeBindRoot.

* More work to make BindLocation et al work with non uniform bindings.

* Added parsing to a location.

* WIP: Trying to get CPU working with BindLocation.

* Describe problem of knowing the type of the reference point in the binding table.

* More ideas on getBindings fix.

* Remove BindSet as member of BindLocation.

* Added BindLocation::Invalid

* Made BindLocation able to be key in hash

* Use BindLocation for bindings on BindingSet.

* Added cuda and nvrtc categories to test infrastructure.
Disabled CUDA synthetic tests by default.
Fixed such that all tests now produce something in BindLocation style.

* Use m_userIndex instead of m_userData on Resource.
Move the binding setup out of cpu-compute-util (as no longer CPU specific)

* Removed CPUBinding - used BindLocation/BindSet instead.
Fixed some bugs around indexOf around uniform indirection.

* Renamed BindSet::Resource -&gt; BindSet::Value.

* Document BindLocation.

* Fixes for Clang/GCC
Improve invariant requirement handling when constructing from BindPoints.

* WIP: First attempt to run CUDA kernel.

* Fix some issues around doing CUDA kernel launch.

* Fix issues around use of cudaMemCpy .

* Better cuda runtime error checking mechanism.

* Fixed bug in passing parameters to cuda kernel launch.
Simplified initialisation of context.

* WIP: Fix CUDA runtime issues.

* Add explicit CUDA synchronize so failures don't appear on implicit ones.

* Fix problem emitting non shared variable on CUDA.

* Fix some typos in CUDA layout.
Use just a pointer for now for CUDA StucturedBuffer.

* Arg order for CUDA launch was wrong.

* First compute kernel runs on CUDA.
</content>
</entry>
<entry>
<title>Bind Location (#1166)</title>
<updated>2020-01-15T19:58:45+00:00</updated>
<author>
<name>jsmall-nvidia</name>
<email>jsmall@nvidia.com</email>
</author>
<published>2020-01-15T19:58:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=662721ba4ab0e38924701df4c876a86eb8390968'/>
<id>urn:sha1:662721ba4ab0e38924701df4c876a86eb8390968</id>
<content type='text'>
* First pass at BindLocation.

* Added BindSet::init - for initializing with two input constant buffers. Needs better name, and perhaps should be another class.

* Fix handling of constant buffer stripping.
Improved initialization.

* Trying to generalize BindLocation a little more.
Split out CPULikeBindRoot.

* More work to make BindLocation et al work with non uniform bindings.

* Added parsing to a location.

* WIP: Trying to get CPU working with BindLocation.

* Describe problem of knowing the type of the reference point in the binding table.

* More ideas on getBindings fix.

* Remove BindSet as member of BindLocation.

* Added BindLocation::Invalid

* Made BindLocation able to be key in hash

* Use BindLocation for bindings on BindingSet.

* Added cuda and nvrtc categories to test infrastructure.
Disabled CUDA synthetic tests by default.
Fixed such that all tests now produce something in BindLocation style.

* Use m_userIndex instead of m_userData on Resource.
Move the binding setup out of cpu-compute-util (as no longer CPU specific)

* Removed CPUBinding - used BindLocation/BindSet instead.
Fixed some bugs around indexOf around uniform indirection.

* Renamed BindSet::Resource -&gt; BindSet::Value.

* Document BindLocation.

* Fixes for Clang/GCC
Improve invariant requirement handling when constructing from BindPoints.
</content>
</entry>
</feed>
