Merge 9fef149372771988d237225ac5dbec6a03c324f1 into f3b7c41ad6202902290d2bbd16428455b3ee375a

This commit is contained in:
Schabrackentapir 2025-02-23 21:14:00 -05:00 committed by GitHub
commit d1ece19ab2
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 15 additions and 6 deletions

View File

@ -117,9 +117,12 @@ VulkanBaseApp::VulkanBaseApp(const std::string &appName, bool enableValidation)
VkExternalSemaphoreHandleTypeFlagBits
VulkanBaseApp::getDefaultSemaphoreHandleType() {
#ifdef _WIN64
return IsWindows8OrGreater()
? VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT
: VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT;
// "IsWindows8<xxx>orGreater" returns false on windows 10!
// https://docs.microsoft.com/en-us/windows/win32/sysinfo/version-helper-apis
//return IsWindows8OrGreater()
// ? VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT
// : VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT;
return VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT;
#else
return VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT;
#endif /* _WIN64 */
@ -127,9 +130,12 @@ VulkanBaseApp::getDefaultSemaphoreHandleType() {
VkExternalMemoryHandleTypeFlagBits VulkanBaseApp::getDefaultMemHandleType() {
#ifdef _WIN64
return IsWindows8Point1OrGreater()
? VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT
: VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT;
// "IsWindows8<xxx>orGreater" returns false on windows 10!
// https://docs.microsoft.com/en-us/windows/win32/sysinfo/version-helper-apis
//return IsWindows8Point1OrGreater()
// ? VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT
// : VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT;
return VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT;
#else
return VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT;
#endif /* _WIN64 */

View File

@ -345,6 +345,9 @@ class VulkanCudaSineWave : public VulkanBaseApp {
externalMemoryHandleDesc.size = size;
// https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#importing-memory-objects-vul-int
externalMemoryHandleDesc.flags |= cudaExternalMemoryDedicated;
#ifdef _WIN64
externalMemoryHandleDesc.handle.win32.handle =
(HANDLE)getMemHandle(vkMem, handleType);