[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

libdrm: Changes to 'upstream-unstable'



 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 <chris@chris-wilson.co.uk>
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 <chris@chris-wilson.co.uk>

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 <chris@chris-wilson.co.uk>
Date:   Sat Jun 4 12:47:19 2011 +0100

    intel: Add interface to query aperture sizes.
    
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>

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 <chris@chris-wilson.co.uk>
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 <chris@chris-wilson.co.uk>

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;
 


Reply to: