mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-12-15 08:03:30 -08:00
tests: Introduce get_mvk_driver_version().
This commit is contained in:
committed by
Henri Verbeet
parent
265d0fddb5
commit
190033bb85
Notes:
Henri Verbeet
2025-10-06 19:48:45 +02:00
Approved-by: Henri Verbeet (@hverbeet) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1768
@@ -888,20 +888,18 @@ static inline bool is_mvk_paravirtualized_device(ID3D12Device *device)
|
|||||||
&& strcmp(device_properties.deviceName, "Apple Paravirtual device") == 0;
|
&& strcmp(device_properties.deviceName, "Apple Paravirtual device") == 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* MoltenVK uses a different pattern than standard Vulkan. */
|
|
||||||
#define MVK_MAKE_API_VERSION(major, minor, patch) \
|
|
||||||
((((uint32_t)(major)) * 10000) + (((uint32_t)(minor)) * 100) + (uint32_t)(patch))
|
|
||||||
|
|
||||||
static inline bool is_mvk_device_lt(ID3D12Device *device, uint32_t major, uint32_t minor, uint32_t patch)
|
static inline bool is_mvk_device_lt(ID3D12Device *device, uint32_t major, uint32_t minor, uint32_t patch)
|
||||||
{
|
{
|
||||||
VkPhysicalDeviceDriverPropertiesKHR driver_properties;
|
VkPhysicalDeviceDriverPropertiesKHR driver_properties;
|
||||||
|
uint32_t driver_major, driver_minor, driver_patch;
|
||||||
VkPhysicalDeviceProperties device_properties;
|
VkPhysicalDeviceProperties device_properties;
|
||||||
|
|
||||||
get_driver_properties(device, &device_properties, &driver_properties);
|
get_driver_properties(device, &device_properties, &driver_properties);
|
||||||
if (driver_properties.driverID != VK_DRIVER_ID_MOLTENVK)
|
|
||||||
|
if (!get_mvk_driver_version(&device_properties, &driver_properties, &driver_major, &driver_minor, &driver_patch))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
return device_properties.driverVersion < MVK_MAKE_API_VERSION(major, minor, patch);
|
return compare_versions(driver_major, driver_minor, driver_patch, major, minor, patch) < 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline bool is_mesa_device_with_llvm_ge(ID3D12Device *device, uint32_t major, uint32_t minor, uint32_t patch)
|
static inline bool is_mesa_device_with_llvm_ge(ID3D12Device *device, uint32_t major, uint32_t minor, uint32_t patch)
|
||||||
|
|||||||
@@ -491,4 +491,20 @@ static inline bool get_mesa_driver_version(const VkPhysicalDeviceProperties *dev
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline bool get_mvk_driver_version(const VkPhysicalDeviceProperties *device_properties,
|
||||||
|
const VkPhysicalDeviceDriverPropertiesKHR *driver_properties,
|
||||||
|
uint32_t *major, uint32_t *minor, uint32_t *patch)
|
||||||
|
{
|
||||||
|
uint32_t version = device_properties->driverVersion;
|
||||||
|
|
||||||
|
if (driver_properties->driverID != VK_DRIVER_ID_MOLTENVK)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
*major = version / 10000;
|
||||||
|
*minor = (version / 100) % 100;
|
||||||
|
*patch = version % 100;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
#endif /* __VKD3D_VULKAN_UTILS_H */
|
#endif /* __VKD3D_VULKAN_UTILS_H */
|
||||||
|
|||||||
Reference in New Issue
Block a user