+++ /dev/null
-commit d3f7b463c3975c070503053e4ad70af99016a756
-Author: Dave Airlie <airlied@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@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