cuda-samples
cuda-samples copied to clipboard
Mistaken use of VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE in importCudaExternalMemory()
In Samples/5_Domain_Specific/simpleVulkan/main.cpp
The function importCudaExternalMemory:
void importCudaExternalMemory(void **cudaPtr, cudaExternalMemory_t &cudaMem,
VkDeviceMemory &vkMem, VkDeviceSize size,
VkExternalMemoryHandleTypeFlagBits handleType) {
cudaExternalMemoryHandleDesc externalMemoryHandleDesc = {};
if (handleType & VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT) {
externalMemoryHandleDesc.type = cudaExternalMemoryHandleTypeOpaqueWin32;
} else if (handleType &
VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT) {
externalMemoryHandleDesc.type =
cudaExternalMemoryHandleTypeOpaqueWin32Kmt;
} else if (handleType & VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT) {
externalMemoryHandleDesc.type = cudaExternalMemoryHandleTypeOpaqueFd;
} else {
throw std::runtime_error("Unknown handle type requested!");
}
// ...
}
uses VK_EXTERNAL_SEMAPHORE_HANDLE_... to switch between memory handle types. And I think it should be VK_EXTERNAL_MEMORY_HANDLE_... for memory handles.