Hi,
I created a reproducer app for issues with CUDA-Vulkan image interop on Windows. The reproducer can be found at GitHub - chrismile/TestCudaVulkanImageInterop: Test app for CUDA-Vulkan image interop..
In this test app, CUDA writes linearly increasing values to a shared RGBA 32-bit float image of size 1024 x 1024 (via a surface object). Vulkan then copies this to a device local buffer, and from there to a host visible buffer.
While the test works normally on an Ubuntu 24.04 system (no matter how often the test is run), on Windows the read back memory is sometimes all zeros. Synchronization can be either done by syncing between CUDA and Vulkan on the CPU or using shared semaphores. Both cases fail.
Tested system configurations:
- RTX 3090, Ubuntu 24.04, CUDA 12.6, driver 580.126.09, GCC 13.3 (works)
- RTX 3090, Windows 11, CUDA 12.8, driver 591.86 & 591.74 & 582.30, MSVC 2022 (fails)
I have created a comparable CUDA-D3D12 test case, but it does not fail. When not sharing images, but buffers between CUDA and Vulkan, that also does not fail.