st/drm: Expose kernel driver name
authorJakob Bornecrantz <jakob@vmware.com>
Tue, 19 Jan 2010 16:46:28 +0000 (16:46 +0000)
committerJakob Bornecrantz <jakob@vmware.com>
Tue, 19 Jan 2010 16:10:04 +0000 (17:10 +0100)
Based on patch by Chia-I Wu <olvaffe@gmail.com>

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

src/gallium/drivers/trace/tr_drm.c
src/gallium/include/state_tracker/drm_api.h
src/gallium/winsys/drm/intel/gem/intel_drm_api.c
src/gallium/winsys/drm/nouveau/drm/nouveau_drm_api.c
src/gallium/winsys/drm/radeon/core/radeon_drm.c
src/gallium/winsys/drm/vmware/core/vmw_screen_dri.c

index 48d1c4051cc274a258b96be292da2b1ba13a0a55..e7ca3a86eadf081f3538769aeab753fa8f0d85b6 100644 (file)
@@ -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;
index 4d1259e1ee727baf08769746b485c0a5d3d7b649..78882f3aa788d267cf7fa6b81aaeb80bfdb188a5 100644 (file)
@@ -28,6 +28,11 @@ struct drm_create_screen_arg {
 
 struct drm_api
 {
+       /**
+        * Kernel driver name, as accepted by drmOpenByName.
+        */
+       const char *driver_name;
+
        /**
         * Special buffer functions
         */
index 5ed2a10af1cee27cdc7ccac70f387a849e1ba876..89b72fd6134e2026cec1d4c9b71a8409c839b3db 100644 (file)
@@ -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,
index 317dc44d22f805b3f0a0e9136034374b4207ed1b..6fccc358e90b03c560f86022e1daac58bc563d2a 100644 (file)
@@ -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,
index 69f14e54f2672ba97ec248c7fd19798460343c9b..4d962c3abc0dd01b895f4c806050702b80b0bb0b 100644 (file)
@@ -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,
index 7c47d434f0e64acbb45aad74590971681e2987b2..dbbe1701f190152af3a4fafbc90c8f154df890c6 100644 (file)
@@ -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,