<feed xmlns='http://www.w3.org/2005/Atom'>
<title>slang.git/tools/render-test/shader-renderer-util.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>2025-06-18T17:38:31+00:00</updated>
<entry>
<title>Fix additional VVL violations (#7377)</title>
<updated>2025-06-18T17:38:31+00:00</updated>
<author>
<name>Gangzheng Tong</name>
<email>tonggangzheng@gmail.com</email>
</author>
<published>2025-06-18T17:38:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=3822f9243f7b80be4c47318cf3d0b8d9800e67dd'/>
<id>urn:sha1:3822f9243f7b80be4c47318cf3d0b8d9800e67dd</id>
<content type='text'>
* fix: add sampleCount and mipMaps to st2DMS_f32v4
Fix VUID-VkImageCreateInfo-samples-02257:
The Vulkan spec states: If an OpTypeImage has an MS operand 1,
its bound image must not have been created with
VkImageCreateInfo::samples as VK_SAMPLE_COUNT_1_BIT

* Fix VUID-VkShaderModuleCreateInfo-pCode-08740

Rename VK_KHR_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME
to VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME

* fix: add sampleCount and mipMaps to st2DMS_f32v4
Fix VUID-VkImageCreateInfo-samples-02257:
The Vulkan spec states: If an OpTypeImage has an MS operand 1,
its bound image must not have been created with
VkImageCreateInfo::samples as VK_SAMPLE_COUNT_1_BIT

* Fix VUID-VkShaderModuleCreateInfo-pCode-08740

Rename VK_KHR_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME
to VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME

* Fix VUID-vkCmdDispatch-None-06479
Use correct format for combined depth texture.

* Fix VUID-vkCmdDispatch-format-07753 by setting format
Parse filtering mode for sampler because the RGBA8* formats do not
support linear filtering

* Create MS texture type for sample count &gt; 1

* Use different texture formats for depth compare and gather ops

* Use clearTexture for init the data for MS textures</content>
</entry>
<entry>
<title>update slang-rhi (#6587)</title>
<updated>2025-04-24T08:23:06+00:00</updated>
<author>
<name>Simon Kallweit</name>
<email>64953474+skallweitNV@users.noreply.github.com</email>
</author>
<published>2025-04-24T08:23:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=ae1a5e40880808252c68eb51e44051b32a34d399'/>
<id>urn:sha1:ae1a5e40880808252c68eb51e44051b32a34d399</id>
<content type='text'>
* update slang-rhi submodule

* slang-rhi API changes

* disable agility sdk

* fix texture creation

* update formats in tests

* Extent3D rename

* use 1 mip level for 1D textures for Metal

* fix texture upload

* update to latest slang-rhi

* update slang-rhi

* format code

* update slang-rhi

* do not run texture-intrinsics test on metal

* update slang-rhi

* deal with failing tests

* fix more tests

* update slang-rhi

---------

Co-authored-by: slangbot &lt;186143334+slangbot@users.noreply.github.com&gt;
Co-authored-by: Simon Kallweit &lt;simon.kallweit@gmail.com&gt;</content>
</entry>
<entry>
<title>Move switch statement bodies to their own lines (#5493)</title>
<updated>2024-11-05T17:47:26+00:00</updated>
<author>
<name>Ellie Hermaszewska</name>
<email>ellieh@nvidia.com</email>
</author>
<published>2024-11-05T17:47:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=b118451e301d734e3e783b3acdf871f3f6ea851c'/>
<id>urn:sha1:b118451e301d734e3e783b3acdf871f3f6ea851c</id>
<content type='text'>
* Move switch statement bodies to their own lines

* format

---------

Co-authored-by: Yong He &lt;yonghe@outlook.com&gt;</content>
</entry>
<entry>
<title>format</title>
<updated>2024-10-29T06:49:26+00:00</updated>
<author>
<name>Ellie Hermaszewska</name>
<email>ellieh@nvidia.com</email>
</author>
<published>2024-10-29T06:49:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=f65d756bff8d4c5cbc15bd0322a2ae8e6b896a21'/>
<id>urn:sha1:f65d756bff8d4c5cbc15bd0322a2ae8e6b896a21</id>
<content type='text'>
* format

* Minor test fixes

* enable checking cpp format in ci</content>
</entry>
<entry>
<title>Update slang-rhi (#5187)</title>
<updated>2024-09-30T17:24:01+00:00</updated>
<author>
<name>Simon Kallweit</name>
<email>64953474+skallweitNV@users.noreply.github.com</email>
</author>
<published>2024-09-30T17:24:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=bc11579dd998224bcb429d88aeb07d49e2217a35'/>
<id>urn:sha1:bc11579dd998224bcb429d88aeb07d49e2217a35</id>
<content type='text'>
* update slang-rhi

* fix render-test

* update slang-rhi

---------

Co-authored-by: Yong He &lt;yonghe@outlook.com&gt;</content>
</entry>
<entry>
<title>refactor render test to use latest slang-rhi (#5119)</title>
<updated>2024-09-19T15:16:48+00:00</updated>
<author>
<name>Simon Kallweit</name>
<email>64953474+skallweitNV@users.noreply.github.com</email>
</author>
<published>2024-09-19T15:16:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=3861be7ce5bd3ffc1bc60f2c3f7f41647145d575'/>
<id>urn:sha1:3861be7ce5bd3ffc1bc60f2c3f7f41647145d575</id>
<content type='text'>
* refactor render test to use latest slang-rhi

* update slang-rhi

* update slang-rhi

* update slang-rhi

* update slang-rhi</content>
</entry>
<entry>
<title>Draft: integrate slang-rhi (#4970)</title>
<updated>2024-08-30T16:50:19+00:00</updated>
<author>
<name>Simon Kallweit</name>
<email>64953474+skallweitNV@users.noreply.github.com</email>
</author>
<published>2024-08-30T16:50:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=f428a058ea48535a323c32d206ebc7e551c3c3e9'/>
<id>urn:sha1:f428a058ea48535a323c32d206ebc7e551c3c3e9</id>
<content type='text'>
* add slang-rhi submodule

* refactor render-test to use slang-rhi and remove OpenGL support

* remove -vk -glsl tests

* remove gl test

* disable failing test

* allow recursive submodules in github actions

* update slang-rhi

* update slang-rhi

---------

Co-authored-by: Yong He &lt;yonghe@outlook.com&gt;</content>
</entry>
<entry>
<title>Implement GLSL gimageDim &amp; memory qualifiers with optional extension(s); resolves #3587 for GLSL &amp; SPIR-V targets #3631 (#3810)</title>
<updated>2024-03-26T20:07:32+00:00</updated>
<author>
<name>ArielG-NV</name>
<email>159081215+ArielG-NV@users.noreply.github.com</email>
</author>
<published>2024-03-26T20:07:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=0877d1a3e9d69fdbf4087581df96954e56e4dd97'/>
<id>urn:sha1:0877d1a3e9d69fdbf4087581df96954e56e4dd97</id>
<content type='text'>
* [early push of code since memory qualifiers may be made into a seperate branch &amp; pr and I rather make it simple to split the implementation if required]

all type &amp; functions impl. for GLSL image type

added all memory qualifiers &amp; tests for direct read/write [GLSL syntax] (DID NOT test or implement parameter qualifiers, that is next commit)
* this inlcudes emit-glsl &amp; emit-spirv for qualifier decorations
* this also includes error handling
* this includes parsing

* full implementation other than Rect; all errors and basic tests are done &amp; working

what is left:
1. need to now add Rect type support (additional TextureImpl flag)
2. tests
3. testing infrastructure to support variety of types

* testing framework now works with images of all types and imageBuffers -- next steps are actual tests

* push code for mostly working image atomics; missing int64/uint64 tests and slightly broken feature

likley due to missing code from master which I pushed for regular atomics

* fix all remaining shader image atomic issues and tests to work with float &amp; i64/u64 fully

will now clean up code and squash the commits (since they are quite all over the place)

* refactor code to work &amp; look correct, fix all regressions

Turned off tests for texture format R64 due to the shader use limitation of currently being only for storage buffers on most hardware (test fail cause, this is not allowed)

Changed raygen.slang &amp; nv-ray-tracing-motion-blur.slang since both cross-compiled with glslang, which does not respect layout(rgba8) for RWBuffer's, in this scenario making the type into a SPIR-V rgba32f, which is incorrect and a known problem, this causes different code to be outputted from Slang &amp; HLSL+GLSL-&gt;Slang paths

Clean up all code and better explain the "why" for the gimageDim definition we use various strings of Slang code, the gist is:
1. Parameters are structured as per IMAGE_PARAM keyword in spec, and we respect this in order to match specification (to allow easy code iteration)
2. sample parameters are required for functions
3. types are inconsistently named

fixed regression of breaking l-value lowering when r-value should be lowered (lower-to-ir)

fix compiler warnings

remove unneeded lambdas

`expr-&gt;type.isLeftValue = isMutableGLSLBufferBlockVarExpr(baseExpr) &amp;&amp; (expr-&gt;type.hasReadOnlyOnTarget == false);` is an adjustment made such that a buffer block is mutable only if the block is mutable and the base expression is mutable (to handle case of readonly buffer block, immutable)

* remove rectangle parameter

* use proper const syntax and struct naming

* adjust syntax

* adjust modifier capabilitites: HLSL+GLSL --&gt; GLSL. Notice most specifically, if the parent is a global struct we can put a memory qualifier, this does not include, struct inside a struct, with a member variable with a memory qualifier (since then you could use the struct in invalid ways). Added test for struct inside struct with member variable with memory qualifier.

adjust syntax and remove code which will rot

* adjust formatting for consistency

* addressing review feedback

addressing review feedback:

change testing code to handle int and float/half correctly in all cases

adjust testing code syntax as requested

change vkdevice code to fit a different form as requested

* adjust code as per requested for review:

1. adjusted testing code logic to handle non 0-1 values appropriately, notice int8_t will likley be the range and set order of {[0,127],[-1,-128]}, this is intentional
2. syntax adjustments for correctness

* trying to fix falcor regressions

* add back removed code for regression testing

* test removing changes which may break falcor

* Revert "test removing changes which may break falcor"

This reverts commit 240da97f06c23e98a26ac23cf1d385995c67b251.

* disable R64 support in attempt to fix falcor tests

* Revert "disable R64 support in attempt to fix falcor tests"

This reverts commit 317cb632eb2f47e980fc4aeafe418f8060f4c473.

* disable major device changes (still trying to figure out falcor fails -- locally working different than CI)

* test removing d3d changes

* remove all format changes

* add back removed code for regression testing

* try something to get code to work with falcor

* address review

* Add way to handle constref/ref/encapsulated texture objects with memory qualifiers as a parameter.

Fixed an issue (and improved codegen) for when we have a store(dst,load(src)) pattern, where dst is supposed to be equal to src for when resolving globalParam's (no need for work-arounds anymore)

* move recent-fix/change to textureType loading into a proper optimization pass which now runs after SPIR-V legalization to catch odd SPIR-V emitting after legalizing types for SPIR-V

* Revert most recent optimization pass change, add work around getting a unmangled global parameter address through a intrinsic op instead of spir-v intrinsic (works same as `__imagePointer()`)

* remove unneeded changes

* remove unneeded `__constref` in glsl.meta

* move memory qualifier checks to visitInvoke of check-expr.cpp

move GetLegalizedSPIRVGlobalParamAddr resolving to spirv-legalization pass

move error for "if using non texture type with memory qualifer in param" earlier such that we error with this first. No point in telling user "you are not putting correct memory qualifiers" when memory qualifiers should not have been used.

* add memory qualifier folding modifier 'MemoryQualifierCollectionModifier' to reduce searching and processing (later will be adapted to whole system) as suggested/asked.

The utility is a method to track memory qualifiers without doing a expensive linked-list traversal (image's have 4 modifiers normally).

* properly pass multiple qualifiers from checkModifier down to the `modifier`s list

* addressing review comments:

* change implementation to properly handle restrict modifier

* add comments about implementation for clarity</content>
</entry>
<entry>
<title>Expanded gfx::Format to include additional formats (#1982)</title>
<updated>2021-10-26T23:30:59+00:00</updated>
<author>
<name>lucy96chen</name>
<email>47800040+lucy96chen@users.noreply.github.com</email>
</author>
<published>2021-10-26T23:30:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=dcc2b854a64b3e4e890215ff21cf4b219724f524'/>
<id>urn:sha1:dcc2b854a64b3e4e890215ff21cf4b219724f524</id>
<content type='text'>
* Format list updated with additional formats supported by both D3D and Vulkan; D3DUtil::getMapFormat() and VkUtil::getVkFormat() updated to include additional formats; GFX_FORMAT() updated with all additional formats (BC compression unfinished)

* Finished updating GFX_FORMAT with newly added formats and sizes; Pixel size is now tracked using the FormatPixelSize struct containing the values for bytes per block and pixels per block to accomodate BC formats; Updated gfxGetFormatSize and associated sub-calls to return FormatPixelSize instead of uint8_t; Most calls to gfxGetFormatSize() updated to reflect changes, a couple calls still unupdated

* Changes to accommodate new formats finished, debugging slang-literal unit test

* First format unit test working

* One test added for BC1Unorm and RGBA8Unorm_SRGB, both passing

* Refactored format testing code to merge BC1Unorm and RGBA8Unorm SRGB into a single file

* All unit tests added for BC and Srgb formats

* Most tests added and working; Added five additional formats (still need tests) and made the appropriate changes to support these; createTextureView() modified for D3D11, D3D12, and Vulkan to take into account the format specified in the texture view desc when the texture's format is typeless

* Format enums renamed to more closely match their D3D counterparts; Added a universal float and uint buffer and buffer view for use across all Format tests

* Remaining tests added; D3D12 tests pass, but Vulkan crashes in BC1_UNORM and D3D11 spits out a bunch of D3D11 Errors (but supposedly passes)

* re-run premake

* Added Sint versions of test shaders; Vulkan and D3D11 tests also pass

* Size struct for format unit tests no longer use initializer lists

* Fixed a Size struct missed in the previous pass

* Fixed minor bugs causing tests to fail

* Added documentation detailing all currently unsupported formats

* Skip tests causing unsupported format warnings due to swiftshader

* updated several test using old Format enum names

* Revert change to compareComputeResult() that was added for debugging purposes

* DEBUGGING: Added prints to identify which formats are failing on CI

* Reverted attempted debugging changes; Fixed texture2d-gather.hlsl to use updated Format enums

* Fixed incorrect array sizes in d3d11 _initSrvDesc()

* Commented out further tests that produce unexpected results when tested for Vulkan with swiftshader

* Revert "Merge branch 'expanded-format-support' of https://github.com/lucy96chen/slang into expanded-format-support"

This reverts commit 20008f0d3ecc3b1405ecac8c138edaa3cd37ed6b, reversing
changes made to 6081e95827315fee50e18409394d5abd62fac787.

* Added a fuzzy comparison function for use with floats

* submodule update

* Revert messed up changes caused by previous revert after automatically merging on github</content>
</entry>
<entry>
<title>Half texture support (#1836)</title>
<updated>2021-05-06T16:45:00+00:00</updated>
<author>
<name>jsmall-nvidia</name>
<email>jsmall@nvidia.com</email>
</author>
<published>2021-05-06T16:45:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=e510a287deb25f2542a68bf21382f2557740d70c'/>
<id>urn:sha1:e510a287deb25f2542a68bf21382f2557740d70c</id>
<content type='text'>
* #include an absolute path didn't work - because paths were taken to always be relative.

* Split out StringEscapeUtil.

* Added StringEscapeUtil.

* Fix typo in unix quoting type.

* Small comment improvements.

* Try to fix linux linking issue.

* Fix typo.

* Attempt to fix linux link issue.

* Update VS proj even though nothing really changed.

* Fix another typo issue.

* Fix for windows issue.
Fixed bug.

* Make separate Utils for escaping.

* Fix typo.

* Split out into StringEscapeHandler.

* Windows shell does handle removing quotes (so remove code to remove them).

* Handle unescaping if not initiating using the shell.

* Slight improvement around shell like decoding.

* Simplify command extraction.

* Add shared-library category type.

* Fix bug in command extraction.

* Typo in transcendental category.

* Enable unit-test on in smoke test category.

* Make parsing failing output as a failing test.

* Fixes for transcendental tests. Disable tests that do not work.

* Changed category parsing.

* Removed the TestResult parameter from _gatherTestsForFile.
Made testsList only output.

* Remove testing if all tests were disabled.

* Make args of CommandLine always unescaped.

* Add category.

* Don't need escaping on unix/linux.

* Remove some no longer used functions.

* Add requireSMVersion to CUDAExtensionTracker.

* half-calc.slang now works for CUDA.

* bit-cast-16-bit works on CUDA.

* WIP handling of CUDA vector&lt;half&gt; types.

* Half swizzle CUDA.

* Half vector test.

* Fix swizzle half bug.

* Fix compilation issue with narrowing to Index.

* Add unary ops.

* Add some vector scalar maths ops.

* Add half vector conversions for CUDA.

* Fix erroneous comment.

* Support for half comparisons.

* First pass test for half compare.

* Fix bug in CUDA specialized emit control.
Updated tests to have pre and post inc/dec.

* Removed unneeded parts of the cuda prelude.

* Half structured buffer works on CUDA.

* Added name lookup for Gfx::Format

* Support half texture type in test system.

* Test for half reading on CUDA.

* Add half formats to Vk and D3D utils.

* Fix getAt for CUDA - where there might not be a .x member in a vector.</content>
</entry>
</feed>
