OSDN Git Service

vdenc: Always use the 1st VCS ring
authorXiang, Haihao <haihao.xiang@intel.com>
Fri, 28 Oct 2016 05:32:39 +0000 (13:32 +0800)
committerXiang, Haihao <haihao.xiang@intel.com>
Mon, 31 Oct 2016 02:00:08 +0000 (10:00 +0800)
VDEnc/HuC only works with the 1st VCS ring, however SKL GT3+ has 2 VCS rings.
To avoid executing the corresponding batch buffer from the 2nd VCS ring in i915, we
have to specify the 1st ring in the driver.

SKL GT1/GT2 has only one VCS ring, so specifying the 1st ring in the driver has no
any impact to GT1/GT2

v2: Use the right bug URL

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=97872
Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
Reviewed-by: Sean V Kelley <seanvk@posteo.de>
(cherry picked from commit 63b98a529522385254c0f50dfb8e566679017c89)

src/gen9_vdenc.c

index 46da334..2bc15b7 100644 (file)
@@ -3567,7 +3567,8 @@ gen9_vdenc_avc_encode_picture(VADriverContextP ctx,
         vdenc_context->is_first_pass = (vdenc_context->current_pass == 0);
         vdenc_context->is_last_pass = (vdenc_context->current_pass == (vdenc_context->num_passes - 1));
 
-        intel_batchbuffer_start_atomic_bcs(batch, 0x1000);
+        intel_batchbuffer_start_atomic_bcs_override(batch, 0x1000, BSD_RING0);
+
         intel_batchbuffer_emit_mi_flush(batch);
 
         if (vdenc_context->brc_enabled) {