radv: generate the same driver UUID as radeonsi
authorAndres Rodriguez <andresx7@gmail.com>
Wed, 12 Jul 2017 22:45:31 +0000 (18:45 -0400)
committerTimothy Arceri <tarceri@itsqueeze.com>
Sun, 6 Aug 2017 02:42:07 +0000 (12:42 +1000)
These need to match for interop compatibility queries.

Signed-off-by: Andres Rodriguez <andresx7@gmail.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
src/amd/vulkan/radv_device.c
src/amd/vulkan/radv_private.h

index fe621d23dca32b06f6c9733c4efb57c7fd0a3a8c..ce65ba378e17bf8ea6b714916ac33823389b929e 100644 (file)
@@ -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;
index 8e86f5c1d52643f581d3accb5c8fddc33a55d626..6230efce81f57d128f6c8f759f7dd2e58f1b0633 100644 (file)
@@ -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];