<feed xmlns='http://www.w3.org/2005/Atom'>
<title>slang.git/tests/language-feature/capability/capabilitySimplification1.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-08-08T20:19:25+00:00</updated>
<entry>
<title>Error if super-type capabilities are a super-set of sub-type (#7452)</title>
<updated>2025-08-08T20:19:25+00:00</updated>
<author>
<name>ArielG-NV</name>
<email>159081215+ArielG-NV@users.noreply.github.com</email>
</author>
<published>2025-08-08T20:19:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=07f21ee31b5f427edb72d5578f713b3da3f3b96f'/>
<id>urn:sha1:07f21ee31b5f427edb72d5578f713b3da3f3b96f</id>
<content type='text'>
Fixes: #7410

Changes:
1. super-type capabilities must be a super-set of sub-type capabilities
(and support the same shader stages/targets)
* InheritanceDecl visits super-type to inherit it's capabilities;
validate InheritanceDecl capabilities against sub-type
    * visit all container decl's with a default case 
    * clean up functionDeclBase visitor
* Simplify `diagnoseUndeclaredCapability` by moving logic into
capability checking (more correct*)
3. added changed behavior to documentation
4. fixed some incorrect capabilities
5. **we do not** diagnose capability errors on interface
requirement-to-implementation if both lack explicit capability
requirements. This change is to work around a slangpy regression (test
case for the failing situation is in
`tests\language-feature\capability\capability-interface-extension-1.slang`),
Note: maybe for slang-2026 we don't do this?
6. requirement &amp; implementation must support the same shader
stage/target. This was changed because otherwise we can have cases where
`X` inherits from `Y`, but `Y` is only expected to be used in `glsl`
whilst `X` is expected to be used in `hlsl | glsl`
7. removed
`tests/language-feature/capability/capabilitySimplification3.slang`
because it tests nothing special (redundant)

Note: not using rebase due to separate branches depending on this PR

---------

Co-authored-by: slangbot &lt;186143334+slangbot@users.noreply.github.com&gt;</content>
</entry>
<entry>
<title>Make capability diagnostic message more friendly. (#6474)</title>
<updated>2025-02-27T21:21:20+00:00</updated>
<author>
<name>Yong He</name>
<email>yonghe@outlook.com</email>
</author>
<published>2025-02-27T21:21:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=90b3817498d9cf664346f04dcea71f48ce81993e'/>
<id>urn:sha1:90b3817498d9cf664346f04dcea71f48ce81993e</id>
<content type='text'>
* Make capability diagnostic message more friendly.

* Fix.

* Fix.

* Fix.

* Fix test.

* Update expected fail setting for aarch64/linux

* Fix.</content>
</entry>
<entry>
<title>Implement WaveMultiPrefix* for SPIRV and GLSL (#6182)</title>
<updated>2025-01-29T04:12:51+00:00</updated>
<author>
<name>Darren Wihandi</name>
<email>65404740+fairywreath@users.noreply.github.com</email>
</author>
<published>2025-01-29T04:12:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=1c282b80b9fbcfea9dc3dab7f5f546b069143e01'/>
<id>urn:sha1:1c282b80b9fbcfea9dc3dab7f5f546b069143e01</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Simplify `CapabilitySet` Diagnostic Printing (#4678)</title>
<updated>2024-07-23T13:36:38+00:00</updated>
<author>
<name>ArielG-NV</name>
<email>159081215+ArielG-NV@users.noreply.github.com</email>
</author>
<published>2024-07-23T13:36:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=509bfd8bbaaf021507c4045b5fd9eaf43276dc0a'/>
<id>urn:sha1:509bfd8bbaaf021507c4045b5fd9eaf43276dc0a</id>
<content type='text'>
Fixes: #4675
Fixes: #4683
Fixes: #4443
Fixes: #4585
Fixes: #4172

Made the following changes:
1. All capability diagnostic printing logic tries to simplify before printing. This means that we do not print atoms which imply another atom.
2. Do not print the `_` prefix part of atom names since it is misleading users on what they should use to solve a capability issue encountered. (`_Internal` `External` atom changes are not in this PR)
3. Bundle together printing of all sets which contain exactly the same atoms (excluding abstract atoms). This allows printing the following `vertex/fragment/hull/domain/... + glsl` instead of `vertex + glsl | fragment + glsl | hull + glsl | domain + glsl | ....`
4. Rework how entry-point errors are reported to users (example at bottom of PR comment)
5. Rework how atom-provenance data is collected to be leaner and more useful so we can rework the errors. There are 2 notable changes here:
    * We no longer store a list which describes where the first of an `CapabilityAtom` comes from. This heavily simplifies AST logic for the capability system. AST parsing of capabilities is much faster. The trade-off is faster AST parsing and correct AST node data for slower diagnostics if an error is found
    * atom-provenance data now stores a reference to an atom's use-site to provide information on **where** and **what** is wrong with user code versus only sharing **what** and not where. 
</content>
</entry>
</feed>
