From 0d33d063ca671b159e1ec6d3a4fcb25cc98a7a82 Mon Sep 17 00:00:00 2001 From: Philip Rebohle Date: Thu, 11 Aug 2022 16:01:53 +0200 Subject: [PATCH] [dxvk] Remove device LUID workaround winevulkan properly supports this now. --- src/d3d9/d3d9_adapter.cpp | 6 +++--- src/dxgi/dxgi_adapter.cpp | 6 +++--- src/dxvk/dxvk_adapter.cpp | 3 --- src/dxvk/dxvk_device_info.h | 1 - src/dxvk/dxvk_instance.cpp | 4 ++-- 5 files changed, 8 insertions(+), 12 deletions(-) diff --git a/src/d3d9/d3d9_adapter.cpp b/src/d3d9/d3d9_adapter.cpp index 6a5762d4c..7ca05fffe 100644 --- a/src/d3d9/d3d9_adapter.cpp +++ b/src/d3d9/d3d9_adapter.cpp @@ -702,10 +702,10 @@ namespace dxvk { if (pLUID == nullptr) return D3DERR_INVALIDCALL; - auto& deviceId = m_adapter->devicePropertiesExt().coreDeviceId; + auto& vk11 = m_adapter->devicePropertiesExt().vk11; - if (deviceId.deviceLUIDValid) - *pLUID = bit::cast(deviceId.deviceLUID); + if (vk11.deviceLUIDValid) + *pLUID = bit::cast(vk11.deviceLUID); else *pLUID = dxvk::GetAdapterLUID(m_ordinal); diff --git a/src/dxgi/dxgi_adapter.cpp b/src/dxgi/dxgi_adapter.cpp index 84a43bc73..7c1de323e 100644 --- a/src/dxgi/dxgi_adapter.cpp +++ b/src/dxgi/dxgi_adapter.cpp @@ -244,7 +244,7 @@ namespace dxvk { auto deviceProp = m_adapter->deviceProperties(); auto memoryProp = m_adapter->memoryProperties(); - auto deviceId = m_adapter->devicePropertiesExt().coreDeviceId; + auto vk11 = m_adapter->devicePropertiesExt().vk11; // Custom Vendor / Device ID if (options->customVendorId >= 0) @@ -324,8 +324,8 @@ namespace dxvk { pDesc->GraphicsPreemptionGranularity = DXGI_GRAPHICS_PREEMPTION_DMA_BUFFER_BOUNDARY; pDesc->ComputePreemptionGranularity = DXGI_COMPUTE_PREEMPTION_DMA_BUFFER_BOUNDARY; - if (deviceId.deviceLUIDValid) - std::memcpy(&pDesc->AdapterLuid, deviceId.deviceLUID, VK_LUID_SIZE); + if (vk11.deviceLUIDValid) + std::memcpy(&pDesc->AdapterLuid, vk11.deviceLUID, VK_LUID_SIZE); else pDesc->AdapterLuid = GetAdapterLUID(m_index); diff --git a/src/dxvk/dxvk_adapter.cpp b/src/dxvk/dxvk_adapter.cpp index da5912771..cf694c0b5 100644 --- a/src/dxvk/dxvk_adapter.cpp +++ b/src/dxvk/dxvk_adapter.cpp @@ -618,9 +618,6 @@ namespace dxvk { m_deviceInfo.vk13.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES; m_deviceInfo.vk13.pNext = std::exchange(m_deviceInfo.core.pNext, &m_deviceInfo.vk13); - m_deviceInfo.coreDeviceId.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES; - m_deviceInfo.coreDeviceId.pNext = std::exchange(m_deviceInfo.core.pNext, &m_deviceInfo.coreDeviceId); - if (m_deviceExtensions.supports(VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME)) { m_deviceInfo.extConservativeRasterization.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT; m_deviceInfo.extConservativeRasterization.pNext = std::exchange(m_deviceInfo.core.pNext, &m_deviceInfo.extConservativeRasterization); diff --git a/src/dxvk/dxvk_device_info.h b/src/dxvk/dxvk_device_info.h index 212bd69c5..895dfcb84 100644 --- a/src/dxvk/dxvk_device_info.h +++ b/src/dxvk/dxvk_device_info.h @@ -14,7 +14,6 @@ namespace dxvk { */ struct DxvkDeviceInfo { VkPhysicalDeviceProperties2 core; - VkPhysicalDeviceIDProperties coreDeviceId; VkPhysicalDeviceVulkan11Properties vk11; VkPhysicalDeviceVulkan12Properties vk12; VkPhysicalDeviceVulkan13Properties vk13; diff --git a/src/dxvk/dxvk_instance.cpp b/src/dxvk/dxvk_instance.cpp index 189418c72..1d56910d9 100644 --- a/src/dxvk/dxvk_instance.cpp +++ b/src/dxvk/dxvk_instance.cpp @@ -61,9 +61,9 @@ namespace dxvk { Rc DxvkInstance::findAdapterByLuid(const void* luid) const { for (const auto& adapter : m_adapters) { - const auto& deviceId = adapter->devicePropertiesExt().coreDeviceId; + const auto& vk11 = adapter->devicePropertiesExt().vk11; - if (deviceId.deviceLUIDValid && !std::memcmp(luid, deviceId.deviceLUID, VK_LUID_SIZE)) + if (vk11.deviceLUIDValid && !std::memcmp(luid, vk11.deviceLUID, VK_LUID_SIZE)) return adapter; }