From 62b51bb43b635bdc2617e7bde4594f1f3bfb8018 Mon Sep 17 00:00:00 2001 From: Rohan Garg Date: Mon, 8 Jun 2020 11:57:12 +0200 Subject: [PATCH] i965: plumb device/driver UUID generators MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Reviewed-by: Eleni Maria Stea Reviewed-by: Tapani Pälli Part-of: --- src/mesa/drivers/dri/i965/brw_context.c | 27 +++++++++++++++++++++++++ 1 file changed, 27 insertions(+) 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" /*************************************** @@ -323,6 +324,29 @@ brw_finish(struct gl_context * ctx) brw_bo_wait_rendering(brw->batch.last_bo); } +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