st/omx/enc: use PIPE_USAGE_STAGING for output buffer

Workaround an unknown bug with inside the transfer_map for certain
ASIC, also tested with un-affected ASICs, the performance actually
improved slightly.

Signed-off-by: Leo Liu <leo.liu@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
This commit is contained in:
Leo Liu 2017-03-23 10:29:47 -04:00
parent 378025ca8b
commit 54f9f34181

View file

@ -1092,8 +1092,10 @@ static void enc_HandleTask(omx_base_PortType *port, struct encode_task *task,
priv->s_pipe->flush(priv->s_pipe, NULL, 0);
/* -------------- allocate output buffer --------- */
task->bitstream = pipe_buffer_create(priv->s_pipe->screen, PIPE_BIND_VERTEX_BUFFER,
PIPE_USAGE_STREAM, size);
task->bitstream = pipe_buffer_create(priv->s_pipe->screen,
PIPE_BIND_VERTEX_BUFFER,
PIPE_USAGE_STAGING, /* map for read */
size);
picture.picture_type = picture_type;
picture.pic_order_cnt = task->pic_order_cnt;