<feed xmlns='http://www.w3.org/2005/Atom'>
<title>slang.git/tests/compute/bit-cast.slang, 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>2020-01-22T16:06:20+00:00</updated>
<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>Remove support for explicit register/binding syntax on TEST_INPUT (#1132)</title>
<updated>2019-11-21T22:06:19+00:00</updated>
<author>
<name>Tim Foley</name>
<email>tfoleyNV@users.noreply.github.com</email>
</author>
<published>2019-11-21T22:06:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=2ea64ff4f2c7c43b72ff24650330fca79a87500f'/>
<id>urn:sha1:2ea64ff4f2c7c43b72ff24650330fca79a87500f</id>
<content type='text'>
The `TEST_INPUT` facility allows textual Slang test cases to provide two kinds of information to the `render-test` tool:

1. Information on what shader inputs exist
2. Information on what values/objects to bind into those shader inputs

Under the first category of information, there exists supporting for attaching a `dxbinding(...)` annotation to a `TEST_INPUT` which seemingly indicates what HLSL `register` the input uses. There is a similar `glbinding(...)` annotation, used for OpenGL and Vulkan.

It turns out that these annotations were, in practice, completely ignored and had no bearing on how `render-test` allocates or bindings graphics API objects. There was some amount of code attempting to validate that explicit registers/bindings were being set appropriately, but the actual values were being ignored.

The visible consequence of the `dxbinding` and `glbinding` annotations being ignored is issue #1036: the order of `TEST_INPUT` lines was *de facto* determining the registers/bindings that were being used by `render-test`.

This change simply removes the placebo features and strips things down to what is implemented in practice: the `TEST_INPUT` lines do not need target-API-specific binding/register numbers, because their order in the file implicitly defines them.

I added logic to the parsing of `TEST_INPUT` lines to make sure I got an error message on any leftover annotations, and went ahead and systematicaly deleted all of the placebo annotations from our test cases.

If we decide to make `TEST_INPUT` lines *not* depend on order of declaration in the future, we can build it up as a new and better considered feature.

The main alternative I considered was to keep the annotations in place, and change `render-test` and the `gfx` abstraction layer to properly respect them, but that path actually creates much more opportunity for breakage (since every single test case would suddenly be specifying its root signature / pipeline layout via a different path using data that has never been tested). The approach in this change has the benefit of giving me high confidence that all the test cases continue to work just as they had before.</content>
</entry>
<entry>
<title>WIP: Compute test running on CPU (#1023)</title>
<updated>2019-08-19T18:08:57+00:00</updated>
<author>
<name>jsmall-nvidia</name>
<email>jsmall@nvidia.com</email>
</author>
<published>2019-08-19T18:08:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=dc6d0417b137c8ecdcb3b99b7624358bba7fefa8'/>
<id>urn:sha1:dc6d0417b137c8ecdcb3b99b7624358bba7fefa8</id>
<content type='text'>
* * Simplify some of test code around CPPCompiler
* Test using 'callable' with pass-through
* Small cpu doc improvements

* Improvements to Clang output parsing.

* Remove temporary file (base filename) .

* Improve handling of external errors - handle severity.

* On error dumping out to 'actual' file for runCPPCompilerCompile.

* Small fixes.
Set the source language type correctly for pass thru.

* Remove warning for test for clang backend c

* Preliminary work around making render-test compute potentiall work with CPU.
Made ShaderCompiler -&gt; a stateless ShaderCompilerUtil.
Means we don't require a Renderer interface to do shader compilation.

* Refactor such that CPU test can take place in without Window or Renderer.

* Hack to look for prelude in source file directory.
Fix bug returning the SharedLibrary for HostCallable.

* Compute test running on CPU.

* Need the prelude currently in same directly as test.

* Hack to remove warning - that then produces an error on appveyor build.
Disable running render CPU test on non-windows.

* Improve handling of disabling CPU tests on linux.

* Added bit-cast.slang working on CPU.
</content>
</entry>
<entry>
<title>* Add 'identity' version of bit casts (asint, asuint, asfloat) for scalar and vector (#864)</title>
<updated>2019-02-27T15:38:51+00:00</updated>
<author>
<name>jsmall-nvidia</name>
<email>jsmall@nvidia.com</email>
</author>
<published>2019-02-27T15:38:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=3fc4813449f40872cff2320e66785619376cd119'/>
<id>urn:sha1:3fc4813449f40872cff2320e66785619376cd119</id>
<content type='text'>
* Added identity bit casts for matrix (cos no op). We don't support matrix asint on glsl targets
* Added tests in bit-cast.slang</content>
</entry>
<entry>
<title>* Improve test coverage of bit cast, particularly for asfloat. Make the values being cast between valid floats. (#832)</title>
<updated>2019-02-08T00:37:26+00:00</updated>
<author>
<name>jsmall-nvidia</name>
<email>jsmall@nvidia.com</email>
</author>
<published>2019-02-08T00:37:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=23b36c5cb10c820c0b0f66000711d1013bc009f3'/>
<id>urn:sha1:23b36c5cb10c820c0b0f66000711d1013bc009f3</id>
<content type='text'>
* Typo fix</content>
</entry>
<entry>
<title>Feature/bit cast glsl (#808)</title>
<updated>2019-01-28T17:28:05+00:00</updated>
<author>
<name>jsmall-nvidia</name>
<email>jsmall@nvidia.com</email>
</author>
<published>2019-01-28T17:28:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=df9dc5710725d00630831b77ca7005e390383aa6'/>
<id>urn:sha1:df9dc5710725d00630831b77ca7005e390383aa6</id>
<content type='text'>
* First attempt at asint, asuint, asfloat intrinsics.

* Test with countbits

* Placing glsl definitions first makes them get picked up.

* Some more improvements around asint.

* Add support for vector versions of asint/asunit

* Fix some typos in asuint/asint intrinsics for glsl.
Simplified and increased coverage of as/u/int tests.

* Added bit-cast-double test.
Added notional support for asdouble bit casts to glsl - but couldn't test because glslang doesn't seem to support the extension.

* Try to get double bit casts working - doesn't work cos of block issue.

* Only output parents on intrinic replacement if return type is not void.
</content>
</entry>
</feed>
