diff options
| author | Anuj Mittal <anuj.mittal@intel.com> | 2018-11-02 14:58:52 +0800 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2018-11-14 11:14:39 +0000 |
| commit | 621e043b8dad96d334f88cadebc5f2548fff333c (patch) | |
| tree | 5d2546b65036bb439564e54ef04f1b2c67f55f28 /meta/recipes-graphics | |
| parent | dc804276ef79bee3818deb1a6586ba65cc7b4a3a (diff) | |
| download | poky-621e043b8dad96d334f88cadebc5f2548fff333c.tar.gz | |
xf86-video-intel: update to latest
For changes, please see:
https://cgit.freedesktop.org/xorg/driver/xf86-video-intel/log/?qt=range&q=e4fe79cf0d9a05ee3f3a027148ef0aeb2b1b34e1...0932a6b37ba6d5c9e916a1cb6ab89c3205b81a0c
Enable sna by default and remove upstreamed patches.
Also include a patch from fedora to fix compile issues when using
qemux86 which doesn't enable sse2 leading to gcc refusing to
inline vertex_emit_2s in emit_vertex because they are defined as:
static __attribute__((always_inline)) void
vertex_emit_2s(struct sna *sna, int16_t x, int16_t y)
__attribute__((target("sse2,fpmath=sse"))) __attribute__((always_inline))
static void emit_vertex(/* omitted */)
leading to errors like:
| In file included from ../../../git/src/sna/gen4_vertex.c:34:
| ../../../git/src/sna/gen4_vertex.c: In function 'emit_vertex':
| ../../../git/src/sna/sna_render_inline.h:40:26: error: inlining failed in call to always_inline 'vertex_emit_2s': target specific option mismatch
| static force_inline void vertex_emit_2s(struct sna *sna, int16_t x, int16_t y)
| ^~~~~~~~~~~~~~
| ../../../git/src/sna/gen4_vertex.c:308:25: note: called from here
| #define OUT_VERTEX(x,y) vertex_emit_2s(sna, x,y) /* XXX assert(!too_large(x, y)); */
| ^~~~~~~~~~~~~~~~~~~~~~~~
| ../../../git/src/sna/gen4_vertex.c:360:2: note: in expansion of macro 'OUT_VERTEX'
| OUT_VERTEX(dstX, dstY);
| ^~~~~~~~~~
(From OE-Core rev: a181b36bf2357c5f7d5835df2f828ff1e0007dc6)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-graphics')
4 files changed, 59 insertions, 145 deletions
diff --git a/meta/recipes-graphics/xorg-driver/xf86-video-intel/0001-Add-Coffeelake-PCI-IDs-for-S-Skus.patch b/meta/recipes-graphics/xorg-driver/xf86-video-intel/0001-Add-Coffeelake-PCI-IDs-for-S-Skus.patch deleted file mode 100644 index 06ef10501a..0000000000 --- a/meta/recipes-graphics/xorg-driver/xf86-video-intel/0001-Add-Coffeelake-PCI-IDs-for-S-Skus.patch +++ /dev/null | |||
| @@ -1,116 +0,0 @@ | |||
| 1 | From 96d4e8e7b8a699f0ef77fa7b210d4de5f1c703d0 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Liwei Song <liwei.song@windriver.com> | ||
| 3 | Date: Wed, 22 Nov 2017 08:59:03 +0000 | ||
| 4 | Subject: [PATCH] Add Coffeelake PCI IDs for S Skus | ||
| 5 | |||
| 6 | Add the Coffeelake PCI IDs based on the following kernel patches: | ||
| 7 | |||
| 8 | commit b056f8f3d6b900e8afd19f312719160346d263b4 | ||
| 9 | Author: Anusha Srivatsa <anusha.srivatsa@intel.com> | ||
| 10 | Date: Thu Jun 8 16:41:05 2017 -0700 | ||
| 11 | |||
| 12 | drm/i915/cfl: Add Coffee Lake PCI IDs for S Skus. | ||
| 13 | |||
| 14 | Upstream-Status: Submitted [https://patchwork.kernel.org/patch/10139905] | ||
| 15 | |||
| 16 | Signed-off-by: Liwei Song <liwei.song@windriver.com> | ||
| 17 | --- | ||
| 18 | src/i915_pciids.h | 7 +++++++ | ||
| 19 | src/intel_module.c | 13 +++++++++++++ | ||
| 20 | src/sna/gen9_render.c | 12 ++++++++++++ | ||
| 21 | 3 files changed, 32 insertions(+) | ||
| 22 | |||
| 23 | diff --git a/src/i915_pciids.h b/src/i915_pciids.h | ||
| 24 | index 0370f830c541..11ccfa9c047a 100644 | ||
| 25 | --- a/src/i915_pciids.h | ||
| 26 | +++ b/src/i915_pciids.h | ||
| 27 | @@ -340,4 +340,11 @@ | ||
| 28 | INTEL_VGA_DEVICE(0x3184, info), \ | ||
| 29 | INTEL_VGA_DEVICE(0x3185, info) | ||
| 30 | |||
| 31 | +#define INTEL_CFL_S_IDS(info) \ | ||
| 32 | + INTEL_VGA_DEVICE(0x3E90, info), /* SRV GT1 */ \ | ||
| 33 | + INTEL_VGA_DEVICE(0x3E93, info), /* SRV GT1 */ \ | ||
| 34 | + INTEL_VGA_DEVICE(0x3E91, info), /* SRV GT2 */ \ | ||
| 35 | + INTEL_VGA_DEVICE(0x3E92, info), /* SRV GT2 */ \ | ||
| 36 | + INTEL_VGA_DEVICE(0x3E96, info) /* SRV GT2 */ | ||
| 37 | + | ||
| 38 | #endif /* _I915_PCIIDS_H */ | ||
| 39 | diff --git a/src/intel_module.c b/src/intel_module.c | ||
| 40 | index 6b04857e2853..4827a67255f0 100644 | ||
| 41 | --- a/src/intel_module.c | ||
| 42 | +++ b/src/intel_module.c | ||
| 43 | @@ -138,6 +138,10 @@ static const struct intel_device_info intel_geminilake_info = { | ||
| 44 | .gen = 0113, | ||
| 45 | }; | ||
| 46 | |||
| 47 | +static const struct intel_device_info intel_coffeelake_info = { | ||
| 48 | + .gen = 0114, | ||
| 49 | +}; | ||
| 50 | + | ||
| 51 | static const SymTabRec intel_chipsets[] = { | ||
| 52 | {PCI_CHIP_I810, "i810"}, | ||
| 53 | {PCI_CHIP_I810_DC100, "i810-dc100"}, | ||
| 54 | @@ -303,6 +307,13 @@ static const SymTabRec intel_chipsets[] = { | ||
| 55 | {0x5916, "HD Graphics 620"}, | ||
| 56 | {0x591E, "HD Graphics 615"}, | ||
| 57 | |||
| 58 | + /*Coffeelake*/ | ||
| 59 | + {0x3E90, "HD Graphics"}, | ||
| 60 | + {0x3E93, "HD Graphics"}, | ||
| 61 | + {0x3E91, "HD Graphics"}, | ||
| 62 | + {0x3E92, "HD Graphics"}, | ||
| 63 | + {0x3E96, "HD Graphics"}, | ||
| 64 | + | ||
| 65 | /* When adding new identifiers, also update: | ||
| 66 | * 1. intel_identify() | ||
| 67 | * 2. man/intel.man | ||
| 68 | @@ -368,6 +379,8 @@ static const struct pci_id_match intel_device_match[] = { | ||
| 69 | |||
| 70 | INTEL_GLK_IDS(&intel_geminilake_info), | ||
| 71 | |||
| 72 | + INTEL_CFL_S_IDS(&intel_coffeelake_info), | ||
| 73 | + | ||
| 74 | INTEL_VGA_DEVICE(PCI_MATCH_ANY, &intel_generic_info), | ||
| 75 | #endif | ||
| 76 | |||
| 77 | diff --git a/src/sna/gen9_render.c b/src/sna/gen9_render.c | ||
| 78 | index e5f12c723956..7f49052c5ec1 100644 | ||
| 79 | --- a/src/sna/gen9_render.c | ||
| 80 | +++ b/src/sna/gen9_render.c | ||
| 81 | @@ -245,6 +245,11 @@ static const struct gt_info glk_gt_info = { | ||
| 82 | .urb = { .max_vs_entries = 320 }, | ||
| 83 | }; | ||
| 84 | |||
| 85 | +static const struct gt_info cfl_gt_info = { | ||
| 86 | + .name = "Coffeelake (gen9)", | ||
| 87 | + .urb = { .max_vs_entries = 960 }, | ||
| 88 | +}; | ||
| 89 | + | ||
| 90 | static bool is_skl(struct sna *sna) | ||
| 91 | { | ||
| 92 | return sna->kgem.gen == 0110; | ||
| 93 | @@ -265,6 +270,11 @@ static bool is_glk(struct sna *sna) | ||
| 94 | return sna->kgem.gen == 0113; | ||
| 95 | } | ||
| 96 | |||
| 97 | +static bool is_cfl(struct sna *sna) | ||
| 98 | +{ | ||
| 99 | + return sna->kgem.gen == 0114; | ||
| 100 | +} | ||
| 101 | + | ||
| 102 | |||
| 103 | static inline bool too_large(int width, int height) | ||
| 104 | { | ||
| 105 | @@ -4040,6 +4050,8 @@ static bool gen9_render_setup(struct sna *sna) | ||
| 106 | state->info = &kbl_gt_info; | ||
| 107 | if (is_glk(sna)) | ||
| 108 | state->info = &glk_gt_info; | ||
| 109 | + if (is_cfl(sna)) | ||
| 110 | + state->info = &cfl_gt_info; | ||
| 111 | |||
| 112 | sna_static_stream_init(&general); | ||
| 113 | |||
| 114 | -- | ||
| 115 | 2.13.3 | ||
| 116 | |||
diff --git a/meta/recipes-graphics/xorg-driver/xf86-video-intel/01_Fix-build-on-i686.patch b/meta/recipes-graphics/xorg-driver/xf86-video-intel/01_Fix-build-on-i686.patch new file mode 100644 index 0000000000..52916f8b4a --- /dev/null +++ b/meta/recipes-graphics/xorg-driver/xf86-video-intel/01_Fix-build-on-i686.patch | |||
| @@ -0,0 +1,55 @@ | |||
| 1 | From a414d4e24461da1cb4cef8ee910bc57bab360ceb Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Adam Jackson <ajax@redhat.com> | ||
| 3 | Date: Tue, 6 Mar 2018 12:07:46 -0500 | ||
| 4 | Subject: [PATCH] Fix build on i686 | ||
| 5 | |||
| 6 | Presumably this only matters for i686 because amd64 implies sse2, but: | ||
| 7 | |||
| 8 | BUILDSTDERR: In file included from gen4_vertex.c:34: | ||
| 9 | BUILDSTDERR: gen4_vertex.c: In function 'emit_vertex': | ||
| 10 | BUILDSTDERR: sna_render_inline.h:40:26: error: inlining failed in call to always_inline 'vertex_emit_2s': target specific option mismatch | ||
| 11 | BUILDSTDERR: static force_inline void vertex_emit_2s(struct sna *sna, int16_t x, int16_t y) | ||
| 12 | BUILDSTDERR: ^~~~~~~~~~~~~~ | ||
| 13 | BUILDSTDERR: gen4_vertex.c:308:25: note: called from here | ||
| 14 | BUILDSTDERR: #define OUT_VERTEX(x,y) vertex_emit_2s(sna, x,y) /* XXX assert(!too_large(x, y)); */ | ||
| 15 | BUILDSTDERR: ^~~~~~~~~~~~~~~~~~~~~~~~ | ||
| 16 | BUILDSTDERR: gen4_vertex.c:360:2: note: in expansion of macro 'OUT_VERTEX' | ||
| 17 | BUILDSTDERR: OUT_VERTEX(dstX, dstY); | ||
| 18 | BUILDSTDERR: ^~~~~~~~~~ | ||
| 19 | |||
| 20 | The bug here appears to be that emit_vertex() is declared 'sse2' but | ||
| 21 | vertex_emit_2s is merely always_inline. gcc8 decides that since you said | ||
| 22 | always_inline you need to have explicitly cloned it for every | ||
| 23 | permutation of targets. Merely saying inline seems to do the job of | ||
| 24 | cloning vertex_emit_2s as much as necessary. | ||
| 25 | |||
| 26 | So to reiterate: if you say always-inline, it won't, but if you just say | ||
| 27 | maybe inline, it will. Thanks gcc, that's helpful. | ||
| 28 | |||
| 29 | - ajax | ||
| 30 | |||
| 31 | Patch taken from Fedora. | ||
| 32 | |||
| 33 | Upstream-Status: Pending | ||
| 34 | Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> | ||
| 35 | |||
| 36 | --- | ||
| 37 | src/sna/compiler.h | 2 +- | ||
| 38 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
| 39 | |||
| 40 | diff --git a/src/sna/compiler.h b/src/sna/compiler.h | ||
| 41 | index 3c176a16..bc447c7a 100644 | ||
| 42 | --- a/src/sna/compiler.h | ||
| 43 | +++ b/src/sna/compiler.h | ||
| 44 | @@ -32,7 +32,7 @@ | ||
| 45 | #define likely(expr) (__builtin_expect (!!(expr), 1)) | ||
| 46 | #define unlikely(expr) (__builtin_expect (!!(expr), 0)) | ||
| 47 | #define noinline __attribute__((noinline)) | ||
| 48 | -#define force_inline inline __attribute__((always_inline)) | ||
| 49 | +#define force_inline inline | ||
| 50 | #define fastcall __attribute__((regparm(3))) | ||
| 51 | #define must_check __attribute__((warn_unused_result)) | ||
| 52 | #define constant __attribute__((const)) | ||
| 53 | -- | ||
| 54 | 2.16.2 | ||
| 55 | |||
diff --git a/meta/recipes-graphics/xorg-driver/xf86-video-intel/glibc.patch b/meta/recipes-graphics/xorg-driver/xf86-video-intel/glibc.patch deleted file mode 100644 index ada9eb5e52..0000000000 --- a/meta/recipes-graphics/xorg-driver/xf86-video-intel/glibc.patch +++ /dev/null | |||
| @@ -1,25 +0,0 @@ | |||
| 1 | Add a missing include needed for glibc 2.28 to avoid: | ||
| 2 | |||
| 3 | | ../../git/tools/backlight_helper.c: In function 'main': | ||
| 4 | | ../../git/tools/backlight_helper.c:54:34: error: implicit declaration of function 'major' [-Werror=implicit-function-declaration] | ||
| 5 | | if (fd < 0 || fstat(fd, &st) || major(st.st_dev)) | ||
| 6 | | ^~~~~ | ||
| 7 | | ../../git/tools/backlight_helper.c:54:34: warning: nested extern declaration of 'major' [-Wnested-externs] | ||
| 8 | | cc1: some warnings being treated as errors | ||
| 9 | | Makefile:666: recipe for target 'backlight_helper.o' failed | ||
| 10 | |||
| 11 | Upstream-Status: Pending | ||
| 12 | RP 2018/8/12 | ||
| 13 | |||
| 14 | Index: git/tools/backlight_helper.c | ||
| 15 | =================================================================== | ||
| 16 | --- git.orig/tools/backlight_helper.c | ||
| 17 | +++ git/tools/backlight_helper.c | ||
| 18 | @@ -8,6 +8,7 @@ | ||
| 19 | |||
| 20 | #include <sys/types.h> | ||
| 21 | #include <sys/stat.h> | ||
| 22 | +#include <sys/sysmacros.h> | ||
| 23 | |||
| 24 | #if MAJOR_IN_MKDEV | ||
| 25 | #include <sys/mkdev.h> | ||
diff --git a/meta/recipes-graphics/xorg-driver/xf86-video-intel_git.bb b/meta/recipes-graphics/xorg-driver/xf86-video-intel_git.bb index 655fd4dc69..3d435e8b31 100644 --- a/meta/recipes-graphics/xorg-driver/xf86-video-intel_git.bb +++ b/meta/recipes-graphics/xorg-driver/xf86-video-intel_git.bb | |||
| @@ -9,20 +9,20 @@ Infrastructure (DRI)." | |||
| 9 | 9 | ||
| 10 | LIC_FILES_CHKSUM = "file://COPYING;md5=8730ad58d11c7bbad9a7066d69f7808e" | 10 | LIC_FILES_CHKSUM = "file://COPYING;md5=8730ad58d11c7bbad9a7066d69f7808e" |
| 11 | 11 | ||
| 12 | SRCREV = "e4fe79cf0d9a05ee3f3a027148ef0aeb2b1b34e1" | 12 | SRCREV = "0932a6b37ba6d5c9e916a1cb6ab89c3205b81a0c" |
| 13 | PV = "2.99.917+git${SRCPV}" | 13 | PV = "2.99.917+git${SRCPV}" |
| 14 | S = "${WORKDIR}/git" | 14 | S = "${WORKDIR}/git" |
| 15 | 15 | ||
| 16 | SRC_URI = "git://anongit.freedesktop.org/xorg/driver/xf86-video-intel \ | 16 | SRC_URI = "git://anongit.freedesktop.org/xorg/driver/xf86-video-intel \ |
| 17 | file://0001-Add-Coffeelake-PCI-IDs-for-S-Skus.patch \ | ||
| 18 | file://glibc.patch \ | ||
| 19 | " | 17 | " |
| 20 | 18 | ||
| 19 | SRC_URI_append_qemux86 = "file://01_Fix-build-on-i686.patch" | ||
| 20 | |||
| 21 | UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)" | 21 | UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)" |
| 22 | 22 | ||
| 23 | DEPENDS += "virtual/libx11 drm libpciaccess pixman" | 23 | DEPENDS += "virtual/libx11 drm libpciaccess pixman" |
| 24 | 24 | ||
| 25 | PACKAGECONFIG ??= "xvmc uxa udev ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'dri dri2 dri3', '', d)}" | 25 | PACKAGECONFIG ??= "sna xvmc uxa udev ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'dri dri2 dri3', '', d)}" |
| 26 | 26 | ||
| 27 | PACKAGECONFIG[dri] = "--enable-dri,--disable-dri" | 27 | PACKAGECONFIG[dri] = "--enable-dri,--disable-dri" |
| 28 | PACKAGECONFIG[dri1] = "--enable-dri1,--disable-dri1" | 28 | PACKAGECONFIG[dri1] = "--enable-dri1,--disable-dri1" |
