Add external resource interoperability#592
Conversation
Signed-off-by: Dario Mylonopoulos <ramenguy99@gmail.com>
c37f1c6 to
37b82e8
Compare
|
I think @nvlukasz will be back next week. Will remind him to take a look. |
|
Thanks @ramenguy99, this looks like a potentially useful contribution. My main concern is that I'm not aware of any immediate use for it, so we don't have good test cases or usage examples. Can you share more information about how you are using this functionality? |
|
Hi, I'm currently using this with a Vulkan rendering library that has python bindings and can expose buffers / semaphores for interop with warp. This library is a personal project and is not currently open source, although I plan to release it at some point (hopefully in a few months). I agree that it does not make a lot of sense to merge this without immediate users, tests or examples. I can reopen this in the future once there is an easy way to integrate it. |
|
@nvlukasz If I may add a point to the discussion, we are also looking into integrating warp into UE5. Currently there is a lot of overhead due to costly UE5 rendering thread->UE CPU->warp python->warp CUDA->warp python->UE5 CPU->UE5 rendering thread data transfers taking place. This is due to the fact that we want to update the vertices of meshes in UE5 (which already live on the GPU) through warp and there is currently no interop between UE5's rendering thread and warp. Not sure what this PR does but the feature itself could be quite useful. |
Category
Description
Hi, this PR adds support for the External Resource Interoperability API for interoperability between Cuda and other graphics APIs such as Vulkan, D3D12 and D3D11.
PR is functional and tested on windows with Vulkan, some docs are missing and some cleanup might be needed. If there is interest in merging something like this I am more than happy to complete this.
~ Dario
Changelog
ExternalSemaphoreandExternalMemoryBufferBefore your PR is "Ready for review"
adheres to the Developer Certificate of Origin requirements
stubs.py,functions.rst)pre-commit run -a