From: Andres Rodriguez Date: Wed, 12 Jul 2017 22:45:31 +0000 (-0400) Subject: radv: generate the same driver UUID as radeonsi X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=14cad8786a8f9b6ae2e76b60766ca3d904434d60;p=mesa.git 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 --- diff --git a/src/amd/vulkan/radv_device.c b/src/amd/vulkan/radv_device.c index fe621d23dca..ce65ba378e1 100644 --- a/src/amd/vulkan/radv_device.c +++ b/src/amd/vulkan/radv_device.c @@ -62,6 +62,12 @@ radv_device_get_cache_uuid(enum radeon_family family, void *uuid) return 0; } +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) { @@ -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 8e86f5c1d52..6230efce81f 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];