On Linux, I’m trying to use Vulkan output as NvEnc input without copying. I found the Vulkan/Cuda interop suited well for my case. Also, AppMotionEstimationVkCuda is a good example that I can reference.
My use case requires the format of the shared Vulkan image, which is used for creating a Cuda mipmapped array, to be VK_IMAGE_TILING_LINEAR format. However, it fails on cuExternalMemoryGetMappedMipmappedArray
returning CUDA_ERROR_INVALID_VALUE. It only succeeds when I switch the format to VK_IMAGE_TILING_OPTIMAL.
Does the Vulkan/Cuda interop not support linear vulkan image format?