[Libva] [LIBVA-INTEL-DRIVER PATCH 1/5] H264 Encoding:Free aux_batchbuffer to configure access domain correctly for PAK_OBJ command buffer
Zhao Yakui
yakui.zhao at intel.com
Tue Jan 17 00:40:16 UTC 2017
The access domain is not configured correctly for PAK_OBJ command buffer.
And it causes that the buffer content is not synchronized correctly.
At the same time the 64-byte is aligned for the boundary between
CPU and GPU access instead of 16-byte.
Signed-off-by: Zhao Yakui <yakui.zhao at intel.com>
---
src/gen8_mfc.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/src/gen8_mfc.c b/src/gen8_mfc.c
index 8e68c7c..7efe66e 100644
--- a/src/gen8_mfc.c
+++ b/src/gen8_mfc.c
@@ -1562,7 +1562,7 @@ gen8_mfc_avc_batchbuffer_slice(VADriverContextP ctx,
intel_avc_slice_insert_packed_data(ctx, encode_state, encoder_context, slice_index, slice_batch);
- intel_batchbuffer_align(slice_batch, 16); /* aligned by an Oword */
+ intel_batchbuffer_align(slice_batch, 64); /* aligned by an Cache-line */
head_offset = intel_batchbuffer_used_size(slice_batch);
slice_batch->ptr += pSliceParameter->num_macroblocks * AVC_PAK_LEN_IN_BYTE;
@@ -1576,7 +1576,7 @@ gen8_mfc_avc_batchbuffer_slice(VADriverContextP ctx,
/* Aligned for tail */
- intel_batchbuffer_align(slice_batch, 16); /* aligned by an Oword */
+ intel_batchbuffer_align(slice_batch, 64); /* aligned by Cache-line */
if (last_slice) {
mfc_context->insert_object(ctx,
encoder_context,
@@ -1637,6 +1637,9 @@ gen8_mfc_avc_batchbuffer_pipeline(VADriverContextP ctx,
OUT_BATCH(batch, CMD_MEDIA_STATE_FLUSH);
OUT_BATCH(batch, 0);
ADVANCE_BATCH(batch);
+
+ intel_batchbuffer_free(slice_batch);
+ mfc_context->aux_batchbuffer = NULL;
}
intel_batchbuffer_end_atomic(batch);
--
1.9.1
More information about the Libva
mailing list