libva-intel-driver: Fix timestamping issue for VC1/WMV VAAPI decode under BSW CHV

Include the upstreamed patch to fix the timestamping issue that observed during the WMV/VC1 VAAPI decode under GStreamer on BSW CHV.

The patch was imported from FreeDesktop VAAPI git server
(git://anongit.freedesktop.org/vaapi/intel-driver) as of commit id
4307780b648245aba4ff338dcfe0172dec2e12e9

Signed-off-by: Azril Ahmad <mohd.azril.ahmad@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
This commit is contained in:
Azril Ahmad 2015-10-23 11:48:40 +08:00 committed by Saul Wold
parent 1a3cd03c91
commit 9bdc2090ca
2 changed files with 57 additions and 1 deletions

View File

@ -0,0 +1,54 @@
Upstream-Status: Backport (from git://anongit.freedesktop.org/vaapi/intel-driver with commit id 4307780b648245aba4ff338dcfe0172dec2e12e9)
Signed-off-by: Azril Ahmad <mohd.azril.ahmad@intel.com>
From dff0614a65693bdfbcf8a46ccfb52f036647bb93 Mon Sep 17 00:00:00 2001
From: "Xiang, Haihao" <haihao.xiang@intel.com>
Date: Tue, 27 Jan 2015 11:09:02 +0800
Subject: [PATCH 06/10] Use VMask instead of DMask in 3DSTATE_PS on GEN8+
Mesa uses VMask instead of DMask in 3DSTATE_PS.
"Initialize the execution mask with VMask. Otherwise, derivatives are
incorrect for subspans where some of the pixels are unlit. We believe
the bit just didn't take effect in previous generations."
To avoid potential issue, use VMask in libva too.
Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
Reviewed-by: Sean V Kelley <sean.v.kelley@intel.com>
---
src/gen8_render.c | 3 ++-
src/gen9_render.c | 3 ++-
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/gen8_render.c b/src/gen8_render.c
index 8a8012d..65a66c5 100644
--- a/src/gen8_render.c
+++ b/src/gen8_render.c
@@ -1447,7 +1447,8 @@ gen8_emit_wm_state(VADriverContextP ctx, int kernel)
/* DW3. PS shader flag .Binding table cnt/sample cnt */
OUT_BATCH(batch,
(1 << GEN7_PS_SAMPLER_COUNT_SHIFT) |
- (5 << GEN7_PS_BINDING_TABLE_ENTRY_COUNT_SHIFT));
+ (5 << GEN7_PS_BINDING_TABLE_ENTRY_COUNT_SHIFT) |
+ GEN7_PS_VECTOR_MASK_ENABLE);
/* DW4-5. Scatch space */
OUT_BATCH(batch, 0); /* scratch space base offset */
OUT_BATCH(batch, 0);
diff --git a/src/gen9_render.c b/src/gen9_render.c
index da8950e..89935f2 100644
--- a/src/gen9_render.c
+++ b/src/gen9_render.c
@@ -1449,7 +1449,8 @@ gen9_emit_wm_state(VADriverContextP ctx, int kernel)
/* DW3. PS shader flag .Binding table cnt/sample cnt */
OUT_BATCH(batch,
(1 << GEN7_PS_SAMPLER_COUNT_SHIFT) |
- (5 << GEN7_PS_BINDING_TABLE_ENTRY_COUNT_SHIFT));
+ (5 << GEN7_PS_BINDING_TABLE_ENTRY_COUNT_SHIFT) |
+ GEN7_PS_VECTOR_MASK_ENABLE);
/* DW4-5. Scatch space */
OUT_BATCH(batch, 0); /* scratch space base offset */
OUT_BATCH(batch, 0);
--
2.1.0

View File

@ -14,7 +14,9 @@ COMPATIBLE_HOST = '(i.86|x86_64).*-linux'
DEPENDS = "libva libdrm" DEPENDS = "libva libdrm"
SRC_URI = "http://www.freedesktop.org/software/vaapi/releases/${BPN}/${BPN}-${PV}.tar.bz2" SRC_URI = "http://www.freedesktop.org/software/vaapi/releases/${BPN}/${BPN}-${PV}.tar.bz2"
SRC_URI += "file://wayland-include.patch" SRC_URI += "file://wayland-include.patch \
file://Use-VMask-instead-of-DMask-in-3DSTATE_PS-on-GEN8.patch \
"
SRC_URI[md5sum] = "16752f1584398265072129553b7907ce" SRC_URI[md5sum] = "16752f1584398265072129553b7907ce"
SRC_URI[sha256sum] = "d0b448193ab34b622cd14e4db8ca29991a4038b4eb459a8fbbcbd7db843da3dc" SRC_URI[sha256sum] = "d0b448193ab34b622cd14e4db8ca29991a4038b4eb459a8fbbcbd7db843da3dc"