vkd3d: Add macros to parse/build NV driver versions.

The bit offsets are a bit different from Vulkan API.

Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
This commit is contained in:
Hans-Kristian Arntzen 2021-09-08 18:21:47 +02:00
parent d2b3238b2d
commit 11086a94e0
2 changed files with 20 additions and 8 deletions

View File

@ -1180,14 +1180,21 @@ static void vkd3d_trace_physical_device_properties(const VkPhysicalDevicePropert
{
TRACE("Device name: %s.\n", properties->deviceName);
TRACE("Vendor ID: %#x, Device ID: %#x.\n", properties->vendorID, properties->deviceID);
TRACE("Driver version: %#x (%u.%u.%u, %u.%u.%u.%u).\n", properties->driverVersion,
VK_VERSION_MAJOR(properties->driverVersion),
VK_VERSION_MINOR(properties->driverVersion),
VK_VERSION_PATCH(properties->driverVersion),
(properties->driverVersion >> 22),
(properties->driverVersion >> 14) & 0xff,
(properties->driverVersion >> 6) & 0xff,
(properties->driverVersion >> 0) & 0x3f);
if (properties->vendorID == VKD3D_VENDOR_ID_NVIDIA)
{
TRACE("Driver version: %#x (%u.%u.%u).\n", properties->driverVersion,
VKD3D_DRIVER_VERSION_MAJOR_NV(properties->driverVersion),
VKD3D_DRIVER_VERSION_MINOR_NV(properties->driverVersion),
VKD3D_DRIVER_VERSION_PATCH_NV(properties->driverVersion));
}
else
{
TRACE("Driver version: %#x (%u.%u.%u).\n", properties->driverVersion,
VK_VERSION_MAJOR(properties->driverVersion),
VK_VERSION_MINOR(properties->driverVersion),
VK_VERSION_PATCH(properties->driverVersion));
}
TRACE("API version: %u.%u.%u.\n",
VK_VERSION_MAJOR(properties->apiVersion),
VK_VERSION_MINOR(properties->apiVersion),

View File

@ -3094,4 +3094,9 @@ void vkd3d_acceleration_structure_copy(
#define VKD3D_VENDOR_ID_AMD 0x1002
#define VKD3D_VENDOR_ID_INTEL 0x8086
#define VKD3D_DRIVER_VERSION_MAJOR_NV(v) ((v) >> 22)
#define VKD3D_DRIVER_VERSION_MINOR_NV(v) (((v) >> 14) & 0xff)
#define VKD3D_DRIVER_VERSION_PATCH_NV(v) (((v) >> 6) & 0xff)
#define VKD3D_DRIVER_VERSION_MAKE_NV(major, minor, patch) (((major) << 22) | ((minor) << 14) | ((patch) << 6))
#endif /* __VKD3D_PRIVATE_H */