<feed xmlns='http://www.w3.org/2005/Atom'>
<title>slang.git/examples/heterogeneous-hello-world/shader.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>2022-03-29T05:14:33+00:00</updated>
<entry>
<title>Allow slangc to generate exe from .slang file. (#2170)</title>
<updated>2022-03-29T05:14:33+00:00</updated>
<author>
<name>Yong He</name>
<email>yonghe@outlook.com</email>
</author>
<published>2022-03-29T05:14:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=255fd5873f65a6b01d5385c277d55612dc3cc587'/>
<id>urn:sha1:255fd5873f65a6b01d5385c277d55612dc3cc587</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fixed naming conflicts in heterogeneous-hello-world (#2114)</title>
<updated>2022-02-04T03:16:54+00:00</updated>
<author>
<name>David Siher</name>
<email>32305650+dsiher@users.noreply.github.com</email>
</author>
<published>2022-02-04T03:16:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=5eb835f0332868fd56ac14ce7560e0ae9cfafec9'/>
<id>urn:sha1:5eb835f0332868fd56ac14ce7560e0ae9cfafec9</id>
<content type='text'>
* Fixed naming conflicts in heterogeneous-hello-world

Added 3 new modifiers (`__unmangled`, `__exportDirectly`, `__externLib`)

`__unmangled`  causes mangleName() to return the normal name of the decl.

`__exportDirectly` changes parent decl name concatenation behavior to use
"::" instead of "." (for Name Hint) and emits the name hint when it exists,
otherwise it emits the mangled name.

`__externLib` stops Slang from emitting the corresponding struct.

Also made necessary changes to heterogeneous-hello-world so that this new
functionality is shown off.

* Undo unintentional formatting changes

Co-authored-by: Yong He &lt;yonghe@outlook.com&gt;</content>
</entry>
<entry>
<title>Generalize heterogenous code emit (#1968)</title>
<updated>2021-10-19T20:07:29+00:00</updated>
<author>
<name>David Siher</name>
<email>32305650+dsiher@users.noreply.github.com</email>
</author>
<published>2021-10-19T20:07:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=ba081c89a60d6207a6534c2ad256945490196661'/>
<id>urn:sha1:ba081c89a60d6207a6534c2ad256945490196661</id>
<content type='text'>
* Bring heterogeneous-hello-world back up to date.

* Reintroduced heterogeneous-hello-world into the premake

* No longer uses compiled bytecode for entry point, instead a loadModule
call is hardocoded with the slang file name.

* Entry point is, similarly, hardcoded for now.

* Added a bypass to slang-legalize-types for an unneeded GPUForeach check

* Run premake and change to relative path

* Removed experimental and added README

* Add prebuild command to premake for heterogeneous example

* Pass in entry point as parameter (also remove shader bytecode)

* Pass in module name as parameter

* Squashed commit of the following:

commit 5b13b57fe600724344c556fe4309a5d6bb3d39ab
Author: Kai Yao &lt;kyao@nvidia.com&gt;
Date:   Thu Oct 7 23:38:50 2021 -0700

    Return diagnostics data when encountering module load error by exception (#1966)

commit 112e1515c30fa972ff56f91514b70946153c718c
Author: jsmall-nvidia &lt;jsmall@nvidia.com&gt;
Date:   Thu Oct 7 16:12:29 2021 -0400

    Disable test crashing CI (#1965)

    * #include an absolute path didn't work - because paths were taken to always be relative.

    * Disable test that appears to be crashing.

commit da32069a0c1c8c723d7ef45100049a8f0dd5d9c4
Author: Kai Yao &lt;kyao@nvidia.com&gt;
Date:   Mon Oct 4 13:58:51 2021 -0700

    Modified barrier API to accept multiple resources per call (#1959)

    Co-authored-by: Yong He &lt;yonghe@outlook.com&gt;

commit 97bb82ebcdf8f1391b9d93b5a8d7b1dfc4e88e52
Author: jsmall-nvidia &lt;jsmall@nvidia.com&gt;
Date:   Mon Oct 4 14:15:51 2021 -0400

    Removing exceptions from core/compiler-core (#1953)

    * #include an absolute path didn't work - because paths were taken to always be relative.

    * Refactor Stream. Working on all tests.

    * Split out CharEncode.

    * Make method names lower camel.
    m_prefix in Writer/Reader

    * Tidy up around CharEncode interface.

    * Small improvements around encode/decode.

    * Better use of types.

    * Remove readLine from TextReader.

    * Remove exceptions from Stream/Text handling.

    * Fix some typos.

    * Fix tabbing.

    * Fix missing override.

    * Remove remaining exception throw/catch via using signal mechanism.

    * Remove exceptions that are not used anymore.

    * Document the Stream interface.

    * Remove index for decoding 'get byte' function.

    * Fix CharReader -&gt; ByteReader.

commit b3dfe383c6d31ff3dbd76dcfb32de8d536382f3e
Author: lucy96chen &lt;47800040+lucy96chen@users.noreply.github.com&gt;
Date:   Mon Oct 4 09:46:33 2021 -0700

    Get native handles for TextureResource and BufferResource (#1960)

    * Added getNativeHandle() to TextureResource and BufferResource; Implemented getNativeHandle() in Vulkan and D3D12; Added new unit test files for the aforementioned implementation

    * Added missing getNativeHandle() implementations to renderer-shared.cpp and CUDA

    * Finished new getNativeHandle() unit tests for ITextureResource and IBufferResource; Modified ICommandQueue and ICommandBuffer unit tests to call QueryInterface to convert to IUnknown then back and compare resulting pointers for equality

    * Unit tests updated and pass locally

    * Cast m_buffer.m_buffer and m_image to uint64_t

commit 35bca4cc432613af3926da3bed217a6baa9cbd26
Author: lucy96chen &lt;47800040+lucy96chen@users.noreply.github.com&gt;
Date:   Fri Oct 1 13:08:25 2021 -0700

    Add getNativeHandle() to ICommandQueue and ICommandBuffer (#1952)

    * Added support for getting command buffer and command queue handles to ICommandBuffer and ICommandQueue; D3D12Device, VkDevice, and DebugDevice modifieid to implement this new functionality; immediate-renderer-base.cpp also modified to implement the new functions

    * Removed excess boilerplate

    * Changed readRef() to get() in D3D12 getNativeHandle() implementation for ICommandBuffer and ICommandQueue

    * Added unit tests for new getNativeHandle() implementations, unfinished

    * Queue test added; Minor cleanup changes

    * getBufferHandleTestImpl() now closes the command buffer before returning

    * Added getNativeHandle() implementations to CUDADevice

    * Added comment clarifying that the Vulkan check is checking for a null handle, which is defined to be 0

commit 6c6200f547c7387598743b23bb3c8f0d375d9494
Author: Kai Yao &lt;kyao@nvidia.com&gt;
Date:   Thu Sep 30 20:25:34 2021 -0700

    VK Resource Barrier (#1955)

    * Resource barrier API and VK implementation

    * Stub implementations

    * Handle VK Acceleration Structure flag

    * Add a couple more cases to pipeline barrier stages

commit 627fc976bac5c2381dbace9c7925cb6a68b8de12
Author: Yong He &lt;yonghe@outlook.com&gt;
Date:   Thu Sep 30 19:48:47 2021 -0700

    Fix aarch64 build on github (#1957)

    Co-authored-by: Yong He &lt;yhe@nvidia.com&gt;

commit 122d701513e116856bd59c999221ce36a373d7db
Author: Yong He &lt;yonghe@outlook.com&gt;
Date:   Thu Sep 30 17:51:56 2021 -0700

    Fix GitHub release (#1956)

    * Fix aarch64 release build config.

    * Fix for WinAarch64 build.

    * Update premake for embed-std-lib build on aarch64.

    * `platform` fix for aarach64 build.

    * Try revert back to use absolute output path for slang-stdlib-generated.h

    * Fix

    * fix

    Co-authored-by: Yong He &lt;yhe@nvidia.com&gt;

commit aa8f7b899b7b562b3d3c6e25c3da41569505e70c
Author: Chad Engler &lt;englercj@live.com&gt;
Date:   Wed Sep 29 13:02:47 2021 -0700

    Fix ARM64 detection for MSVC (#1951)

commit 6736b0c1c5fa3e89bc561eb7965a1a0d17af3466
Author: Yong He &lt;yonghe@outlook.com&gt;
Date:   Wed Sep 29 11:29:46 2021 -0700

    Add ISession::loadModuleFromSource. (#1950)

    Co-authored-by: Yong He &lt;yhe@nvidia.com&gt;

commit d8e452412e14a6a8ba137f2adcae13b398e5cecb
Author: Yong He &lt;yonghe@outlook.com&gt;
Date:   Tue Sep 28 15:03:03 2021 -0700

    Fix AbortCompilationException leaking through loadModule API. (#1949)

    * Fix AbortCompilationException leaking through loadModule API.

    * Update.

    * Fix.

    Co-authored-by: Yong He &lt;yhe@nvidia.com&gt;

commit cdf1b2c007fefdca128584d2a9f63dec3d350e16
Author: Yong He &lt;yonghe@outlook.com&gt;
Date:   Tue Sep 28 11:54:24 2021 -0700

    Improvements to the unit test framework. (#1948)

commit af788b62e18bbd55cd748ad60400a74cf1bc93ee
Author: lucy96chen &lt;47800040+lucy96chen@users.noreply.github.com&gt;
Date:   Fri Sep 24 16:53:41 2021 -0700

    Add existing device handle support unit test (#1946)

commit bec8e6aec85b6e3f875c58bdd59eb15613978358
Author: Yong He &lt;yonghe@outlook.com&gt;
Date:   Fri Sep 24 11:33:44 2021 -0700

    Move existing unit tests to a standalone dll. (#1945)

commit f2a3c933bc11a498c622fa18694c84beca8ca031
Author: lucy96chen &lt;47800040+lucy96chen@users.noreply.github.com&gt;
Date:   Thu Sep 23 12:19:49 2021 -0700

    Add method to retrieve native handles (#1944)

    * Added a getNativeHandle() method that retrieves the natively created handles; Modified RendererBase, VKDevice, D3D12Device, and DebugDevice to implement this new method

    * Moved ExistingDeviceHandles out of Desc directly inside IDevice and renamed to NativeHandles; Modified calls accessing the struct accordingly in RendererBase, DebugDevice, VKDevice, and D3D12Device

    * Minor cleanup changes (renames, etc.)

commit b9b398d038b524f15a86ff27cd6888d54e8754e0
Author: Yong He &lt;yonghe@outlook.com&gt;
Date:   Wed Sep 22 10:06:59 2021 -0700

    Add gfx unit testing framework. (#1943)

    * Add gfx unit testing framework.

    * Fix compilation error.

    * Reset gfxDebugCallback after render_test.

    * Pass enabledApi flags through.

    * Fix for code review suggestions.

    Co-authored-by: Yong He &lt;yhe@nvidia.com&gt;

commit 6e9cee69b3588ddae09b08b9f580f59ad899983f
Author: lucy96chen &lt;47800040+lucy96chen@users.noreply.github.com&gt;
Date:   Tue Sep 21 18:46:32 2021 -0700

    Support for existing device/instance handles in Vulkan (#1942)

commit b1f04c8544c650de3947955ca68f679535d249aa
Author: lucy96chen &lt;47800040+lucy96chen@users.noreply.github.com&gt;
Date:   Wed Sep 15 20:22:45 2021 -0700

    Allow D3D12Device to use an existing device handle (#1940)

    * Added a new field for an existing device handle to IDevice::Desc; Modified D3D12Device::initialize to set the device stored in desc if it already exists instead of creating a new one

    * Turned existingDeviceHandle into a struct containing an array of two elements; Updated D3D12Device::initialize to match changes to existingDeviceHandle; Updated comments

    * Fixed style error for ExistingDeviceHandles struct

commit 2f7b9f5ae8be21c6c1d75ae9caefbc7b3f8986a9
Author: Pablo Delgado &lt;private@pablode.com&gt;
Date:   Thu Sep 16 01:17:57 2021 +0200

    Fix incorrect WIN32 macros and missing Windows.h inclusion (#1939)

    * Replace WIN32 preprocessor macros with _WIN32

    * Add missing Windows.h include for InterlockedIncrement

commit 11d43642008905ac69a3832eb8a9b2ae7b785f86
Author: Yong He &lt;yonghe@outlook.com&gt;
Date:   Tue Sep 14 11:36:44 2021 -0700

    Avoid upcasting to f32 in 16bit float-uint bit cast. (#1938)

    Co-authored-by: Yong He &lt;yhe@nvidia.com&gt;

commit 502aa3812a82cf0d091cff0c67804e4ee448ac78
Author: David Siher &lt;32305650+dsiher@users.noreply.github.com&gt;
Date:   Tue Sep 14 12:59:55 2021 -0400

    Bring heterogeneous-hello-world back up to date. (#1935)

    * Bring heterogeneous-hello-world back up to date.

    * Reintroduced heterogeneous-hello-world into the premake

    * No longer uses compiled bytecode for entry point, instead a loadModule
    call is hardocoded with the slang file name.

    * Entry point is, similarly, hardcoded for now.

    * Added a bypass to slang-legalize-types for an unneeded GPUForeach check

    * Run premake and change to relative path

    * Removed experimental and added README

    Co-authored-by: Yong He &lt;yonghe@outlook.com&gt;

* Revert "Squashed commit of the following:"

This reverts commit 4f665858d65f7c332c616ef6db9fdafa1c5e0b9f.

* Run premake

* Remove prebuild command (only works on Windows?)

* Rerun premake

* Fix heterogeneous prebuild command

* Remove linux specific prebuild command

* Fix prebuild command (again)

* Change target from dxbc to hlsl to see if that fixes linux issues

* Use Path::getFileNameWithoutExt

* Change string-literal.slang.expected to have extra filename in decoration

Co-authored-by: Yong He &lt;yonghe@outlook.com&gt;</content>
</entry>
<entry>
<title>Bring heterogeneous-hello-world back up to date. (#1935)</title>
<updated>2021-09-14T16:59:55+00:00</updated>
<author>
<name>David Siher</name>
<email>32305650+dsiher@users.noreply.github.com</email>
</author>
<published>2021-09-14T16:59:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=502aa3812a82cf0d091cff0c67804e4ee448ac78'/>
<id>urn:sha1:502aa3812a82cf0d091cff0c67804e4ee448ac78</id>
<content type='text'>
* Bring heterogeneous-hello-world back up to date.

* Reintroduced heterogeneous-hello-world into the premake

* No longer uses compiled bytecode for entry point, instead a loadModule
call is hardocoded with the slang file name.

* Entry point is, similarly, hardcoded for now.

* Added a bypass to slang-legalize-types for an unneeded GPUForeach check

* Run premake and change to relative path

* Removed experimental and added README

Co-authored-by: Yong He &lt;yonghe@outlook.com&gt;</content>
</entry>
<entry>
<title>Refactor `gfx` to surface `CommandBuffer` interface. (#1735)</title>
<updated>2021-03-05T00:25:58+00:00</updated>
<author>
<name>Yong He</name>
<email>yonghe@outlook.com</email>
</author>
<published>2021-03-05T00:25:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=a5ac4999b4dea546a7ef824669ab1809224b6448'/>
<id>urn:sha1:a5ac4999b4dea546a7ef824669ab1809224b6448</id>
<content type='text'>
* Refactor `gfx` to surface `CommandBuffer` interface.

* Fixes.

* Fix code review issues, and make vulkan runnable on devices without VK_EXT_extended_dynamic_states.

* Update solution files

* Move out-of-date examples to examples/experimental

Co-authored-by: Yong He &lt;yhe@nvidia.com&gt;</content>
</entry>
<entry>
<title>Heterogeneous Flag Error Visibility (#1642)</title>
<updated>2020-12-18T17:10:10+00:00</updated>
<author>
<name>Dietrich Geisler</name>
<email>dag368@cornell.edu</email>
</author>
<published>2020-12-18T17:10:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=f5fffa90e936ab462b3842f9b2cfa996ae870fe4'/>
<id>urn:sha1:f5fffa90e936ab462b3842f9b2cfa996ae870fe4</id>
<content type='text'>
* PR to fix issue #1638.  This change introduces a diagnostic sink to the
emitModule function, and updates all associated calls to that function.
Additionally, this commit updates the heterogeneous hello world example
to not need the entry and stage flags for simplicity.

* Updated emit-cpp per suggested changes

Co-authored-by: Tim Foley &lt;tfoleyNV@users.noreply.github.com&gt;</content>
</entry>
<entry>
<title>GPU Foreach Loop (#1498)</title>
<updated>2020-08-17T16:50:44+00:00</updated>
<author>
<name>Dietrich Geisler</name>
<email>dag368@cornell.edu</email>
</author>
<published>2020-08-17T16:50:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=ff2d490dc120708a2fcb6eea5880a6b7c6586a4b'/>
<id>urn:sha1:ff2d490dc120708a2fcb6eea5880a6b7c6586a4b</id>
<content type='text'>
* GPU Foreach Loop

This PR introduces the completed GPU foreach loop and updates the
heterogeneous-hello-world example to use it.  This PR builds on the
previous introduction of the GPU Foreach loop parsing and semantic
checking PR (#1482) by introducing IR lowering and emmitting.  THe new
feature can be used by having a GPU_Foreach loop interacting with a
named non-CPP entry point, and using the -heterogeneous flag.

* Fix to path

Co-authored-by: Tim Foley &lt;tfoleyNV@users.noreply.github.com&gt;</content>
</entry>
<entry>
<title>GPU Foreach Parsing and Checking (#1482)</title>
<updated>2020-08-12T17:39:08+00:00</updated>
<author>
<name>Dietrich Geisler</name>
<email>dag368@cornell.edu</email>
</author>
<published>2020-08-12T17:39:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=e1ea7ed2f9b8cfcf19258a05d270de4db03fec22'/>
<id>urn:sha1:e1ea7ed2f9b8cfcf19258a05d270de4db03fec22</id>
<content type='text'>
This PR introduces parsing and semantic checking for a GPU foreach loop
for heterogeneouis programming. A GPU foreach loop takes the form:
```
__GPU_FOREACH(renderer, gridDims, LAMBDA(uint3 dispatchThreadID) {
        kernelCall(args, ...); });
```

And will allow the host code to call into a kernel with the correct
renderer and grid dimensions. This commit also introduces a hack to
unify types in the heterogeneous hello world file, which will hopefully
be amended in the future.

Co-authored-by: Tim Foley &lt;tfoleyNV@users.noreply.github.com&gt;</content>
</entry>
<entry>
<title>Baseline Heterogeneous Example (#1460)</title>
<updated>2020-07-27T16:14:17+00:00</updated>
<author>
<name>Dietrich Geisler</name>
<email>dag368@cornell.edu</email>
</author>
<published>2020-07-27T16:14:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=348058f96e81d11da2698acf8343a99a199f1f24'/>
<id>urn:sha1:348058f96e81d11da2698acf8343a99a199f1f24</id>
<content type='text'>
* Baseline Heterogeneous Example

This PR introduces a baseline heterogeneous example, including both a
Slang file and an associated C++ helper file.  This refactoring
primarily moves the Slang file "into the driver's seat" while
maintaining that the C++ side still does most of the actual work.

* Fix to prelude path</content>
</entry>
<entry>
<title>CPU/GPU Compute Shader Example (#1451)</title>
<updated>2020-07-24T05:50:53+00:00</updated>
<author>
<name>Dietrich Geisler</name>
<email>dag368@cornell.edu</email>
</author>
<published>2020-07-24T05:50:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=7e952cde57719169bd8384427842cba033c9f80c'/>
<id>urn:sha1:7e952cde57719169bd8384427842cba033c9f80c</id>
<content type='text'>
* CPU/GPU Compute Shader Example

This PR introduces an example to run a simple compute shader on the GPU
in the heterogeneous-hello-world example.  All loading code is currently run in
C++, so the heterogeneity of this example is still a work in progress.
This change updates exactly this example, and so should not cause
issues elsewhere in the codebase.

* Small fix

* Added gfx to help the linker

* Added back the struct

* Updated premake to respect windows conditions

* Completely removed het-example

* Re-added example

Co-authored-by: Tim Foley &lt;tfoleyNV@users.noreply.github.com&gt;</content>
</entry>
</feed>
