configure.ac | 6 +++++- intel/Makefile.am | 3 ++- intel/intel_bufmgr.c | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ intel/intel_bufmgr.h | 2 ++ libkms/dumb.c | 3 ++- 5 files changed, 61 insertions(+), 3 deletions(-)
New commits: commit 6dd804c5a92104042b8be0a67d107946394a0b7a Author: Chris Wilson <[email protected]> Date: Sat Jun 4 13:01:50 2011 +0100 configure: version bump for 2.4.26 release Push the new Intel API for use by mesa. Signed-off-by: Chris Wilson <[email protected]> diff --git a/configure.ac b/configure.ac index e776ef5..cd3ac23 100644 --- a/configure.ac +++ b/configure.ac @@ -20,7 +20,7 @@ AC_PREREQ([2.63]) AC_INIT([libdrm], - [2.4.25], + [2.4.26], [https://bugs.freedesktop.org/enter_bug.cgi?product=DRI], [libdrm]) commit 9d77603d8b95aee4f2408e437c55af15ee05b608 Author: Chris Wilson <[email protected]> Date: Sat Jun 4 12:47:19 2011 +0100 intel: Add interface to query aperture sizes. Signed-off-by: Chris Wilson <[email protected]> diff --git a/configure.ac b/configure.ac index d9c826d..e776ef5 100644 --- a/configure.ac +++ b/configure.ac @@ -51,6 +51,10 @@ PKG_CHECK_MODULES(PTHREADSTUBS, pthread-stubs) AC_SUBST(PTHREADSTUBS_CFLAGS) AC_SUBST(PTHREADSTUBS_LIBS) +PKG_CHECK_MODULES(PCIACCESS, [pciaccess >= 0.10]) +AC_SUBST(PCIACCESS_CFLAGS) +AC_SUBST(PCIACCESS_LIBS) + pkgconfigdir=${libdir}/pkgconfig AC_SUBST(pkgconfigdir) AC_ARG_ENABLE([udev], diff --git a/intel/Makefile.am b/intel/Makefile.am index 1ae92f8..b6a9014 100644 --- a/intel/Makefile.am +++ b/intel/Makefile.am @@ -27,12 +27,13 @@ AM_CFLAGS = \ -I$(top_srcdir) \ -I$(top_srcdir)/intel \ $(PTHREADSTUBS_CFLAGS) \ + $(PCIACCESS_CFLAGS) \ -I$(top_srcdir)/include/drm libdrm_intel_la_LTLIBRARIES = libdrm_intel.la libdrm_intel_ladir = $(libdir) libdrm_intel_la_LDFLAGS = -version-number 1:0:0 -no-undefined -libdrm_intel_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@ @CLOCK_LIB@ +libdrm_intel_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@ @PCIACCESS_LIBS@ @CLOCK_LIB@ libdrm_intel_la_SOURCES = \ intel_bufmgr.c \ diff --git a/intel/intel_bufmgr.c b/intel/intel_bufmgr.c index 2df93a5..ab57427 100644 --- a/intel/intel_bufmgr.c +++ b/intel/intel_bufmgr.c @@ -36,8 +36,10 @@ #include <errno.h> #include <drm.h> #include <i915_drm.h> +#include <pciaccess.h> #include "intel_bufmgr.h" #include "intel_bufmgr_priv.h" +#include "xf86drm.h" /** @file intel_bufmgr.c * @@ -269,3 +271,51 @@ int drm_intel_get_pipe_from_crtc_id(drm_intel_bufmgr *bufmgr, int crtc_id) return bufmgr->get_pipe_from_crtc_id(bufmgr, crtc_id); return -1; } + +static size_t +drm_intel_probe_agp_aperture_size(int fd) +{ + struct pci_device *pci_dev; + size_t size = 0; + int ret; + + ret = pci_system_init(); + if (ret) + goto err; + + /* XXX handle multiple adaptors? */ + pci_dev = pci_device_find_by_slot(0, 0, 2, 0); + if (pci_dev == NULL) + goto err; + + ret = pci_device_probe(pci_dev); + if (ret) + goto err; + + size = pci_dev->regions[2].size; +err: + pci_system_cleanup (); + return size; +} + +int drm_intel_get_aperture_sizes(int fd, + size_t *mappable, + size_t *total) +{ + + struct drm_i915_gem_get_aperture aperture; + int ret; + + ret = drmIoctl(fd, DRM_IOCTL_I915_GEM_GET_APERTURE, &aperture); + if (ret) + return ret; + + *mappable = 0; + /* XXX add a query for the kernel value? */ + if (*mappable == 0) + *mappable = drm_intel_probe_agp_aperture_size(fd); + if (*mappable == 0) + *mappable = 64 * 1024 * 1024; /* minimum possible value */ + *total = aperture.aper_size; + return 0; +} diff --git a/intel/intel_bufmgr.h b/intel/intel_bufmgr.h index daa18b4..889ef46 100644 --- a/intel/intel_bufmgr.h +++ b/intel/intel_bufmgr.h @@ -151,6 +151,8 @@ void drm_intel_gem_bo_start_gtt_access(drm_intel_bo *bo, int write_enable); int drm_intel_get_pipe_from_crtc_id(drm_intel_bufmgr *bufmgr, int crtc_id); +int drm_intel_get_aperture_sizes(int fd, size_t *mappable, size_t *total); + /* drm_intel_bufmgr_fake.c */ drm_intel_bufmgr *drm_intel_bufmgr_fake_init(int fd, unsigned long low_offset, commit 61be94018ae9c403517d53f69357719224fa6ff3 Author: Chris Wilson <[email protected]> Date: Sat May 14 11:15:06 2011 +0100 libkms: All current BO_TYPE are 32bpp ... so request a 32bpp dumb buffer rather than a 16bpp. Fixes modetest and friends. Signed-off-by: Chris Wilson <[email protected]> diff --git a/libkms/dumb.c b/libkms/dumb.c index 3be5f7a..440efb3 100644 --- a/libkms/dumb.c +++ b/libkms/dumb.c @@ -95,7 +95,8 @@ dumb_bo_create(struct kms_driver *kms, memset(&arg, 0, sizeof(arg)); - arg.bpp = 16; + /* All BO_TYPE currently are 32bpp formats */ + arg.bpp = 32; arg.width = width; arg.height = height; -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected] Archive: http://lists.debian.org/[email protected]

