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;
|
||||
}
|
||||
|
||||
/* 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)
|
||||
{
|
||||
VkPhysicalDeviceDriverPropertiesKHR driver_properties;
|
||||
uint32_t driver_major, driver_minor, driver_patch;
|
||||
VkPhysicalDeviceProperties device_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 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)
|
||||
|
||||
@@ -491,4 +491,20 @@ static inline bool get_mesa_driver_version(const VkPhysicalDeviceProperties *dev
|
||||
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 */
|
||||
|
||||
Reference in New Issue
Block a user