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