<feed xmlns='http://www.w3.org/2005/Atom'>
<title>slang.git/tools/gfx-unit-test/get-shared-handle.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>2021-12-08T19:38:14+00:00</updated>
<entry>
<title>D3D12 and Vulkan to CUDA Texture Sharing (#2038)</title>
<updated>2021-12-08T19:38:14+00:00</updated>
<author>
<name>lucy96chen</name>
<email>47800040+lucy96chen@users.noreply.github.com</email>
</author>
<published>2021-12-08T19:38:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=9606401e1de1002e3ad070bc5c6384fa5bc4d9ff'/>
<id>urn:sha1:9606401e1de1002e3ad070bc5c6384fa5bc4d9ff</id>
<content type='text'>
</content>
</entry>
<entry>
<title>gfx: D3D12 and VK Fence implementation. (#2048)</title>
<updated>2021-12-07T21:45:49+00:00</updated>
<author>
<name>Yong He</name>
<email>yonghe@outlook.com</email>
</author>
<published>2021-12-07T21:45:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=90d8af888b40c83b33f9f0c037bd2ab8c19a35f4'/>
<id>urn:sha1:90d8af888b40c83b33f9f0c037bd2ab8c19a35f4</id>
<content type='text'>
* gfx: D3D12 and VK Fence implementation.

* Fix.

* Update project files.

* Revert project file changes.

* Remove project files

Co-authored-by: Yong He &lt;yhe@nvidia.com&gt;</content>
</entry>
<entry>
<title>Add support for buffer sharing from Vulkan to CUDA (#2008)</title>
<updated>2021-11-12T23:43:23+00:00</updated>
<author>
<name>lucy96chen</name>
<email>47800040+lucy96chen@users.noreply.github.com</email>
</author>
<published>2021-11-12T23:43:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=7a4f08ee0411220c728bf42832d98e72d72167e2'/>
<id>urn:sha1:7a4f08ee0411220c728bf42832d98e72d72167e2</id>
<content type='text'>
* Added getSharedHandle() and additional code to handle shareable buffer creation to Buffer::init() and initVulkanInstanceAndDevice() for Vulkan; Modified createBufferFromSharedHandle() in CUDA to assign externalMemoryHandleDesc.type based on the type of handle being provided; Added an additional test case to get-shared-handle.cpp testing Vulkan to CUDA

* Added createBufferFromNativeHandle() to Vulkan and enabled corresponding test

* disable cuda

* Fixed getSharedHandle() for D3D12 buffers assigning Win32 as the handle's source

* Removed a dangling comment inside Buffer::init()

* Added a missing override; Added code to check that a physical device supports the necessary external memory extensions before adding them to the deviceExtensions list; Added #if SLANG_WINDOWS_FAMILY guards around all Windows-specific code and sharedHandleVulkanToCUDA test (which uses said platform-specific code)

* Added Windows check around vkGetMemoryWin32HandleKHR in vk-api.h

* Added missing Windows check around BufferResourceImpl destructor

* Added a temporary hack to ensure synchronization between devices, which solves an issue with buffer sharing resulting in incorrect values being read back; Added #if SLANG_WIN64 around all CUDA tests as the backend currently only supports running CUDA on 64-bit (despite devices being created successfully in a 32-bit config)</content>
</entry>
<entry>
<title>Allow buffers to be shared between D3D12 and CUDA (#2005)</title>
<updated>2021-11-09T19:59:43+00:00</updated>
<author>
<name>lucy96chen</name>
<email>47800040+lucy96chen@users.noreply.github.com</email>
</author>
<published>2021-11-09T19:59:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=4d4cd569ad7fcc88693c18f848603f18894e24be'/>
<id>urn:sha1:4d4cd569ad7fcc88693c18f848603f18894e24be</id>
<content type='text'>
* Added both the SharedHandle struct containing a handle and the API the handle originated from and the getSharedHandle() method to IResource, which returns a Windows system handle for the resource that can then be shared between multiple APIs (currently only fully implemented for D3D12); Added createTextureFromNativeHandle() and createBufferFromNativeHandle() to IDevice, which creates a buffer or texture resource using the provided handle (currently only fully implemented for D3D12); Added createBufferFromSharedHandle() to IDevice, which creates a BufferResource using the provided system handle (currently only fully implemented for the D3D12 to CUDA interface); Provided a proper implementation for CUDADevice::getNativeHandle(); Added several new tests testing the aforementioned implementations; Moved NativeHandle and getNativeHandle() for IBufferResource and ITextureResource up a layer into IResource and renamed to NativeResourceHandle; Modified NativeResourceHandle to be a struct containing the handle and the API it originated from and propagated these changes where appropriate

* Combined all native and shared handle representations into a unified InteropHandle struct which tracks the handle's value and source API; Modified all getNativeHandle() and getSharedHandle() variants to operate on InteropHandle and modified all affected files

* D3D12 buffers and textures are now responsible for closing their shared handles if they exist; Renamed IDevice::getNativeHandle() to getNativeDeviceHandles()

* Fixed getNativeDeviceHandles() in render-cuda to match updated method elsewhere

* Temporarily disabling existingDeviceHandleCUDA and sharedHandleD3D12ToCUDA due to currently unreproducable test failures on TC</content>
</entry>
</feed>
