<feed xmlns='http://www.w3.org/2005/Atom'>
<title>slang.git/source/slang/slang-emit-glsl.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-04-21T18:46:23+00:00</updated>
<entry>
<title>Add `vk::offset` to specify member offsets for push constants (#6797)</title>
<updated>2025-04-21T18:46:23+00:00</updated>
<author>
<name>Darren Wihandi</name>
<email>65404740+fairywreath@users.noreply.github.com</email>
</author>
<published>2025-04-21T18:46:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=62baf92a524a5b57eb465100a5e47c489c049f15'/>
<id>urn:sha1:62baf92a524a5b57eb465100a5e47c489c049f15</id>
<content type='text'>
* Add struct member offset qualifier for SPIRV

* Implement for GLSL target and add tests

* clean up

* fix formatting

* fix typo

* renamed GLSLStructOffset to VkStructOffset and added emit-spirv-via-glsl test case</content>
</entry>
<entry>
<title>Add support for WGSL subgroup operations (#6213)</title>
<updated>2025-02-02T20:27:11+00:00</updated>
<author>
<name>Darren Wihandi</name>
<email>65404740+fairywreath@users.noreply.github.com</email>
</author>
<published>2025-02-02T20:27:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=0a6828572aa4cc1f0f99993e77c321799eb88cca'/>
<id>urn:sha1:0a6828572aa4cc1f0f99993e77c321799eb88cca</id>
<content type='text'>
* initial work

* more work

* more work on glsl intrinsics

* add subgroup broadcast for glsl

* wip add wgsl extension tracking

* enable tests, enable extensions and added some todos

* format and warning fixes

* fix wgsl extension tracker

---------

Co-authored-by: Yong He &lt;yonghe@outlook.com&gt;</content>
</entry>
<entry>
<title>Implement Quad Control intrinsics (#5981)</title>
<updated>2025-01-18T07:07:16+00:00</updated>
<author>
<name>Darren Wihandi</name>
<email>65404740+fairywreath@users.noreply.github.com</email>
</author>
<published>2025-01-18T07:07:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=a85c350df03c6cdf9b433f58fc0e66affda03e9e'/>
<id>urn:sha1:a85c350df03c6cdf9b433f58fc0e66affda03e9e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Bit extract (#5847)</title>
<updated>2024-12-12T22:50:44+00:00</updated>
<author>
<name>kaizhangNV</name>
<email>149626564+kaizhangNV@users.noreply.github.com</email>
</author>
<published>2024-12-12T22:50:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=78c9bd1c2fbd55889e62a2032e9bc96684ced3b5'/>
<id>urn:sha1:78c9bd1c2fbd55889e62a2032e9bc96684ced3b5</id>
<content type='text'>
* promoting bitfield extraction and insertion to become intrinsics for internal compiler use

* removing duplicate intrinsics from glsl.meta.slang

* refactor: update function signatures of bitfield extraction and insertion to use uint as the parameter type for offset and bits.

---------

Co-authored-by: Nate Morrical &lt;natemorrical@gmail.com&gt;
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>Cleanup atomic intrinsics. (#5324)</title>
<updated>2024-10-18T03:14:22+00:00</updated>
<author>
<name>Yong He</name>
<email>yonghe@outlook.com</email>
</author>
<published>2024-10-18T03:14:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=a618b8c5e249b0f20e6c0c95f9da1b5cbfdbf08b'/>
<id>urn:sha1:a618b8c5e249b0f20e6c0c95f9da1b5cbfdbf08b</id>
<content type='text'>
* Cleanup atomic intrinsics.

* Fix.

* Fix glsl.

* Remove hacky intrinsic expansion logic for glsl image atomics.

* Fix all tests.

* Fix.

* Add `InterlockedAddF16Emulated`.

* Fix glsl intrinsic.

* Fix.</content>
</entry>
<entry>
<title>Respect matrix layout in uniform and in/out parameters for HLSL target. (#5013)</title>
<updated>2024-09-05T17:26:59+00:00</updated>
<author>
<name>Yong He</name>
<email>yonghe@outlook.com</email>
</author>
<published>2024-09-05T17:26:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=a88055c6f5190ca62bb4aa853b4f0fa11546278f'/>
<id>urn:sha1:a88055c6f5190ca62bb4aa853b4f0fa11546278f</id>
<content type='text'>
* Respect matrix layout in uniform and in/out parameters for HLSL target.

* Update test.

* Fix test.

* fix test.

* Fix metal layout calculation.

* Fix compile error.

* Fix compiler error.

---------

Co-authored-by: Yong He &lt;yhe@nvidia.com&gt;</content>
</entry>
<entry>
<title>Support specialization constants. (#4963)</title>
<updated>2024-08-30T19:03:23+00:00</updated>
<author>
<name>Yong He</name>
<email>yonghe@outlook.com</email>
</author>
<published>2024-08-30T19:03:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=de83628070614ec37349c9f334ed72a54a6889da'/>
<id>urn:sha1:de83628070614ec37349c9f334ed72a54a6889da</id>
<content type='text'>
* Support specialization constants.

* Fix.

* Fix.

* Fix.

* Fix.

* Make sure specialization constants have names.

* Clean up and support the dxc [vk::constant_id] syntax.

* Fix.

* Fix.

* Fix.</content>
</entry>
<entry>
<title>Overhaul IR lowering of pointer types. (#4710)</title>
<updated>2024-07-25T22:00:14+00:00</updated>
<author>
<name>Yong He</name>
<email>yonghe@outlook.com</email>
</author>
<published>2024-07-25T22:00:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=c9d89a40775a055873adf82cfb0ee1cb6bdcb93c'/>
<id>urn:sha1:c9d89a40775a055873adf82cfb0ee1cb6bdcb93c</id>
<content type='text'>
* Overhaul IR lowering of pointer types.

* Propagate address space in IRBuilder.

* Fixup.

* Fix.

* Fix.

* Change how Ptr type is printed to text.

* Fix.</content>
</entry>
<entry>
<title>Capability System: Implicit capability upgrade warning/error (#4241)</title>
<updated>2024-06-12T20:38:23+00:00</updated>
<author>
<name>ArielG-NV</name>
<email>159081215+ArielG-NV@users.noreply.github.com</email>
</author>
<published>2024-06-12T20:38:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=8813c610562b1c30222ec3ef0734ef601d43b617'/>
<id>urn:sha1:8813c610562b1c30222ec3ef0734ef601d43b617</id>
<content type='text'>
* capability upgrade warning/error

adjusted implementation + tests to support a warning/error if capabilities are implicitly upgraded and test accordingly.

* add glsl profile caps

* add GLSL and HLSL capabilities to the associated capability

* syntax error in capdef

* only error if user explicitly enables capabilities

1. changed testing infrastructure to not set a `profile` explicitly,
2. Added tests to be sure this works as intended with user API and with slangc command line

* Change capability atom definitions and how Slang manages them to fix errors

1. most `glsl_spirv` version atoms have been removed from `.capdef`, instead we will translate `spirv` version atoms into `glsl_spirv` since there is no point in writing the same code twice in `.capdef` files to define `spirv` versions.
2. add spirv version, and hlsl sm version (and equivlent) capability dependencies
3. removed some stage requirments which were set on objects, keep the wrapper capabilities. I am keeping the wrapper capabilities since I am unaware on if there are stage limitations (spec says code in practice does not work).

* check internal version instead of version profile (_spirv_1_5 vs. spirv_1_5)

* remove unused OpCapability. adjust SPIRV version'ing again for glsl_spirv

* apply workaround for glslang bug with rayquery usage

* ensure capabilities targetted by a profile and added together by a user are valid

* remove additions to `spirv_1_*` wrapper

* spirv_* -&gt; glsl_spirv fix

* fix bug where incompatable profiles would cause invalid target caps

* try to avoid joining invalid capabilities

* fix the warning/error &amp; printing

* run through tests to fix capability system and test mistakes

many mistakes were mesh shaders doing `-profile glsl_450+spirv_1_4`. This is not allowed for a few reasons
1. the test tooling does not handle arguments the same as `slangc`
2. glsl_450 core profile does not support mesh shaders, nor does spirv_1_4. sm_6_5 does work in this senario

* set some sm_4_1 intrinsics to sm_4_0

* replace `GLSL_` defs with `glsl_`

* swap the unsupported render-test syntax for working syntax

* set d3d11/d3d12 profile defaults

this is required since sm version changes compiled code &amp; behavior

* adjusted nvapi capabilities with atomics + d3d11 set to use sm_5_0 as per default

* cleanup

* address review

* incorrect styling

* change `bitscanForward` to work as intended on 32 bit targets

---------

Co-authored-by: Yong He &lt;yonghe@outlook.com&gt;</content>
</entry>
</feed>
