[meta-intel] [PATCH 3/3] libva-intel-driver: Update to 1.6.0

Lim Siew Hoon siew.hoon.lim at intel.com
Thu Jul 23 02:48:14 PDT 2015


Remove wayland-include.patch, code already upstream.
Add fix GPU hung issue patch, already upstream but caught it after 1.6.0.

Signed-off-by: Lim Siew Hoon <siew.hoon.lim at intel.com>
---
 ...croblock-pair-to-calculate-H264-decoding-.patch | 131 +++++++++++++++++++++
 .../libva/libva-intel-driver/wayland-include.patch |  30 -----
 .../libva/libva-intel-driver_1.5.0.bb              |  31 -----
 .../libva/libva-intel-driver_1.6.0.bb              |  32 +++++
 4 files changed, 163 insertions(+), 61 deletions(-)
 create mode 100755 common/recipes-multimedia/libva/libva-intel-driver/0001-H264-Use-macroblock-pair-to-calculate-H264-decoding-.patch
 delete mode 100644 common/recipes-multimedia/libva/libva-intel-driver/wayland-include.patch
 delete mode 100644 common/recipes-multimedia/libva/libva-intel-driver_1.5.0.bb
 create mode 100755 common/recipes-multimedia/libva/libva-intel-driver_1.6.0.bb

diff --git a/common/recipes-multimedia/libva/libva-intel-driver/0001-H264-Use-macroblock-pair-to-calculate-H264-decoding-.patch b/common/recipes-multimedia/libva/libva-intel-driver/0001-H264-Use-macroblock-pair-to-calculate-H264-decoding-.patch
new file mode 100755
index 0000000..d5a6e14
--- /dev/null
+++ b/common/recipes-multimedia/libva/libva-intel-driver/0001-H264-Use-macroblock-pair-to-calculate-H264-decoding-.patch
@@ -0,0 +1,131 @@
+From 536ab400ac4b8d3c21233b174a540ce725a9fd3a Mon Sep 17 00:00:00 2001
+From: Zhao Yakui <yakui.zhao at intel.com>
+Date: Tue, 7 Jul 2015 01:45:47 +0800
+Subject: [PATCH] H264: Use macroblock pair to calculate H264 decoding
+ parameter under MBAFF flag
+
+Based on the H264 spec the macroblock pair should be used to calculate
+the corresponding parameters under MBAFF.(mb-adaptive frame-field).
+Otherwise the wrong parameter is sent to GPU HW.
+
+Fix the GPU hang issue in https://bugs.freedesktop.org/show_bug.cgi?id=91207
+
+Tested-by: Lim, Siew Hoon <siew.hoon.lim at intel.com>
+Signed-off-by: Zhao Yakui <yakui.zhao at intel.com>
+---
+ src/gen6_mfd.c  | 10 ++++++++--
+ src/gen75_mfd.c | 10 ++++++++--
+ src/gen7_mfd.c  | 10 ++++++++--
+ src/gen8_mfd.c  |  9 +++++++--
+ 4 files changed, 31 insertions(+), 8 deletions(-)
+
+diff --git a/src/gen6_mfd.c b/src/gen6_mfd.c
+index 95a8e92..2dd05a1 100755
+--- a/src/gen6_mfd.c
++++ b/src/gen6_mfd.c
+@@ -551,14 +551,20 @@ gen6_mfd_avc_slice_state(VADriverContextP ctx,
+         }
+     }
+ 
+-    first_mb_in_slice = slice_param->first_mb_in_slice << mbaff_picture;
++    first_mb_in_slice = slice_param->first_mb_in_slice;
+     slice_hor_pos = first_mb_in_slice % width_in_mbs; 
+     slice_ver_pos = first_mb_in_slice / width_in_mbs;
+ 
++    if (mbaff_picture)
++        slice_ver_pos = slice_ver_pos << 1;
++
+     if (next_slice_param) {
+-        first_mb_in_next_slice = next_slice_param->first_mb_in_slice << mbaff_picture;
++        first_mb_in_next_slice = next_slice_param->first_mb_in_slice;
+         next_slice_hor_pos = first_mb_in_next_slice % width_in_mbs; 
+         next_slice_ver_pos = first_mb_in_next_slice / width_in_mbs;
++
++        if (mbaff_picture)
++            next_slice_ver_pos = next_slice_ver_pos << 1;
+     } else {
+         next_slice_hor_pos = 0;
+         next_slice_ver_pos = height_in_mbs;
+diff --git a/src/gen75_mfd.c b/src/gen75_mfd.c
+index 5171bd9..11cde1f 100644
+--- a/src/gen75_mfd.c
++++ b/src/gen75_mfd.c
+@@ -862,14 +862,20 @@ gen75_mfd_avc_slice_state(VADriverContextP ctx,
+         num_ref_idx_l1 = slice_param->num_ref_idx_l1_active_minus1 + 1;
+     }
+ 
+-    first_mb_in_slice = slice_param->first_mb_in_slice << mbaff_picture;
++    first_mb_in_slice = slice_param->first_mb_in_slice;
+     slice_hor_pos = first_mb_in_slice % width_in_mbs; 
+     slice_ver_pos = first_mb_in_slice / width_in_mbs;
+ 
++    if (mbaff_picture)
++        slice_ver_pos = slice_ver_pos << 1;
++
+     if (next_slice_param) {
+-        first_mb_in_next_slice = next_slice_param->first_mb_in_slice << mbaff_picture;
++        first_mb_in_next_slice = next_slice_param->first_mb_in_slice;
+         next_slice_hor_pos = first_mb_in_next_slice % width_in_mbs; 
+         next_slice_ver_pos = first_mb_in_next_slice / width_in_mbs;
++
++        if (mbaff_picture)
++            next_slice_ver_pos = next_slice_ver_pos << 1;
+     } else {
+         next_slice_hor_pos = 0;
+         next_slice_ver_pos = height_in_mbs / (1 + !!pic_param->pic_fields.bits.field_pic_flag);
+diff --git a/src/gen7_mfd.c b/src/gen7_mfd.c
+index 40a6db4..1d04ed4 100755
+--- a/src/gen7_mfd.c
++++ b/src/gen7_mfd.c
+@@ -556,14 +556,20 @@ gen7_mfd_avc_slice_state(VADriverContextP ctx,
+         num_ref_idx_l1 = slice_param->num_ref_idx_l1_active_minus1 + 1;
+     }
+ 
+-    first_mb_in_slice = slice_param->first_mb_in_slice << mbaff_picture;
++    first_mb_in_slice = slice_param->first_mb_in_slice;
+     slice_hor_pos = first_mb_in_slice % width_in_mbs; 
+     slice_ver_pos = first_mb_in_slice / width_in_mbs;
+ 
++    if (mbaff_picture)
++        slice_ver_pos = slice_ver_pos << 1;
++
+     if (next_slice_param) {
+-        first_mb_in_next_slice = next_slice_param->first_mb_in_slice << mbaff_picture;
++        first_mb_in_next_slice = next_slice_param->first_mb_in_slice;
+         next_slice_hor_pos = first_mb_in_next_slice % width_in_mbs; 
+         next_slice_ver_pos = first_mb_in_next_slice / width_in_mbs;
++
++        if (mbaff_picture)
++            next_slice_ver_pos = next_slice_ver_pos << 1;
+     } else {
+         next_slice_hor_pos = 0;
+         next_slice_ver_pos = height_in_mbs / (1 + !!pic_param->pic_fields.bits.field_pic_flag);
+diff --git a/src/gen8_mfd.c b/src/gen8_mfd.c
+index c15184d..c55cb4e 100644
+--- a/src/gen8_mfd.c
++++ b/src/gen8_mfd.c
+@@ -625,14 +625,19 @@ gen8_mfd_avc_slice_state(VADriverContextP ctx,
+         num_ref_idx_l1 = slice_param->num_ref_idx_l1_active_minus1 + 1;
+     }
+ 
+-    first_mb_in_slice = slice_param->first_mb_in_slice << mbaff_picture;
++    first_mb_in_slice = slice_param->first_mb_in_slice;
+     slice_hor_pos = first_mb_in_slice % width_in_mbs; 
+     slice_ver_pos = first_mb_in_slice / width_in_mbs;
+ 
++    if (mbaff_picture)
++        slice_ver_pos = slice_ver_pos << 1;
+     if (next_slice_param) {
+-        first_mb_in_next_slice = next_slice_param->first_mb_in_slice << mbaff_picture;
++        first_mb_in_next_slice = next_slice_param->first_mb_in_slice;
+         next_slice_hor_pos = first_mb_in_next_slice % width_in_mbs; 
+         next_slice_ver_pos = first_mb_in_next_slice / width_in_mbs;
++
++        if (mbaff_picture)
++            next_slice_ver_pos = next_slice_ver_pos << 1;
+     } else {
+         next_slice_hor_pos = 0;
+         next_slice_ver_pos = height_in_mbs / (1 + !!pic_param->pic_fields.bits.field_pic_flag);
+-- 
+2.1.0
+
diff --git a/common/recipes-multimedia/libva/libva-intel-driver/wayland-include.patch b/common/recipes-multimedia/libva/libva-intel-driver/wayland-include.patch
deleted file mode 100644
index 4a46773..0000000
--- a/common/recipes-multimedia/libva/libva-intel-driver/wayland-include.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-Fix a compile error when building without X11.
-
-Upstream-Status: Submitted
-Signed-off-by: Ross Burton <ross.burton at intel.com>
-
-From a5c44e48dc73b2892f161bd21591c7ee0a3b7842 Mon Sep 17 00:00:00 2001
-From: Ross Burton <ross.burton at intel.com>
-Date: Mon, 21 Oct 2013 16:25:18 +0100
-Subject: [PATCH] i965_output_wayland: add missing include
-
-Signed-off-by: Ross Burton <ross.burton at intel.com>
----
- src/i965_output_wayland.h |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/src/i965_output_wayland.h b/src/i965_output_wayland.h
-index 61ca39f..acea8d9 100644
---- a/src/i965_output_wayland.h
-+++ b/src/i965_output_wayland.h
-@@ -26,6 +26,7 @@
- #define I965_OUTPUT_WAYLAND_H
- 
- #include <stdbool.h>
-+#include <va/va_backend.h>
- 
- bool
- i965_output_wayland_init(VADriverContextP ctx);
--- 
-1.7.10.4
-
diff --git a/common/recipes-multimedia/libva/libva-intel-driver_1.5.0.bb b/common/recipes-multimedia/libva/libva-intel-driver_1.5.0.bb
deleted file mode 100644
index ba09c2c..0000000
--- a/common/recipes-multimedia/libva/libva-intel-driver_1.5.0.bb
+++ /dev/null
@@ -1,31 +0,0 @@
-SUMMARY = "VA driver for Intel G45 & HD Graphics family"
-DESCRIPTION = "libva-driver-intel is the VA-API implementation \
-for Intel G45 chipsets and Intel HD Graphics for Intel Core \
-processor family."
-
-HOMEPAGE = "http://www.freedesktop.org/wiki/Software/vaapi"
-BUGTRACKER = "https://bugs.freedesktop.org"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=2e48940f94acb0af582e5ef03537800f"
-
-COMPATIBLE_HOST = '(i.86|x86_64).*-linux'
-
-DEPENDS = "libva libdrm"
-
-SRC_URI = "http://www.freedesktop.org/software/vaapi/releases/${BPN}/${BPN}-${PV}.tar.bz2"
-SRC_URI += "file://wayland-include.patch"
-
-SRC_URI[md5sum] = "16752f1584398265072129553b7907ce"
-SRC_URI[sha256sum] = "d0b448193ab34b622cd14e4db8ca29991a4038b4eb459a8fbbcbd7db843da3dc"
-
-inherit autotools pkgconfig
-
-PACKAGECONFIG ??= "${@base_contains("DISTRO_FEATURES", "x11", "x11", "", d)} \
-                   ${@base_contains("DISTRO_FEATURES", "opengl wayland", "wayland", "", d)}"
-PACKAGECONFIG[x11] = "--enable-x11,--disable-x11"
-PACKAGECONFIG[wayland] = "--enable-wayland,--disable-wayland,wayland virtual/egl"
-
-FILES_${PN} += "${libdir}/dri/*.so"
-FILES_${PN}-dev += "${libdir}/dri/*.la"
-FILES_${PN}-dbg += "${libdir}/dri/.debug"
diff --git a/common/recipes-multimedia/libva/libva-intel-driver_1.6.0.bb b/common/recipes-multimedia/libva/libva-intel-driver_1.6.0.bb
new file mode 100755
index 0000000..30032bb
--- /dev/null
+++ b/common/recipes-multimedia/libva/libva-intel-driver_1.6.0.bb
@@ -0,0 +1,32 @@
+SUMMARY = "VA driver for Intel G45 & HD Graphics family"
+DESCRIPTION = "libva-driver-intel is the VA-API implementation \
+for Intel G45 chipsets and Intel HD Graphics for Intel Core \
+processor family."
+
+HOMEPAGE = "http://www.freedesktop.org/wiki/Software/vaapi"
+BUGTRACKER = "https://bugs.freedesktop.org"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=2e48940f94acb0af582e5ef03537800f"
+
+COMPATIBLE_HOST = '(i.86|x86_64).*-linux'
+
+DEPENDS = "libva libdrm"
+
+SRC_URI = "http://www.freedesktop.org/software/vaapi/releases/${BPN}/${BPN}-${PV}.tar.bz2 \
+           file://0001-H264-Use-macroblock-pair-to-calculate-H264-decoding-.patch \
+          "
+
+SRC_URI[md5sum] = "d7678f7c66cbb135cced82ee2af6d8e8"
+SRC_URI[sha256sum] = "9876afe4610c01a8ee5ba9348266515fce4dd031139d580ad97984d06afa08d4"
+
+inherit autotools pkgconfig
+
+PACKAGECONFIG ??= "${@base_contains("DISTRO_FEATURES", "x11", "x11", "", d)} \
+                   ${@base_contains("DISTRO_FEATURES", "opengl wayland", "wayland", "", d)}"
+PACKAGECONFIG[x11] = "--enable-x11,--disable-x11"
+PACKAGECONFIG[wayland] = "--enable-wayland,--disable-wayland,wayland virtual/egl"
+
+FILES_${PN} += "${libdir}/dri/*.so"
+FILES_${PN}-dev += "${libdir}/dri/*.la"
+FILES_${PN}-dbg += "${libdir}/dri/.debug"
-- 
2.1.0



More information about the meta-intel mailing list