<feed xmlns='http://www.w3.org/2005/Atom'>
<title>slang.git/tests/spirv/spec-constant-generic.slang, 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-07-22T04:35:44+00:00</updated>
<entry>
<title>Fix Conditioanl&lt;T, false&gt; fields with a semantic. (#7855)</title>
<updated>2025-07-22T04:35:44+00:00</updated>
<author>
<name>Yong He</name>
<email>yonghe@outlook.com</email>
</author>
<published>2025-07-22T04:35:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=9d47a352960efd71494c7dfa0918debd5b405077'/>
<id>urn:sha1:9d47a352960efd71494c7dfa0918debd5b405077</id>
<content type='text'>
* Fix Conditioanl&lt;T, false&gt; fields with a semantic.

* Add unit test.

* Fix test.</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>Implement spec const for generic parameter (#7121)</title>
<updated>2025-05-15T16:59:15+00:00</updated>
<author>
<name>kaizhangNV</name>
<email>149626564+kaizhangNV@users.noreply.github.com</email>
</author>
<published>2025-05-15T16:59:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=b325474c4aba52cca7e0bcd4eae02d23ca4ab9a3'/>
<id>urn:sha1:b325474c4aba52cca7e0bcd4eae02d23ca4ab9a3</id>
<content type='text'>
Close #6840.

This PR add supports to use specialize constant in generic parameter, and that parameter can also be used as array size, e.g. following code should work:

```
struct MyStruct&lt;let N: int&gt; { float buffer[N]; }
MyStruct&lt;SpecConstVar&gt; s;
```

- Loose the restriction from Link-Time to SpecializationConstant when extract generic argument
- Tweak the logic of how we decide whether a inst is hoistable. Besides checking existing hoistable flag of each 
  IRInst, when we detect a IRInst's type is SpecConstRateType, we will treat that inst hoistable. Because IRInst in 
  global scope can be deduplicated, and every SpecConstRateType inst should be in the global scope or IRGeneric 
  scope (which will be at global scope after specialization).
- Remove the SpecConstIntVal to IRInst map in IR lowering logic, because we already have way to deduplicate the 
  global scope IR.</content>
</entry>
</feed>
