summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRohan Garg <rohan.garg@collabora.com>2020-06-08 11:57:12 +0200
committerRohan Garg <rohan@garg.io>2021-04-28 13:48:03 +0000
commit62b51bb43b635bdc2617e7bde4594f1f3bfb8018 (patch)
treeffa4f54f373b56c6d48b4f87621b024fe6f5348c
parent41a42955d537f66c5b89215d5fc84fa8acdc6e95 (diff)
i965: plumb device/driver UUID generators
Use the same generators as used in anv driver so both Vulkan and OpenGL drivers can share the same external memory objects. Signed-off-by: Rohan Garg <rohan.garg@collabora.com> Reviewed-by: Eleni Maria Stea <estea@igalia.com> Reviewed-by: Tapani Pälli <tapani.palli@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5594>
-rw-r--r--src/mesa/drivers/dri/i965/brw_context.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_context.c b/src/mesa/drivers/dri/i965/brw_context.c
index e36313ff112..252640f8167 100644
--- a/src/mesa/drivers/dri/i965/brw_context.c
+++ b/src/mesa/drivers/dri/i965/brw_context.c
@@ -79,6 +79,7 @@
#include "isl/isl.h"
#include "common/intel_defines.h"
+#include "common/intel_uuid.h"
#include "compiler/spirv/nir_spirv.h"
/***************************************
@@ -324,6 +325,29 @@ brw_finish(struct gl_context * ctx)
}
static void
+brw_get_device_uuid(struct gl_context *ctx, char *uuid)
+{
+ struct brw_context *brw = brw_context(ctx);
+ struct brw_screen *screen = brw->screen;
+
+ assert(GL_UUID_SIZE_EXT >= PIPE_UUID_SIZE);
+ memset(uuid, 0, GL_UUID_SIZE_EXT);
+ intel_uuid_compute_device_id((uint8_t *)uuid, &screen->isl_dev, PIPE_UUID_SIZE);
+}
+
+
+static void
+brw_get_driver_uuid(struct gl_context *ctx, char *uuid)
+{
+ struct brw_context *brw = brw_context(ctx);
+ struct brw_screen *screen = brw->screen;
+
+ assert(GL_UUID_SIZE_EXT >= PIPE_UUID_SIZE);
+ memset(uuid, 0, GL_UUID_SIZE_EXT);
+ intel_uuid_compute_driver_id((uint8_t *)uuid, &screen->devinfo, PIPE_UUID_SIZE);
+}
+
+static void
brw_init_driver_functions(struct brw_context *brw,
struct dd_function_table *functions)
{
@@ -412,6 +436,9 @@ brw_init_driver_functions(struct brw_context *brw,
}
functions->SetBackgroundContext = brw_set_background_context;
+
+ functions->GetDeviceUuid = brw_get_device_uuid;
+ functions->GetDriverUuid = brw_get_driver_uuid;
}
static void