From: Leo Liu Date: Thu, 23 Mar 2017 14:29:47 +0000 (-0400) Subject: st/omx/enc: use PIPE_USAGE_STAGING for output buffer X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=54f9f34181ff3f6840472d16000e0092d12eb64d;p=mesa.git 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 Reviewed-by: Christian König Reviewed-by: Marek Olšák --- diff --git a/src/gallium/state_trackers/omx/vid_enc.c b/src/gallium/state_trackers/omx/vid_enc.c index b58063e6e65..5274f6403bd 100644 --- a/src/gallium/state_trackers/omx/vid_enc.c +++ b/src/gallium/state_trackers/omx/vid_enc.c @@ -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;