<feed xmlns='http://www.w3.org/2005/Atom'>
<title>slang.git/source/slang/slang-ir-lower-dynamic-resource-heap.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-08-06T22:56:27+00:00</updated>
<entry>
<title>Fix unused space discovery for bindless heap. (#8075)</title>
<updated>2025-08-06T22:56:27+00:00</updated>
<author>
<name>Yong He</name>
<email>yonghe@outlook.com</email>
</author>
<published>2025-08-06T22:56:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=de7ccaf127d8bb847a0ad25f45e8d1902dc1b958'/>
<id>urn:sha1:de7ccaf127d8bb847a0ad25f45e8d1902dc1b958</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix correct bindings for bindless resource model [SPIRV and GLSL] (#7131)</title>
<updated>2025-05-16T18:57:17+00:00</updated>
<author>
<name>ArielG-NV</name>
<email>159081215+ArielG-NV@users.noreply.github.com</email>
</author>
<published>2025-05-16T18:57:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=0244c96d637f47fa264d441a82d3dca78889373b'/>
<id>urn:sha1:0244c96d637f47fa264d441a82d3dca78889373b</id>
<content type='text'>
Fix correct bindings for bindless resource model [spirv and glsl]

fixes: #6952

Problem:
* Currently all bindless objects are placed in the same set (fine) and same binding (incorrect behavior for vulkan). This is incorrect since as per [spec](https://registry.khronos.org/vulkan/specs/latest/man/html/VkDescriptorType.html), only 1 resource type may be written to each index inside a set (these rules are loosened with VK_EXT_mutable_descriptor_type)
* This means currently generated bindings do not work in practice if we (for example) use `Sampler2D.Handle` and `Texture1D.Handle` in a shader since we would place 2 incompatible objects in the same binding-index and set.

Solution:
* `__getDynamicResourceHeap` was modified to allow bindings to chosen dynamically for a descriptor
* use `IOpaqueDescriptor` to check compile-time information of resource types so that we can identify different resources
* Using this information of `IOpaqueDescriptor`, we modify `defaultGetDescriptorFromHandle` to provide a binding model (1 resource per binding-index) which produces legal spirv/glsl.
* To support `VK_EXT_mutable_descriptor_type` the function `defaultGetDescriptorFromHandle` has a set of options (`BindlessDescriptorOptions`) for a user to pick-from to support their binding model. Capabilities are not used here for flexibility purposes (specifically old shaders mixed with modern vulkan extensions).

Other changes:
* Added `TexelBuffer` DescriptorKind to aid in generating correct bindings

* format code

* Add to docs bindless changes, make AccelerationStructure use its handle directly, adjust tests accordingly

---------

Co-authored-by: slangbot &lt;186143334+slangbot@users.noreply.github.com&gt;</content>
</entry>
<entry>
<title>Initial implementation of SP#015 `DescriptorHandle&lt;T&gt;`. (#6028)</title>
<updated>2025-01-10T18:57:04+00:00</updated>
<author>
<name>Yong He</name>
<email>yonghe@outlook.com</email>
</author>
<published>2025-01-10T18:57:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=5290c580632cfb56847b863a32dc020a21d1c93e'/>
<id>urn:sha1:5290c580632cfb56847b863a32dc020a21d1c93e</id>
<content type='text'>
* Initial implementation of `ResourcePtr&lt;T&gt;`.

* Update docs

* Fix build error.

* Add more discussion.

* Update documentation.

* Update TOC.

* Fix.

* Fix.

* Add test case for custom `getResourceFromBindlessHandle`.

* Add namehint to generated descriptor heap param.

* Fix.

* Fix.

* format code

* Rename to `DescriptorHandle`, and add `T.Handle` alias.

* Fix compiler error.

* Fix.

* Fix build.

* Renames.

* Fix documentation.

* Documentation fix.

---------

Co-authored-by: slangbot &lt;186143334+slangbot@users.noreply.github.com&gt;</content>
</entry>
</feed>
