From 62ac9458575d1cb7085fc32926cdf2c4cad8826c Mon Sep 17 00:00:00 2001 From: Alexander Tratsevskiy Date: Tue, 7 Feb 2017 08:40:16 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B5=D0=BD=D0=B5=D1=81?= =?UTF-8?q?=D1=91=D0=BD=20=D0=B2=20=D0=BE=D0=B2=D0=B5=D1=80=D0=BB=D0=B5?= =?UTF-8?q?=D0=B9=20=D1=81=D1=82=D0=B0=D0=B1=D0=B8=D0=BB=D1=8C=D0=BD=D1=8B?= =?UTF-8?q?=D0=B9=20x11-drivers/xf86-video-intel-2.99.917=5Fp20161118?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- profiles/base/package.keywords/default | 2 +- .../revision/2017/20170206-fix_DPMS | 4 - x11-drivers/xf86-video-intel/Manifest | 1 + ...ndle-updates-to-DamageUnregister-API.patch | 24 +++++ .../xf86-video-intel-2.99.905-fix-randr.patch | 56 ++++++++++ ...86-video-intel-2.99.906-server-crash.patch | 37 +++++++ ...86-video-intel-2.99.907-invalidation.patch | 46 ++++++++ ...-intel-2.99.911-sna-pixmap-migration.patch | 102 ++++++++++++++++++ ...86-video-intel-2.99.912-disable-dri3.patch | 22 ++++ ...6-video-intel-2.99.917-config-header.patch | 27 +++++ ...tel-2.99.917-libdrm-kernel-4_0-crash.patch | 65 +++++++++++ ...-video-intel-2.99.917-sna-udev-fstat.patch | 57 ++++++++++ ...-video-intel-2.99.917-uxa-udev-fstat.patch | 27 +++++ ...xf86-video-intel-2.99.917_p20161118.ebuild | 89 +++++++++++++++ 14 files changed, 554 insertions(+), 5 deletions(-) delete mode 100644 profiles/templates/3.5/6_ac_update_sync/revision/2017/20170206-fix_DPMS create mode 100644 x11-drivers/xf86-video-intel/Manifest create mode 100644 x11-drivers/xf86-video-intel/files/xf86-video-intel-2.21.15-handle-updates-to-DamageUnregister-API.patch create mode 100644 x11-drivers/xf86-video-intel/files/xf86-video-intel-2.99.905-fix-randr.patch create mode 100644 x11-drivers/xf86-video-intel/files/xf86-video-intel-2.99.906-server-crash.patch create mode 100644 x11-drivers/xf86-video-intel/files/xf86-video-intel-2.99.907-invalidation.patch create mode 100644 x11-drivers/xf86-video-intel/files/xf86-video-intel-2.99.911-sna-pixmap-migration.patch create mode 100644 x11-drivers/xf86-video-intel/files/xf86-video-intel-2.99.912-disable-dri3.patch create mode 100644 x11-drivers/xf86-video-intel/files/xf86-video-intel-2.99.917-config-header.patch create mode 100644 x11-drivers/xf86-video-intel/files/xf86-video-intel-2.99.917-libdrm-kernel-4_0-crash.patch create mode 100644 x11-drivers/xf86-video-intel/files/xf86-video-intel-2.99.917-sna-udev-fstat.patch create mode 100644 x11-drivers/xf86-video-intel/files/xf86-video-intel-2.99.917-uxa-udev-fstat.patch create mode 100644 x11-drivers/xf86-video-intel/xf86-video-intel-2.99.917_p20161118.ebuild diff --git a/profiles/base/package.keywords/default b/profiles/base/package.keywords/default index 5c5aa8c38..0faf4e216 100644 --- a/profiles/base/package.keywords/default +++ b/profiles/base/package.keywords/default @@ -232,7 +232,7 @@ ~x11-drivers/ati-drivers-15.12 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-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-misc/cdm-0.6.1_pre20130419 amd64 x86 ~x11-misc/lightdm-gtk-greeter-2.0.1 amd64 x86 diff --git a/profiles/templates/3.5/6_ac_update_sync/revision/2017/20170206-fix_DPMS b/profiles/templates/3.5/6_ac_update_sync/revision/2017/20170206-fix_DPMS deleted file mode 100644 index c840b0af3..000000000 --- a/profiles/templates/3.5/6_ac_update_sync/revision/2017/20170206-fix_DPMS +++ /dev/null @@ -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-#)-# diff --git a/x11-drivers/xf86-video-intel/Manifest b/x11-drivers/xf86-video-intel/Manifest new file mode 100644 index 000000000..662cef82b --- /dev/null +++ b/x11-drivers/xf86-video-intel/Manifest @@ -0,0 +1 @@ +DIST xf86-video-intel-2.99.917_p20161118.tar.xz 945020 SHA256 dbe2d60a5281a7350143cafb4b2286bfcec4a0b08a9dd677e8cfe6ae23e1edfd SHA512 8e72ec8554642e38ab22467e81ee17f1cceb67cd6364c16a2600504ca25f3ce210db0e8c69f9fe882fb26084f28ad9801749fbf0715f13e3bcbad9d781dd8959 WHIRLPOOL aa454ef66160b4c3a67339146cc586f6bcc546fe686eef527db90d1300b2528bdb23bf07e80d9daa955d94303b05955d153ca04a27b4e270b9a47a726d8ee8f6 diff --git a/x11-drivers/xf86-video-intel/files/xf86-video-intel-2.21.15-handle-updates-to-DamageUnregister-API.patch b/x11-drivers/xf86-video-intel/files/xf86-video-intel-2.21.15-handle-updates-to-DamageUnregister-API.patch new file mode 100644 index 000000000..1dc79baea --- /dev/null +++ b/x11-drivers/xf86-video-intel/files/xf86-video-intel-2.21.15-handle-updates-to-DamageUnregister-API.patch @@ -0,0 +1,24 @@ +From 524a45da56e2a052ffafa3887891caa90ba39f76 Mon Sep 17 00:00:00 2001 +From: Chris Wilson +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 +Signed-off-by: Chris Wilson +--- +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 + diff --git a/x11-drivers/xf86-video-intel/files/xf86-video-intel-2.99.905-fix-randr.patch b/x11-drivers/xf86-video-intel/files/xf86-video-intel-2.99.905-fix-randr.patch new file mode 100644 index 000000000..fc5c97ef3 --- /dev/null +++ b/x11-drivers/xf86-video-intel/files/xf86-video-intel-2.99.905-fix-randr.patch @@ -0,0 +1,56 @@ +From 8e44b1f5543f6d36c33c743f1ba2143514f8afbf Mon Sep 17 00:00:00 2001 +From: Chris Wilson +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 +Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=70835 +Signed-off-by: Chris Wilson +--- + 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 + diff --git a/x11-drivers/xf86-video-intel/files/xf86-video-intel-2.99.906-server-crash.patch b/x11-drivers/xf86-video-intel/files/xf86-video-intel-2.99.906-server-crash.patch new file mode 100644 index 000000000..00c44b51e --- /dev/null +++ b/x11-drivers/xf86-video-intel/files/xf86-video-intel-2.99.906-server-crash.patch @@ -0,0 +1,37 @@ +From 6e9a8c5ae2883ca21d117ac672dd8a55b3429dc1 Mon Sep 17 00:00:00 2001 +From: Chris Wilson +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 +Date: Tue Nov 5 08:38:22 2013 +0000 + + sna: Be move conservative with tiling sizes for older fenced gen + +Reported-by: Jay Little +Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=71605 +Signed-off-by: Chris Wilson +--- +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 diff --git a/x11-drivers/xf86-video-intel/files/xf86-video-intel-2.99.907-invalidation.patch b/x11-drivers/xf86-video-intel/files/xf86-video-intel-2.99.907-invalidation.patch new file mode 100644 index 000000000..e78d5bf33 --- /dev/null +++ b/x11-drivers/xf86-video-intel/files/xf86-video-intel-2.99.907-invalidation.patch @@ -0,0 +1,46 @@ +From 4d8f78bc95f8dd36693f74365dbc3c442fbbf8a9 Mon Sep 17 00:00:00 2001 +From: Chris Wilson +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 +Date: Wed Nov 20 11:17:20 2013 +0000 + + sna/gen7: Try to reduce flushes between primitive continuations + +Reported-by: Simon Munton +Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=73208 +Signed-off-by: Chris Wilson +--- +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 diff --git a/x11-drivers/xf86-video-intel/files/xf86-video-intel-2.99.911-sna-pixmap-migration.patch b/x11-drivers/xf86-video-intel/files/xf86-video-intel-2.99.911-sna-pixmap-migration.patch new file mode 100644 index 000000000..a69e0a213 --- /dev/null +++ b/x11-drivers/xf86-video-intel/files/xf86-video-intel-2.99.911-sna-pixmap-migration.patch @@ -0,0 +1,102 @@ +From 3310ee89c1f1a663de5f5b12b8125809a213996f Mon Sep 17 00:00:00 2001 +From: Chris Wilson +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 +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 +--- +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 diff --git a/x11-drivers/xf86-video-intel/files/xf86-video-intel-2.99.912-disable-dri3.patch b/x11-drivers/xf86-video-intel/files/xf86-video-intel-2.99.912-disable-dri3.patch new file mode 100644 index 000000000..97780f8af --- /dev/null +++ b/x11-drivers/xf86-video-intel/files/xf86-video-intel-2.99.912-disable-dri3.patch @@ -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 diff --git a/x11-drivers/xf86-video-intel/files/xf86-video-intel-2.99.917-config-header.patch b/x11-drivers/xf86-video-intel/files/xf86-video-intel-2.99.917-config-header.patch new file mode 100644 index 000000000..cf4e7307d --- /dev/null +++ b/x11-drivers/xf86-video-intel/files/xf86-video-intel-2.99.917-config-header.patch @@ -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 +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 + #include + #include +-- +2.11.0.rc2 + diff --git a/x11-drivers/xf86-video-intel/files/xf86-video-intel-2.99.917-libdrm-kernel-4_0-crash.patch b/x11-drivers/xf86-video-intel/files/xf86-video-intel-2.99.917-libdrm-kernel-4_0-crash.patch new file mode 100644 index 000000000..ea3aa30ed --- /dev/null +++ b/x11-drivers/xf86-video-intel/files/xf86-video-intel-2.99.917-libdrm-kernel-4_0-crash.patch @@ -0,0 +1,65 @@ +From 7fe2b2948652443ff43d907855bd7a051d54d309 Mon Sep 17 00:00:00 2001 +From: Chris Wilson +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 + +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 + diff --git a/x11-drivers/xf86-video-intel/files/xf86-video-intel-2.99.917-sna-udev-fstat.patch b/x11-drivers/xf86-video-intel/files/xf86-video-intel-2.99.917-sna-udev-fstat.patch new file mode 100644 index 000000000..7e276ac87 --- /dev/null +++ b/x11-drivers/xf86-video-intel/files/xf86-video-intel-2.99.917-sna-udev-fstat.patch @@ -0,0 +1,57 @@ +From 12af8a575d1518d40416f83195049157c3a062a5 Mon Sep 17 00:00:00 2001 +From: Chris Wilson +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 + +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 ++ + static void + sna_handle_uevents(int fd, void *closure) + { +-- +cgit v0.10.2 + diff --git a/x11-drivers/xf86-video-intel/files/xf86-video-intel-2.99.917-uxa-udev-fstat.patch b/x11-drivers/xf86-video-intel/files/xf86-video-intel-2.99.917-uxa-udev-fstat.patch new file mode 100644 index 000000000..66793568d --- /dev/null +++ b/x11-drivers/xf86-video-intel/files/xf86-video-intel-2.99.917-uxa-udev-fstat.patch @@ -0,0 +1,27 @@ +From 369ceec0e4910ba2c37736a59c55c0d6c26433bf Mon Sep 17 00:00:00 2001 +From: Chris Wilson +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 + +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 ++ + static void + I830HandleUEvents(int fd, void *closure) + { +-- +cgit v0.10.2 + diff --git a/x11-drivers/xf86-video-intel/xf86-video-intel-2.99.917_p20161118.ebuild b/x11-drivers/xf86-video-intel/xf86-video-intel-2.99.917_p20161118.ebuild new file mode 100644 index 000000000..9f641901f --- /dev/null +++ b/x11-drivers/xf86-video-intel/xf86-video-intel-2.99.917_p20161118.ebuild @@ -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 +}