Reland "vp8 encoder: Workaround to force performance mode encode"
This reverts commit 6163118d54d98c0a63302986a00ab48da51765e0.
Reason for revert: b/141147405#comment50, VP8 performance regressed.
Original change's description:
> Revert "vp8 encoder: Workaround to force performance mode encode"
>
> This reverts commit 7e30d9073fa965d2e4b441e8365817d2ca7ccfb6.
>
> The original commit 7e30d was a driver level hack to trade-off between
> the quality and performance to save power.
> Now we have legit ways to handle the quality-speed/power tradeoff
> from the upper layer using the CL:
> https://chromium-review.googlesource.com/c/chromium/src/+/2544368
>
> BUG=b:141147405
> TEST=Encode a video sample with appr.tc and ensure there is no power
> consumption peek with or with out this patch.
>
> Change-Id: I4eb74435c05db56b91db89fdba89cb1901f0e368
> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/overlays/chromiumos-overlay/+/2577806
> Reviewed-by: Miguel Casas <mcasas@chromium.org>
> Reviewed-by: Hirokazu Honda <hiroh@chromium.org>
> Commit-Queue: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
> Tested-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
Bug: b:141147405
Change-Id: Ic2adf60690f23519ea9997f62441eedd25dcaa9c
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/overlays/chromiumos-overlay/+/2596787
Reviewed-by: Miguel Casas <mcasas@chromium.org>
Commit-Queue: Miguel Casas <mcasas@chromium.org>
Tested-by: Miguel Casas <mcasas@chromium.org>
diff --git a/x11-libs/libva-intel-driver/files/vp8-encoder-Workaround-to-force-perforamce-mode-enco.patch b/x11-libs/libva-intel-driver/files/vp8-encoder-Workaround-to-force-perforamce-mode-enco.patch
new file mode 100644
index 0000000..8837d45
--- /dev/null
+++ b/x11-libs/libva-intel-driver/files/vp8-encoder-Workaround-to-force-perforamce-mode-enco.patch
@@ -0,0 +1,52 @@
+From bd4264f2c9e14869011495202894449cbf9da6cc Mon Sep 17 00:00:00 2001
+From: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+Date: Fri, 13 Sep 2019 10:27:10 -0800
+Subject: [PATCH] vp8 encoder: Workaround to force perforamce mode encode
+
+This is a tradeoff between quality and performance to
+save power. Use quality-level two as the default
+which will disable a couple of high intensity operations.
+For eg: There won't be 16xMe layer in the hierarhical motion
+estimations which should save significant number of cycles.
+Also number of pak passes are now limited to 1.
+---
+ src/i965_encoder.c | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+diff --git a/src/i965_encoder.c b/src/i965_encoder.c
+index 7bf20ea..127b74b 100644
+--- a/src/i965_encoder.c
++++ b/src/i965_encoder.c
+@@ -841,6 +841,10 @@ intel_encoder_check_misc_parameter(VADriverContextP ctx,
+ VAEncMiscParameterBufferQualityLevel* param_quality_level = (VAEncMiscParameterBufferQualityLevel*)pMiscParam->data;
+ encoder_context->quality_level = param_quality_level->quality_level;
+
++ //workaround: Force performace mode encode for vp8
++ if (profile == VAProfileVP8Version0_3)
++ encoder_context->quality_level = ENCODER_LOW_QUALITY;
++
+ if (encoder_context->quality_level == 0) {
+ switch (profile) {
+ case VAProfileH264ConstrainedBaseline:
+@@ -858,6 +862,10 @@ intel_encoder_check_misc_parameter(VADriverContextP ctx,
+ encoder_context->quality_level = ENCODER_DEFAULT_QUALITY_HEVC;
+ break;
+
++ case VAProfileVP8Version0_3:
++ encoder_context->quality_level = ENCODER_LOW_QUALITY;
++ break;
++
+ default:
+ encoder_context->quality_level = ENCODER_DEFAULT_QUALITY;
+ break;
+@@ -1632,6 +1640,7 @@ intel_enc_hw_context_init(VADriverContextP ctx,
+ case VAProfileVP8Version0_3:
+ encoder_context->codec = CODEC_VP8;
+ encoder_context->quality_range = ENCODER_QUALITY_RANGE;
++ encoder_context->quality_level = ENCODER_LOW_QUALITY;
+
+ break;
+
+--
+2.20.1
+
diff --git a/x11-libs/libva-intel-driver/libva-intel-driver-2.3.0-r10.ebuild b/x11-libs/libva-intel-driver/libva-intel-driver-2.3.0-r9.ebuild
similarity index 100%
rename from x11-libs/libva-intel-driver/libva-intel-driver-2.3.0-r10.ebuild
rename to x11-libs/libva-intel-driver/libva-intel-driver-2.3.0-r9.ebuild
diff --git a/x11-libs/libva-intel-driver/libva-intel-driver-2.3.0.ebuild b/x11-libs/libva-intel-driver/libva-intel-driver-2.3.0.ebuild
index e14bd1a..e798ae3 100644
--- a/x11-libs/libva-intel-driver/libva-intel-driver-2.3.0.ebuild
+++ b/x11-libs/libva-intel-driver/libva-intel-driver-2.3.0.ebuild
@@ -53,6 +53,7 @@
epatch "${FILESDIR}"/UPSTREAM-update-avc-media-kernel-for-bdw-bsw.patch
epatch "${FILESDIR}"/UPSTREAM-Make-vaExportSurfaceHandle-work-for-IMC3.patch
epatch "${FILESDIR}"/encoder-vp8-Ensure-forced_lf_adjustment-update-in-me.patch
+ epatch "${FILESDIR}"/vp8-encoder-Workaround-to-force-perforamce-mode-enco.patch
epatch "${FILESDIR}"/gen9_vp9_encoder-Ensure-brc-reset-irrespective-of-th.patch
epatch "${FILESDIR}"/0001-Remove-blitter-usage-from-driver.patch
epatch "${FILESDIR}"/gen9_vp9_encoder-Relax-the-compressed-frames-minimum.patch