Перенесён в оверлей стабильный x11-drivers/xf86-video-intel-2.99.917_p20161118

This commit is contained in:
Alexander Tratsevskiy 2017-02-07 08:40:16 +03:00
parent 329e6d0241
commit 62ac945857
14 changed files with 554 additions and 5 deletions

View file

@ -232,7 +232,7 @@
~x11-drivers/ati-drivers-15.12 amd64 x86 ~x11-drivers/ati-drivers-15.12 amd64 x86
~x11-drivers/xf86-video-amdgpu-1.2.0 amd64 x86 ~x11-drivers/xf86-video-amdgpu-1.2.0 amd64 x86
~x11-drivers/xf86-video-ati-7.8.0 amd64 x86 ~x11-drivers/xf86-video-ati-7.8.0 amd64 x86
~x11-drivers/xf86-video-intel-2.99.917_p20161206 amd64 ~x11-drivers/xf86-video-intel-2.99.917_20161118 amd64
~x11-drivers/xf86-video-nouveau-1.0.13 amd64 x86 ~x11-drivers/xf86-video-nouveau-1.0.13 amd64 x86
~x11-misc/cdm-0.6.1_pre20130419 amd64 x86 ~x11-misc/cdm-0.6.1_pre20130419 amd64 x86
~x11-misc/lightdm-gtk-greeter-2.0.1 amd64 x86 ~x11-misc/lightdm-gtk-greeter-2.0.1 amd64 x86

View file

@ -1,4 +0,0 @@
# Calculate name=ini.env format=samba ini(overlay-calculate.revision)<#-cut(0,-,#-cl_pass_file-#)-# rebuild=x11-drivers/xf86-video-intel
[overlay-calculate]
revision = #-cut(0,-,#-cl_pass_file-#)-#

View file

@ -0,0 +1 @@
DIST xf86-video-intel-2.99.917_p20161118.tar.xz 945020 SHA256 dbe2d60a5281a7350143cafb4b2286bfcec4a0b08a9dd677e8cfe6ae23e1edfd SHA512 8e72ec8554642e38ab22467e81ee17f1cceb67cd6364c16a2600504ca25f3ce210db0e8c69f9fe882fb26084f28ad9801749fbf0715f13e3bcbad9d781dd8959 WHIRLPOOL aa454ef66160b4c3a67339146cc586f6bcc546fe686eef527db90d1300b2528bdb23bf07e80d9daa955d94303b05955d153ca04a27b4e270b9a47a726d8ee8f6

View file

@ -0,0 +1,24 @@
From 524a45da56e2a052ffafa3887891caa90ba39f76 Mon Sep 17 00:00:00 2001
From: Chris Wilson <chris@chris-wilson.co.uk>
Date: Sat, 05 Oct 2013 17:42:24 +0000
Subject: compat-api: Map changes of DamageUnregister API in 1.14.99.2
Reported-by: Emmanuel Benisty <benisty.e@gmail.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
diff --git a/src/compat-api.h b/src/compat-api.h
index 8eb46ef..244a486 100644
--- a/src/compat-api.h
+++ b/src/compat-api.h
@@ -162,4 +162,8 @@ static inline void FreePixmap(PixmapPtr pixmap)
if ((d)->pScreen->SourceValidate) (d)->pScreen->SourceValidate(d, x, y, w, h)
#endif
+#if XORG_VERSION_CURRENT >= XORG_VERSION_NUMERIC(1,14,99,2,0)
+#define DamageUnregister(d, dd) DamageUnregister(dd)
+#endif
+
#endif
--
cgit v0.9.0.2-2-gbebe

View file

@ -0,0 +1,56 @@
From 8e44b1f5543f6d36c33c743f1ba2143514f8afbf Mon Sep 17 00:00:00 2001
From: Chris Wilson <chris@chris-wilson.co.uk>
Date: Thu, 24 Oct 2013 13:05:16 +0100
Subject: [PATCH] sna: Fix canonical mode name to correctly use asprintf
Whoops. Only the kernel sprintf() accepts NULL as a valid target string,
not libc's.
Reported-by: Jay Little <jaylittle@jaylittle.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=70835
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
src/sna/sna_display.c | 23 ++++++-----------------
1 file changed, 6 insertions(+), 17 deletions(-)
diff --git a/src/sna/sna_display.c b/src/sna/sna_display.c
index 7fcade6..3c39305 100644
--- a/src/sna/sna_display.c
+++ b/src/sna/sna_display.c
@@ -2095,27 +2095,16 @@ sna_output_panel_edid(xf86OutputPtr output, DisplayModePtr modes)
return xf86ModesAdd(modes, m);
}
-static int _canonical_mode_name(DisplayModePtr mode, char *str)
-{
- return sprintf(str, "%dx%d%s",
- mode->HDisplay, mode->VDisplay,
- mode->Flags & V_INTERLACE ? "i" : "");
-}
-
static char *canonical_mode_name(DisplayModePtr mode)
{
- char *str;
- int len;
-
- len = _canonical_mode_name(mode, NULL);
- if (len < 0)
- return NULL;
+ char *str;
- str = malloc(len + 1);
- if (str != NULL)
- _canonical_mode_name(mode, str);
+ if (asprintf(&str, "%dx%d%s",
+ mode->HDisplay, mode->VDisplay,
+ mode->Flags & V_INTERLACE ? "i" : "") < 0)
+ return NULL;
- return str;
+ return str;
}
static DisplayModePtr
--
1.8.4.2

View file

@ -0,0 +1,37 @@
From 6e9a8c5ae2883ca21d117ac672dd8a55b3429dc1 Mon Sep 17 00:00:00 2001
From: Chris Wilson <chris@chris-wilson.co.uk>
Date: Thu, 14 Nov 2013 16:14:09 +0000
Subject: sna: Add the missing braces around the conditional block
Fixes regression from
commit f3225fcb38686f3b9701725bf3a11ecf1c100c3f
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Tue Nov 5 08:38:22 2013 +0000
sna: Be move conservative with tiling sizes for older fenced gen
Reported-by: Jay Little <jaylittle@jaylittle.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=71605
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
diff --git a/src/sna/sna_blt.c b/src/sna/sna_blt.c
index 693fedc..63153b7 100644
--- a/src/sna/sna_blt.c
+++ b/src/sna/sna_blt.c
@@ -3285,12 +3285,13 @@ bool sna_blt_copy_boxes(struct sna *sna, uint8_t alu,
!kgem_check_reloc(kgem, 2) ||
!kgem_check_many_bo_fenced(kgem, dst_bo, src_bo, NULL)) {
kgem_submit(kgem);
- if (!kgem_check_many_bo_fenced(kgem, dst_bo, src_bo, NULL))
+ if (!kgem_check_many_bo_fenced(kgem, dst_bo, src_bo, NULL)) {
DBG(("%s: not enough room in aperture, fallback to tiling copy\n", __FUNCTION__));
return sna_tiling_blt_copy_boxes(sna, alu,
src_bo, src_dx, src_dy,
dst_bo, dst_dx, dst_dy,
bpp, box, nbox);
+ }
_kgem_set_mode(kgem, KGEM_BLT);
}
--
cgit v0.9.0.2-2-gbebe

View file

@ -0,0 +1,46 @@
From 4d8f78bc95f8dd36693f74365dbc3c442fbbf8a9 Mon Sep 17 00:00:00 2001
From: Chris Wilson <chris@chris-wilson.co.uk>
Date: Thu, 02 Jan 2014 15:01:38 +0000
Subject: sna/gen7+: Emit invalidate between operations if rendering to source/mask
Fixes regression from
commit c79cb18407273dc7798618390bd0b7d69b0f80d6 [2.99.907]
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Wed Nov 20 11:17:20 2013 +0000
sna/gen7: Try to reduce flushes between primitive continuations
Reported-by: Simon Munton <simon.j.munton@gmail.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=73208
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
diff --git a/src/sna/gen7_render.c b/src/sna/gen7_render.c
index 572e3e3..e45555b 100644
--- a/src/sna/gen7_render.c
+++ b/src/sna/gen7_render.c
@@ -1114,8 +1114,7 @@ gen7_emit_state(struct sna *sna,
need_stall = sna->render_state.gen7.surface_table != wm_binding_table;
- need_invalidate = need_stall &&
- (kgem_bo_is_dirty(op->src.bo) || kgem_bo_is_dirty(op->mask.bo));
+ need_invalidate = kgem_bo_is_dirty(op->src.bo) || kgem_bo_is_dirty(op->mask.bo);
if (ALWAYS_INVALIDATE)
need_invalidate = true;
diff --git a/src/sna/gen8_render.c b/src/sna/gen8_render.c
index a8b4ea8..309398d 100644
--- a/src/sna/gen8_render.c
+++ b/src/sna/gen8_render.c
@@ -1130,8 +1130,7 @@ gen8_emit_state(struct sna *sna,
need_stall = sna->render_state.gen8.surface_table != wm_binding_table;
- need_invalidate = need_stall &&
- (kgem_bo_is_dirty(op->src.bo) || kgem_bo_is_dirty(op->mask.bo));
+ need_invalidate = kgem_bo_is_dirty(op->src.bo) || kgem_bo_is_dirty(op->mask.bo);
if (ALWAYS_INVALIDATE)
need_invalidate = true;
--
cgit v0.9.0.2-2-gbebe

View file

@ -0,0 +1,102 @@
From 3310ee89c1f1a663de5f5b12b8125809a213996f Mon Sep 17 00:00:00 2001
From: Chris Wilson <chris@chris-wilson.co.uk>
Date: Sat, 05 Apr 2014 11:18:31 +0000
Subject: sna: Avoid discarding damage when applying WHOLE hint to pixmap migration
Once again, we must be careful when promoting from a region to whole
pixmap migration that we do not discard required damage.
Fixes regression from
commit 27ac9f574f65cbd535751c925e9b2e2d7c8a6b3a [2.99.911]
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Thu Feb 27 08:33:52 2014 +0000
sna: Avoid promoting region-to-whole migration and discarding damage
Reported-by: gedgon@gmail.com
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=77063
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
diff --git a/src/sna/sna_accel.c b/src/sna/sna_accel.c
index 0116d54..71ba34d 100644
--- a/src/sna/sna_accel.c
+++ b/src/sna/sna_accel.c
@@ -2500,7 +2500,10 @@ sna_drawable_move_region_to_cpu(DrawablePtr drawable,
flags |= MOVE_INPLACE_HINT;
}
- if (flags & MOVE_WHOLE_HINT && priv->gpu_damage == NULL)
+ if ((flags & (MOVE_WHOLE_HINT | MOVE_READ)) == (MOVE_WHOLE_HINT | MOVE_READ))
+ return _sna_pixmap_move_to_cpu(pixmap, flags);
+
+ if (flags & MOVE_WHOLE_HINT && priv->gpu_damage == NULL && priv->cpu_damage == NULL)
return _sna_pixmap_move_to_cpu(pixmap, flags);
if (priv->gpu_damage == NULL &&
@@ -2527,22 +2530,18 @@ sna_drawable_move_region_to_cpu(DrawablePtr drawable,
return _sna_pixmap_move_to_cpu(pixmap, flags);
}
- if ((flags & MOVE_READ) == 0 &&
- priv->gpu_damage &&
- region_subsumes_damage(region, priv->gpu_damage)) {
- DBG(("%s: region [(%d, %d), (%d, %d)] subsumes damage [(%d,%d), (%d, %d)]\n",
+ if (flags & MOVE_WHOLE_HINT) {
+ DBG(("%s: region (%d, %d), (%d, %d) marked with WHOLE hint, pixmap %dx%d\n",
__FUNCTION__,
region->extents.x1,
region->extents.y1,
region->extents.x2,
region->extents.y2,
- priv->gpu_damage->extents.x1,
- priv->gpu_damage->extents.y1,
- priv->gpu_damage->extents.x2,
- priv->gpu_damage->extents.y2));
+ pixmap->drawable.width,
+ pixmap->drawable.height));
if (dx | dy)
RegionTranslate(region, -dx, -dy);
- return _sna_pixmap_move_to_cpu(pixmap, flags);
+ return _sna_pixmap_move_to_cpu(pixmap, flags | MOVE_READ);
}
if (priv->move_to_gpu && !priv->move_to_gpu(sna, priv, MOVE_READ)) {
@@ -4471,17 +4470,19 @@ try_upload_tiled_x(PixmapPtr pixmap, RegionRec *region,
if (wedged(sna))
return false;
- DBG(("%s: bo? %d, can map? %d\n", __FUNCTION__,
- priv->gpu_bo != NULL,
- priv->gpu_bo ? kgem_bo_can_map__cpu(&sna->kgem, priv->gpu_bo, true) : 0));
-
replaces = region->data == NULL &&
w >= pixmap->drawable.width &&
h >= pixmap->drawable.height;
+ DBG(("%s: bo? %d, can map? %d, replaces? %d\n", __FUNCTION__,
+ priv->gpu_bo != NULL,
+ priv->gpu_bo ? kgem_bo_can_map__cpu(&sna->kgem, priv->gpu_bo, true) : 0,
+ replaces));
+
if (priv->gpu_bo && (replaces || priv->gpu_bo->proxy)) {
DBG(("%s: discarding cached upload proxy\n", __FUNCTION__));
sna_pixmap_free_gpu(sna, priv);
+ replaces = true; /* Mark it all GPU damaged afterwards */
}
assert(priv->gpu_bo == NULL || priv->gpu_bo->proxy == NULL);
@@ -4616,8 +4617,11 @@ sna_put_zpixmap_blt(DrawablePtr drawable, GCPtr gc, RegionPtr region,
return true;
hint = MOVE_WRITE;
- if (w == pixmap->drawable.width && h*stride > 4096)
+ if (w == pixmap->drawable.width && (h+1)*stride > 65536) {
+ DBG(("%s: large upload (%d bytes), marking WHOLE_HINT\n",
+ __FUNCTION__, h*stride));
hint |= MOVE_WHOLE_HINT;
+ }
if (!sna_drawable_move_region_to_cpu(&pixmap->drawable, region, hint))
return false;
--
cgit v0.9.0.2-2-gbebe

View file

@ -0,0 +1,22 @@
--- configure.old 2014-06-18 08:36:47.151142539 +0200
+++ configure 2014-06-18 09:05:13.568360179 +0200
@@ -20769,7 +20769,7 @@
DRI3_LIBS=$pkg_cv_DRI3_LIBS
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
- DRI3=$DRI
+ DRI3=no
fi
fi
if test "x$DRI3" != "xno"; then
@@ -20850,10 +20850,6 @@
$as_echo "#define HAVE_DRI3 1" >>confdefs.h
dri_msg="$dri_msg DRI3"
-else
- if test "x$DRI" = "xyes" -a "x$KMS" = "xyes"; then
- as_fn_error $? "DRI3 requested but prerequisites not found" "$LINENO" 5
- fi
fi
for ac_header in X11/extensions/dpmsconst.h

View file

@ -0,0 +1,27 @@
https://bugs.gentoo.org/575970
https://lists.freedesktop.org/archives/intel-gfx/2016-December/113685.html
From 7cb250a3ce966dc0c96d167669922b0667160d1e Mon Sep 17 00:00:00 2001
From: Mike Gilbert <floppym@gentoo.org>
Date: Wed, 13 Apr 2016 21:35:37 -0400
Subject: [PATCH] tools/backlight_helper: #include "config.h"
---
tools/backlight_helper.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/tools/backlight_helper.c b/tools/backlight_helper.c
index a00f0d6bd8a2..aadb8fac92ba 100644
--- a/tools/backlight_helper.c
+++ b/tools/backlight_helper.c
@@ -1,3 +1,7 @@
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
#include <stdio.h>
#include <string.h>
#include <stdarg.h>
--
2.11.0.rc2

View file

@ -0,0 +1,65 @@
From 7fe2b2948652443ff43d907855bd7a051d54d309 Mon Sep 17 00:00:00 2001
From: Chris Wilson <chris@chris-wilson.co.uk>
Date: Thu, 19 Mar 2015 23:14:17 +0000
Subject: sna: Protect against ABI breakage in recent versions of libdrm
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
diff --git a/src/sna/kgem.c b/src/sna/kgem.c
index 11f0828..6f16cba 100644
--- a/src/sna/kgem.c
+++ b/src/sna/kgem.c
@@ -182,6 +182,15 @@ struct local_i915_gem_caching {
#define LOCAL_IOCTL_I915_GEM_SET_CACHING DRM_IOW(DRM_COMMAND_BASE + LOCAL_I915_GEM_SET_CACHING, struct local_i915_gem_caching)
#define LOCAL_IOCTL_I915_GEM_GET_CACHING DRM_IOW(DRM_COMMAND_BASE + LOCAL_I915_GEM_GET_CACHING, struct local_i915_gem_caching)
+struct local_i915_gem_mmap {
+ uint32_t handle;
+ uint32_t pad;
+ uint64_t offset;
+ uint64_t size;
+ uint64_t addr_ptr;
+};
+#define LOCAL_IOCTL_I915_GEM_MMAP DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_MMAP, struct local_i915_gem_mmap)
+
struct local_i915_gem_mmap2 {
uint32_t handle;
uint32_t pad;
@@ -514,15 +523,15 @@ retry_wc:
static void *__kgem_bo_map__cpu(struct kgem *kgem, struct kgem_bo *bo)
{
- struct drm_i915_gem_mmap mmap_arg;
+ struct local_i915_gem_mmap arg;
int err;
retry:
- VG_CLEAR(mmap_arg);
- mmap_arg.handle = bo->handle;
- mmap_arg.offset = 0;
- mmap_arg.size = bytes(bo);
- if ((err = do_ioctl(kgem->fd, DRM_IOCTL_I915_GEM_MMAP, &mmap_arg))) {
+ VG_CLEAR(arg);
+ arg.handle = bo->handle;
+ arg.offset = 0;
+ arg.size = bytes(bo);
+ if ((err = do_ioctl(kgem->fd, LOCAL_IOCTL_I915_GEM_MMAP, &arg))) {
assert(err != EINVAL);
if (__kgem_throttle_retire(kgem, 0))
@@ -536,10 +545,10 @@ retry:
return NULL;
}
- VG(VALGRIND_MAKE_MEM_DEFINED(mmap_arg.addr_ptr, bytes(bo)));
+ VG(VALGRIND_MAKE_MEM_DEFINED(arg.addr_ptr, bytes(bo)));
DBG(("%s: caching CPU vma for %d\n", __FUNCTION__, bo->handle));
- return bo->map__cpu = (void *)(uintptr_t)mmap_arg.addr_ptr;
+ return bo->map__cpu = (void *)(uintptr_t)arg.addr_ptr;
}
static int gem_write(int fd, uint32_t handle,
--
cgit v0.10.2

View file

@ -0,0 +1,57 @@
From 12af8a575d1518d40416f83195049157c3a062a5 Mon Sep 17 00:00:00 2001
From: Chris Wilson <chris@chris-wilson.co.uk>
Date: Tue, 24 Feb 2015 15:25:40 +0000
Subject: sna: udev integration depends on fstat and sys/stat.h
src/sna/sna_driver.c: In function 'sna_handle_uevents':
src/sna/sna_driver.c:759:2: error: implicit declaration of function 'fstat' [-Werror=implicit-function-declaration]
Also take the opportunity to include udev support in the configure
summary.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
diff --git a/configure.ac b/configure.ac
index 7476e2b..de3a4b3 100644
--- a/configure.ac
+++ b/configure.ac
@@ -197,11 +197,15 @@ AC_ARG_ENABLE(udev,
if test "x$UDEV" != "xno"; then
PKG_CHECK_MODULES(UDEV, [libudev], [udev="yes"], [udev="no"])
+ AC_CHECK_HEADERS([sys/stat.h], [], [udev="no"])
if test "x$UDEV" = "xyes" -a "x$udev" != "xyes"; then
AC_MSG_ERROR([udev support requested but not found (libudev)])
fi
if test "x$udev" = "xyes"; then
AC_DEFINE(HAVE_UDEV,1,[Enable udev-based monitor hotplug detection])
+ udev_msg=" yes"
+ else
+ udev_msg=" no"
fi
fi
@@ -911,6 +915,7 @@ echo " Support for Kernel Mode Setting? $KMS"
echo " Support for legacy User Mode Setting (for i810)? $UMS"
echo " Support for Direct Rendering Infrastructure:$dri_msg"
echo " Support for Xv motion compensation (XvMC and libXvMC):$xvmc_msg"
+echo " Support for display hotplug notifications (udev):$udev_msg"
echo " Build additional tools and utilities?$tools_msg"
if test -n "$xp_msg"; then
echo " Experimental support:$xp_msg"
diff --git a/src/sna/sna_driver.c b/src/sna/sna_driver.c
index 8c0d0b5..bc20ef0 100644
--- a/src/sna/sna_driver.c
+++ b/src/sna/sna_driver.c
@@ -740,6 +740,8 @@ sna_wakeup_handler(WAKEUPHANDLER_ARGS_DECL)
}
#if HAVE_UDEV
+#include <sys/stat.h>
+
static void
sna_handle_uevents(int fd, void *closure)
{
--
cgit v0.10.2

View file

@ -0,0 +1,27 @@
From 369ceec0e4910ba2c37736a59c55c0d6c26433bf Mon Sep 17 00:00:00 2001
From: Chris Wilson <chris@chris-wilson.co.uk>
Date: Tue, 24 Feb 2015 15:25:40 +0000
Subject: uxa: udev integration depends on fstat and sys/stat.h
src/uxa/intel_driver.c: In function 'I830HandleUEvents':
src/uxa/intel_driver.c:738:14: error: storage size of 's' isn't known
src/uxa/intel_driver.c:746:2: error: implicit declaration of function 'fstat' [-Werror=implicit-function-declaration]
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
diff --git a/src/uxa/intel_driver.c b/src/uxa/intel_driver.c
index c554124..6e64b8c 100644
--- a/src/uxa/intel_driver.c
+++ b/src/uxa/intel_driver.c
@@ -728,6 +728,8 @@ intel_flush_callback(CallbackListPtr *list,
}
#if HAVE_UDEV
+#include <sys/stat.h>
+
static void
I830HandleUEvents(int fd, void *closure)
{
--
cgit v0.10.2

View file

@ -0,0 +1,89 @@
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=5
XORG_DRI=dri
XORG_EAUTORECONF=yes
inherit linux-info xorg-2 flag-o-matic
DESCRIPTION="X.Org driver for Intel cards"
KEYWORDS="~amd64 ~x86 ~amd64-fbsd -x86-fbsd"
IUSE="debug dri3 +sna +udev uxa xvmc"
COMMIT_ID="bde946054efbc1c7ae1483b84c3b4fa3c2c7e2ec"
SRC_URI="https://cgit.freedesktop.org/xorg/driver/xf86-video-intel/snapshot/${COMMIT_ID}.tar.xz -> ${P}.tar.xz"
S=${WORKDIR}/${COMMIT_ID}
REQUIRED_USE="
|| ( sna uxa )
"
RDEPEND="
x11-libs/libXext
x11-libs/libXfixes
x11-libs/libXScrnSaver
>=x11-libs/pixman-0.27.1
>=x11-libs/libdrm-2.4.29[video_cards_intel]
dri3? (
>=x11-base/xorg-server-1.18
)
sna? (
>=x11-base/xorg-server-1.10
)
udev? (
virtual/udev
)
xvmc? (
x11-libs/libXvMC
>=x11-libs/libxcb-1.5
x11-libs/xcb-util
)
"
DEPEND="${RDEPEND}
>=x11-proto/dri2proto-2.6
x11-proto/dri3proto
x11-proto/presentproto
x11-proto/resourceproto"
PATCHES=(
"${FILESDIR}"/${PN}-2.99.917-config-header.patch #575970
)
src_configure() {
replace-flags -Os -O2
XORG_CONFIGURE_OPTIONS=(
$(use_enable debug)
$(use_enable dri)
$(use_enable dri dri3)
$(usex dri3 "--with-default-dri=3")
$(use_enable sna)
$(use_enable udev)
$(use_enable uxa)
$(use_enable xvmc)
)
xorg-2_src_configure
}
pkg_postinst() {
if linux_config_exists && \
kernel_is -lt 4 3 && ! linux_chkconfig_present DRM_I915_KMS; then
echo
ewarn "This driver requires KMS support in your kernel"
ewarn " Device Drivers --->"
ewarn " Graphics support --->"
ewarn " Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) --->"
ewarn " <*> Intel 830M, 845G, 852GM, 855GM, 865G (i915 driver) --->"
ewarn " i915 driver"
ewarn " [*] Enable modesetting on intel by default"
echo
fi
if use dri3; then
ewarn "There are reports of crashes when using DRI3, we recommend"
ewarn "to be careful when enabling this option. Check the following"
ewarn "bugs for discussion and a workaround patch for libdrm:"
ewarn "https://bugs.freedesktop.org/show_bug.cgi?id=71759"
ewarn "https://bugs.gentoo.org/show_bug.cgi?id=582544"
fi
}