<feed xmlns='http://www.w3.org/2005/Atom'>
<title>slang.git/tools/render-test/cpu-compute-util.h, 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>COM-ify all slang-gfx interfaces. (#1656)</title>
<updated>2021-01-14T23:48:54+00:00</updated>
<author>
<name>Yong He</name>
<email>yonghe@outlook.com</email>
</author>
<published>2021-01-14T23:48:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=f834f25794cfb746079e92d58c7410b767c57208'/>
<id>urn:sha1:f834f25794cfb746079e92d58c7410b767c57208</id>
<content type='text'>
* COM-ify all slang-gfx interfaces.</content>
</entry>
<entry>
<title>Support CUDA bindless texture in dynamic dispatch code. (#1575)</title>
<updated>2020-10-09T18:29:11+00:00</updated>
<author>
<name>Yong He</name>
<email>yonghe@outlook.com</email>
</author>
<published>2020-10-09T18:29:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=fab1c9f4c745ba84983c2448646376799d461e96'/>
<id>urn:sha1:fab1c9f4c745ba84983c2448646376799d461e96</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Support dynamic existential shader parameters in render-test (#1525)</title>
<updated>2020-09-01T20:47:26+00:00</updated>
<author>
<name>Yong He</name>
<email>yonghe@outlook.com</email>
</author>
<published>2020-09-01T20:47:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=5c56479c7b742f94ebf4a97d93826b2a5e4f279d'/>
<id>urn:sha1:5c56479c7b742f94ebf4a97d93826b2a5e4f279d</id>
<content type='text'>
* Support dynamic existential shader parameters in render-test

* Fix linux build error.

* Fixes.

* Fix code review issues.

* Fix gcc error.

* More fixes.

* More fixes.</content>
</entry>
<entry>
<title>CUDA version handling (#1301)</title>
<updated>2020-03-30T23:23:09+00:00</updated>
<author>
<name>jsmall-nvidia</name>
<email>jsmall@nvidia.com</email>
</author>
<published>2020-03-30T23:23:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=ea7690558bca71ce3a9453adff4e0135352a352f'/>
<id>urn:sha1:ea7690558bca71ce3a9453adff4e0135352a352f</id>
<content type='text'>
* render feature for CUDA compute model.

* Use SemanticVersion type.

* Enable CUDA wave tests that require CUDA SM 7.0.
Provide mechanism for DownstreamCompiler to specify version numbers.

* Enabled wave-equality.slang

* Make CUDA SM version major version not just a single digit.

* Fix assert.

* DownstreamCompiler::Version -&gt; CapabilityVersion</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>
<entry>
<title>Setup of runtime cuda device (#1162)</title>
<updated>2020-01-08T16:09:20+00:00</updated>
<author>
<name>jsmall-nvidia</name>
<email>jsmall@nvidia.com</email>
</author>
<published>2020-01-08T16:09:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=cae5ddd4a2c9343ec7367c9049c5cc0c8628a9c4'/>
<id>urn:sha1:cae5ddd4a2c9343ec7367c9049c5cc0c8628a9c4</id>
<content type='text'>
* CUDA generated first test compiles.

* WIP on enabling CUDA in render-test.

* Detect CUDA_PATH environmental variable to build build cuda support into render-test.
Added WIP cuda-compute-util.cpp/h
Added  CUDA as a renderer type.

* Fix libraries needed for cuda in premake.

* Added -enable-cuda premake option. Defaults to false.

* Creates CUDA device, loads PTX and finds entry point.

* Fix some erroneous cruft from slang-cuda-prelude.h
</content>
</entry>
<entry>
<title>Simple test profiling (#1062)</title>
<updated>2019-09-23T19:38:25+00:00</updated>
<author>
<name>jsmall-nvidia</name>
<email>jsmall@nvidia.com</email>
</author>
<published>2019-09-23T19:38:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=05af41d21d74d24871507e6f8f50574ea08c48a2'/>
<id>urn:sha1:05af41d21d74d24871507e6f8f50574ea08c48a2</id>
<content type='text'>
* First pass support for performance profiling

* Test across all elements

* Fix bug - sourceContents is not used, should use rawSource.

* * Add ability to get prelude from API.
* Allow specifying source language for render-test
* Made it possible to compile a test input file as C++
  * Special handling for reflection
* Added C++ impl to performance-profile.slang

* Remove some clang warnings.

* Output profile timings on appveyor and other TC.

* Remove passing around of StdWriters (can use global).
Small comment improvements.
</content>
</entry>
<entry>
<title>Improvements to testing and ABI for CPU  (#1057)</title>
<updated>2019-09-18T15:40:59+00:00</updated>
<author>
<name>jsmall-nvidia</name>
<email>jsmall@nvidia.com</email>
</author>
<published>2019-09-18T15:40:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=31c7abcc27a33d63ac8d335387a0ce7b3ad74954'/>
<id>urn:sha1:31c7abcc27a33d63ac8d335387a0ce7b3ad74954</id>
<content type='text'>
* WIP: Improving CPU performance/ABI

* Optionally output code on CPU for groupThreadID and groupID.

* Added ability to set compute dispatch size on command line for render-test.
Dispatch compute tests taking into account dispatch size.
Added test for semantics are working.

* Test using GroupRange.

* Fix problem with adding \n for externa diagnostic - to do it if there isn't a \n at the end. Change the ouput order (put result before) so last value is diagnostic string.

* Made GroupRange the default exposed CPU ABI entry point style.
Removed CPU_EXECUTE test style -as tested via the now cross platform render-test

* Split out execution from setup for execution to improve perf.

* For better code coverage/testing test all styles of CPU compute entry point.

* Improve documentation for ABI changes for CPU code.
Add 'expecting' to error message from review.

* Fix small typos.
</content>
</entry>
</feed>
