Hello community, here is the log from the commit of package xf86-video-intel.4661 for openSUSE:13.2:Update checked in at 2016-02-18 09:20:48 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:13.2:Update/xf86-video-intel.4661 (Old) and /work/SRC/openSUSE:13.2:Update/.xf86-video-intel.4661.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xf86-video-intel.4661" Changes: -------- New Changes file: --- /dev/null 2016-01-27 19:41:03.648095915 +0100 +++ /work/SRC/openSUSE:13.2:Update/.xf86-video-intel.4661.new/xf86-video-intel.changes 2016-02-18 09:20:50.000000000 +0100 @@ -0,0 +1,1528 @@ +------------------------------------------------------------------- +Tue Feb 9 12:18:37 UTC 2016 - e...@suse.com + +- U_gen8-Fix-the-YUV-RGB-shader.patch + Fix video playback using XV (boo#950666). + +------------------------------------------------------------------- +Sat Jan 9 12:36:28 UTC 2016 - e...@suse.com + +- U_sna-Wrap-prefaulting-with-sigtrap.patch + Avoid SIGBUS due to kernel issues (boo#942158). + +------------------------------------------------------------------- +Fri Dec 4 11:22:36 UTC 2015 - e...@suse.com + +- U_sna-Check-after-filtering-points-before-submitting-boxes-to-be-drawn.patch + Don't crash when no boxes to render are available (boo#931309). + +------------------------------------------------------------------- +Wed Dec 2 09:27:33 UTC 2015 - e...@suse.com + +- U_sna-Allow-move-to-gpu-to-fail-during-ScreenCreateResources.patch + U_sna-Check-for-scanout-pitch-restrictions-on-linear-GPU-bo.patch + U_sna-Check-scanout-Pixmaps-are-the-correct-pitch-and-convert-if-necessary.patch: + Backport set of patches to fix issues with panning and server resets + (boo#957508). + +------------------------------------------------------------------- +Wed Nov 18 08:35:52 UTC 2015 - e...@suse.com + +- U_sna-Use-default-monitor-options-on-the-first-output.patch: + Use default monitor options on the fist output instead of erronously + picking the 2nd. This fixes a regression introduced before 2.99.16 + (boo#901506). + +------------------------------------------------------------------- +Mon May 25 16:28:14 CDT 2015 - feder...@suse.com + +- U_sna-glyph-null-deref.patch + Fix crash on PRIME setups when executing empty glyph strings (bnc#906972) + +------------------------------------------------------------------- +Fri Dec 12 11:57:16 CET 2014 - ti...@suse.de + +- U_uxa-Stub-out-intel_sync_init-fini-when-not-compiled-.patch + Fix the missing intel_sync_close() w/o DRI3 (bnc#908323) + +------------------------------------------------------------------- +Thu Dec 4 09:48:55 CET 2014 - ti...@suse.de + +- U_Disable-DRI3-by-default.patch + Disable DRI3 (bnc#908323) +- U_sna-gen8-BLT-broken-when-address-has-bit-4-set.patch + Fix SNA BLT on BDW/CHV (bnc#908326) + +------------------------------------------------------------------- +Wed Sep 24 11:27:46 UTC 2014 - e...@suse.com + +- U_sna-Validate-framebuffer-tiling-before-creation.patch + Fix regression causing tiling settings not being validated + which subsequently lead to failed surface allocations (bnc#898169). + +------------------------------------------------------------------- +Tue Sep 9 13:43:07 UTC 2014 - tobias.johannes.klausm...@mni.thm.de + +- Update to 3.0 prerelease 2.99.916: + A Quick update for MST in UXA - we need to hook up the RandR outputs + for dynamicaly added connectors. + +------------------------------------------------------------------- +Tue Sep 9 13:40:55 UTC 2014 - tobias.johannes.klausm...@mni.thm.de + +- Update to 3.0 prerelease 2.99.915: + A significant change to UXA to enable MST and to keep it working on + recent kernels needs some soaking before a major release, and the + usual plethora of bugfixes. One other feature is the support for + hardware rotations on very recent kernels. + + Handle rotated scanouts that are all clear correctly. The region to + update was not being computed correctly, overdrawing the wrong CRTC. + https://bugs.freedesktop.org/show_bug.cgi?id=81820 + + Reset cursor images after rotation and size changes + https://bugs.freedesktop.org/show_bug.cgi?id=81886 + https://bugs.freedesktop.org/show_bug.cgi?id=82273 + https://bugs.freedesktop.org/show_bug.cgi?id=82337 + + Handle stale DRI2 buffers and Client errors more gracefully + + Fallback if we fail to render a glyph onto a too-large surface, e.g. + direct rendering of glyphs onto extended desktops with gen2/gen3. + https://bugs.archlinux.org/task/40949 + + Further work to enable tiled rendering onto large surfaces in + severely aperture and memory constrained devices (e.g. gen2/gen3) + + Honour the Primary option from xorg.conf and mark that as the RandR + primary. + https://bugs.freedesktop.org/show_bug.cgi?id=82193 + https://bugs.freedesktop.org/show_bug.cgi?id=82205 + + Fix another Client-Window DRI2 close race + https://bugs.freedesktop.org/show_bug.cgi?id=82979 + + Fix incorrect discarding of GPU damage when copying over the TearFree + scanout - which caused a flicker in rapidly updated elements (like + simple video panes). + https://bugs.freedesktop.org/show_bug.cgi?id=81973 +- Remove upstreamed patch: + Patch1: U_Erase-cursor-image-when-changing-rotation.patch + +------------------------------------------------------------------- +Fri Aug 29 17:01:35 UTC 2014 - e...@suse.com + +- u_Erase-cursor-image-when-changing-rotation.patch + -> U_Erase-cursor-image-when-changing-rotation.patch + +------------------------------------------------------------------- +Fri Aug 29 16:38:59 UTC 2014 - e...@suse.com + +- u_Erase-cursor-image-when-changing-rotation.patch + Erase cursor image when changing rotation: + The rotated cursor image will be at a different location + in the 64x64 bit block and won't overlap with the unrotated + image. Therefore it will not be overwritten if the real image + is smaller (bnc#893752). + +------------------------------------------------------------------- +Fri Aug 29 16:36:51 UTC 2014 - e...@suse.com + +- u_sna_dri3_mesa_relies_upon_implicit_fences.patch + -> U_sna_dri3_mesa_relies_upon_implicit_fences.patch + Patches from upstream should be flagged with 'U'. + +------------------------------------------------------------------- +Wed Jul 23 16:29:51 UTC 2014 - tobias.johannes.klausm...@mni.thm.de + +- Update to version 2.99.914: + A brown paper bag to hide the rebuilding from the tarball with + 'autoreconf -fi' error that arose from not distributing the libobj/ + directory. + +------------------------------------------------------------------- +Wed Jul 23 14:37:06 UTC 2014 - tobias.johannes.klausm...@mni.thm.de + +- Update to 3.0 prerelease 2.99.913: (Tarball from Git, Release Tarball is broken) + Officially recognise HD Graphics 5300/5500/5600, Iris Graphics 6100 and + Iris Pro Graphics 6200/P6300 (formerly known as Broadwell). + + Check the window actually covers the CRTC before doing a single CRTC flip, + and then restore the right framebuffer after completing CRTC flips. + Otherwise we would detect an error and disable an output under TearFree + Regression in 2.99.912 + https://bugs.freedesktop.org/show_bug.cgi?id=80191 + + Fix framebuffer creation on kernels older than 3.11 + Regression in 2.99.912 + + Check that the damage still exists after implicit reduction + Regression in 2.99.912 + https://bugs.freedesktop.org/show_bug.cgi?id=77436 + + Fix direction flags for fallback composited CopyAreas which + caused scrolling corruption in a few configurations + Regression from 2.20.0 + https://bugs.freedesktop.org/show_bug.cgi?id=79843 + + Do not throw away damage if there is no redundant copy + https://bugs.freedesktop.org/show_bug.cgi?id=79992 + + Check clipping on PolyRect before discarding the clipped damage + Regression from 2.99.903 + https://bugs.freedesktop.org/show_bug.cgi?id=79992 + + Fix hints for GLXPixmapa, as these are never swapped and so + miss invalidating the hints on SwapBuffers with the result + that they are often presumed blank + Regression in 2.99.912 + https://bugs.freedesktop.org/show_bug.cgi?id=79999 + + Fix incoherent choice of source bo when constructing 8x8 tiles, + incorrect pattern origin when extracting, and then fix the + alignment of colour patterns for BLT operations + https://bugs.freedesktop.org/show_bug.cgi?id=80033 + + Disable blending with the render engine on snoopable buffers + https://bugs.freedesktop.org/show_bug.cgi?id=80253 + + Restore throttling to prevent client lag under heavy GPU load + Regression from 2.21.10 + https://bugs.freedesktop.org/show_bug.cgi?id=77436 + + Use ClientGone for notifications on shared DRI2 windows to prevent + rare crashes due to use-after-free of the swap requests + https://bugs.freedesktop.org/show_bug.cgi?id=80157 + + Ensure the mmaped CPU bo is idle before migrating damage + https://bugs.freedesktop.org/show_bug.cgi?id=80560 + + Fix incorrect clipping by the render engine for large DRI2 windows + + Ensure that the aperture tiling fallbacks are bounded + + Validate parameter to xf86-video-intel-backlight-helper more carefully + (CVE-2014-4910) + + Fix slaved scanouts for reverse optimus, though rotated slaves will + require further patches to Xorg. + https://bugs.freedesktop.org/show_bug.cgi?id=81383 + + Fix build without Composite extension. + + Fix build without gettline(). + + UXA: Allocate and resize frontbuffer consistently to pass sanity checks + https://bugs.freedesktop.org/show_bug.cgi?id=80088 + + UXA: Report cached backlight value when the output is off (like sna) + https://bugzilla.redhat.com/show_bug.cgi?id=1032978 + + UXA: Mark outputs as off before the kernel does (like sna) + This will prevent the internal panel from starting up blank in some + multi-monitor configurations + https://bugzilla.redhat.com/show_bug.cgi?id=1103806 +- Note that the DRI2 exchange mechanism introduced in 2.99.912 exposes bugs + in some compositors, at least kwin and comptom, which discard DRI2 buffer ++++ 1331 more lines (skipped) ++++ between /dev/null ++++ and /work/SRC/openSUSE:13.2:Update/.xf86-video-intel.4661.new/xf86-video-intel.changes New: ---- U_Disable-DRI3-by-default.patch U_gen8-Fix-the-YUV-RGB-shader.patch U_sna-Allow-move-to-gpu-to-fail-during-ScreenCreateResources.patch U_sna-Check-after-filtering-points-before-submitting-boxes-to-be-drawn.patch U_sna-Check-for-scanout-pitch-restrictions-on-linear-GPU-bo.patch U_sna-Check-scanout-Pixmaps-are-the-correct-pitch-and-convert-if-necessary.patch U_sna-Use-default-monitor-options-on-the-first-output.patch U_sna-Validate-framebuffer-tiling-before-creation.patch U_sna-Wrap-prefaulting-with-sigtrap.patch U_sna-gen8-BLT-broken-when-address-has-bit-4-set.patch U_sna-glyph-null-deref.patch U_sna_dri3_mesa_relies_upon_implicit_fences.patch U_uxa-Stub-out-intel_sync_init-fini-when-not-compiled-.patch baselibs.conf xf86-video-intel-2.99.916.tar.bz2 xf86-video-intel.changes xf86-video-intel.spec ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ xf86-video-intel.spec ++++++ # # spec file for package xf86-video-intel # # Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via http://bugs.opensuse.org/ # %define glamor 0 %define backlighthelper 0 Name: xf86-video-intel Version: 2.99.916 Release: 0 Summary: Intel video driver for the Xorg X server License: MIT Group: System/X11/Servers/XF86_4 Url: http://x.org/wiki/IntelGraphicsDriver/ #Git-Clone: git://anongit.freedesktop.org/xorg/driver/xf86-video-intel #Git-Web: http://cgit.freedesktop.org/xorg/driver/xf86-video-intel/ # http://xorg.freedesktop.org/releases/individual/driver/ Source0: %{name}-%{version}.tar.bz2 Source99: baselibs.conf %if %glamor Requires: glamor %endif Recommends: vaapi-intel-driver Recommends: intel-gpu-tools BuildRequires: Mesa-libGL-devel BuildRequires: autoconf BuildRequires: automake BuildRequires: libtool BuildRequires: pkg-config BuildRequires: pkgconfig(dri2proto) >= 2.6 BuildRequires: pkgconfig(fontsproto) BuildRequires: pkgconfig(libdrm) >= 2.4.24 BuildRequires: pkgconfig(libdrm_intel) >= 2.4.29 BuildRequires: pkgconfig(libudev) BuildRequires: pkgconfig(pciaccess) >= 0.10 BuildRequires: pkgconfig(pixman-1) BuildRequires: pkgconfig(randrproto) BuildRequires: pkgconfig(renderproto) BuildRequires: pkgconfig(valgrind) BuildRequires: pkgconfig(x11) BuildRequires: pkgconfig(x11-xcb) BuildRequires: pkgconfig(xcb-aux) BuildRequires: pkgconfig(xcb-dri2) BuildRequires: pkgconfig(xcursor) BuildRequires: pkgconfig(xdamage) BuildRequires: pkgconfig(xext) BuildRequires: pkgconfig(xextproto) BuildRequires: pkgconfig(xf86driproto) BuildRequires: pkgconfig(xfixes) BuildRequires: pkgconfig(xinerama) BuildRequires: pkgconfig(xorg-macros) >= 1.8 BuildRequires: pkgconfig(xorg-server) >= 1.0.99.901 BuildRequires: pkgconfig(xproto) BuildRequires: pkgconfig(xrandr) BuildRequires: pkgconfig(xrender) BuildRequires: pkgconfig(xtst) BuildRequires: pkgconfig(xvmc) %if %glamor BuildRequires: pkgconfig(glamor) %endif Supplements: modalias(xorg-x11-server:pci:v00008086d*sv*sd*bc03sc*i*) # This was part of the xorg-x11-driver-video package up to version 7.6 Conflicts: xorg-x11-driver-video <= 7.6 Provides: intel-i810-xorg-x11 = %{version} Obsoletes: intel-i810-xorg-x11 < %{version} Provides: xorg-x11-driver-video-intel = %{version} Obsoletes: xorg-x11-driver-video-intel < %{version} # No Provides, as we technically don't provide the binaries Obsoletes: 855resolution Obsoletes: 915resolution BuildRoot: %{_tmppath}/%{name}-%{version}-build ExclusiveArch: %ix86 x86_64 Patch0: U_sna_dri3_mesa_relies_upon_implicit_fences.patch Patch1: U_sna-Validate-framebuffer-tiling-before-creation.patch Patch2: U_Disable-DRI3-by-default.patch Patch3: U_sna-gen8-BLT-broken-when-address-has-bit-4-set.patch Patch4: U_uxa-Stub-out-intel_sync_init-fini-when-not-compiled-.patch Patch5: U_sna-glyph-null-deref.patch Patch6: U_sna-Use-default-monitor-options-on-the-first-output.patch Patch7: U_sna-Check-for-scanout-pitch-restrictions-on-linear-GPU-bo.patch Patch8: U_sna-Check-scanout-Pixmaps-are-the-correct-pitch-and-convert-if-necessary.patch Patch9: U_sna-Allow-move-to-gpu-to-fail-during-ScreenCreateResources.patch Patch10: U_sna-Check-after-filtering-points-before-submitting-boxes-to-be-drawn.patch Patch11: U_sna-Wrap-prefaulting-with-sigtrap.patch Patch12: U_gen8-Fix-the-YUV-RGB-shader.patch %x11_abi_videodrv_req %description intel is an Xorg driver for Intel integrated video cards. The driver supports depths 8, 15, 16 and 24. All visual types are supported in depth 8. For the i810/i815 other depths support the TrueColor and DirectColor visuals. For the i830M and later, only the TrueColor visual is supported for depths greater than 8. The driver supports hardware accelerated 3D via the Direct Rendering Infrastructure (DRI), but only in depth 16 for the i810/i815 and depths 16 and 24 for the 830M and later. %prep %setup -q %patch0 -p1 %patch1 -p1 %patch2 -p1 %patch3 -p1 %patch4 -p1 %patch5 -p1 %patch6 -p1 %patch7 -p1 %patch8 -p1 %patch9 -p1 %patch10 -p1 %patch11 -p1 %patch12 -p1 %build autoreconf -fi %configure \ %if %{backlighthelper} --enable-backlight-helper \ %else --disable-backlight-helper \ %endif %ifnarch %{ix86} --enable-kms-only \ %endif %if %glamor --enable-glamor \ %endif --enable-uxa make %{?_smp_mflags} %install %make_install find %{buildroot}%{_libdir} -name '*.la' -type f -delete -print %post -p /sbin/ldconfig %postun -p /sbin/ldconfig %files %if %{backlighthelper} %defattr(-,polkitd,polkitd) %dir %{_datadir}/polkit-1 %dir %{_datadir}/polkit-1/actions %endif %defattr(-,root,root) %doc AUTHORS COPYING NEWS README %ifarch %{ix86} %{_libdir}/libI810XvMC.so* %endif %{_libdir}/libIntelXvMC.so* %dir %{_libdir}/xorg/modules/drivers %{_libdir}/xorg/modules/drivers/intel_drv.so %{_bindir}/intel-virtual-output %{_datadir}/man/man4/intel.4%{?ext_man} %{_datadir}/man/man4/intel-virtual-output.4%{?ext_man} %if %{backlighthelper} %_libexecdir/xf86-video-intel-backlight-helper %{_datadir}/polkit-1/actions/org.x.xf86-video-intel.backlight-helper.policy %endif %changelog ++++++ U_Disable-DRI3-by-default.patch ++++++ >From b6eeb7a1f7efa591504070b606be655e27e6e9c2 Mon Sep 17 00:00:00 2001 From: Chris Wilson <ch...@chris-wilson.co.uk> Date: Wed, 5 Nov 2014 13:03:41 +0000 Subject: [PATCH] Disable DRI3 by default Git-commit: b6eeb7a1f7efa591504070b606be655e27e6e9c2 References: bnc#908323 The external libraries, both in git, and especially shipping already enabled in distributions, are buggy and lead to server crashes and lockups. Caveat emptor. Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk> Acked-by: Takashi Iwai <ti...@suse.de> --- configure.ac | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) --- a/configure.ac +++ b/configure.ac @@ -339,10 +339,10 @@ AC_ARG_ENABLE(dri2, [DRI2=$enableval], [DRI2=yes]) AC_ARG_ENABLE(dri3, - AS_HELP_STRING([--disable-dri3], - [Disable DRI3 support [[default=yes]]]), + AS_HELP_STRING([--enable-dri3], + [Enable DRI3 support [[default=no]]]), [DRI3=$enableval], - [DRI3=yes]) + [DRI3=no]) AC_ARG_ENABLE(xvmc, AS_HELP_STRING([--disable-xvmc], [Disable XvMC support [[default=yes]]]), ++++++ U_gen8-Fix-the-YUV-RGB-shader.patch ++++++ From: Ville Syrjälä <ville.syrj...@linux.intel.com> Date: Thu Apr 16 20:40:39 2015 +0300 Subject: [PATCH]gen8: Fix the YUV->RGB shader Patch-mainline: Upstream Git-commit: c43617b739e358064396912c7a7a8028ca91d201 Git-repo: git://anongit.freedesktop.org/git/xorg/driver/xf86-video-intel References: boo#950666 Signed-off-by: Egbert Eich <e...@suse.com> Use the correct register (Yn_01) with first half of the Y samples instead of using the register (Yn_23) with the second half twice when computing the green channel. Also use the Yn_01 register name instead of Yn for the red channel as well, just for a bit of extra consistency. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89807 Signed-off-by: Ville Syrjälä <ville.syrj...@linux.intel.com> Tested-by: Chris Wilson <ch...@chris-wilson.co.uk> --- src/render_program/exa_wm_yuv_rgb.g8a | 4 ++-- src/render_program/exa_wm_yuv_rgb.g8b | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/render_program/exa_wm_yuv_rgb.g8a b/src/render_program/exa_wm_yuv_rgb.g8a index 7def093..34973ba 100644 --- a/src/render_program/exa_wm_yuv_rgb.g8a +++ b/src/render_program/exa_wm_yuv_rgb.g8a @@ -76,7 +76,7 @@ add (16) Cbn<1>F Cb<8,8,1>F -0.501961F { compr align1 }; /* * R = Y + Cr * 1.596 */ -mov (8) acc0<1>F Yn<8,8,1>F { compr align1 }; +mov (8) acc0<1>F Yn_01<8,8,1>F { compr align1 }; mac.sat(8) src_sample_r_01<1>F Crn_01<8,8,1>F 1.596F { compr align1 }; mov (8) acc0<1>F Yn_23<8,8,1>F { compr align1 }; @@ -84,7 +84,7 @@ mac.sat(8) src_sample_r_23<1>F Crn_23<8,8,1>F 1.596F { compr align1 }; /* * G = Crn * -0.813 + Cbn * -0.392 + Y */ -mov (8) acc0<1>F Yn_23<8,8,1>F { compr align1 }; +mov (8) acc0<1>F Yn_01<8,8,1>F { compr align1 }; mac (8) acc0<1>F Crn_01<8,8,1>F -0.813F { compr align1 }; mac.sat(8) src_sample_g_01<1>F Cbn_01<8,8,1>F -0.392F { compr align1 }; diff --git a/src/render_program/exa_wm_yuv_rgb.g8b b/src/render_program/exa_wm_yuv_rgb.g8b index 4494953..2cd6fc4 100644 --- a/src/render_program/exa_wm_yuv_rgb.g8b +++ b/src/render_program/exa_wm_yuv_rgb.g8b @@ -6,7 +6,7 @@ { 0x80600048, 0x21c03ae8, 0x3e8d02c0, 0x3fcc49ba }, { 0x00600001, 0x24003ae0, 0x008d0320, 0x00000000 }, { 0x80600048, 0x21e03ae8, 0x3e8d02e0, 0x3fcc49ba }, - { 0x00600001, 0x24003ae0, 0x008d0320, 0x00000000 }, + { 0x00600001, 0x24003ae0, 0x008d0300, 0x00000000 }, { 0x00600048, 0x24003ae0, 0x3e8d02c0, 0xbf5020c5 }, { 0x80600048, 0x22003ae8, 0x3e8d0340, 0xbec8b439 }, { 0x00600001, 0x24003ae0, 0x008d0320, 0x00000000 }, ++++++ U_sna-Allow-move-to-gpu-to-fail-during-ScreenCreateResources.patch ++++++ From: Chris Wilson <ch...@chris-wilson.co.uk> Date: Fri Sep 26 21:01:43 2014 +0100 Subject: [PATCH]sna: Allow move-to-gpu to fail during ScreenCreateResources Patch-mainline: 2.99.917 Git-commit: f785035d5bd42a778d4be0bf3ff8678bd7a7e503 Git-repo: git://anongit.freedesktop.org/git/xorg/driver/xf86-video-intel References: Signed-off-by: Egbert Eich <e...@suse.com> Before we attach the Screen Pixmap to the scanout, we will have to create a GPU bo and apply any fixups as required. Therefore failing to pre-emptively move it during ScreenCreateResource is not fatal and the failure can be simply ignored. Suggested-by: Egbert Eich <e...@freedesktop.org> Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk> --- src/sna/sna_display.c | 4 +++- src/sna/sna_driver.c | 14 +++++--------- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/src/sna/sna_display.c b/src/sna/sna_display.c index 0aa7557..1407e2b 100644 --- a/src/sna/sna_display.c +++ b/src/sna/sna_display.c @@ -1625,7 +1625,9 @@ void sna_copy_fbcon(struct sna *sna) assert((sna->flags & SNA_IS_HOSTED) == 0); priv = sna_pixmap(sna->front); - assert(priv && priv->gpu_bo); + assert(priv); + if (priv->gpu_bo == NULL) + return; /* Scan the connectors for a framebuffer and assume that is the fbcon */ VG_CLEAR(fbcon); diff --git a/src/sna/sna_driver.c b/src/sna/sna_driver.c index 7eed214..14b9c31 100644 --- a/src/sna/sna_driver.c +++ b/src/sna/sna_driver.c @@ -248,15 +248,11 @@ static Bool sna_create_screen_resources(ScreenPtr screen) return FALSE; } - if (!sna_pixmap_force_to_gpu(new_front, MOVE_READ)) { - xf86DrvMsg(screen->myNum, X_ERROR, - "[intel] Failed to allocate video resources for front buffer %dx%d at depth %d\n", - screen->width, - screen->height, - screen->rootDepth); - screen->DestroyPixmap(new_front); - return FALSE; - } + /* Prefer to use the GPU for rendering into the eventual scanout + * bo so that we do not unduly stall when it is time to attach + * it to the CRTCs. + */ + sna_pixmap_force_to_gpu(new_front, MOVE_READ | __MOVE_SCANOUT); screen->SetScreenPixmap(new_front); assert(screen->GetScreenPixmap(screen) == new_front); ++++++ U_sna-Check-after-filtering-points-before-submitting-boxes-to-be-drawn.patch ++++++ From: Chris Wilson <ch...@chris-wilson.co.uk> Date: Mon Nov 10 07:42:42 2014 +0000 Subject: [PATCH]sna: Check after filtering points before submitting boxes to be drawn Patch-mainline: 2.99.917 Git-commit: 0267f5902ddaceced870dcd8451ef8729e33e5c2 Git-repo: git://anongit.freedesktop.org/git/xorg/driver/xf86-video-intel References: boo#931309 Signed-off-by: Egbert Eich <e...@suse.com> As we clip the points when converting them into GPU boxes, check that we have something to draw before submitting the commands. Reported-by: Ian Gay <g...@sfu.ca> References: https://bugs.freedesktop.org/show_bug.cgi?id=86075 Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk> --- src/sna/sna_accel.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/sna/sna_accel.c b/src/sna/sna_accel.c index 0ef56fb..13f52e4 100644 --- a/src/sna/sna_accel.c +++ b/src/sna/sna_accel.c @@ -7251,7 +7251,8 @@ sna_poly_point__gpu(DrawablePtr drawable, GCPtr gc, b++; } } while (--nbox); - fill.boxes(data->sna, &fill, box, b - box); + if (b != box) + fill.boxes(data->sna, &fill, box, b - box); } fill.done(data->sna, &fill); } ++++++ U_sna-Check-for-scanout-pitch-restrictions-on-linear-GPU-bo.patch ++++++ From: Chris Wilson <ch...@chris-wilson.co.uk> Date: Thu Sep 25 16:29:14 2014 +0100 Subject: [PATCH]sna: Check for scanout pitch restrictions on linear GPU bo Patch-mainline: 2.99.917 Git-commit: 9f7c1a4c4f2a6352263c36e75a984ed4095adbc0 Git-repo: git://anongit.freedesktop.org/git/xorg/driver/xf86-video-intel References: Signed-off-by: Egbert Eich <e...@suse.com> When converting a linear cached CPU bo into an uncached GPU bo, we must be careful to adhere to the scanout restrictions if they apply for this transfer or this Pixmap. Reported-by: Egbert Eich <e...@suse.com> Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk> --- src/sna/sna_accel.c | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/src/sna/sna_accel.c b/src/sna/sna_accel.c index 37e1e7c..4462207 100644 --- a/src/sna/sna_accel.c +++ b/src/sna/sna_accel.c @@ -4051,6 +4051,27 @@ sna_pixmap_create_upload(ScreenPtr screen, return pixmap; } +static bool can_convert_to_gpu(struct sna_pixmap *priv, unsigned flags) +{ + assert(priv->gpu_bo == NULL); + + if (priv->cpu_bo == NULL) + return false; + + if (priv->shm) + return false; + + /* Linear scanout have a restriction that their pitch must be + * 64 byte aligned. Force the creation of a proper GPU bo if + * this CPU bo is not suitable for scanout. + */ + if (priv->pixmap->usage_hint == SNA_CREATE_FB || flags & __MOVE_SCANOUT) + if (priv->cpu_bo->pitch & 63) + return false; + + return true; +} + struct sna_pixmap * sna_pixmap_move_to_gpu(PixmapPtr pixmap, unsigned flags) { @@ -4141,7 +4162,8 @@ sna_pixmap_move_to_gpu(PixmapPtr pixmap, unsigned flags) return NULL; } - if (is_linear && priv->cpu_bo && !priv->shm && + if (is_linear && + can_convert_to_gpu(priv, flags) && kgem_bo_convert_to_gpu(&sna->kgem, priv->cpu_bo, flags)) { assert(!priv->mapped); assert(!IS_STATIC_PTR(priv->ptr)); ++++++ U_sna-Check-scanout-Pixmaps-are-the-correct-pitch-and-convert-if-necessary.patch ++++++ From: Chris Wilson <ch...@chris-wilson.co.uk> Date: Thu Sep 25 16:41:11 2014 +0100 Subject: [PATCH]sna: Check scanout Pixmaps are the correct pitch and convert if necessary Patch-mainline: 2.99.917 Git-commit: e9087f50bf6dafff87c566d3bdbe6cef29d71fde Git-repo: git://anongit.freedesktop.org/git/xorg/driver/xf86-video-intel References: Signed-off-by: Egbert Eich <e...@suse.com> As a final precaution, fixup the pitch on the bo to be used for scanout by switching the bo on the Pixmap for a new correctly aligned scanout bo. Reported-by: Egbert Eich <e...@suse.com> Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk> --- src/sna/sna_display.c | 59 +++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 57 insertions(+), 2 deletions(-) diff --git a/src/sna/sna_display.c b/src/sna/sna_display.c index e7908cb..ea355aa 100644 --- a/src/sna/sna_display.c +++ b/src/sna/sna_display.c @@ -1790,6 +1790,61 @@ static void set_shadow(struct sna *sna, RegionPtr region) priv->move_to_gpu_data = sna; } +static struct kgem_bo * +get_scanout_bo(struct sna *sna, PixmapPtr pixmap) +{ + struct sna_pixmap *priv; + + priv = sna_pixmap_force_to_gpu(pixmap, MOVE_READ | __MOVE_SCANOUT); + if (!priv) + return NULL; + + if (priv->gpu_bo->pitch & 63) { + struct kgem_bo *tmp; + BoxRec b; + + DBG(("%s: converting to scanout bo due to bad pitch [%d]\n", + __FUNCTION__, priv->gpu_bo->pitch)); + + if (priv->pinned) { + DBG(("%s: failed as the Pixmap is already pinned [%x]\n", + __FUNCTION__, priv->pinned)); + return NULL; + } + + tmp = kgem_create_2d(&sna->kgem, + pixmap->drawable.width, + pixmap->drawable.height, + sna->scrn->bitsPerPixel, + priv->gpu_bo->tiling, + CREATE_EXACT | CREATE_SCANOUT); + if (tmp == NULL) { + DBG(("%s: allocation failed\n", __FUNCTION__)); + return NULL; + } + + b.x1 = 0; + b.y1 = 0; + b.x2 = pixmap->drawable.width; + b.y2 = pixmap->drawable.height; + + if (sna->render.copy_boxes(sna, GXcopy, + &pixmap->drawable, priv->gpu_bo, 0, 0, + &pixmap->drawable, tmp, 0, 0, + &b, 1, COPY_LAST)) { + DBG(("%s: copy failed\n", __FUNCTION__)); + kgem_bo_destroy(&sna->kgem, tmp); + return NULL; + } + + kgem_bo_destroy(&sna->kgem, priv->gpu_bo); + priv->gpu_bo = tmp; + } + + priv->pinned |= PIN_SCANOUT; + return priv->gpu_bo; +} + static struct kgem_bo *sna_crtc_attach(xf86CrtcPtr crtc) { struct sna_crtc *sna_crtc = to_sna_crtc(crtc); @@ -1846,7 +1901,7 @@ static struct kgem_bo *sna_crtc_attach(xf86CrtcPtr crtc) } else { if (sna_crtc->slave_pixmap) { DBG(("%s: attaching to scanout pixmap\n", __FUNCTION__)); - bo = sna_pixmap_pin(sna_crtc->slave_pixmap, PIN_SCANOUT); + bo = get_scanout_bo(sna, sna_crtc->slave_pixmap); if (bo == NULL) { DBG(("%s: failed to pin crtc scanout\n")); return NULL; @@ -1860,7 +1915,7 @@ static struct kgem_bo *sna_crtc_attach(xf86CrtcPtr crtc) } } else { DBG(("%s: attaching to framebuffer\n", __FUNCTION__)); - bo = sna_pixmap_pin(sna->front, PIN_SCANOUT); + bo = get_scanout_bo(sna, sna->front); if (bo == NULL) { DBG(("%s: failed to pin framebuffer\n", __FUNCTION__)); return NULL; ++++++ U_sna-Use-default-monitor-options-on-the-first-output.patch ++++++ From: Chris Wilson <ch...@chris-wilson.co.uk> Date: Fri Sep 12 07:46:43 2014 +0100 Subject: [PATCH]sna: Use default monitor options on the first output Patch-mainline: 2.99.917 Git-commit: 1aefd16964c30264c05d136cef3e1e7de5eb9c53 Git-repo: git://anongit.freedesktop.org/git/xorg/driver/xf86-video-intel References: boo#901506 Signed-off-by: Egbert Eich <e...@suse.com> commit 6554cf0a69f04710b64f3488384fe5cb2748dc35 Author: Chris Wilson <ch...@chris-wilson.co.uk> Date: Mon Aug 11 12:22:17 2014 +0100 sna: Parse output options early during initialisation rearranged the monitor query to before the num_outputs increment. The result was that it choose the second output as the default and not the intended first. Bugzilla: https://bugs.gentoo.org/show_bug.cgi?id=522500 Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk> --- src/sna/sna_display.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sna/sna_display.c b/src/sna/sna_display.c index f136c20..f6cfc80 100644 --- a/src/sna/sna_display.c +++ b/src/sna/sna_display.c @@ -3751,7 +3751,7 @@ sna_output_add(struct sna *sna, unsigned id, unsigned serial) output->name = (char *)(output + 1); memcpy(output->name, name, len + 1); - output->use_screen_monitor = config->num_output != 1; + output->use_screen_monitor = config->num_output != 0; xf86OutputUseScreenMonitor(output, !output->use_screen_monitor); assert(output->options); ++++++ U_sna-Validate-framebuffer-tiling-before-creation.patch ++++++ From: Egbert Eich <e...@suse.de> Date: Wed Sep 24 08:18:32 2014 +0200 Subject: [PATCH]sna: Validate framebuffer tiling before creation Patch-mainline: to be upstreamed Git-commit: dbe6d105a60ff28419b549d439bbb29f50b28f08 Git-repo: git://anongit.freedesktop.org/git/xorg/driver/xf86-video-intel References: bnc#898169 Signed-off-by: Egbert Eich <e...@suse.com> In sna_pixmap_alloc_gpu() a different than the default tiling may be picked by a usage hint. Before passing the tiling to kgem_create_2d() fix it up by calling kgem_choose_tiling(). This avoids kgem_surface_size() not being able to find a surface size for the tiling value. Fixes regression from commit a10781b70f222f3997928fa979f6292617f79316 [2.99.913] Author: Chris Wilson <ch...@chris-wilson.co.uk> Date: Tue Jul 1 15:11:07 2014 +0100 sna: Enforce LinearFramebuffer option Signed-off-by: Egbert Eich <e...@freedesktop.org> --- src/sna/sna_accel.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/sna/sna_accel.c b/src/sna/sna_accel.c index ab43831..37e1e7c 100644 --- a/src/sna/sna_accel.c +++ b/src/sna/sna_accel.c @@ -1617,7 +1617,11 @@ static bool sna_pixmap_alloc_gpu(struct sna *sna, /* Use tiling by default, but disable per user request */ if (pixmap->usage_hint == SNA_CREATE_FB && (sna->flags & SNA_LINEAR_FB) == 0) { flags |= CREATE_SCANOUT; - tiling = -I915_TILING_X; + tiling = kgem_choose_tiling(&sna->kgem, + -I915_TILING_X, + pixmap->drawable.width, + pixmap->drawable.height, + pixmap->drawable.bitsPerPixel); } else tiling = sna_pixmap_default_tiling(sna, pixmap); ++++++ U_sna-Wrap-prefaulting-with-sigtrap.patch ++++++ From: Chris Wilson <ch...@chris-wilson.co.uk> Date: Thu Nov 6 12:40:20 2014 +0000 Subject: [PATCH]sna: Wrap prefaulting with sigtrap() Patch-mainline: Upstream Git-commit: 33764685cbcd01548b6a23c217c7b511c1639694 Git-repo: git://anongit.freedesktop.org/git/xorg/driver/xf86-video-intel References: boo#942158 Signed-off-by: Egbert Eich <e...@suse.com> Handle a potential SIGBUS due to kernel bugs when prefaulting the scanout surface. References: https://bugs.freedesktop.org/show_bug.cgi?id=85959 Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk> --- src/sna/kgem.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/sna/kgem.c b/src/sna/kgem.c index 7c572cc..9047437 100644 --- a/src/sna/kgem.c +++ b/src/sna/kgem.c @@ -4629,7 +4629,10 @@ static void __kgem_bo_make_scanout(struct kgem *kgem, if (bo->map__gtt == NULL) bo->map__gtt = __kgem_bo_map__gtt(kgem, bo); if (bo->map__gtt) { - *(uint32_t *)bo->map__gtt = 0; + if (sigtrap_get() == 0) { + *(uint32_t *)bo->map__gtt = 0; + sigtrap_put(); + } bo->domain = DOMAIN_GTT; } ++++++ U_sna-gen8-BLT-broken-when-address-has-bit-4-set.patch ++++++ >From 3a22b6f6d55a5b1e0a1c0a3d597996268ed439ad Mon Sep 17 00:00:00 2001 From: Mika Kuoppala <mika.kuopp...@linux.intel.com> Date: Wed, 19 Nov 2014 15:10:05 +0200 Subject: [PATCH] sna: gen8 BLT broken when address has bit 4 set Git-commit: 3a22b6f6d55a5b1e0a1c0a3d597996268ed439ad References: bnc#908326 With bit 4 set in address, the gen8 blitter fails and blits errorneously into the cacheline preceeding the destination and similarly when reading from the source, corrupting memory. V2: Update the destination base offset pattern as revealed by igt/tests/gem_userptr_blits/destination-bo-align V3: Check base address as well Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=79053 Cc: Chris Wilson <ch...@chris-wilson.co.uk> Tested-by: xunx.f...@intel.com [v2] Signed-off-by: Mika Kuoppala <mika.kuopp...@intel.com> Acked-by: Takashi Iwai <ti...@suse.de> --- src/sna/kgem.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) --- a/src/sna/kgem.h +++ b/src/sna/kgem.h @@ -548,6 +548,13 @@ static inline bool kgem_bo_blt_pitch_is_ struct kgem_bo *bo) { int pitch = bo->pitch; + + if (kgem->gen >= 0100 && pitch & (1 << 4)) { /* bdw is broken */ + DBG(("%s: can not blt to handle=%d, pitch=%d\n", + __FUNCTION__, bo->handle, pitch)); + return false; + } + if (kgem->gen >= 040 && bo->tiling) pitch /= 4; if (pitch > MAXSHORT) { @@ -570,6 +577,12 @@ static inline bool kgem_bo_can_blt(struc return false; } + if (kgem->gen >= 0100 && bo->proxy && bo->delta & (1 << 4)) { + DBG(("%s: can not blt to handle=%d, delta=%d\n", + __FUNCTION__, bo->handle, bo->delta)); + return false; + } + return kgem_bo_blt_pitch_is_ok(kgem, bo); } ++++++ U_sna-glyph-null-deref.patch ++++++ commit 07fe45b84bdf0d236a5bfdc433cc1a908e0c161b Author: Chris Wilson <ch...@chris-wilson.co.uk> Date: Tue Sep 9 08:12:45 2014 +0100 sna/glyphs: Prevent NULL vfunc deref with glyphs Requires running a PRIME setup with Intel loaded as the secondary GPU and attempting to execute an empty glyph string. Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk> diff --git a/src/sna/sna_glyphs.c b/src/sna/sna_glyphs.c index 94d702a..a4052c6 100644 --- a/src/sna/sna_glyphs.c +++ b/src/sna/sna_glyphs.c @@ -727,7 +727,7 @@ next_glyph: } list++; } - if (glyph_atlas) + if (glyph_atlas != NO_ATLAS) tmp.done(sna, &tmp); return true; ++++++ U_sna_dri3_mesa_relies_upon_implicit_fences.patch ++++++ >From 3320ac8c424320740db89fa10d0704d01a094b99 Mon Sep 17 00:00:00 2001 From: Chris Wilson <ch...@chris-wilson.co.uk> Date: Tue, 22 Jul 2014 08:38:42 +0100 Subject: [PATCH] sna/dri3: Mesa relies upon implicit fences Keith Packard says that he did not implement fences for mesa and so DRI3 with explicit fencing is currently broken by design. Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk> --- src/sna/sna_accel.c | 3 +++ src/sna/sna_dri3.c | 32 ++++++++++++++++++++++++++++---- 2 files changed, 31 insertions(+), 4 deletions(-) diff --git a/src/sna/sna_accel.c b/src/sna/sna_accel.c index 97bcdcf..29f633f 100644 --- a/src/sna/sna_accel.c +++ b/src/sna/sna_accel.c @@ -1408,6 +1408,9 @@ static void __sna_free_pixmap(struct sna *sna, __sna_pixmap_free_cpu(sna, priv); + if (priv->flush) + sna_accel_watch_flush(sna, -1); + if (priv->header) { assert(pixmap->drawable.pScreen == sna->scrn->pScreen); assert(!priv->shm); diff --git a/src/sna/sna_dri3.c b/src/sna/sna_dri3.c index 5d51b41..61ebbe4 100644 --- a/src/sna/sna_dri3.c +++ b/src/sna/sna_dri3.c @@ -39,6 +39,8 @@ #include <misyncshm.h> #include <misyncstr.h> +#define MESA_IS_BROKEN 1 + static DevPrivateKeyRec sna_sync_fence_private_key; struct sna_sync_fence { SyncFenceSetTriggeredFunc set_triggered; @@ -49,6 +51,22 @@ static inline struct sna_sync_fence *sna_sync_fence(SyncFence *fence) return dixLookupPrivate(&fence->devPrivates, &sna_sync_fence_private_key); } +static inline void mark_dri3_pixmap(struct sna *sna, struct sna_pixmap *priv, struct kgem_bo *bo) +{ + if (!MESA_IS_BROKEN) + return; + + bo->flush = true; + if (bo->exec) + sna->kgem.flush = 1; + if (bo == priv->gpu_bo) + priv->flush |= 3; + else + priv->shm = true; + + sna_accel_watch_flush(sna, 1); +} + static void sna_sync_flush(struct sna *sna, struct sna_pixmap *priv) { struct kgem_bo *bo = NULL; @@ -94,11 +112,13 @@ sna_sync_fence_set_triggered(SyncFence *fence) DBG(("%s: associated pixmap=%ld\n", __FUNCTION__, get_drawable_pixmap(draw)->drawable.serialNumber)); sna_sync_flush(sna, sna_pixmap(get_drawable_pixmap(draw))); } else { /* SyncFence are currently per-screen, sigh */ - struct sna_pixmap *priv; + if (!MESA_IS_BROKEN) { + struct sna_pixmap *priv; - DBG(("%s: flushing all DRI3 pixmaps\n", __FUNCTION__)); - list_for_each_entry(priv, &sna->dri3.pixmaps, cow_list) - sna_sync_flush(sna, priv); + DBG(("%s: flushing all DRI3 pixmaps\n", __FUNCTION__)); + list_for_each_entry(priv, &sna->dri3.pixmaps, cow_list) + sna_sync_flush(sna, priv); + } sna_accel_flush(sna); } @@ -278,6 +298,8 @@ static PixmapPtr sna_dri3_pixmap_from_fd(ScreenPtr screen, } list_add(&priv->cow_list, &sna->dri3.pixmaps); + mark_dri3_pixmap(sna, priv, bo); + return pixmap; free_pixmap: @@ -338,6 +360,7 @@ static int sna_dri3_fd_from_pixmap(ScreenPtr screen, priv->pinned |= PIN_DRI3; list_move(&priv->cow_list, &sna->dri3.pixmaps); + mark_dri3_pixmap(sna, priv, bo); *stride = (priv->pinned & PIN_DRI3) ? priv->gpu_bo->pitch : priv->cpu_bo->pitch; *size = kgem_bo_size((priv->pinned & PIN_DRI3) ? priv->gpu_bo : priv->cpu_bo); DBG(("%s: exporting %s pixmap=%ld, handle=%d, stride=%d, size=%d\n", -- 2.0.1 ++++++ U_uxa-Stub-out-intel_sync_init-fini-when-not-compiled-.patch ++++++ >From 067115a51b2646538a38ba603c688233c61e23cd Mon Sep 17 00:00:00 2001 From: Chris Wilson <ch...@chris-wilson.co.uk> Date: Mon, 15 Sep 2014 08:44:41 +0100 Subject: [PATCH] uxa: Stub out intel_sync_init|fini when not compiled in In order to fix the build without DRI3, we need to stub out the functions not compiled in, such as intel_sync_fini(). Reported-by: Sedat Dilek <sedat.di...@gmail.com> Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk> --- src/uxa/intel.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- a/src/uxa/intel.h +++ b/src/uxa/intel.h @@ -742,7 +742,7 @@ Bool intel_sync_init(ScreenPtr screen); void intel_sync_close(ScreenPtr screen); #else static inline Bool intel_sync_init(ScreenPtr screen) { return 0; } -void intel_sync_close(ScreenPtr screen); +static inline void intel_sync_close(ScreenPtr screen) { } #endif /* ++++++ baselibs.conf ++++++ xf86-video-intel -/usr/lib/xorg