<feed xmlns='http://www.w3.org/2005/Atom'>
<title>slang.git/tools/slang-capability-generator, 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-22T00:29:40+00:00</updated>
<entry>
<title>Fix capability generator to sort capabilities alphabetically within header groups (#7851)</title>
<updated>2025-07-22T00:29:40+00:00</updated>
<author>
<name>aidanfnv</name>
<email>aidanf@nvidia.com</email>
</author>
<published>2025-07-22T00:29:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=9adac4069fbcc7ce5bea2c42d19c61eb1dcd7f25'/>
<id>urn:sha1:9adac4069fbcc7ce5bea2c42d19c61eb1dcd7f25</id>
<content type='text'>
* Fix capability generator to sort capabilities alphabetically within header groups

The slang-capability-generator now sorts capabilities alphabetically by name
within each header group in the generated a3-02-reference-capability-atoms.md
documentation file. This ensures consistent ordering for better readability
and organization.

Fixes #5030

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-authored-by: aidanfnv &lt;aidanfnv@users.noreply.github.com&gt;

* Regenerate capability atoms documentation with alphabetical sorting

The capability generator now sorts capabilities alphabetically within
each header group. This commit includes the regenerated documentation
file to demonstrate the alphabetical sorting functionality implemented
in the generator code.

Generated with updated capability generator that sorts capabilities
within groups: Targets, Stages, Versions, Extensions, Compound
Capabilities, and Other.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude &lt;noreply@anthropic.com&gt;

* format code (#7853)

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

---------

Co-authored-by: github-actions[bot] &lt;41898282+github-actions[bot]@users.noreply.github.com&gt;
Co-authored-by: aidanfnv &lt;aidanfnv@users.noreply.github.com&gt;
Co-authored-by: Claude &lt;noreply@anthropic.com&gt;
Co-authored-by: slangbot &lt;ellieh+slangbot@nvidia.com&gt;
Co-authored-by: slangbot &lt;186143334+slangbot@users.noreply.github.com&gt;</content>
</entry>
<entry>
<title>Merge NamePool and RootNamePool into a single type (#7797)</title>
<updated>2025-07-17T07:57:42+00:00</updated>
<author>
<name>Copilot</name>
<email>198982749+Copilot@users.noreply.github.com</email>
</author>
<published>2025-07-17T07:57:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=3485710e93d833a1c7b691af707cfd8962af7d17'/>
<id>urn:sha1:3485710e93d833a1c7b691af707cfd8962af7d17</id>
<content type='text'>
* Initial plan

* Merge NamePool and RootNamePool into single NamePool class

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

* Remove unnecessary comment from slang-fiddle-scrape.cpp

Co-authored-by: Theresa Foley &lt;tangent-vector@users.noreply.github.com&gt;

* Address review feedback: initialize namePool to nullptr and remove unnecessary comments

Co-authored-by: Theresa Foley &lt;tangent-vector@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;
Co-authored-by: github-actions[bot] &lt;41898282+github-actions[bot]@users.noreply.github.com&gt;
Co-authored-by: Theresa Foley &lt;tangent-vector@users.noreply.github.com&gt;
Co-authored-by: Yong He &lt;yonghe@outlook.com&gt;</content>
</entry>
<entry>
<title>Make Command Line Reference readthedocs compatible (#7048)</title>
<updated>2025-05-14T16:41:59+00:00</updated>
<author>
<name>aidanfnv</name>
<email>aidanf@nvidia.com</email>
</author>
<published>2025-05-14T16:41:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=39c9e25f6d728e970b68a9452330e754991b4ac5'/>
<id>urn:sha1:39c9e25f6d728e970b68a9452330e754991b4ac5</id>
<content type='text'>
This change modifies the code that generates the Command Line Reference doc to output H2 headings in place of H1 headings, and H3 in place of existing H2, so that readthedocs will not treat the additional H1 headings as titles.

This change also regenerates the Command Line Reference doc, as the current copy in the repo appears to be quite out-of-date. The existing copy is also encoded as UTF-16LE, whereas the other docs are all UTF-8. The regenerated doc is also UTF-8, and all I did to generate that was run slangc.exe -help-style markdown -h &gt; docs\command-line-slangc-reference.md 2&gt;&amp;1 after building slangc on Windows.

This change also adds GitHub actions workflows to check the contents of the doc, fail if a regenerated version needs to be checked in, and provide an option to regenerate it with a bot, all in a similar manner to User Guide TOC regeneration. The doc writer was producing different results from my local build until I changed how the writer sorts the shader stages. In the action, the order of pixel and fragment was reversed, despite the only difference from my local build being the OS.

---------

Co-authored-by: slangbot &lt;ellieh+slangbot@nvidia.com&gt;
Co-authored-by: slangbot &lt;186143334+slangbot@users.noreply.github.com&gt;</content>
</entry>
<entry>
<title>Move switch statement bodies to their own lines (#5493)</title>
<updated>2024-11-05T17:47:26+00:00</updated>
<author>
<name>Ellie Hermaszewska</name>
<email>ellieh@nvidia.com</email>
</author>
<published>2024-11-05T17:47:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=b118451e301d734e3e783b3acdf871f3f6ea851c'/>
<id>urn:sha1:b118451e301d734e3e783b3acdf871f3f6ea851c</id>
<content type='text'>
* Move switch statement bodies to their own lines

* format

---------

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>Misc build fixes. (#5271)</title>
<updated>2024-10-14T21:03:01+00:00</updated>
<author>
<name>Yong He</name>
<email>yonghe@outlook.com</email>
</author>
<published>2024-10-14T21:03:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=f857815a8c0a4e8d4f35c9a49c655545fb692195'/>
<id>urn:sha1:f857815a8c0a4e8d4f35c9a49c655545fb692195</id>
<content type='text'>
* Don't use __assume for SLANG_ASSERT + build fixes.

* Fix.

* build slang-wasm conditionally

* Fix.

* revert retry open file

* revert include.

* another attempt of silencing compiler warnings.

* revert assume change.</content>
</entry>
<entry>
<title>Document All Capability Atoms and Profiles (#5008)</title>
<updated>2024-09-05T14:41:35+00:00</updated>
<author>
<name>ArielG-NV</name>
<email>159081215+ArielG-NV@users.noreply.github.com</email>
</author>
<published>2024-09-05T14:41:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=d4aeb18cb348104fa6b036393488df780902a353'/>
<id>urn:sha1:d4aeb18cb348104fa6b036393488df780902a353</id>
<content type='text'>
* Document All Capability Atoms and Profiles

Fixes: #4125

Unimplemented Considerations:
1. This PR does not add support to query all capability-atom's from a command-line option. It is understood that this might be desired, due to this, the logic to generate `docs\user-guide\a3-02-reference-capability-atoms.md` was made to be "command-line friendly" so minimal changes are needed to pipe our documentation into a command-line option if this change is to be added.

Changes:
1. Added a way to document atoms inside `.capdef`. Method to document is described under `source\slang\slang-capabilities.capdef`. The goal is to error if a public atom does not have any form of documentation to ensure we always have up-to-date documentation to guide user on what an atom is/does.
    * The following `.capdef` file syntax was added
        * /// [HEADER_GROUP]
        * /// regular comment
2. When capability generator runs it auto-generates `docs\user-guide\a3-02-reference-capability-atoms.md`
3. Added to the user-guide 3 sections: `Reference`, `Reference -&gt; Capability Profiles`, `Reference -&gt; Capability atoms` section</content>
</entry>
<entry>
<title>Add `_Internal`/`External` atom enforcement and validation. (#4702)</title>
<updated>2024-07-25T22:04:47+00:00</updated>
<author>
<name>ArielG-NV</name>
<email>159081215+ArielG-NV@users.noreply.github.com</email>
</author>
<published>2024-07-25T22:04:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=2e7e2b568ce93697e36a7c0b50364dc78bd1bb97'/>
<id>urn:sha1:2e7e2b568ce93697e36a7c0b50364dc78bd1bb97</id>
<content type='text'>
* Add `_Internal`/`External` atom validation and use enforcement.

Fixes: #4676

Changes:
* Added `validateInternalAtomExternalAtomPair` to the capability generator to ensure all `_Internal` atoms have a corresponding `External` atom.
* Validation of 'RequireCapabilityAttribute' warns if a user uses an '_Internal' atom.
* Added 'External' atoms to atoms with an already existing '_Internal' atom.
* Printing an atom removes '_'.
* Fixed some incorrect which were checking for the incorrect warning/error (capability4.slang, capability5.slang, capability6.slang).

* switch capability name to use `UnownedStringSlice` instead of `const char*`

switch capability name to use `UnownedStringSlice` instead of `const char*`, this includes using functions like `.startsWith`.

* grammer

---------

Co-authored-by: Yong He &lt;yonghe@outlook.com&gt;</content>
</entry>
<entry>
<title>Cleanup global memory allocations on shutdown. (#4731)</title>
<updated>2024-07-24T18:44:13+00:00</updated>
<author>
<name>Yong He</name>
<email>yonghe@outlook.com</email>
</author>
<published>2024-07-24T18:44:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=657213f13d49f0d2caaa8b64c1245ec8c75fc4d7'/>
<id>urn:sha1:657213f13d49f0d2caaa8b64c1245ec8c75fc4d7</id>
<content type='text'>
Co-authored-by: Jay Kwak &lt;82421531+jkwak-work@users.noreply.github.com&gt;</content>
</entry>
<entry>
<title>Precompute UIntSet from individual capabilities inside generator (#4269)</title>
<updated>2024-06-07T13:48:24+00:00</updated>
<author>
<name>ArielG-NV</name>
<email>159081215+ArielG-NV@users.noreply.github.com</email>
</author>
<published>2024-06-07T13:48:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=7c6faf62158eed309f01bbef8a7b88e0c36459c7'/>
<id>urn:sha1:7c6faf62158eed309f01bbef8a7b88e0c36459c7</id>
<content type='text'>
* fixes: #4163

Precompute UIntSet from individual capabilities inside generator (removes intermediate form of capabilities).

note:
1. I still expand capabilities which are missing `target` and `stage` atoms.

* fix compile warning&lt;-&gt;error with clang

* address review

preallocate the pregenerated UIntSet's

* disable incorrect warning of 'unreachable code'

The warning is wrong since, when `out` has 0 elements (does not start `for` loop), the `return` is reached.

* fix clang warnings

1. use unsigned long for the buffer serializer
2. braces around scalar init

* address review

added work around to avoid warning with `for(...) return; return;` pattern

`else if constexpr` addition instead of cascading blocks

* push fix for use of `_BitScanForward`

* cleanup

* move around assert for proper checking

* syntax error

* use SLANG_ASSERT instead of assert

* test for why SLANG_ASSERT caused CI to fail with linux-arm builds

* test if `SLANG_ASSERT` really is causing a build issue for linux-arm</content>
</entry>
</feed>
