<feed xmlns='http://www.w3.org/2005/Atom'>
<title>slang.git/source/slang-record-replay/record/slang-module.h, 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-06-13T02:14:49+00:00</updated>
<entry>
<title>Fix API changes from separate debugging support (#7397)</title>
<updated>2025-06-13T02:14:49+00:00</updated>
<author>
<name>jarcherNV</name>
<email>jarcher@nvidia.com</email>
</author>
<published>2025-06-13T02:14:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=9c8fab83a53c43e345566c35f87c16fe7b815e01'/>
<id>urn:sha1:9c8fab83a53c43e345566c35f87c16fe7b815e01</id>
<content type='text'>
Recent separate debugging support added two new functions which broke
backwards compatibility. This change restores the old API and moves the
new functions to an IComponentType2 interface which can be used if
separate debug files are needed.</content>
</entry>
<entry>
<title>Add command line option for separate debug info (#7178)</title>
<updated>2025-06-06T21:30:06+00:00</updated>
<author>
<name>jarcherNV</name>
<email>jarcher@nvidia.com</email>
</author>
<published>2025-06-06T21:30:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=0d16228ae22fa2e1a00e62dc099eea08da7717fe'/>
<id>urn:sha1:0d16228ae22fa2e1a00e62dc099eea08da7717fe</id>
<content type='text'>
* Add command line option for separate debug info

Add command line arg -separate-debug-info which, if provided, produces
both a .spv and a .dbg.spv file. The .dbg.spv file contains full debug
info and the .spv file has all debug info stripped out.

Also add a DebugBuildIdentifier instruction to store a unique hash in
both the output files, so they can be more easily matched together.

A matching API is provided to allow using the Slang API to retrieve a
base and debug SPIRV as well as the debug build identifier string.</content>
</entry>
<entry>
<title>Add -dump-module command to slangc (#6638)</title>
<updated>2025-03-20T15:38:46+00:00</updated>
<author>
<name>cheneym2</name>
<email>acheney@nvidia.com</email>
</author>
<published>2025-03-20T15:38:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=de6cc94e3b7fa5d1b8eeb53993dbf3ca2cec1cc1'/>
<id>urn:sha1:de6cc94e3b7fa5d1b8eeb53993dbf3ca2cec1cc1</id>
<content type='text'>
* Add -dump-module command to slangc

The new -dump-module command to slangc will load and disassemble a slang module, similar to what would be seen by the -dump-ir command, except that -dump-ir tells slangc to print IR as it performs some compilation command. That is, -dump-ir requires
some larger compilation task.

-dump-module on the otherhand requires no additional goal and will simply load a module and print its IR to stdout independently from other compilation steps.

Its intended purpose is to inspect .slang-module files on disk.
It can also be used on .slang files which will be parsed and lowered
if slang does not find an associated ".slang-module" version of the
module on disk.

The compilation API is extended with a new IModule::disassemble()
method which retrieves the string representation of the dumped IR.

Closes #6599

* format code

* Use FileStream not FILE

* format code

---------

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>Embed core module in wasm build. (#5569)</title>
<updated>2024-11-15T08:37:58+00:00</updated>
<author>
<name>Yong He</name>
<email>yonghe@outlook.com</email>
</author>
<published>2024-11-15T08:37:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=05903f708856a70d68bf41bbfb2b06620508dee0'/>
<id>urn:sha1:05903f708856a70d68bf41bbfb2b06620508dee0</id>
<content type='text'>
* Embed core module in wasm build.

* format code

* add uintptr_t case.

---------

Co-authored-by: slangbot &lt;186143334+slangbot@users.noreply.github.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>Add interfaces for retrieving separate linkable downstream binaries (#5128)</title>
<updated>2024-10-04T14:20:57+00:00</updated>
<author>
<name>cheneym2</name>
<email>acheney@nvidia.com</email>
</author>
<published>2024-10-04T14:20:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=f521c2002e6b664944c6c39bab767dca1802887a'/>
<id>urn:sha1:f521c2002e6b664944c6c39bab767dca1802887a</id>
<content type='text'>
* Implement separate downstream library interface

Create a new com interface to house the methods for
precompiling slang modules to target code.

Add methods to count dependent modules and scrape
them for downstream target binaries such that the
downstream target binaries are linkabe outside
of slang, e.g. via spirv-link or dxc.

Fixes #5147

* Rename to _Experimental

Clearly identify this as an interface subject to change.</content>
</entry>
<entry>
<title>Add COM API for querying metadata. (#5168)</title>
<updated>2024-09-30T19:50:30+00:00</updated>
<author>
<name>Yong He</name>
<email>yonghe@outlook.com</email>
</author>
<published>2024-09-30T19:50:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=15d1c6c51c5f24663d2567d7e56da62a2bca1c22'/>
<id>urn:sha1:15d1c6c51c5f24663d2567d7e56da62a2bca1c22</id>
<content type='text'>
* Add COM API for querying metadata.

* Fix tests.

* fix test.</content>
</entry>
<entry>
<title>capture component type (#4967)</title>
<updated>2024-08-30T20:57:11+00:00</updated>
<author>
<name>kaizhangNV</name>
<email>149626564+kaizhangNV@users.noreply.github.com</email>
</author>
<published>2024-08-30T20:57:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=3cf5935b434a8b9a07a6df5a6ab4c4dc373a1ac3'/>
<id>urn:sha1:3cf5935b434a8b9a07a6df5a6ab4c4dc373a1ac3</id>
<content type='text'>
* Refactor the IComponentType recording

Refactor the `IComponentType` recording by creating a abstract class
`IComponentTypeRecorder` to record all the methods of `IComponentType`,
so that `ICompositeComponentType`, `IModule`, 'IEntryPoint',
'ITypeConformance' can share the same recording implementation.

Capture the out IComponentType from
linkWithOptions()
link()
specialize()
renameEntryPoint()

* fix bugs

* Finish the unimeplemented functions in json consumer

Fix the address print to use 64 bit hex.
Fix the reference count issue when allocating new recorder object.

* Disable few examples using reflection APIs

* Add gpu-printing example into slang-test

* Replace of using std::unique_ptr with RefPtr</content>
</entry>
<entry>
<title>Migrate examples (#4920)</title>
<updated>2024-08-27T16:53:16+00:00</updated>
<author>
<name>kaizhangNV</name>
<email>149626564+kaizhangNV@users.noreply.github.com</email>
</author>
<published>2024-08-27T16:53:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=59c23b96b3649e77f5428c32e47b4401a802c604'/>
<id>urn:sha1:59c23b96b3649e77f5428c32e47b4401a802c604</id>
<content type='text'>
* Migrate cpu-hello-world to new slang API

    Migrate cpu-hello-world to new slang API, and also convert this example
    as one of the unit test.

* Add 'shader-object' to slang-unit-test

* Convert ray-tracing example into unit-test

    Convert ray-tracing example into unit-test

* Fix some replay bugs:
  - Wrong decode type in 'getEntryPointHostCallable'.
  - Mistakes in computing the output buffer size.
  - Wrong decode type in array size in specialize() call.
  - When capture entrypoint, we should increase the reference count
     for the allocated entrypoint recorder object, because that is
     allocated by record layer, it should be owned by the layer, user
     should not be able to free it.
  - Improve json consumer on the prelude text.

* Test verify change:
In our test, we add a "callIdx" string at beginning of the hash-code
string, as there could be more than one modules in the example, so they
could call 'getEntryPointHash' multiple times, in order for the test
can identify them, add "callIdx: &lt;number&gt;" as the key word.</content>
</entry>
<entry>
<title>Feature/capture unit test (#4898)</title>
<updated>2024-08-22T17:18:44+00:00</updated>
<author>
<name>kaizhangNV</name>
<email>149626564+kaizhangNV@users.noreply.github.com</email>
</author>
<published>2024-08-22T17:18:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=b5bb82411cc6101b66283f7d0abca7ceb58aa2f6'/>
<id>urn:sha1:b5bb82411cc6101b66283f7d0abca7ceb58aa2f6</id>
<content type='text'>
* record/replay: Add tests

Modify the hello-world example to generate the hash code for the
entry point spirv code, so that we can compare it with replaying
the example.

Add the test script to run the example and compare the hash code
with replaying it.

* Check nullptr for out Diagnostics

We need to check whether the output Diagnostics is a nullptr,
because it's allowed.

* Fix the double free pointers

* Add triangle example as the new test for record-replay

Change the example base to add the offline rendering path
because we don't want to display anything when we're in the
test mode.

This change involves introducing a TestBase that will parse
the command line option. It will decide whether we are in
the test mode.

Disable all the swapchain and windows related creation, instead
we will only create one single framebuffer for the render target.

* Address comments

TODO:
In the follow up patches, I will add more tests and integrate the test flow into slang-unit-test.</content>
</entry>
</feed>
