From 14cad8786a8f9b6ae2e76b60766ca3d904434d60 Mon Sep 17 00:00:00 2001 From: Andres Rodriguez Date: Wed, 12 Jul 2017 18:45:31 -0400 Subject: [PATCH] radv: generate the same driver UUID as radeonsi These need to match for interop compatibility queries. Signed-off-by: Andres Rodriguez Reviewed-by: Timothy Arceri --- src/amd/vulkan/radv_device.c | 9 ++++++++- src/amd/vulkan/radv_private.h | 1 + 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/amd/vulkan/radv_device.c b/src/amd/vulkan/radv_device.c index fe621d2..ce65ba3 100644 --- a/src/amd/vulkan/radv_device.c +++ b/src/amd/vulkan/radv_device.c @@ -63,6 +63,12 @@ radv_device_get_cache_uuid(enum radeon_family family, void *uuid) } static void +radv_get_driver_uuid(void *uuid) +{ + ac_compute_driver_uuid(uuid, VK_UUID_SIZE); +} + +static void radv_get_device_uuid(struct radeon_info *info, void *uuid) { ac_compute_device_uuid(info, uuid, VK_UUID_SIZE); @@ -335,6 +341,7 @@ radv_physical_device_init(struct radv_physical_device *device, fprintf(stderr, "WARNING: radv is not a conformant vulkan implementation, testing use only.\n"); device->name = get_chip_name(device->rad_info.family); + radv_get_driver_uuid(&device->device_uuid); radv_get_device_uuid(&device->rad_info, &device->device_uuid); if (device->rad_info.family == CHIP_STONEY || @@ -792,7 +799,7 @@ void radv_GetPhysicalDeviceProperties2KHR( } case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR: { VkPhysicalDeviceIDPropertiesKHR *properties = (VkPhysicalDeviceIDPropertiesKHR*)ext; - radv_device_get_cache_uuid(0, properties->driverUUID); + memcpy(properties->driverUUID, pdevice->driver_uuid, VK_UUID_SIZE); memcpy(properties->deviceUUID, pdevice->device_uuid, VK_UUID_SIZE); properties->deviceLUIDValid = false; break; diff --git a/src/amd/vulkan/radv_private.h b/src/amd/vulkan/radv_private.h index 8e86f5c..6230efc 100644 --- a/src/amd/vulkan/radv_private.h +++ b/src/amd/vulkan/radv_private.h @@ -267,6 +267,7 @@ struct radv_physical_device { struct radeon_info rad_info; char path[20]; const char * name; + uint8_t driver_uuid[VK_UUID_SIZE]; uint8_t device_uuid[VK_UUID_SIZE]; uint8_t cache_uuid[VK_UUID_SIZE]; -- 2.7.4