Mesa (main): crocus: plumb device/driver UUID generators

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Jun 15 00:13:26 UTC 2021


Module: Mesa
Branch: main
Commit: 4a9da4dade13034ada4895186cc7abf592500bfc
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=4a9da4dade13034ada4895186cc7abf592500bfc

Author: Dave Airlie <airlied at gmail.com>
Date:   Mon Jun 14 13:25:57 2021 +1000

crocus: plumb device/driver UUID generators

Ports 456fa9b8385b14d6f2d4bea16e89bf280c4d5b3f from iris.

    Use the same generators as used in anv driver so both Vulkan and OpenGL
    drivers can share the same external memory objects.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11352>

---

 src/gallium/drivers/crocus/crocus_screen.c | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/src/gallium/drivers/crocus/crocus_screen.c b/src/gallium/drivers/crocus/crocus_screen.c
index d5331d66730..54aad8ff854 100644
--- a/src/gallium/drivers/crocus/crocus_screen.c
+++ b/src/gallium/drivers/crocus/crocus_screen.c
@@ -54,6 +54,7 @@
 #include "intel/compiler/brw_compiler.h"
 #include "intel/common/intel_gem.h"
 #include "intel/common/intel_l3_config.h"
+#include "intel/common/intel_uuid.h"
 #include "crocus_monitor.h"
 
 #define genX_call(devinfo, func, ...)                   \
@@ -101,6 +102,24 @@ crocus_get_device_vendor(struct pipe_screen *pscreen)
    return "Intel";
 }
 
+static void
+crocus_get_device_uuid(struct pipe_screen *pscreen, char *uuid)
+{
+   struct crocus_screen *screen = (struct crocus_screen *)pscreen;
+   const struct isl_device *isldev = &screen->isl_dev;
+
+   intel_uuid_compute_device_id((uint8_t *)uuid, isldev, PIPE_UUID_SIZE);
+}
+
+static void
+crocus_get_driver_uuid(struct pipe_screen *pscreen, char *uuid)
+{
+   struct crocus_screen *screen = (struct crocus_screen *)pscreen;
+   const struct intel_device_info *devinfo = &screen->devinfo;
+
+   intel_uuid_compute_driver_id((uint8_t *)uuid, devinfo, PIPE_UUID_SIZE);
+}
+
 static const char *
 crocus_get_name(struct pipe_screen *pscreen)
 {
@@ -814,6 +833,8 @@ crocus_screen_create(int fd, const struct pipe_screen_config *config)
    pscreen->get_compute_param = crocus_get_compute_param;
    pscreen->get_paramf = crocus_get_paramf;
    pscreen->get_compiler_options = crocus_get_compiler_options;
+   pscreen->get_device_uuid = crocus_get_device_uuid;
+   pscreen->get_driver_uuid = crocus_get_driver_uuid;
    pscreen->get_disk_shader_cache = crocus_get_disk_shader_cache;
    pscreen->is_format_supported = crocus_is_format_supported;
    pscreen->context_create = crocus_create_context;



More information about the mesa-commit mailing list