From: Andres Rodriguez <andre...@gmail.com>

These need to match for interop compatibility queries.

Signed-off-by: Andres Rodriguez <andre...@gmail.com>
Reviewed-by: Timothy Arceri <tarc...@itsqueeze.com>
---
 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 9bfa5a34cd..06721e139b 100644
--- a/src/amd/vulkan/radv_device.c
+++ b/src/amd/vulkan/radv_device.c
@@ -56,20 +56,26 @@ radv_device_get_cache_uuid(enum radeon_family family, void 
*uuid)
                return -1;
 
        memcpy(uuid, &mesa_timestamp, 4);
        memcpy((char*)uuid + 4, &llvm_timestamp, 4);
        memcpy((char*)uuid + 8, &f, 2);
        snprintf((char*)uuid + 10, VK_UUID_SIZE - 10, "radv");
        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)
 {
        ac_compute_device_uuid(info, uuid, VK_UUID_SIZE);
 }
 
 static const VkExtensionProperties instance_extensions[] = {
        {
                .extensionName = VK_KHR_SURFACE_EXTENSION_NAME,
                .specVersion = 25,
        },
@@ -328,20 +334,21 @@ radv_physical_device_init(struct radv_physical_device 
*device,
                                                  &device->extensions,
                                                  ext_sema_device_extensions,
                                                  
ARRAY_SIZE(ext_sema_device_extensions));
                if (result != VK_SUCCESS)
                        goto fail;
        }
 
        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 ||
            device->rad_info.chip_class >= GFX9) {
                device->has_rbplus = true;
                device->rbplus_allowed = device->rad_info.family == CHIP_STONEY;
        }
 
        return VK_SUCCESS;
 
@@ -785,21 +792,21 @@ void radv_GetPhysicalDeviceProperties2KHR(
        vk_foreach_struct(ext, pProperties->pNext) {
                switch (ext->sType) {
                case 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR: {
                        VkPhysicalDevicePushDescriptorPropertiesKHR *properties 
=
                                (VkPhysicalDevicePushDescriptorPropertiesKHR *) 
ext;
                        properties->maxPushDescriptors = MAX_PUSH_DESCRIPTORS;
                        break;
                }
                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;
                }
                default:
                        break;
                }
        }
 }
 
diff --git a/src/amd/vulkan/radv_private.h b/src/amd/vulkan/radv_private.h
index 21a8d410f0..5d6ab9e533 100644
--- a/src/amd/vulkan/radv_private.h
+++ b/src/amd/vulkan/radv_private.h
@@ -260,20 +260,21 @@ struct radv_extensions {
 
 struct radv_physical_device {
        VK_LOADER_DATA                              _loader_data;
 
        struct radv_instance *                       instance;
 
        struct radeon_winsys *ws;
        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];
 
        int local_fd;
        struct wsi_device                       wsi_device;
        struct radv_extensions                      extensions;
 
        bool has_rbplus; /* if RB+ register exist */
        bool rbplus_allowed; /* if RB+ is allowed */
 };
-- 
2.13.3

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to