diff options
author | Donnie Berkholz <dberkholz@gentoo.org> | 2008-06-27 21:42:38 +0000 |
---|---|---|
committer | Donnie Berkholz <dberkholz@gentoo.org> | 2008-06-27 21:42:38 +0000 |
commit | f18f3170c6dcc453fa8327b74e753d86cb23ea26 (patch) | |
tree | ca650c1bca94cdaaf5b75139a8e30aab93d7817e /media-libs/mesa/files | |
parent | old (diff) | |
download | historical-f18f3170c6dcc453fa8327b74e753d86cb23ea26.tar.gz historical-f18f3170c6dcc453fa8327b74e753d86cb23ea26.tar.bz2 historical-f18f3170c6dcc453fa8327b74e753d86cb23ea26.zip |
Stop fetching from git pointlessly after downloading the tarball. Add a patch to attempt allowing builds against libdrm 2.3.1. It still doesn't actually work for reasons I don't understand, but it seems to have something to do with the 'depend' files mesa's weird build system uses.
Package-Manager: portage-2.1.5.6
Diffstat (limited to 'media-libs/mesa/files')
-rw-r--r-- | media-libs/mesa/files/0001-mesa-drm-ttm-allow-build-against-non-TTM-aware-libd.patch | 254 |
1 files changed, 254 insertions, 0 deletions
diff --git a/media-libs/mesa/files/0001-mesa-drm-ttm-allow-build-against-non-TTM-aware-libd.patch b/media-libs/mesa/files/0001-mesa-drm-ttm-allow-build-against-non-TTM-aware-libd.patch new file mode 100644 index 000000000000..3399152af834 --- /dev/null +++ b/media-libs/mesa/files/0001-mesa-drm-ttm-allow-build-against-non-TTM-aware-libd.patch @@ -0,0 +1,254 @@ +From 0b734bd7cf921592eee441f759687e10f48a2cbc Mon Sep 17 00:00:00 2001 +From: Dave Airlie <airlied@redhat.com> +Date: Wed, 28 May 2008 15:55:44 +1000 +Subject: [PATCH] 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. +--- + configure.ac | 18 ++++++++++++ + src/mesa/drivers/dri/common/dri_bufmgr.h | 38 +++++++++++++++++++++++++ + src/mesa/drivers/dri/common/dri_util.c | 6 ++++ + src/mesa/drivers/dri/common/dri_util.h | 3 +- + src/mesa/drivers/dri/intel/intel_bufmgr_ttm.c | 20 +++++++++++++ + src/mesa/drivers/dri/intel/intel_bufmgr_ttm.h | 8 +++++ + src/mesa/drivers/dri/intel/intel_ioctl.c | 10 ++++++ + 7 files changed, 102 insertions(+), 1 deletions(-) + +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 +-- +1.5.5.3 + |