Mesa (master): gallium: Remove dri1_api.h and winsys support for DRI1

Jakob Bornecrantz wallbraker at kemper.freedesktop.org
Tue May 25 19:33:06 UTC 2010


Module: Mesa
Branch: master
Commit: 395b605e19d5357c97f2d7d45673a80cd2c729ef
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=395b605e19d5357c97f2d7d45673a80cd2c729ef

Author: Jakob Bornecrantz <jakob at vmware.com>
Date:   Tue May 25 18:47:21 2010 +0100

gallium: Remove dri1_api.h and winsys support for DRI1

Since DRI1 support was dropped from st/dri it
makes no sense to keep this code around.

---

 src/gallium/include/state_tracker/dri1_api.h     |   81 ----------------
 src/gallium/winsys/nouveau/drm/nouveau_drm_api.c |   72 --------------
 src/gallium/winsys/nouveau/drm/nouveau_drm_api.h |    1 -
 src/gallium/winsys/svga/drm/vmw_screen_dri.c     |  108 ++--------------------
 4 files changed, 7 insertions(+), 255 deletions(-)

diff --git a/src/gallium/include/state_tracker/dri1_api.h b/src/gallium/include/state_tracker/dri1_api.h
deleted file mode 100644
index 0d702d9..0000000
--- a/src/gallium/include/state_tracker/dri1_api.h
+++ /dev/null
@@ -1,81 +0,0 @@
-#ifndef _DRI1_API_H_
-#define _DRI1_API_H_
-
-#include "pipe/p_compiler.h"
-#include "pipe/p_screen.h"
-#include "pipe/p_format.h"
-
-#include "state_tracker/drm_api.h"
-
-struct pipe_screen;
-struct pipe_winsys;
-struct pipe_context;
-struct pipe_resource;
-
-struct drm_clip_rect;
-
-struct dri1_api_version
-{
-   int major;
-   int minor;
-   int patch_level;
-};
-
-/**
- * This callback struct is intended for drivers that need to take
- * the hardware lock on command submission.
- */
-
-struct dri1_api_lock_funcs
-{
-   void (*lock) (struct pipe_context * pipe);
-   void (*unlock) (struct pipe_context * locked_pipe);
-   boolean(*is_locked) (struct pipe_context * locked_pipe);
-   boolean(*is_lock_lost) (struct pipe_context * locked_pipe);
-   void (*clear_lost_lock) (struct pipe_context * locked_pipe);
-};
-
-struct dri1_api
-{
-   /**
-    * For flushing to the front buffer. A driver should implement one and only
-    * one of the functions below. The present_locked functions allows a dri1
-    * driver to pageflip.
-    */
-
-   /*@{ */
-
-   struct pipe_surface *(*front_srf_locked) (struct pipe_context *
-					     locked_pipe);
-
-   void (*present_locked) (struct pipe_context * locked_pipe,
-			   struct pipe_surface * surf,
-			   const struct drm_clip_rect * rect,
-			   unsigned int num_clip,
-			   int x_draw, int y_draw,
-			   const struct drm_clip_rect * src_bbox,
-			   struct pipe_fence_handle ** fence);
-   /*@} */
-};
-
-struct dri1_create_screen_arg
-{
-   struct drm_create_screen_arg base;
-
-   struct dri1_api_lock_funcs *lf;
-   void *ddx_info;
-   int ddx_info_size;
-   void *sarea;
-
-   struct dri1_api_version ddx_version;
-   struct dri1_api_version dri_version;
-   struct dri1_api_version drm_version;
-
-   /*
-    * out parameters;
-    */
-
-   struct dri1_api *api;
-};
-
-#endif
diff --git a/src/gallium/winsys/nouveau/drm/nouveau_drm_api.c b/src/gallium/winsys/nouveau/drm/nouveau_drm_api.c
index c004785..6d32556 100644
--- a/src/gallium/winsys/nouveau/drm/nouveau_drm_api.c
+++ b/src/gallium/winsys/nouveau/drm/nouveau_drm_api.c
@@ -13,52 +13,6 @@
 #include "nouveau/nouveau_winsys.h"
 #include "nouveau/nouveau_screen.h"
 
-static struct pipe_surface *
-dri_surface_from_handle(struct drm_api *api, struct pipe_screen *pscreen,
-                        unsigned handle, enum pipe_format format,
-                        unsigned width, unsigned height, unsigned pitch)
-{
-	struct pipe_surface *ps = NULL;
-	struct pipe_resource *pt = NULL;
-	struct pipe_resource tmpl;
-	struct winsys_handle whandle;
-	unsigned bind = (PIPE_BIND_SCANOUT |
-			 PIPE_BIND_RENDER_TARGET);
-
-	memset(&tmpl, 0, sizeof(tmpl));
-	tmpl.bind = bind;
-	tmpl.target = PIPE_TEXTURE_2D;
-	tmpl.last_level = 0;
-	tmpl.depth0 = 1;
-	tmpl.format = format;
-	tmpl.width0 = width;
-	tmpl.height0 = height;
-
-	memset(&whandle, 0, sizeof(whandle));
-	whandle.stride = pitch;
-	whandle.handle = handle;
-
-	pt = pscreen->resource_from_handle(pscreen, &tmpl, &whandle);
-	if (!pt)
-		return NULL;
-
-	ps = pscreen->get_tex_surface(pscreen, pt, 0, 0, 0, bind);
-
-	/* we don't need the texture from this point on */
-	pipe_resource_reference(&pt, NULL);
-	return ps;
-}
-
-static struct pipe_surface *
-nouveau_dri1_front_surface(struct pipe_context *pipe)
-{
-	return nouveau_winsys_screen(pipe->screen)->front;
-}
-
-static struct dri1_api nouveau_dri1_api = {
-	nouveau_dri1_front_surface,
-};
-
 static void
 nouveau_drm_destroy_winsys(struct pipe_winsys *s)
 {
@@ -72,7 +26,6 @@ static struct pipe_screen *
 nouveau_drm_create_screen(struct drm_api *api, int fd,
 			  struct drm_create_screen_arg *arg)
 {
-	struct dri1_create_screen_arg *dri1 = (void *)arg;
 	struct nouveau_winsys *nvws;
 	struct pipe_winsys *ws;
 	struct nouveau_device *dev = NULL;
@@ -116,31 +69,6 @@ nouveau_drm_create_screen(struct drm_api *api, int fd,
 		return NULL;
 	}
 
-	if (arg && arg->mode == DRM_CREATE_DRI1) {
-		struct nouveau_dri *nvdri = dri1->ddx_info;
-		enum pipe_format format;
-
-		if (nvdri->bpp == 16)
-			format = PIPE_FORMAT_B5G6R5_UNORM;
-		else
-			format = PIPE_FORMAT_B8G8R8A8_UNORM;
-
-		nvws->front = dri_surface_from_handle(api, nvws->pscreen,
-						      nvdri->front_offset,
-						      format, nvdri->width,
-						      nvdri->height,
-						      nvdri->front_pitch *
-						      (nvdri->bpp / 8));
-		if (!nvws->front) {
-			debug_printf("%s: error referencing front buffer\n",
-				     __func__);
-			ws->destroy(ws);
-			return NULL;
-		}
-
-		dri1->api = &nouveau_dri1_api;
-	}
-
 	return nvws->pscreen;
 }
 
diff --git a/src/gallium/winsys/nouveau/drm/nouveau_drm_api.h b/src/gallium/winsys/nouveau/drm/nouveau_drm_api.h
index a91aad7..ba6305c 100644
--- a/src/gallium/winsys/nouveau/drm/nouveau_drm_api.h
+++ b/src/gallium/winsys/nouveau/drm/nouveau_drm_api.h
@@ -2,7 +2,6 @@
 #define __NOUVEAU_DRM_API_H__
 
 #include "state_tracker/drm_api.h"
-#include "state_tracker/dri1_api.h"
 
 #include "util/u_simple_screen.h"
 
diff --git a/src/gallium/winsys/svga/drm/vmw_screen_dri.c b/src/gallium/winsys/svga/drm/vmw_screen_dri.c
index f4c1642..4a71056 100644
--- a/src/gallium/winsys/svga/drm/vmw_screen_dri.c
+++ b/src/gallium/winsys/svga/drm/vmw_screen_dri.c
@@ -37,13 +37,18 @@
 #include "vmw_fence.h"
 #include "vmw_context.h"
 
-#include <state_tracker/dri1_api.h>
 #include <state_tracker/drm_api.h>
 #include "vmwgfx_drm.h"
 #include <xf86drm.h>
 
 #include <stdio.h>
 
+struct dri1_api_version {
+   int major;
+   int minor;
+   int patch_level;
+};
+
 static struct svga_winsys_surface *
 vmw_drm_surface_from_handle(struct svga_winsys_screen *sws,
 			    struct winsys_handle *whandle,
@@ -54,11 +59,6 @@ vmw_drm_surface_get_handle(struct svga_winsys_screen *sws,
 			   unsigned stride,
 			   struct winsys_handle *whandle);
 
-static struct dri1_api dri1_api_hooks;
-static struct dri1_api_version ddx_required = { 0, 1, 0 };
-static struct dri1_api_version ddx_compat = { 0, 0, 0 };
-static struct dri1_api_version dri_required = { 4, 0, 0 };
-static struct dri1_api_version dri_compat = { 4, 0, 0 };
 static struct dri1_api_version drm_required = { 1, 0, 0 };
 static struct dri1_api_version drm_compat = { 1, 0, 0 };
 static struct dri1_api_version drm_scanout = { 0, 9, 0 };
@@ -95,7 +95,6 @@ vmw_drm_create_screen(struct drm_api *drm_api,
 {
    struct vmw_winsys_screen *vws;
    struct pipe_screen *screen;
-   struct dri1_create_screen_arg *dri1;
    boolean use_old_scanout_flag = FALSE;
 
    if (!arg || arg->mode == DRM_CREATE_NORMAL) {
@@ -124,27 +123,6 @@ vmw_drm_create_screen(struct drm_api *drm_api,
       switch (arg->mode) {
       case DRM_CREATE_NORMAL:
 	 break;
-      case DRM_CREATE_DRI1:
-	 dri1 = (struct dri1_create_screen_arg *)arg;
-	 if (!vmw_dri1_check_version(&dri1->ddx_version, &ddx_required,
-				     &ddx_compat, "ddx - driver api"))
-	    return NULL;
-	 if (!vmw_dri1_check_version(&dri1->dri_version, &dri_required,
-				     &dri_compat, "dri info"))
-	    return NULL;
-	 if (!vmw_dri1_check_version(&dri1->drm_version, &drm_required,
-				     &drm_compat, "vmwgfx drm driver"))
-	    return NULL;
-	 if (!vmw_dri1_check_version(&dri1->drm_version, &drm_scanout,
-				     &drm_compat, "use old scanout field (not a error)"))
-	    use_old_scanout_flag = TRUE;
-	 dri1->api = &dri1_api_hooks;
-#if 0
-	 break;
-#else
-	 assert(!"No dri 1 support for now\n");
-	 return NULL;
-#endif
       default:
 	 return NULL;
       }
@@ -205,72 +183,6 @@ vmw_dri1_intersect_src_bbox(struct drm_clip_rect *dst,
    return TRUE;
 }
 
-/**
- * No fancy get-surface-from-sarea stuff here.
- * Just use the present blit.
- */
-
-static void
-vmw_dri1_present_locked(struct pipe_context *locked_pipe,
-			struct pipe_surface *surf,
-			const struct drm_clip_rect *rect,
-			unsigned int num_clip,
-			int x_draw, int y_draw,
-			const struct drm_clip_rect *bbox,
-			struct pipe_fence_handle **p_fence)
-{
-#if 0
-   struct svga_winsys_surface *srf =
-      svga_screen_texture_get_winsys_surface(surf->texture);
-   struct vmw_svga_winsys_surface *vsrf = vmw_svga_winsys_surface(srf);
-   struct vmw_winsys_screen *vws =
-      vmw_winsys_screen(svga_winsys_screen(locked_pipe->screen));
-   struct drm_clip_rect clip;
-   int i;
-   struct
-   {
-      SVGA3dCmdHeader header;
-      SVGA3dCmdPresent body;
-      SVGA3dCopyRect rect;
-   } cmd;
-   boolean visible = FALSE;
-   uint32_t fence_seq = 0;
-
-   VMW_FUNC;
-   cmd.header.id = SVGA_3D_CMD_PRESENT;
-   cmd.header.size = sizeof cmd.body + sizeof cmd.rect;
-   cmd.body.sid = vsrf->sid;
-
-   for (i = 0; i < num_clip; ++i) {
-      if (!vmw_dri1_intersect_src_bbox(&clip, x_draw, y_draw, rect++, bbox))
-	 continue;
-
-      cmd.rect.x = clip.x1;
-      cmd.rect.y = clip.y1;
-      cmd.rect.w = clip.x2 - clip.x1;
-      cmd.rect.h = clip.y2 - clip.y1;
-      cmd.rect.srcx = (int)clip.x1 - x_draw;
-      cmd.rect.srcy = (int)clip.y1 - y_draw;
-
-      vmw_printf("%s: Clip %d x %d y %d w %d h %d srcx %d srcy %d\n",
-		   __FUNCTION__,
-		   i,
-		   cmd.rect.x,
-		   cmd.rect.y,
-		   cmd.rect.w, cmd.rect.h, cmd.rect.srcx, cmd.rect.srcy);
-
-      vmw_ioctl_command(vws, &cmd, sizeof cmd.header + cmd.header.size,
-                        &fence_seq);
-      visible = TRUE;
-   }
-
-   *p_fence = (visible) ? vmw_pipe_fence(fence_seq) : NULL;
-   vmw_svga_winsys_surface_reference(&vsrf, NULL);
-#else
-   assert(!"No dri 1 support for now\n");
-#endif
-}
-
 static struct svga_winsys_surface *
 vmw_drm_surface_from_handle(struct svga_winsys_screen *sws,
 			    struct winsys_handle *whandle,
@@ -317,7 +229,7 @@ vmw_drm_surface_from_handle(struct svga_winsys_screen *sws,
 		    whandle->handle, i);
 	    goto out_mip;
 	}
-    }
+   }
 
     vsrf = CALLOC_STRUCT(vmw_svga_winsys_surface);
     if (!vsrf)
@@ -355,12 +267,6 @@ vmw_drm_surface_get_handle(struct svga_winsys_screen *sws,
     return TRUE;
 }
 
-
-static struct dri1_api dri1_api_hooks = {
-   .front_srf_locked = NULL,
-   .present_locked = vmw_dri1_present_locked
-};
-
 static struct drm_api vmw_drm_api_hooks = {
    .name = "vmwgfx",
    .driver_name = "vmwgfx",




More information about the mesa-commit mailing list