Hi, I'd like to upload xserver-xorg-video-intel 2:2.13.0-2, mainly for documentation reasons. Currently, we have in sid/squeeze a snapshot from upstream, namely: 2:2.12.0+shadow-2. There were only a few commits upstream between what we merged and 2.13.0; a full git log is attached as upstream.diff; excluding (obvious?) doc-only changes, functional changes are: * Fix to depend on the (just-released) libdrm >= 2.4.22 → We've put everything we need in 2.4.21-1~squeeze3; so we kill that change (see 2nd and 3rd bullet in Debian changelog); no-op. * Retry framebuffer allocation if first attempt fails. → Bugfix. * Disable dri2 after forcing fallbacks → Bugfix. * Make driver compile for 1.6 Xserver series again. → No-op, since we're on >= 1.7 * display: Refactor is_panel() → No-op. * Allow interlaced modes. → Tiny improvement [3 files changed, 15 insertions(+), 2 deletions(-)]. On the Debian side, the changelog looks like this: | xserver-xorg-video-intel (2:2.13.0-2) unstable; urgency=low | | * Merge from experimental. | * Lower build-dep on libdrm-dev from 2.4.22 to 2.4.21-1~squeeze3 since | the latter contains the needed bits, making it possible to build | within unstable. | * Add patch to make configure.ac happy: libdrm-from-sid-is-ok.diff | * Add README.Debian documenting the need for a kernel driver to handle | modesetting. | | -- Cyril Brulebois <kibi@debian.org> Mon, 01 Nov 2010 21:27:25 +0100 We've had some complaints about KMS, README.Debian should clarify a bit: 1. it's indeed mandatory now; 2. what's needed if one isn't running a Debian kernel; 3. possible fallbacks for desperate users. Here it is: | xserver-xorg-video-intel (2:2.13.0-2) unstable; urgency=low | | * Starting from 2.10, the Intel X driver depends on a kernel driver for | mode setting (that's called KMS). The corresponding kernel option is | CONFIG_DRM_I915, and is enabled in Debian kernels. | * To enable KMS, either of those should be sufficient: | + /etc/modprobe.d/i915-kms.conf should contain: | options i915 modeset=1 | + CONFIG_DRM_I915_KMS=y should be set in the kernel config. | * If you have issues with this driver, the "vesa" or "fbdev" drivers | may be useful fallbacks. | | -- Cyril Brulebois <kibi@debian.org> Mon, 01 Nov 2010 21:27:25 +0100 The full diff from against sid/squeeze is attached as everything.diff Does that sounds reasonable to upload it to sid and ask for an unblock? In any case, thanks for your time. Mraw, KiBi.
commit 9f232ad67c72b7869dcd112207bc41dc01d7d104 Author: Carl Worth <cworth@cworth.org> Date: Thu Sep 30 08:45:49 2010 -0700 Increment version to 2.13.0 For the new, major release. commit 99ec9bb0f1eaf2e5c04614957a51624a928526e5 Author: Carl Worth <cworth@cworth.org> Date: Thu Sep 30 08:45:15 2010 -0700 Add release notes for the 2.13.0 release. Which is functionalliy identical to 2.12.902. commit d4c013cb9d92d2959c9a98eca20e43ab14ae22e3 Author: Carl Worth <cworth@cworth.org> Date: Tue Sep 28 20:49:52 2010 -0700 Increment version to 2.12.902 Just before making the 2.12.902 (2.13-rc2) snapshot. commit 35e7da7df0b286b5168a85d540cc9fdf55c1cae6 Author: Carl Worth <cworth@cworth.org> Date: Tue Sep 28 20:49:10 2010 -0700 Add release notes for the 2.12.902 snapshot. Summarizing the 5 recent changes to the driver. commit 5704955538f59a2b7a5eff67cc23953d2f27d523 Author: Carl Worth <cworth@cworth.org> Date: Tue Sep 28 20:44:40 2010 -0700 Fix to depend on the (just-released) libdrm >= 2.4.22 With libdrm < 2.4.22, the compilation of xf86-video-intel would fail due to an undefined DRM_MODE_CONNECTOR_eDP. We now ensure that a sufficiently new libdrm is available before compiling. commit 40c9d180bf43af84ae05d88e993deedf76e263e6 Author: Chris Wilson <chris@chris-wilson.co.uk> Date: Sun Sep 26 23:09:04 2010 +0100 Retry framebuffer allocation if first attempt fails. If we are tiled, we may fail the allocation due to an EIO and so not being able to set tiling. Try again with an untiled request in this case. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> commit 537e73f3f935b917f2f5f9b51499cb29d65e3889 Author: Chris Wilson <chris@chris-wilson.co.uk> Date: Fri Sep 24 17:37:41 2010 +0100 Disable dri2 after forcing fallbacks If we force fallbacks, then we will only create pixmaps in system memory, preventing DRI2 from passing valid bo names to the clients. In this case, they will just fallback to swrast. If we disable DRI2 after forcing fallbacks (e.g. regenerating after a GPU hang or explicitly disabled with the shadow buffer) then it is simpler just to disable the extension and allow mesa to use pure swrast. Reported-by: Julien Cristau <jcristau@debian.org> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> commit b84925b9c0842ba4dfa3481c09d3a80f84db4838 Author: Matthias Hopf <mhopf@suse.de> Date: Tue Aug 17 18:05:02 2010 +0200 Make driver compile for 1.6 Xserver series again. Signed-off-by: Matthias Hopf <mhopf@suse.de> commit 99f8d68d3dbc54fdd7de4a6df546cfa89422a0c2 Author: Chris Wilson <chris@chris-wilson.co.uk> Date: Wed Sep 22 12:34:00 2010 +0100 display: Refactor is_panel() Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> commit 4ba27e1f2198fc10a1dd268ed9f137bac6e80086 Author: Carl Worth <cworth@cworth.org> Date: Tue Sep 21 17:43:01 2010 -0700 Bump version to 2.12.901 Just prior to pushing out this new snapshot. commit 334265fa5ef18405bd8c897343fff49ad53f5fce Author: Carl Worth <cworth@cworth.org> Date: Tue Sep 21 17:42:21 2010 -0700 NEWS: Add notes for the 2.12.901 snapshot (Otherwise known as rc1 for 2.13) commit bfba6d6148b938588ffbefdf04f4e71683c66dfd Author: Krzysztof Halasa <khc@pm.waw.pl> Date: Tue Sep 21 22:56:26 2010 +0100 Allow interlaced modes. This may not the best method, but it should be a good base on which to build... Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
diff --git a/ChangeLog b/ChangeLog index 2bb7d65..954e305 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,116 @@ +commit 9f232ad67c72b7869dcd112207bc41dc01d7d104 +Author: Carl Worth <cworth@cworth.org> +Date: Thu Sep 30 08:45:49 2010 -0700 + + Increment version to 2.13.0 + + For the new, major release. + +commit 99ec9bb0f1eaf2e5c04614957a51624a928526e5 +Author: Carl Worth <cworth@cworth.org> +Date: Thu Sep 30 08:45:15 2010 -0700 + + Add release notes for the 2.13.0 release. + + Which is functionalliy identical to 2.12.902. + +commit d4c013cb9d92d2959c9a98eca20e43ab14ae22e3 +Author: Carl Worth <cworth@cworth.org> +Date: Tue Sep 28 20:49:52 2010 -0700 + + Increment version to 2.12.902 + + Just before making the 2.12.902 (2.13-rc2) snapshot. + +commit 35e7da7df0b286b5168a85d540cc9fdf55c1cae6 +Author: Carl Worth <cworth@cworth.org> +Date: Tue Sep 28 20:49:10 2010 -0700 + + Add release notes for the 2.12.902 snapshot. + + Summarizing the 5 recent changes to the driver. + +commit 5704955538f59a2b7a5eff67cc23953d2f27d523 +Author: Carl Worth <cworth@cworth.org> +Date: Tue Sep 28 20:44:40 2010 -0700 + + Fix to depend on the (just-released) libdrm >= 2.4.22 + + With libdrm < 2.4.22, the compilation of xf86-video-intel would fail + due to an undefined DRM_MODE_CONNECTOR_eDP. We now ensure that a + sufficiently new libdrm is available before compiling. + +commit 40c9d180bf43af84ae05d88e993deedf76e263e6 +Author: Chris Wilson <chris@chris-wilson.co.uk> +Date: Sun Sep 26 23:09:04 2010 +0100 + + Retry framebuffer allocation if first attempt fails. + + If we are tiled, we may fail the allocation due to an EIO and so not + being able to set tiling. Try again with an untiled request in this + case. + + Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> + +commit 537e73f3f935b917f2f5f9b51499cb29d65e3889 +Author: Chris Wilson <chris@chris-wilson.co.uk> +Date: Fri Sep 24 17:37:41 2010 +0100 + + Disable dri2 after forcing fallbacks + + If we force fallbacks, then we will only create pixmaps in system + memory, preventing DRI2 from passing valid bo names to the clients. In + this case, they will just fallback to swrast. If we disable DRI2 after + forcing fallbacks (e.g. regenerating after a GPU hang or explicitly + disabled with the shadow buffer) then it is simpler just to disable the + extension and allow mesa to use pure swrast. + + Reported-by: Julien Cristau <jcristau@debian.org> + Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> + +commit b84925b9c0842ba4dfa3481c09d3a80f84db4838 +Author: Matthias Hopf <mhopf@suse.de> +Date: Tue Aug 17 18:05:02 2010 +0200 + + Make driver compile for 1.6 Xserver series again. + + Signed-off-by: Matthias Hopf <mhopf@suse.de> + +commit 99f8d68d3dbc54fdd7de4a6df546cfa89422a0c2 +Author: Chris Wilson <chris@chris-wilson.co.uk> +Date: Wed Sep 22 12:34:00 2010 +0100 + + display: Refactor is_panel() + + Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> + +commit 4ba27e1f2198fc10a1dd268ed9f137bac6e80086 +Author: Carl Worth <cworth@cworth.org> +Date: Tue Sep 21 17:43:01 2010 -0700 + + Bump version to 2.12.901 + + Just prior to pushing out this new snapshot. + +commit 334265fa5ef18405bd8c897343fff49ad53f5fce +Author: Carl Worth <cworth@cworth.org> +Date: Tue Sep 21 17:42:21 2010 -0700 + + NEWS: Add notes for the 2.12.901 snapshot + + (Otherwise known as rc1 for 2.13) + +commit bfba6d6148b938588ffbefdf04f4e71683c66dfd +Author: Krzysztof Halasa <khc@pm.waw.pl> +Date: Tue Sep 21 22:56:26 2010 +0100 + + Allow interlaced modes. + + This may not the best method, but it should be a good base on which to + build... + + Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> + commit f63c7df6866fed61551d39209b1a262e2a0c4b28 Author: Zhenyu Wang <zhenyuw@linux.intel.com> Date: Fri Sep 17 16:39:12 2010 +0800 diff --git a/NEWS b/NEWS index aee6a21..05d3849 100644 --- a/NEWS +++ b/NEWS @@ -1,5 +1,118 @@ -Snapshot 2.12.0 (2010-06-24) -============================= +Release 2.13.0 (2010-09-30) +=========================== +We are pleased to announce this major release of the xf86-video-intel +driver, on schedule at 3 months since 2.12.0. With the many bug fixes +in this release, we encourage everyone using 2.12 to upgrade to 2.13. + +[This release is functionally identical to the earlier 2.12.902 +release candidate.] + +New requirements compared to 2.12 +--------------------------------- + * Librdrm >= 2.4.22 + +Bug fixes +--------- + * Attempt to fix infinite MI_WAIT_FOR_EVENT while watching video + https://bugs.freedesktop.org/show_bug.cgi?id=28964 + + [Various new checks have been added to the video code here, but the + bug fix hasn't yet been verified by the original reporter.] + + * Fix buffer-object leak + https://bugs.freedesktop.org/show_bug.cgi?id=26946 + + * Fix memory leak on server reset + + * Fix crash due to unchecked pixmap allocation + https://bugs.freedesktop.org/show_bug.cgi?id=29187 + + * Fix for video artifacts when using dualscreen + https://bugs.freedesktop.org/show_bug.cgi?id=29213 + + * Fix for incorrect characters in gnome-terminal when using compiz + https://bugs.freedesktop.org/show_bug.cgi?id=28438 + + * Fix for hanging, full-screen applications, (flash, compiz, etc.) + https://bugs.freedesktop.org/show_bug.cgi?id=29584 + + * Fix selection of backlight device on multi-GPU systems + https://bugs.freedesktop.org/show_bug.cgi?id=29273 + + * Fix to avoid crash with extremely large glyphs + https://bugs.freedesktop.org/show_bug.cgi?id=29430 + + * Fix for eDP panels incorrectly being given only a single, valid mode + https://bugs.freedesktop.org/show_bug.cgi?id=30069 + + * Fix GPU hang involving clipped SRC copies + https://bugs.freedesktop.org/show_bug.cgi?id=30120 + + * Fix to compile for 1.6 series X server. + + * Fix to retry framebuffer allocation after an initial failure. + + * Fix to disable dri2 after fallbacks are forced on. + +Snapshot 2.12.902 (2010-09-28) +============================== +This is the second release candidate in preparation for the upcoming +2.13.0 release. The comes exactly one week after 2.12.902 and includes +only a handful of changes. + +One significant change is that the drive now requires libdrm 2.4.22 +(or newer), as several people reported compilation failures of +xf86-video-intel 2.12.901 with libdrm 2.4.21. + +Other changes include a fix to compile for the 1.6 series X server, a +fix to retry framebuffer allocation after an initial failure, and a +fix to disable dri2 after fallbacks are forced on. + +Snapshot 2.12.901 (2010-09-21) +============================== +This is the first release candidate in preparation for the upcoming +2.13.0 release. We will appreciate any feedback we can get from +testing of this snapshot. + +Bugs fixed in this snapshot (compared to 2.12.0) +------------------------------------------------ + * Attempt to fix infinite MI_WAIT_FOR_EVENT while watching video + https://bugs.freedesktop.org/show_bug.cgi?id=28964 + + [Various new checks have been added to the video code here, but the + bug fix hasn't yet been verified by the original reporter.] + + * Fix buffer-object leak + https://bugs.freedesktop.org/show_bug.cgi?id=26946 + + * Fix memory leak on server reset + + * Fix crash due to unchecked pixmap allocation + https://bugs.freedesktop.org/show_bug.cgi?id=29187 + + * Fix for video artifacts when using dualscreen + https://bugs.freedesktop.org/show_bug.cgi?id=29213 + + * Fix for incorrect characters in gnome-terminal when using compiz + https://bugs.freedesktop.org/show_bug.cgi?id=28438 + + * Fix for hanging, full-screen applications, (flash, compiz, etc.) + https://bugs.freedesktop.org/show_bug.cgi?id=29584 + + * Fix selection of backlight device on multi-GPU systems + https://bugs.freedesktop.org/show_bug.cgi?id=29273 + + * Fix to avoid crash with extremely large glyphs + https://bugs.freedesktop.org/show_bug.cgi?id=29430 + + * Fix for eDP panels incorrectly being given only a single, valid mode + https://bugs.freedesktop.org/show_bug.cgi?id=30069 + + * Fix GPU hang involving clipped SRC copies + https://bugs.freedesktop.org/show_bug.cgi?id=30120 + +Release 2.12.0 (2010-06-24) +=========================== We are pleased to announce this major release of the xf86-video-intel 2D driver. It contains many correctness and performance improvements compared to the 2.11 releases. We encourage everyone using 2.11 to diff --git a/configure.ac b/configure.ac index 2845702..ece516b 100644 --- a/configure.ac +++ b/configure.ac @@ -23,7 +23,7 @@ # Initialize Autoconf AC_PREREQ([2.60]) AC_INIT([xf86-video-intel], - [2.12.0], + [2.13.0], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [xf86-video-intel]) AC_CONFIG_SRCDIR([Makefile.am]) @@ -79,7 +79,7 @@ XORG_DRIVER_CHECK_EXT(DPMSExtension, xextproto) # Obtain compiler/linker options for the driver dependencies PKG_CHECK_MODULES(XORG, [xorg-server >= 1.6 xproto fontsproto $REQUIRED_MODULES]) -PKG_CHECK_MODULES(DRM, [libdrm >= 2.4.21]) +PKG_CHECK_MODULES(DRM, [libdrm >= 2.4.22]) PKG_CHECK_MODULES(PCIACCESS, [pciaccess >= 0.10]) sdkdir=`$PKG_CONFIG --variable=sdkdir xorg-server` diff --git a/debian/README.Debian b/debian/README.Debian new file mode 100644 index 0000000..520b6ec --- /dev/null +++ b/debian/README.Debian @@ -0,0 +1,13 @@ +xserver-xorg-video-intel (2:2.13.0-2) unstable; urgency=low + + * Starting from 2.10, the Intel X driver depends on a kernel driver for + mode setting (that's called KMS). The corresponding kernel option is + CONFIG_DRM_I915, and is enabled in Debian kernels. + * To enable KMS, either of those should be sufficient: + + /etc/modprobe.d/i915-kms.conf should contain: + options i915 modeset=1 + + CONFIG_DRM_I915_KMS=y should be set in the kernel config. + * If you have issues with this driver, the "vesa" or "fbdev" drivers + may be useful fallbacks. + + -- Cyril Brulebois <kibi@debian.org> Mon, 01 Nov 2010 21:27:25 +0100 diff --git a/debian/changelog b/debian/changelog index 506734d..2838a2f 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,30 @@ +xserver-xorg-video-intel (2:2.13.0-2) unstable; urgency=low + + * Merge from experimental. + * Lower build-dep on libdrm-dev from 2.4.22 to 2.4.21-1~squeeze3 since + the latter contains the needed bits, making it possible to build + within unstable. + * Add patch to make configure.ac happy: libdrm-from-sid-is-ok.diff + * Add README.Debian documenting the need for a kernel driver to handle + modesetting. + + -- Cyril Brulebois <kibi@debian.org> Mon, 01 Nov 2010 21:27:25 +0100 + +xserver-xorg-video-intel (2:2.13.0-1) experimental; urgency=low + + [ Sven Joachim ] + * New upstream release. + * Bump libdrm build-dependency to 2.4.22. + + [ Cyril Brulebois ] + * Bump xutils-dev build-dependency to 1:7.5+4 (needed for xorg macros + 1.8). + * Picked from unstable to avoid introducing back binaries on non-Linux + architectures: UMS is gone, this means Linux-only. + * Add myself to Uploaders. + + -- Cyril Brulebois <kibi@debian.org> Sat, 02 Oct 2010 09:51:48 +0200 + xserver-xorg-video-intel (2:2.12.0+shadow-2) unstable; urgency=low * UMS is gone, this means Linux-only (closes: 597845). diff --git a/debian/control b/debian/control index b09631c..8a77241 100644 --- a/debian/control +++ b/debian/control @@ -2,7 +2,7 @@ Source: xserver-xorg-video-intel Section: x11 Priority: optional Maintainer: Debian X Strike Force <debian-x@lists.debian.org> -Uploaders: David Nusinow <dnusinow@debian.org>, Drew Parsons <dparsons@debian.org>, Brice Goglin <bgoglin@debian.org> +Uploaders: David Nusinow <dnusinow@debian.org>, Drew Parsons <dparsons@debian.org>, Brice Goglin <bgoglin@debian.org>, Cyril Brulebois <kibi@debian.org> Build-Depends: debhelper (>= 5), pkg-config, @@ -33,7 +33,7 @@ Build-Depends: quilt, automake, libtool, - xutils-dev (>= 1:7.5) + xutils-dev (>= 1:7.5+4), Standards-Version: 3.8.4 Vcs-Git: git://git.debian.org/git/pkg-xorg/driver/xserver-xorg-video-intel Vcs-Browser: http://git.debian.org/?p=pkg-xorg/driver/xserver-xorg-video-intel.git diff --git a/debian/patches/libdrm-from-sid-is-ok.diff b/debian/patches/libdrm-from-sid-is-ok.diff new file mode 100644 index 0000000..20bcb84 --- /dev/null +++ b/debian/patches/libdrm-from-sid-is-ok.diff @@ -0,0 +1,11 @@ +--- a/configure.ac ++++ b/configure.ac +@@ -79,7 +79,7 @@ XORG_DRIVER_CHECK_EXT(DPMSExtension, xex + + # Obtain compiler/linker options for the driver dependencies + PKG_CHECK_MODULES(XORG, [xorg-server >= 1.6 xproto fontsproto $REQUIRED_MODULES]) +-PKG_CHECK_MODULES(DRM, [libdrm >= 2.4.22]) ++PKG_CHECK_MODULES(DRM, [libdrm >= 2.4.21]) + PKG_CHECK_MODULES(PCIACCESS, [pciaccess >= 0.10]) + + sdkdir=`$PKG_CONFIG --variable=sdkdir xorg-server` diff --git a/debian/patches/series b/debian/patches/series index 796bcfe..2df9b34 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,2 +1,3 @@ shadow-no-dri2.diff i8xx-shadow.diff +ibdrm-from-sid-is-ok.diff diff --git a/src/i915_render.c b/src/i915_render.c index f50b5c9..fafdac5 100644 --- a/src/i915_render.c +++ b/src/i915_render.c @@ -82,8 +82,10 @@ static struct formatinfo i915_tex_formats[] = { {PICT_x8r8g8b8, MAPSURF_32BIT | MT_32BIT_XRGB8888}, {PICT_a8b8g8r8, MAPSURF_32BIT | MT_32BIT_ABGR8888}, {PICT_x8b8g8r8, MAPSURF_32BIT | MT_32BIT_XBGR8888}, +#if XORG_VERSION_CURRENT >= 10699900 {PICT_a2r10g10b10, MAPSURF_32BIT | MT_32BIT_ARGB2101010}, {PICT_a2b10g10r10, MAPSURF_32BIT | MT_32BIT_ABGR2101010}, +#endif {PICT_r5g6b5, MAPSURF_16BIT | MT_16BIT_RGB565}, {PICT_a1r5g5b5, MAPSURF_16BIT | MT_16BIT_ARGB1555}, {PICT_a4r4g4b4, MAPSURF_16BIT | MT_16BIT_ARGB4444}, @@ -156,10 +158,12 @@ static Bool i915_get_dest_format(PicturePtr dest_picture, uint32_t * dst_format) case PICT_x1r5g5b5: *dst_format = COLR_BUF_ARGB1555; break; +#if XORG_VERSION_CURRENT >= 10699900 case PICT_a2r10g10b10: case PICT_x2r10g10b10: *dst_format = COLR_BUF_ARGB2AAA; break; +#endif case PICT_a8: *dst_format = COLR_BUF_8BIT; break; diff --git a/src/i965_render.c b/src/i965_render.c index 37a7ab7..15fbe49 100644 --- a/src/i965_render.c +++ b/src/i965_render.c @@ -117,10 +117,12 @@ static struct formatinfo i965_tex_formats[] = { {PICT_r8g8b8, BRW_SURFACEFORMAT_R8G8B8_UNORM}, {PICT_r5g6b5, BRW_SURFACEFORMAT_B5G6R5_UNORM}, {PICT_a1r5g5b5, BRW_SURFACEFORMAT_B5G5R5A1_UNORM}, +#if XORG_VERSION_CURRENT >= 10699900 {PICT_a2r10g10b10, BRW_SURFACEFORMAT_B10G10R10A2_UNORM}, {PICT_x2r10g10b10, BRW_SURFACEFORMAT_B10G10R10X2_UNORM}, {PICT_a2b10g10r10, BRW_SURFACEFORMAT_R10G10B10A2_UNORM}, {PICT_x2r10g10b10, BRW_SURFACEFORMAT_B10G10R10X2_UNORM}, +#endif {PICT_a4r4g4b4, BRW_SURFACEFORMAT_B4G4R4A4_UNORM}, }; @@ -169,10 +171,12 @@ static Bool i965_get_dest_format(PicturePtr dest_picture, uint32_t * dst_format) case PICT_x8b8g8r8: *dst_format = BRW_SURFACEFORMAT_R8G8B8A8_UNORM; break; +#if XORG_VERSION_CURRENT >= 10699900 case PICT_a2r10g10b10: case PICT_x2r10g10b10: *dst_format = BRW_SURFACEFORMAT_B10G10R10A2_UNORM; break; +#endif case PICT_r5g6b5: *dst_format = BRW_SURFACEFORMAT_B5G6R5_UNORM; break; diff --git a/src/intel_display.c b/src/intel_display.c index 5d85baa..d32224e 100644 --- a/src/intel_display.c +++ b/src/intel_display.c @@ -658,6 +658,13 @@ intel_crtc_init(ScrnInfoPtr scrn, struct intel_mode *mode, int num) list_add(&intel_crtc->link, &mode->crtcs); } +static Bool +is_panel(int type) +{ + return (type == DRM_MODE_CONNECTOR_LVDS || + type == DRM_MODE_CONNECTOR_eDP); +} + static xf86OutputStatus intel_output_detect(xf86OutputPtr output) { @@ -823,8 +830,7 @@ intel_output_get_modes(xf86OutputPtr output) * If it is incorrect, please fix me. */ intel_output->has_panel_limits = FALSE; - if (koutput->connector_type == DRM_MODE_CONNECTOR_LVDS || - koutput->connector_type == DRM_MODE_CONNECTOR_eDP) { + if (is_panel(koutput->connector_type)) { for (i = 0; i < koutput->count_modes; i++) { drmModeModeInfo *mode_ptr; @@ -1155,7 +1161,11 @@ intel_output_set_property(xf86OutputPtr output, Atom property, } } - return FALSE; + /* We didn't recognise this property, just report success in order + * to allow the set to continue, otherwise we break setting of + * common properties like EDID. + */ + return TRUE; } static Bool @@ -1293,12 +1303,12 @@ intel_output_init(ScrnInfoPtr scrn, struct intel_mode *mode, int num) output->subpixel_order = subpixel_conv_table[koutput->subpixel]; output->driver_private = intel_output; - if (koutput->connector_type == DRM_MODE_CONNECTOR_LVDS || - koutput->connector_type == DRM_MODE_CONNECTOR_eDP) + if (is_panel(koutput->connector_type)) intel_output_backlight_init(output); output->possible_crtcs = kencoder->possible_crtcs; output->possible_clones = kencoder->possible_clones; + output->interlaceAllowed = TRUE; intel_output->output = output; list_add(&intel_output->link, &mode->outputs); diff --git a/src/intel_dri.c b/src/intel_dri.c index db1f81a..9804272 100644 --- a/src/intel_dri.c +++ b/src/intel_dri.c @@ -367,6 +367,12 @@ I830DRI2CopyRegion(DrawablePtr drawable, RegionPtr pRegion, event = MI_WAIT_FOR_PIPEB_SVBLANK; } + if (scrn->currentMode->Flags & V_INTERLACE) { + /* DSL count field lines */ + y1 /= 2; + y2 /= 2; + } + BEGIN_BATCH(5); /* * The documentation says that the LOAD_SCAN_LINES @@ -1023,6 +1029,12 @@ Bool I830DRI2ScreenInit(ScreenPtr screen) const char *driverNames[1]; #endif + if (intel->force_fallback) { + xf86DrvMsg(scrn->scrnIndex, X_WARNING, + "cannot enable DRI2 whilst forcing software fallbacks\n"); + return FALSE; + } + if (xf86LoaderCheckSymbol("DRI2Version")) DRI2Version(&dri2_major, &dri2_minor); diff --git a/src/intel_driver.c b/src/intel_driver.c index c0ad69e..d086d94 100644 --- a/src/intel_driver.c +++ b/src/intel_driver.c @@ -588,13 +588,59 @@ static Bool I830PreInit(ScrnInfoPtr scrn, int flags) intel_check_chipset_option(scrn); intel_check_dri_option(scrn); - I830XvInit(scrn); - if (!intel_init_bufmgr(intel)) { PreInitCleanup(scrn); return FALSE; } + intel->force_fallback = + drmCommandNone(intel->drmSubFD, DRM_I915_GEM_THROTTLE) != 0; + intel->use_shadow = FALSE; + + /* Enable tiling by default */ + intel->tiling = TRUE; + + /* Allow user override if they set a value */ + if (xf86IsOptionSet(intel->Options, OPTION_TILING)) { + if (xf86ReturnOptValBool(intel->Options, OPTION_TILING, FALSE)) + intel->tiling = TRUE; + else + intel->tiling = FALSE; + } + + if (xf86IsOptionSet(intel->Options, OPTION_SHADOW)) { + if (xf86ReturnOptValBool(intel->Options, OPTION_SHADOW, FALSE)) + intel->force_fallback = intel->use_shadow = TRUE; + } + + if (intel->use_shadow) { + xf86DrvMsg(scrn->scrnIndex, X_CONFIG, + "Shadow buffer enabled," + " GPU acceleration disabled.\n"); + } + + /* SwapBuffers delays to avoid tearing */ + intel->swapbuffers_wait = TRUE; + + /* Allow user override if they set a value */ + if (xf86IsOptionSet(intel->Options, OPTION_SWAPBUFFERS_WAIT)) { + if (xf86ReturnOptValBool + (intel->Options, OPTION_SWAPBUFFERS_WAIT, FALSE)) + intel->swapbuffers_wait = TRUE; + else + intel->swapbuffers_wait = FALSE; + } + + if (IS_GEN6(intel)) + intel->swapbuffers_wait = FALSE; + + xf86DrvMsg(scrn->scrnIndex, X_CONFIG, "Tiling %sabled\n", + intel->tiling ? "en" : "dis"); + xf86DrvMsg(scrn->scrnIndex, X_CONFIG, "SwapBuffers wait %sabled\n", + intel->swapbuffers_wait ? "en" : "dis"); + + I830XvInit(scrn); + if (!intel_mode_pre_init(scrn, intel->drmSubFD, intel->cpp)) { PreInitCleanup(scrn); return FALSE; @@ -830,57 +876,6 @@ I830ScreenInit(int scrnIndex, ScreenPtr screen, int argc, char **argv) scrn->videoRam = device->regions[fb_bar].size / 1024; -#ifdef DRI2 - if (intel->directRenderingType == DRI_NONE - && I830DRI2ScreenInit(screen)) - intel->directRenderingType = DRI_DRI2; -#endif - - intel->force_fallback = FALSE; - intel->use_shadow = FALSE; - - /* Enable tiling by default */ - intel->tiling = TRUE; - - /* Allow user override if they set a value */ - if (xf86IsOptionSet(intel->Options, OPTION_TILING)) { - if (xf86ReturnOptValBool(intel->Options, OPTION_TILING, FALSE)) - intel->tiling = TRUE; - else - intel->tiling = FALSE; - } - - if (xf86IsOptionSet(intel->Options, OPTION_SHADOW)) { - if (xf86ReturnOptValBool(intel->Options, OPTION_SHADOW, FALSE)) - intel->force_fallback = intel->use_shadow = TRUE; - } - - if (intel->use_shadow) { - xf86DrvMsg(scrn->scrnIndex, X_CONFIG, - "Shadow buffer enabled," - " GPU acceleration disabled.\n"); - } - - /* SwapBuffers delays to avoid tearing */ - intel->swapbuffers_wait = TRUE; - - /* Allow user override if they set a value */ - if (xf86IsOptionSet(intel->Options, OPTION_SWAPBUFFERS_WAIT)) { - if (xf86ReturnOptValBool - (intel->Options, OPTION_SWAPBUFFERS_WAIT, FALSE)) - intel->swapbuffers_wait = TRUE; - else - intel->swapbuffers_wait = FALSE; - } - - if (IS_GEN6(intel)) - intel->swapbuffers_wait = FALSE; - - xf86DrvMsg(scrn->scrnIndex, X_CONFIG, "Tiling %sabled\n", - intel->tiling ? "en" : "dis"); - xf86DrvMsg(scrn->scrnIndex, X_CONFIG, "SwapBuffers wait %sabled\n", - intel->swapbuffers_wait ? "en" : "dis"); - intel->last_3d = LAST_3D_OTHER; intel->overlayOn = FALSE; @@ -894,6 +889,12 @@ I830ScreenInit(int scrnIndex, ScreenPtr screen, int argc, char **argv) intel->pEnt->device->videoRam ? X_CONFIG : X_DEFAULT, "VideoRam: %d KB\n", scrn->videoRam); +#ifdef DRI2 + if (intel->directRenderingType == DRI_NONE + && I830DRI2ScreenInit(screen)) + intel->directRenderingType = DRI_DRI2; +#endif + if (!intel_init_initial_framebuffer(scrn)) return FALSE; diff --git a/src/intel_memory.c b/src/intel_memory.c index 4f1b009..3a25ba6 100644 --- a/src/intel_memory.c +++ b/src/intel_memory.c @@ -209,6 +209,10 @@ retry: width, height, intel->cpp, &tiling_mode, &pitch, 0); if (front_buffer == NULL) { + if (tiling_mode != I915_TILING_NONE) { + tiling_mode = I915_TILING_NONE; + goto retry; + } xf86DrvMsg(scrn->scrnIndex, X_ERROR, "Failed to allocate framebuffer.\n"); return NULL; diff --git a/src/intel_video.c b/src/intel_video.c index 30a0c37..9c918d5 100644 --- a/src/intel_video.c +++ b/src/intel_video.c @@ -1348,13 +1348,19 @@ intel_wait_for_scanline(ScrnInfoPtr scrn, PixmapPtr pixmap, event = MI_WAIT_FOR_PIPEB_SVBLANK; } + if (scrn->currentMode->Flags & V_INTERLACE) { + /* DSL count field lines */ + y1 /= 2; + y2 /= 2; + } + BEGIN_BATCH(5); /* The documentation says that the LOAD_SCAN_LINES command * always comes in pairs. Don't ask me why. */ OUT_BATCH(MI_LOAD_SCAN_LINES_INCL | pipe); - OUT_BATCH((box.y1 << 16) | box.y2); + OUT_BATCH((y1 << 16) | y2); OUT_BATCH(MI_LOAD_SCAN_LINES_INCL | pipe); - OUT_BATCH((box.y1 << 16) | box.y2); + OUT_BATCH((y1 << 16) | y2); OUT_BATCH(MI_WAIT_FOR_EVENT | event); ADVANCE_BATCH(); } diff --git a/uxa/uxa-accel.c b/uxa/uxa-accel.c index a2ad651..a5066c8 100644 --- a/uxa/uxa-accel.c +++ b/uxa/uxa-accel.c @@ -47,7 +47,9 @@ format_for_depth(int depth) case 16: return PICT_r5g6b5; default: case 24: return PICT_x8r8g8b8; +#if XORG_VERSION_CURRENT >= 10699900 case 30: return PICT_x2r10g10b10; +#endif case 32: return PICT_a8r8g8b8; } } diff --git a/uxa/uxa-render.c b/uxa/uxa-render.c index 3194d23..fd8eb93 100644 --- a/uxa/uxa-render.c +++ b/uxa/uxa-render.c @@ -108,6 +108,7 @@ op_to_string(CARD8 op) /* * Operators only available in version 0.2 */ +#if RENDER_MAJOR >= 1 || RENDER_MINOR >= 2 C(DisjointClear); C(DisjointSrc); C(DisjointDst); @@ -133,10 +134,12 @@ op_to_string(CARD8 op) C(ConjointAtop); C(ConjointAtopReverse); C(ConjointXor); +#endif /* * Operators only available in version 0.11 */ +#if RENDER_MAJOR >= 1 || RENDER_MINOR >= 11 C(Multiply); C(Screen); C(Overlay); @@ -152,6 +155,7 @@ op_to_string(CARD8 op) C(HSLSaturation); C(HSLColor); C(HSLLuminosity); +#endif default: return "garbage"; #undef C } @@ -237,11 +241,13 @@ uxa_get_pixel_from_rgba(CARD32 * pixel, gshift = rbits; bshift = gshift + gbits; ashift = bshift + bbits; +#if XORG_VERSION_CURRENT >= 10699900 } else if (PICT_FORMAT_TYPE(format) == PICT_TYPE_BGRA) { ashift = 0; rshift = abits; gshift = rshift + rbits; bshift = gshift + gbits; +#endif } else { return FALSE; } @@ -283,6 +289,7 @@ uxa_get_rgba_from_pixel(CARD32 pixel, gshift = rbits; bshift = gshift + gbits; ashift = bshift + bbits; +#if XORG_VERSION_CURRENT >= 10699900 } else if (PICT_FORMAT_TYPE(format) == PICT_TYPE_BGRA) { ashift = 0; rshift = abits; @@ -290,6 +297,7 @@ uxa_get_rgba_from_pixel(CARD32 pixel, rshift = PICT_FORMAT_BPP(format) - (rbits+gbits+bbits); gshift = rshift + rbits; bshift = gshift + gbits; +#endif } else { return FALSE; }
Attachment:
signature.asc
Description: Digital signature