<html><head></head><body><div class="-x-evo-paragraph -x-evo-top-signature-spacer"><br></div><div>On Mon, 2016-07-25 at 16:53 +0800, Xiang, Haihao wrote:</div><blockquote type="cite"><pre>This fixes the remaining issues mentioned in <a href="https://bugs.freedesktop.org/show_bug.cgi?id=96703">https://bugs.freedesktop.org/show_bug.cgi?id=96703</a>
after applying commit 3699c14

On GEN75+, driver copies vme_context->vme_state_message to VME kernel curbe buffer and
VME kernel uses the data in curbe buffer to initialize VME message payload.
vme_context->vme_state_message is set up in intel_vme_update_mbmv_cost(), which doesn't
set all costs for used modes in VME kernels. The uninitialized mode cost will result in
difference in VME output. Thanks for Elaine's finding that the issue disappears after
initializing VME state message buffer with zeros.

Signed-off-by: Elaine Wang <<a href="mailto:elaine.wang@intel.com">elaine.wang@intel.com</a>>
Signed-off-by: Xiang, Haihao <<a href="haihao.xiang@intel.com>
">haihao.xiang@intel.com>
</a></pre></blockquote><div><br></div><div><br></div><div><div>Reviewed, tested.</div><div><br></div><div>Thanks applied.</div></div><div><br></div><blockquote type="cite"><pre>---
 src/gen6_mfc_common.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/src/gen6_mfc_common.c b/src/gen6_mfc_common.c
index 2f9f761..c3e4d80 100644
--- a/src/gen6_mfc_common.c
+++ b/src/gen6_mfc_common.c
@@ -790,6 +790,11 @@ void intel_vme_update_mbmv_cost(VADriverContextP ctx,
 
     assert(qp <= QP_MAX); 
     lambda = intel_lambda_qp(qp);
+
+    m_cost = lambda;
+    vme_state_message[MODE_CHROMA_INTRA] = intel_format_lutvalue(m_cost, 0x8f);
+    vme_state_message[MODE_REFID_COST] = intel_format_lutvalue(m_cost, 0x8f);
+
     if (slice_type == SLICE_TYPE_I) {
         vme_state_message[MODE_INTRA_16X16] = 0;
         m_cost = lambda * 4;
</pre></blockquote><div><br></div></body></html>