summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLeo Liu <[email protected]>2017-03-23 10:29:47 -0400
committerLeo Liu <[email protected]>2017-03-23 14:43:42 -0400
commit54f9f34181ff3f6840472d16000e0092d12eb64d (patch)
tree91243ac3b47b70bf2fab641a9f47c2dc1eeec007
parent378025ca8b82c5f2068e202f1016450d97820d99 (diff)
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 <[email protected]> Reviewed-by: Christian König <[email protected]> Reviewed-by: Marek Olšák <[email protected]>
-rw-r--r--src/gallium/state_trackers/omx/vid_enc.c6
1 files changed, 4 insertions, 2 deletions
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;