Mesa (mesa_7_7_branch): st/drm: Expose kernel driver name

Jakob Bornecrantz wallbraker at kemper.freedesktop.org
Wed Jan 20 00:02:57 UTC 2010


Module: Mesa
Branch: mesa_7_7_branch
Commit: a5fb5d6a54195d19942482873d0738eaade9e986
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=a5fb5d6a54195d19942482873d0738eaade9e986

Author: Jakob Bornecrantz <jakob at vmware.com>
Date:   Tue Jan 19 16:46:28 2010 +0000

st/drm: Expose kernel driver name

Based on patch by Chia-I Wu <olvaffe at gmail.com>

Expose the name of the kernel driver as accepted by drmOpenByName.

---

 src/gallium/drivers/trace/tr_drm.c                 |    1 +
 src/gallium/include/state_tracker/drm_api.h        |    5 +++++
 src/gallium/winsys/drm/intel/gem/intel_drm_api.c   |    1 +
 .../winsys/drm/nouveau/drm/nouveau_drm_api.c       |    1 +
 src/gallium/winsys/drm/radeon/core/radeon_drm.c    |    1 +
 .../winsys/drm/vmware/core/vmw_screen_dri.c        |    1 +
 6 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/src/gallium/drivers/trace/tr_drm.c b/src/gallium/drivers/trace/tr_drm.c
index 48d1c40..e7ca3a8 100644
--- a/src/gallium/drivers/trace/tr_drm.c
+++ b/src/gallium/drivers/trace/tr_drm.c
@@ -173,6 +173,7 @@ trace_drm_create(struct drm_api *api)
    if (!tr_api)
       goto error;
 
+   tr_api->base.driver_name = api->driver_name;
    tr_api->base.create_screen = trace_drm_create_screen;
    tr_api->base.create_context = trace_drm_create_context;
    tr_api->base.texture_from_shared_handle = trace_drm_texture_from_shared_handle;
diff --git a/src/gallium/include/state_tracker/drm_api.h b/src/gallium/include/state_tracker/drm_api.h
index 4d1259e..78882f3 100644
--- a/src/gallium/include/state_tracker/drm_api.h
+++ b/src/gallium/include/state_tracker/drm_api.h
@@ -29,6 +29,11 @@ struct drm_create_screen_arg {
 struct drm_api
 {
 	/**
+	 * Kernel driver name, as accepted by drmOpenByName.
+	 */
+	const char *driver_name;
+
+	/**
 	 * Special buffer functions
 	 */
 	/*@{*/
diff --git a/src/gallium/winsys/drm/intel/gem/intel_drm_api.c b/src/gallium/winsys/drm/intel/gem/intel_drm_api.c
index 5ed2a10..89b72fd 100644
--- a/src/gallium/winsys/drm/intel/gem/intel_drm_api.c
+++ b/src/gallium/winsys/drm/intel/gem/intel_drm_api.c
@@ -195,6 +195,7 @@ destroy(struct drm_api *api)
 
 struct drm_api intel_drm_api =
 {
+   .driver_name = "i915",
    .create_context = intel_drm_create_context,
    .create_screen = intel_drm_create_screen,
    .texture_from_shared_handle = intel_drm_texture_from_shared_handle,
diff --git a/src/gallium/winsys/drm/nouveau/drm/nouveau_drm_api.c b/src/gallium/winsys/drm/nouveau/drm/nouveau_drm_api.c
index 317dc44..6fccc35 100644
--- a/src/gallium/winsys/drm/nouveau/drm/nouveau_drm_api.c
+++ b/src/gallium/winsys/drm/nouveau/drm/nouveau_drm_api.c
@@ -252,6 +252,7 @@ nouveau_drm_handle_from_pt(struct drm_api *api, struct pipe_screen *pscreen,
 }
 
 struct drm_api drm_api_hooks = {
+	.driver_name = "nouveau",
 	.create_screen = nouveau_drm_create_screen,
 	.create_context = nouveau_drm_create_context,
 	.texture_from_shared_handle = nouveau_drm_pt_from_name,
diff --git a/src/gallium/winsys/drm/radeon/core/radeon_drm.c b/src/gallium/winsys/drm/radeon/core/radeon_drm.c
index 69f14e5..4d962c3 100644
--- a/src/gallium/winsys/drm/radeon/core/radeon_drm.c
+++ b/src/gallium/winsys/drm/radeon/core/radeon_drm.c
@@ -176,6 +176,7 @@ static boolean radeon_local_handle_from_texture(struct drm_api *api,
 }
 
 struct drm_api drm_api_hooks = {
+    .driver_name = "radeon",
     .create_screen = radeon_create_screen,
     .create_context = radeon_create_context,
     .texture_from_shared_handle = radeon_texture_from_shared_handle,
diff --git a/src/gallium/winsys/drm/vmware/core/vmw_screen_dri.c b/src/gallium/winsys/drm/vmware/core/vmw_screen_dri.c
index 7c47d43..dbbe170 100644
--- a/src/gallium/winsys/drm/vmware/core/vmw_screen_dri.c
+++ b/src/gallium/winsys/drm/vmware/core/vmw_screen_dri.c
@@ -375,6 +375,7 @@ static struct dri1_api dri1_api_hooks = {
 };
 
 static struct drm_api vmw_drm_api_hooks = {
+   .driver_name = "vmwgfx",
    .create_screen = vmw_drm_create_screen,
    .create_context = vmw_drm_create_context,
    .texture_from_shared_handle = vmw_drm_texture_from_handle,




More information about the mesa-commit mailing list