<feed xmlns='http://www.w3.org/2005/Atom'>
<title>slang.git/source/compiler-core/slang-dxc-compiler.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-07-01T07:41:52+00:00</updated>
<entry>
<title>Add arguments for controlling floating point denormal mode  (#7461)</title>
<updated>2025-07-01T07:41:52+00:00</updated>
<author>
<name>aidanfnv</name>
<email>aidanf@nvidia.com</email>
</author>
<published>2025-07-01T07:41:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=d50c3f34a2eda5bf5e278c78d32cc9923fd83b82'/>
<id>urn:sha1:d50c3f34a2eda5bf5e278c78d32cc9923fd83b82</id>
<content type='text'>
* Implement -fp-denorm-mode slangc arg

* Split fp-denorm-mode into 3 args for fp16/32/64

* Remove redundant option categories

* Use emitInst for multiple of the same OpExecutionMode

* Fix formatting

* Remove -denorm any

* Re-add option categories

* emitinst for ftz

* Use enums for type text

* Remove extra categories again

* Add tests for denorm mode

* Move denorm mode to post linking

* format code (#8)

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

* regenerate command line reference (#9)

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

* Clean up tests

* Fix option text

* format code (#10)

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

* Add tests for "any" mode

* Return "any" enum if option not set

* Simplify emission logic

* Add support for generic entrypoints

* Move denorm modes to end of CompilerOptionName enum

* format code (#11)

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

* Move new enum members to before CountOf

* Add not checks to tests, fix generic test, add functionality tests

* Rename denorm to fpDenormal

* Clean up functional test

* Rename denorm test dir

* Fix formatting, regenerate cmdline ref

* Fold simple tests into functional tests, add more dxil checks

* Remove no-op DX tests, make tests more consistent

* Disable VK functionality tests that will fail on the CI configs

* Fix formatting

* Add comments to disabled tests explaining why

---------

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>Support for Payload Access Qualifiers (#3448) (#6595)</title>
<updated>2025-04-07T07:56:11+00:00</updated>
<author>
<name>Harsh Aggarwal (NVIDIA)</name>
<email>haaggarwal@nvidia.com</email>
</author>
<published>2025-04-07T07:56:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=ce87ab925d06a784eec194081e00a1b4c9b94d0c'/>
<id>urn:sha1:ce87ab925d06a784eec194081e00a1b4c9b94d0c</id>
<content type='text'>
* Add support for Ray Payload Access Qualifiers (PAQs) (#3448)

- Added [raypayload] attribute for struct declarations
- Implemented field validation requiring read/write access qualifiers
- Added diagnostic error for missing qualifiers
- Enabled PAQs in DXC compiler and HLSL emission
- Added new test demonstrating PAQ syntax
- Implemented proper handling of ray payload attributes in IR generation

* format code

* Cleanup: Remove unused vars

* Add check to enablePAQ only for profile &gt;= lib_6_7

* Review Fix - Add PAQ support for DX Raytracing

add enablePAQ flag to DownstreamCompileOpitons, improve PAQ handling
update raypayload-attribute-paq.slang to ensure hlsl and dxil is
validated

* Add diagnostic test for missing paq for lib_6_7

Compile using `-disable-payload-qualifiers` aka lib_6_6 profile
raypayload-attribute-no-struct.slang and
raypayload-attribute.slang

---------

Co-authored-by: slangbot &lt;186143334+slangbot@users.noreply.github.com&gt;
Co-authored-by: Ellie Hermaszewska &lt;ellieh@nvidia.com&gt;</content>
</entry>
<entry>
<title>Enable "-HV 2021" option for DXC (#6445)</title>
<updated>2025-04-02T12:08:32+00:00</updated>
<author>
<name>Jay Kwak</name>
<email>82421531+jkwak-work@users.noreply.github.com</email>
</author>
<published>2025-04-02T12:08:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=e44479c88806a711f6d5f821a4acff030f9a558b'/>
<id>urn:sha1:e44479c88806a711f6d5f821a4acff030f9a558b</id>
<content type='text'>
* Enable "-HV 2021" option for DXC</content>
</entry>
<entry>
<title>Add raypayload decoration to ray payload structs (#6164)</title>
<updated>2025-02-11T11:07:57+00:00</updated>
<author>
<name>Ellie Hermaszewska</name>
<email>ellieh@nvidia.com</email>
</author>
<published>2025-02-11T11:07:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=0b4e463aee4107b383067424007c6a995f1f9f87'/>
<id>urn:sha1:0b4e463aee4107b383067424007c6a995f1f9f87</id>
<content type='text'>
* Add raypayload decoration to ray payload structs

Closes https://github.com/shader-slang/slang/issues/6104

* Disable PAQs when compiling with DXC

See https://github.com/shader-slang/slang/issues/3448</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>preparation for clang format (#5422)</title>
<updated>2024-10-29T05:59:28+00:00</updated>
<author>
<name>Ellie Hermaszewska</name>
<email>ellieh@nvidia.com</email>
</author>
<published>2024-10-29T05:59:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=a729c15e9dce9f5116a38afc66329ab2ca4cea54'/>
<id>urn:sha1:a729c15e9dce9f5116a38afc66329ab2ca4cea54</id>
<content type='text'>
* Clang-format excludes

* Add .clang-format

* Don't clang-format in external

* Missing includes and forward declarations

* Replace wonky include-once macro name

* neaten include naming

* Add clang-format to formatting script

* Add xargs and diff to required binaries

* add clang-format to ci formatting check

* Add max version check to formatting script

* temporarily disable checking formatting for cpp files</content>
</entry>
<entry>
<title>Remove disassemle debug code (#4779)</title>
<updated>2024-08-06T18:19:32+00:00</updated>
<author>
<name>cheneym2</name>
<email>acheney@nvidia.com</email>
</author>
<published>2024-08-06T18:19:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=33e9de0ef2aa04e7681769104dbe524f8b68525a'/>
<id>urn:sha1:33e9de0ef2aa04e7681769104dbe524f8b68525a</id>
<content type='text'>
Some debug code was left in by accident which called DXC to
disassemble the DXIL it produced.</content>
</entry>
<entry>
<title>Initial support for precompiled DXIL in slang-modules (#4755)</title>
<updated>2024-08-05T19:37:46+00:00</updated>
<author>
<name>cheneym2</name>
<email>acheney@nvidia.com</email>
</author>
<published>2024-08-05T19:37:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=d72f9f6f72a7a74d7466a1e301e1853fea5daa25'/>
<id>urn:sha1:d72f9f6f72a7a74d7466a1e301e1853fea5daa25</id>
<content type='text'>
* Add embedded precompiled binary IR ops

Add IR operations to embed precompiled DXIL or SPIR-V blobs
into IR. Adds a BlobLit literal that is mostly identical to
StringLit except for its inability to be displayed, e.g.
in dumped IR. In the future, the blob might be dumped as
hexadecimal, but for now it is summarized as "&lt;binary blob&gt;".

* EmbeddedDXIL and SPIR-V options

The options, '-embed-dxil' and '-embed-spirv' in slangc, will
cause a target dxil or spirv to be compiled and stored in the
translation unit IR when written to a slang-module. Subsequent
changes actually implement the options.

* Per-translation unit DXIL precompilation

When -embed-dxil is specified, perform a precompilation to DXIL of
each TU, linked only with stdlib. Embed the resulting DXIL for
the TU in a IR op. Being part of IR, the precompiled DXIL can be
serialized to disk in a slang-module.

Upon loading slang-modules, the new IR op will be searched for and
the precompiled DXIL blob is saved with the loaded Module. During
linking, if all the Modules have precompiled blobs they will be
sent to the downstream compile commands as libraries instead of
source, skipping the downstream compilation, using DXC only for
linking.

Fixes Issue #4580

* Remove placeholder embedded SPIRV support

Code was added only to sketch out how other precompiled bins
will be supported.

* Remove the rest of the SPIRV placeholder support

* Fix warnings, test error on non-windows

* Remove lib_6_6 hack, add dxil_lib capability

* Allocate blob value from irmodule memarena

* Add null check after memarena allocation

* Restore the request-&gt;e2erequest code path for generatewholeprogram

* Update capability handling, move EmbedDXIL enum to end to preserve abi

* Remove lib_6_6 hack

* Move ICompileRequest functions to end</content>
</entry>
<entry>
<title>Move the file public header files to `include` dir (#4636)</title>
<updated>2024-07-17T17:53:19+00:00</updated>
<author>
<name>kaizhangNV</name>
<email>149626564+kaizhangNV@users.noreply.github.com</email>
</author>
<published>2024-07-17T17:53:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=2db15080085856ed9b5f20642dbb354aac59a888'/>
<id>urn:sha1:2db15080085856ed9b5f20642dbb354aac59a888</id>
<content type='text'>
* Move the file public header files to `include` dir

Close the issue (#4635).

Move the following headers files to a `include` dir
located at root dir of slang repo:

 slang-com-helper.h -&gt; include/slang-com-helper.h
 slang-com-ptr.h -&gt; include/slang-com-ptr.h
 slang-gfx.h -&gt; include/slang-gfx.h
 slang.h -&gt; include/slang.h

Change cmake/SlangTarget.cmake to add include path to
every target, and change the source file to use
"#include &lt;slang.h&gt;" to include the public headers.

The source code update is by the script like follow:

```
fileNames_slang=$(grep -r "\".*slang\.h\"" source/ -l)

for fileName in "${fileNames_slang[@]}"
do
    echo "$fileName"
    sed -i "s/\".*slang\.h\"/\"slang\.h\"/" $fileName
done
```

* Fix the test issues

* Fix cpu test issues by adding include seach path

* Update cmake to not add include path for every target

Also change "#include &lt;slang.h&gt;" to "include "slang.h" " to
make the coding style consistent with other slang code.

* Change public include to private include for unit-test and slang-glslang</content>
</entry>
</feed>
