<feed xmlns='http://www.w3.org/2005/Atom'>
<title>slang.git/source/slang/slang-emit-glsl.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-10-03T04:48:11+00:00</updated>
<entry>
<title>Rename some symbols related to pointers types (#8592)</title>
<updated>2025-10-03T04:48:11+00:00</updated>
<author>
<name>Theresa Foley</name>
<email>10618364+tangent-vector@users.noreply.github.com</email>
</author>
<published>2025-10-03T04:48:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=cc8f6a241edb47c43c5698ee33abed4fe57d4566'/>
<id>urn:sha1:cc8f6a241edb47c43c5698ee33abed4fe57d4566</id>
<content type='text'>
Note that while this change touched a large numer of files, there are no
changes to functionality being made here. The only things being done are
renaming various symbols and, in a few cases, updating or adding
comments for consistency with the new names.

The core of the naming changes are:

* Most things named to refer to `OutType` (e.g., `IROutType`,
`IRBuilder::getOutType()`, etc.) have been consistently renamed to refer
to `OutParamType`, to emphasize that the relevant AST/IR node types are
only intended for use to represent `out` parameters.

* The same change as described above for `OutType` is also made for
`RefType`, which becomes `RefParamType` in most cases. One mess that
this exposes is the way that the `ExplicitRef&lt;T&gt;` type in the core
module currently lowers to `IRRefParamType`. This change sticks to the
rule of not making functional changes, so that mess is left as-is for
now.

* Names referring to `InOutType` have been changed to instead refer to
`BorrowInOutType`. The intention with this naming change is to emphasize
that the Slang rules for `inout` are semantically those of a borrow (or
at least our interpretation of what a borrow means).

* Names referring to `ConstRefType` have been changed to instead refer
to `BorrowInType`. This change starts work on clarifying that the
existing `__constref` modifier was never intended to be a read-only
analogue of `__ref`, and instead is the input-only analogue of `inout`.

* The `ParameterDirection` enum type has been changed to
`ParamPassingMode`, to reflect the fact that the concept of "direction"
fails to capture what is actually being encoded, particularly once we
have modes beyond simple `in`/`out`/`inout`.

While this change does not alter behavior in any case (the user-exposed
Slang language is unchanged), it is intended to set up subsequence
changes that will work to make the handling of these types in the
compiler more nuanced and correct. Breaking this part of the change out
separately is primarily motivated by a desire to minimize the effort for
reviewers.

---------

Co-authored-by: slangbot &lt;186143334+slangbot@users.noreply.github.com&gt;</content>
</entry>
<entry>
<title>Implement SPV_EXT_fragment_invocation_density (SPV_NV_shading_rate) (#8037)</title>
<updated>2025-08-05T17:55:52+00:00</updated>
<author>
<name>davli-nv</name>
<email>davli@nvidia.com</email>
</author>
<published>2025-08-05T17:55:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=83675103a1a4fefde11b314aed26f4d37860efe7'/>
<id>urn:sha1:83675103a1a4fefde11b314aed26f4d37860efe7</id>
<content type='text'>
* Implement SPV_EXT_fragment_invocation_density

-Adds semantics SV_FragSize and SV_FragInvocationCount and implements them for SPIRV and GLSL using the appropriate target builtins from extensions.
-Adds test case checking for expected target builtins from these semantics.
-For future work, could implement SV_FragSize using pixel shader input SV_ShadingRate for HLSL, and SV_FragInvocationCount needs research.

Fixes #7974

Generated with Claude Code

* address review feedback

https://github.com/shader-slang/slang/pull/8037#pullrequestreview-3084645845

* fixup format

* review feedback

https://github.com/shader-slang/slang/pull/8037#pullrequestreview-3086442819</content>
</entry>
<entry>
<title>Fix C-style casts in GLSL pointer cast operations (#7841)</title>
<updated>2025-07-21T16:31:31+00:00</updated>
<author>
<name>Copilot</name>
<email>198982749+Copilot@users.noreply.github.com</email>
</author>
<published>2025-07-21T16:31:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=a77d22bf3bfc3098b01e4886c3a63fb751edc704'/>
<id>urn:sha1:a77d22bf3bfc3098b01e4886c3a63fb751edc704</id>
<content type='text'>
* Initial plan

* Fix C-style casts in GLSL pointer cast operations

Co-authored-by: csyonghe &lt;2652293+csyonghe@users.noreply.github.com&gt;

---------

Co-authored-by: copilot-swe-agent[bot] &lt;198982749+Copilot@users.noreply.github.com&gt;
Co-authored-by: csyonghe &lt;2652293+csyonghe@users.noreply.github.com&gt;</content>
</entry>
<entry>
<title>fix const qualifier for specialization constants (#7640)</title>
<updated>2025-07-17T08:46:58+00:00</updated>
<author>
<name>Sirox</name>
<email>71220271+Sirox0@users.noreply.github.com</email>
</author>
<published>2025-07-17T08:46:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=4dccdff89494116cc69802c7f3d1957d1b972775'/>
<id>urn:sha1:4dccdff89494116cc69802c7f3d1957d1b972775</id>
<content type='text'>
Co-authored-by: Yong He &lt;yonghe@outlook.com&gt;</content>
</entry>
<entry>
<title>Address structured buffer `GetDimensions` issues for WGSL, GLSL and SPIRV (#7010)</title>
<updated>2025-05-16T19:01:24+00:00</updated>
<author>
<name>Darren Wihandi</name>
<email>65404740+fairywreath@users.noreply.github.com</email>
</author>
<published>2025-05-16T19:01:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=da951e06e7eb8ad1b9c91d6176be8165ea4f2b45'/>
<id>urn:sha1:da951e06e7eb8ad1b9c91d6176be8165ea4f2b45</id>
<content type='text'>
* Fix structured buffer get dimensions

* Further fixes and added tests

* Remove unnecessary include

* Fix test issues

* attempt to fix wgpu crash

* test remove half usage in test

* attempt to fix WGPU test issue

* Another attempt to fix WGSL test - make test similar to the existing GetDimensions test

---------

Co-authored-by: Yong He &lt;yonghe@outlook.com&gt;</content>
</entry>
<entry>
<title>Fix broken -emit-spirv-via-glsl test option (#7091)</title>
<updated>2025-05-16T00:01:08+00:00</updated>
<author>
<name>sricker-nvidia</name>
<email>115114531+sricker-nvidia@users.noreply.github.com</email>
</author>
<published>2025-05-16T00:01:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=b39ec87cccaadebbb9325dd2adb8c0b13b364805'/>
<id>urn:sha1:b39ec87cccaadebbb9325dd2adb8c0b13b364805</id>
<content type='text'>
Fixes issue #6898

The -emit-spirv-via-glsl slang-test option has been broken for
some amount of time. Tests that were using it were operating as
if using -emit-spirv-directly, leading to many duplicated tests.

After fixing the test option, there were an number of errors that
appeared as a result.

This change fixes the broken test option and the resulting test
errors. Some of the test errors revealed some legitimate issues,
such as:

-The GLSL bitCount instrinsic only supports 32-bit integers and
 requires emulation for other bit widths.
-Emitting GLSL 8-bit and 16-bit glsl integer types did not emit
 the proper extension requirements
-Emitting GLSL and casting for 16-bit integers was missing a
 closing parenthesis.
-Missing profile for GL_EXT_shader_explicit_arithmetic_types
-Missing toType cases for UInt8/Int8 for the kIROp_BitCast case
 in tryEmitInstExprImpl.</content>
</entry>
<entry>
<title>Remove readonly keyword from buffer pointer definitions (#7068)</title>
<updated>2025-05-14T22:08:39+00:00</updated>
<author>
<name>aidanfnv</name>
<email>aidanf@nvidia.com</email>
</author>
<published>2025-05-14T22:08:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=8c98714df2198db1aff4ce6c6f7922850e400f80'/>
<id>urn:sha1:8c98714df2198db1aff4ce6c6f7922850e400f80</id>
<content type='text'>
For https://github.com/shader-slang/slang/issues/6880

This change removes the readonly keyword from buffer pointer definitions from the GLSL source emitter, to allow for mutable buffer pointers.
Support for readonly will be readded when we add const pointer support later.</content>
</entry>
<entry>
<title>Cleanups related to RIFF support (#7041)</title>
<updated>2025-05-12T17:28:05+00:00</updated>
<author>
<name>Theresa Foley</name>
<email>10618364+tangent-vector@users.noreply.github.com</email>
</author>
<published>2025-05-12T17:28:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=4c76b275907cf2d764f3fc51468d1c58635a10c1'/>
<id>urn:sha1:4c76b275907cf2d764f3fc51468d1c58635a10c1</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Emit SPIRV NonReadable decoration for WTexture* (#6922)</title>
<updated>2025-04-27T20:31:34+00:00</updated>
<author>
<name>Darren Wihandi</name>
<email>65404740+fairywreath@users.noreply.github.com</email>
</author>
<published>2025-04-27T20:31:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=8f6c6e333c06ae1c3b9f00396563c14a2ae09b4d'/>
<id>urn:sha1:8f6c6e333c06ae1c3b9f00396563c14a2ae09b4d</id>
<content type='text'>
</content>
</entry>
<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>
</feed>
