<feed xmlns='http://www.w3.org/2005/Atom'>
<title>slang.git/source/slang-record-replay/record/record-manager.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-06-04T17:35:52+00:00</updated>
<entry>
<title>Break down record replay to individual tests to avoid timeout (#7340)</title>
<updated>2025-06-04T17:35:52+00:00</updated>
<author>
<name>Jay Kwak</name>
<email>82421531+jkwak-work@users.noreply.github.com</email>
</author>
<published>2025-06-04T17:35:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=b9dc21d362f65f22bc707bede733a9537b80460a'/>
<id>urn:sha1:b9dc21d362f65f22bc707bede733a9537b80460a</id>
<content type='text'>
* Break down RecordReply to individual tests to avoid timeout

In Debug build, RecordReplay unit-test was timing out.
It was running six tests all in one unit-test, but this commit breaks it
down to individual test so that each unit test can be done within the
timeout limit.

This issue has seen only in Debug build but it has been unnoticed
because even when the test failed with test-server, it was still passing
on its retry because the time-out applies only when using test-server.

* Reduce the retry from 2 times to 1 time

* Remove RecordReplay from expected failure</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>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>Reduce dependency on std library (#4785)</title>
<updated>2024-08-07T15:53:33+00:00</updated>
<author>
<name>skallweitNV</name>
<email>64953474+skallweitNV@users.noreply.github.com</email>
</author>
<published>2024-08-07T15:53:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=9b580e58417a77109617804362be872f05885f23'/>
<id>urn:sha1:9b580e58417a77109617804362be872f05885f23</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Feature/replayer (#4750)</title>
<updated>2024-07-31T20:03:27+00:00</updated>
<author>
<name>kaizhangNV</name>
<email>149626564+kaizhangNV@users.noreply.github.com</email>
</author>
<published>2024-07-31T20:03:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=bab4b821dc6bcee4ff86751743762584c17e9103'/>
<id>urn:sha1:bab4b821dc6bcee4ff86751743762584c17e9103</id>
<content type='text'>
* record/replay: Implement the json consumer

Finish the implementation of json consumer.

Fix some bug in the block processing as Tailer is not a necessary block
so if the Magic bit is "HEAD", we should keep processing.

* record/replay: Implement the replayer component

Implement the replayer consumer, and also finish the slang-replay
standalone app that will run the while replayer.

It can take an option "--convert-json | -cj" which will convert
the record binary file to a human readable json file.

If there is no option provided, it will replay the record file by
default.

TODO: #4764 is created to remove the std::filesystem usage.</content>
</entry>
<entry>
<title>Feature/capture (#4625)</title>
<updated>2024-07-23T15:45:26+00:00</updated>
<author>
<name>kaizhangNV</name>
<email>149626564+kaizhangNV@users.noreply.github.com</email>
</author>
<published>2024-07-23T15:45:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=986256ffb92ab7c8fc7cf9f2c424919a439a824f'/>
<id>urn:sha1:986256ffb92ab7c8fc7cf9f2c424919a439a824f</id>
<content type='text'>
* Add decoder

* Add a replay executable to consume the decoded content

Add file-processor.cpp/h where we implement the logic to process
the captured file block by block. Each block is:
function header + parameter buffer + function tailer + function
output[optional].

After reading one block, the block of data is sent to decoder module
to dispatch the corresponding API.

Add slang-decoder.cpp/h where we implement the logic to dispatch
the slang API according to the input block data.

- Rename api_callId.h to capture-format.h
- Renmae capture_utility.cpp to capture-utility.cpp
- Renmae capture_utility.h to capture-utility.h
- Change the #include file name accordingly.

* Reorganize source files structure

Move all the capture logic code into `capture` directory.
 - the capture code will be build with slang dll.

Move all the replay logic code into `relay` directoy.
 - the replay code is not part of slang dll, it will be built
   as a stand alone binary and link against slang dll.

Change the #include file names accordingly.

Add tools/slang-replay/main.cpp for the slang-replay stand alone
binary place holder. Will implement it later.

Update premake5.lua accordingly.

* Update cmake files

Update cmake files to change the build process for
capture and relay system.

 - capture component should be build with slang dll, so we
   should not include replay component.
 - replay component should be a separate executable tool, which
   should not include capture component.
 - In order to easy use our current cmake infrastructure, move
   the shared files to a `util` folder
 - change the header include path

* Redesgin the interfaces of consumers

Fix some issues in capture
Finish implementing all slang-decoder functions

* Fix the AppleClang build issue

* Address few comments

- Fix the weird indent issues.
- Correct the function name for CreateGlobalSession()
- Rename file-processor to captureFile-processor to be more specific.
- Use Slang::List instead of std::vector

* record/replay: name refactor change

Refactor the naming.

Change the name "encoder/capture" to "record".</content>
</entry>
</feed>
