SOURCES: Mesa-libdrm.patch (NEW) - master fixes

arekm arekm at pld-linux.org
Tue Jul 1 11:36:19 CEST 2008


Author: arekm                        Date: Tue Jul  1 09:36:19 2008 GMT
Module: SOURCES                       Tag: HEAD
---- Log message:
- master fixes

---- Files affected:
SOURCES:
   Mesa-libdrm.patch (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: SOURCES/Mesa-libdrm.patch
diff -u /dev/null SOURCES/Mesa-libdrm.patch:1.1
--- /dev/null	Tue Jul  1 11:36:20 2008
+++ SOURCES/Mesa-libdrm.patch	Tue Jul  1 11:36:14 2008
@@ -0,0 +1,280 @@
+commit d3f7b463c3975c070503053e4ad70af99016a756
+Author: Dave Airlie <airlied at linux.ie>
+Date:   Tue Jul 1 18:22:12 2008 +1000
+
+    dri: drop asserts to make build against stable libdrm
+    
+    These asserts are of questionable use at the moment with things in flux.
+
+diff --git a/src/mesa/drivers/dri/common/dri_bufmgr.c b/src/mesa/drivers/dri/common/dri_bufmgr.c
+index 4df006f..8b5cb76 100644
+--- a/src/mesa/drivers/dri/common/dri_bufmgr.c
++++ b/src/mesa/drivers/dri/common/dri_bufmgr.c
+@@ -40,11 +40,6 @@ dri_bo *
+ dri_bo_alloc(dri_bufmgr *bufmgr, const char *name, unsigned long size,
+ 	     unsigned int alignment, uint64_t location_mask)
+ {
+-   assert((location_mask & ~(DRM_BO_FLAG_MEM_LOCAL | DRM_BO_FLAG_MEM_TT |
+-			     DRM_BO_FLAG_MEM_VRAM | DRM_BO_FLAG_MEM_PRIV0 |
+-			     DRM_BO_FLAG_MEM_PRIV1 | DRM_BO_FLAG_MEM_PRIV2 |
+-			     DRM_BO_FLAG_MEM_PRIV3 | DRM_BO_FLAG_MEM_PRIV4 |
+-			     DRM_BO_FLAG_CACHED | DRM_BO_FLAG_CACHED_MAPPED)) == 0);
+    return bufmgr->bo_alloc(bufmgr, name, size, alignment, location_mask);
+ }
+ 
+@@ -53,12 +48,6 @@ dri_bo_alloc_static(dri_bufmgr *bufmgr, const char *name, unsigned long offset,
+ 		    unsigned long size, void *virtual,
+ 		    uint64_t location_mask)
+ {
+-   assert((location_mask & ~(DRM_BO_FLAG_MEM_LOCAL | DRM_BO_FLAG_MEM_TT |
+-			     DRM_BO_FLAG_MEM_VRAM | DRM_BO_FLAG_MEM_PRIV0 |
+-			     DRM_BO_FLAG_MEM_PRIV1 | DRM_BO_FLAG_MEM_PRIV2 |
+-			     DRM_BO_FLAG_MEM_PRIV3 |
+-			     DRM_BO_FLAG_MEM_PRIV4)) == 0);
+-
+    return bufmgr->bo_alloc_static(bufmgr, name, offset, size, virtual,
+ 				  location_mask);
+ }
+commit 0b734bd7cf921592eee441f759687e10f48a2cbc
+Author: Dave Airlie <airlied at redhat.com>
+Date:   Wed May 28 15:55:44 2008 +1000
+
+    mesa/drm/ttm: allow build against non-TTM aware libdrm
+    
+    I'll release a libdrm 2.3.1 without TTM apis included from a special
+    drm branch that should allow mesa 7.1 to build against it.
+    
+    I've had to turn off DRI2 stuff.
+
+diff --git a/configure.ac b/configure.ac
+index a250f75..a73c754 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -478,6 +478,19 @@ AC_ARG_ENABLE([driglx-direct],
+         [enable direct rendering in GLX for DRI @<:@default=enabled@:>@])],
+     [driglx_direct="$enableval"],
+     [driglx_direct="yes"])
++dnl ttm support
++AC_ARG_ENABLE([ttm-api],
++    [AS_HELP_STRING([--enable-ttm-api],
++	[enable TTM API users])],
++    [ttmapi="$enableval"],
++    [ttmapi="no"])
++
++if test "x$ttmapi" = "xyes"; then
++    save_CFLAGS=$CFLAGS
++    CFLAGS=$LIBDRM_CFLAGS
++    AC_CHECK_HEADERS([xf86mm.h],[],[AC_MSG_ERROR([xf86mm.h required for TTM.])],[#include "stdint.h"\n#include "drm.h"])
++    CFLAGS=$save_CFLAGS
++fi
+ 
+ dnl Which drivers to build - default is chosen by platform
+ AC_ARG_WITH([dri-drivers],
+@@ -516,6 +529,10 @@ if test "$mesa_driver" = dri; then
+         DEFINES="$DEFINES -DGLX_USE_TLS -DPTHREADS"
+     fi
+ 
++    if test "x$ttmapi" = xyes; then
++        DEFINES="$DEFINES -DTTM_API"
++    fi
++
+     if test "x$USING_EGL" = x1; then
+         PROGRAM_DIRS="egl"
+     fi
+@@ -934,6 +951,7 @@ if test "$mesa_driver" = dri; then
+     dri_dirs=`echo $DRI_DIRS | $SED 's/^ *//;s/  */ /;s/ *$//'`
+     echo "        DRI drivers:     $dri_dirs"
+     echo "        DRI driver dir:  $DRI_DRIVER_INSTALL_DIR"
++    echo "        TTM API support: $ttmapi"
+ fi
+ 
+ dnl Libraries
+diff --git a/src/mesa/drivers/dri/common/dri_bufmgr.h b/src/mesa/drivers/dri/common/dri_bufmgr.h
+index 4593eaf..0a726dc 100644
+--- a/src/mesa/drivers/dri/common/dri_bufmgr.h
++++ b/src/mesa/drivers/dri/common/dri_bufmgr.h
+@@ -219,4 +219,42 @@ void dri_post_process_relocs(dri_bo *batch_buf);
+ void dri_post_submit(dri_bo *batch_buf, dri_fence **last_fence);
+ int dri_bufmgr_check_aperture_space(dri_bo *bo);
+ 
++#ifndef TTM_API
++/* reuse some TTM API */
++
++#define DRM_BO_MEM_LOCAL 0
++#define DRM_BO_MEM_TT 1
++#define DRM_BO_MEM_VRAM 2
++#define DRM_BO_MEM_PRIV0 3
++#define DRM_BO_MEM_PRIV1 4
++#define DRM_BO_MEM_PRIV2 5
++#define DRM_BO_MEM_PRIV3 6
++#define DRM_BO_MEM_PRIV4 7
++
++#define DRM_BO_FLAG_READ        (1ULL << 0)
++#define DRM_BO_FLAG_WRITE       (1ULL << 1)
++#define DRM_BO_FLAG_EXE         (1ULL << 2)
++#define DRM_BO_MASK_ACCESS	(DRM_BO_FLAG_READ | DRM_BO_FLAG_WRITE | DRM_BO_FLAG_EXE)
++#define DRM_BO_FLAG_NO_EVICT    (1ULL << 4)
++
++#define DRM_BO_FLAG_MAPPABLE    (1ULL << 5)
++#define DRM_BO_FLAG_SHAREABLE   (1ULL << 6)
++
++#define DRM_BO_FLAG_CACHED      (1ULL << 7)
++
++#define DRM_BO_FLAG_NO_MOVE     (1ULL << 8)
++#define DRM_BO_FLAG_CACHED_MAPPED    (1ULL << 19)
++#define DRM_BO_FLAG_FORCE_CACHING  (1ULL << 13)
++#define DRM_BO_FLAG_FORCE_MAPPABLE (1ULL << 14)
++#define DRM_BO_FLAG_TILE           (1ULL << 15)
++
++#define DRM_BO_FLAG_MEM_LOCAL  (1ULL << 24)
++#define DRM_BO_FLAG_MEM_TT     (1ULL << 25)
++#define DRM_BO_FLAG_MEM_VRAM   (1ULL << 26)
++
++#define DRM_BO_MASK_MEM         0x00000000FF000000ULL
++
++#define DRM_FENCE_TYPE_EXE                 0x00000001
++#endif
++
+ #endif
+diff --git a/src/mesa/drivers/dri/common/dri_util.c b/src/mesa/drivers/dri/common/dri_util.c
+index daa3fc5..6efdf43 100644
+--- a/src/mesa/drivers/dri/common/dri_util.c
++++ b/src/mesa/drivers/dri/common/dri_util.c
+@@ -771,8 +771,10 @@ static void driDestroyScreen(__DRIscreen *psp)
+ 	    (*psp->DriverAPI.DestroyScreen)(psp);
+ 
+ 	if (psp->dri2.enabled) {
++#ifdef TTM_API
+ 	    drmBOUnmap(psp->fd, &psp->dri2.sareaBO);
+ 	    drmBOUnreference(psp->fd, &psp->dri2.sareaBO);
++#endif
+ 	} else {
+ 	   (void)drmUnmap((drmAddress)psp->pSAREA, SAREA_MAX);
+ 	   (void)drmUnmap((drmAddress)psp->pFB, psp->fbSize);
+@@ -904,6 +906,7 @@ dri2CreateNewScreen(int scrn, int fd, unsigned int sarea_handle,
+ 		    const __DRIextension **extensions,
+ 		    const __DRIconfig ***driver_configs, void *data)
+ {
++#ifdef TTM_API
+     static const __DRIextension *emptyExtensionList[] = { NULL };
+     __DRIscreen *psp;
+     unsigned int *p;
+@@ -971,6 +974,9 @@ dri2CreateNewScreen(int scrn, int fd, unsigned int sarea_handle,
+     psp->DriverAPI = driDriverAPI;
+ 
+     return psp;
++#else
++    return NULL;
++#endif
+ }
+ 
+ static const __DRIextension **driGetExtensions(__DRIscreen *psp)
+diff --git a/src/mesa/drivers/dri/common/dri_util.h b/src/mesa/drivers/dri/common/dri_util.h
+index 8e1cdfc..203479e 100644
+--- a/src/mesa/drivers/dri/common/dri_util.h
++++ b/src/mesa/drivers/dri/common/dri_util.h
+@@ -53,7 +53,6 @@
+ #include <drm.h>
+ #include <drm_sarea.h>
+ #include <xf86drm.h>
+-#include <xf86mm.h>
+ #include "GL/internal/glcore.h"
+ #include "GL/internal/dri_interface.h"
+ #include "GL/internal/dri_sarea.h"
+@@ -524,7 +523,9 @@ struct __DRIscreenRec {
+ 	/* Flag to indicate that this is a DRI2 screen.  Many of the above
+ 	 * fields will not be valid or initializaed in that case. */
+ 	int enabled;
++#ifdef TTM_API
+ 	drmBO sareaBO;
++#endif
+ 	void *sarea;
+ 	__DRIEventBuffer *buffer;
+ 	__DRILock *lock;
+diff --git a/src/mesa/drivers/dri/intel/intel_bufmgr_ttm.c b/src/mesa/drivers/dri/intel/intel_bufmgr_ttm.c
+index 545913f..194814e 100644
+--- a/src/mesa/drivers/dri/intel/intel_bufmgr_ttm.c
++++ b/src/mesa/drivers/dri/intel/intel_bufmgr_ttm.c
+@@ -50,6 +50,7 @@
+ #include "i915_drm.h"
+ 
+ #include "intel_bufmgr_ttm.h"
++#ifdef TTM_API
+ 
+ #define DBG(...) do {					\
+    if (bufmgr_ttm->bufmgr.debug)			\
+@@ -1099,4 +1100,23 @@ intel_bufmgr_ttm_init(int fd, unsigned int fence_type,
+ 
+     return &bufmgr_ttm->bufmgr;
+ }
++#else
++dri_bufmgr *
++intel_bufmgr_ttm_init(int fd, unsigned int fence_type,
++		      unsigned int fence_type_flush, int batch_size)
++{
++    return NULL;
++}
++
++dri_bo *
++intel_ttm_bo_create_from_handle(dri_bufmgr *bufmgr, const char *name,
++			      unsigned int handle)
++{
++    return NULL;
++}
+ 
++void
++intel_ttm_enable_bo_reuse(dri_bufmgr *bufmgr)
++{
++}
++#endif
+diff --git a/src/mesa/drivers/dri/intel/intel_bufmgr_ttm.h b/src/mesa/drivers/dri/intel/intel_bufmgr_ttm.h
+index d267a16..f5bd64c 100644
+--- a/src/mesa/drivers/dri/intel/intel_bufmgr_ttm.h
++++ b/src/mesa/drivers/dri/intel/intel_bufmgr_ttm.h
+@@ -7,8 +7,10 @@
+ extern dri_bo *intel_ttm_bo_create_from_handle(dri_bufmgr *bufmgr, const char *name,
+ 					       unsigned int handle);
+ 
++#ifdef TTM_API
+ dri_fence *intel_ttm_fence_create_from_arg(dri_bufmgr *bufmgr, const char *name,
+ 					   drm_fence_arg_t *arg);
++#endif
+ 
+ 
+ dri_bufmgr *intel_bufmgr_ttm_init(int fd, unsigned int fence_type,
+@@ -17,4 +19,10 @@ dri_bufmgr *intel_bufmgr_ttm_init(int fd, unsigned int fence_type,
+ void
+ intel_ttm_enable_bo_reuse(dri_bufmgr *bufmgr);
+ 
++#ifndef TTM_API
++#define DRM_I915_FENCE_CLASS_ACCEL 0
++#define DRM_I915_FENCE_TYPE_RW 2
++#define DRM_I915_FENCE_FLAG_FLUSHED 0x01000000
++#endif
++
+ #endif
+diff --git a/src/mesa/drivers/dri/intel/intel_ioctl.c b/src/mesa/drivers/dri/intel/intel_ioctl.c
+index 66e3610..f4566ba 100644
+--- a/src/mesa/drivers/dri/intel/intel_ioctl.c
++++ b/src/mesa/drivers/dri/intel/intel_ioctl.c
+@@ -147,6 +147,7 @@ intel_batch_ioctl(struct intel_context *intel,
+    }
+ }
+ 
++#ifdef TTM_API
+ void
+ intel_exec_ioctl(struct intel_context *intel,
+ 		 GLuint used,
+@@ -211,3 +212,12 @@ intel_exec_ioctl(struct intel_context *intel,
+    }
+    *fence = fo;
+ }
++#else
++void
++intel_exec_ioctl(struct intel_context *intel,
++		 GLuint used,
++		 GLboolean ignore_cliprects, GLboolean allow_unlock,
++		 void *start, GLuint count, dri_fence **fence)
++{
++}
++#endif
================================================================


More information about the pld-cvs-commit mailing list