<feed xmlns='http://www.w3.org/2005/Atom'>
<title>slang.git/source/slang/slang-emit-spirv-ops.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>2025-10-10T17:09:24+00:00</updated>
<entry>
<title>Addition of `Load`/`Store` coherent operations (#8395)</title>
<updated>2025-10-10T17:09:24+00:00</updated>
<author>
<name>16-Bit-Dog</name>
<email>67922228+16-Bit-Dog@users.noreply.github.com</email>
</author>
<published>2025-10-10T17:09:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=1e0908bd7107dfbdac912b693c3ab9bd6e1dc8b3'/>
<id>urn:sha1:1e0908bd7107dfbdac912b693c3ab9bd6e1dc8b3</id>
<content type='text'>
Fixes: https://github.com/shader-slang/slang/issues/7634
Duplicate of PR https://github.com/shader-slang/slang/pull/8052

Primary Changes:
* Added `storeCoherent` and `loadCoherent` for coherent load/store via
pointers. This is backed by `IRMemoryScopeAttr` which is an `IRAttr`
attached to `IRLoad` and `IRStore`
* Logic in `source\slang\slang-emit-spirv.cpp` for load/store emitting
has been reworked to be less messy and more maintainable
* Add to `hlsl.meta.slang` coop vector and coop matrix coherent
load/store operations

Secondary Changes:
* Added a missing load/store test for coop matrix:
`tests\cooperative-matrix\load-store-pointer.slang`

---------

Co-authored-by: ArielG-NV &lt;aglasroth@nvidia.com&gt;
Co-authored-by: ArielG-NV &lt;159081215+ArielG-NV@users.noreply.github.com&gt;
Co-authored-by: slangbot &lt;186143334+slangbot@users.noreply.github.com&gt;
Co-authored-by: Nathan V. Morrical &lt;natemorrical@gmail.com&gt;</content>
</entry>
<entry>
<title>Defer immutable buffer loads when emitting spirv. (#7579)</title>
<updated>2025-07-02T02:09:29+00:00</updated>
<author>
<name>Yong He</name>
<email>yonghe@outlook.com</email>
</author>
<published>2025-07-02T02:09:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=c701ec00ccce6dfa8094d6550ce2db929fc8cefe'/>
<id>urn:sha1:c701ec00ccce6dfa8094d6550ce2db929fc8cefe</id>
<content type='text'>
* Defer immutable buffer loads when emitting spirv.

* Fix.

* Fix.

* Fix.

* Fix tests.

* Fix test.</content>
</entry>
<entry>
<title>Implement MapElement for CoopMat (#7159)</title>
<updated>2025-05-29T23:36:49+00:00</updated>
<author>
<name>Jay Kwak</name>
<email>82421531+jkwak-work@users.noreply.github.com</email>
</author>
<published>2025-05-29T23:36:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=984d7f22f8a0909dc870c65bb927094c54f55402'/>
<id>urn:sha1:984d7f22f8a0909dc870c65bb927094c54f55402</id>
<content type='text'>
With this PR, MapElement works for the following signatures:
 - CoopMat&lt;...&gt;::MapElement(functype(...));
 - CoopMat&lt;...&gt;::MapElement(capturing-lambda);
 - CoopMat&lt;...&gt;::MapElement(not-capturing-lambda);
 - Tuple&lt;CoopMat&lt;...&gt;,...&gt;::MapElement(functype(...));
 - Tuple&lt;CoopMat&lt;...&gt;,...&gt;::MapElement(capturing-lambda);
 - Tuple&lt;CoopMat&lt;...&gt;,...&gt;::MapElement(not-capturing-lambda);</content>
</entry>
<entry>
<title>Support tensor addressing (#7060)</title>
<updated>2025-05-15T07:02:38+00:00</updated>
<author>
<name>Jay Kwak</name>
<email>82421531+jkwak-work@users.noreply.github.com</email>
</author>
<published>2025-05-15T07:02:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=49de1e8f60c698e9d524befacc988fb06574b234'/>
<id>urn:sha1:49de1e8f60c698e9d524befacc988fb06574b234</id>
<content type='text'>
This commit implements two new types and related Load/Store functions in CoopMat.

tensor_addrressing.TensorLayout
tensor_addressing.TensorView
CoopMat.Load(..., TensorLayout)
CoopMat.Load(..., TensorLayout, TensorView)
CoopMat.Store(..., TensorLayout)
CoopMat.Store(..., TensorLayout, TensorView)
CoopMat.Load(..., TensorLayout, TensorView)</content>
</entry>
<entry>
<title>Add new coopmat2 functions: Reduce and Transpose (#7027)</title>
<updated>2025-05-15T03:47:43+00:00</updated>
<author>
<name>Jay Kwak</name>
<email>82421531+jkwak-work@users.noreply.github.com</email>
</author>
<published>2025-05-15T03:47:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=2580bb02f7a079ab1c0106b5960a21ed1627bca0'/>
<id>urn:sha1:2580bb02f7a079ab1c0106b5960a21ed1627bca0</id>
<content type='text'>
This commit adds three new functions for CoopMat as described in the proposal document,

Cooperative matrix 2 proposal spec#12
The new functions are:

CoopMat&lt;T,S,M,N,R&gt;::Transpose
CoopMat&lt;T,S,M,N,R&gt;::ReduceRow
CoopMat&lt;T,S,M,N,R&gt;::ReduceColumn
CoopMat&lt;T,S,M,N,R&gt;::ReduceRowAndColumn
CoopMat&lt;T,S,M,N,R&gt;::Reduce2x2</content>
</entry>
<entry>
<title>Add cooperative matrix 1 support (#6565)</title>
<updated>2025-04-15T21:57:45+00:00</updated>
<author>
<name>Darren Wihandi</name>
<email>65404740+fairywreath@users.noreply.github.com</email>
</author>
<published>2025-04-15T21:57:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=d0b6a0b1ab49b5958015f31364c5ad73d9cd03eb'/>
<id>urn:sha1:d0b6a0b1ab49b5958015f31364c5ad73d9cd03eb</id>
<content type='text'>
* initial wip for spirv

* working tiled example

* clean up store and load

* minor fixes

* fix loadAny name

* add initial tests, including broken/unimplemented intrinsics

* fix subscript

* run tests at 16x16, remove not supported arithmetic tests

* minor fixups on implementation

* rename CoopMatMatrixUse

* Update tests to pass validation layers locally

* Add mat-mul-add test and minor fixes

* Add more tests

* Remove dead code

* Add coopMatLoad function and tests, enforce constexpr for matrix layout

* Use getVectorOrCoopMatrixElementType in place of getVectorElementType</content>
</entry>
<entry>
<title>Update SPIRV-Tools and fix new validation errors. (#6511)</title>
<updated>2025-03-06T22:26:34+00:00</updated>
<author>
<name>Yong He</name>
<email>yonghe@outlook.com</email>
</author>
<published>2025-03-06T22:26:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=4485cf3eaf142cfd5f8470e86739acc67d4e12ea'/>
<id>urn:sha1:4485cf3eaf142cfd5f8470e86739acc67d4e12ea</id>
<content type='text'>
* Update SPIRV-Tools and fix new validation errors.

* Implement pointers for glsl target.

* Reworked packStorage/unpackStorage code gen to operate on pointers rather than values.</content>
</entry>
<entry>
<title>Support cooperative vector (#6223)</title>
<updated>2025-01-30T08:59:49+00:00</updated>
<author>
<name>Jay Kwak</name>
<email>82421531+jkwak-work@users.noreply.github.com</email>
</author>
<published>2025-01-30T08:59:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=ba9b2785c69c1b8c6d2b4103267b5281815f9f23'/>
<id>urn:sha1:ba9b2785c69c1b8c6d2b4103267b5281815f9f23</id>
<content type='text'>
* Support cooperative vector without Vulkan-header update

Adding a Slang support for cooperative vector.
But this commit doesn't have Vulkan-header update.
</content>
</entry>
<entry>
<title>Support a storage class, NodePayloadAMDX, for SPIRV work-graphs (#6052)</title>
<updated>2025-01-10T04:49:25+00:00</updated>
<author>
<name>Jay Kwak</name>
<email>82421531+jkwak-work@users.noreply.github.com</email>
</author>
<published>2025-01-10T04:49:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=55ff4686e5685c414d82f16b9c1a4a331bd4f853'/>
<id>urn:sha1:55ff4686e5685c414d82f16b9c1a4a331bd4f853</id>
<content type='text'>
In order to unblock experiments with SPIRV work-graphs, Slang
needs to support the storage class, `NodePayloadAMDX`.

Note that this commit is only to support a storage class,
`NodePayloadAMDX`. There are many parts required for work-graphs
hasn't been implemented yet.

The implementation of `DispatchNodeInputRecord` is not required, but it
is implemented mostly for a testing purpose.

Closes #6049

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>
</feed>
