From 1c5f4f4e17f74d823d9e38c678e40e9f49e2c053 Mon Sep 17 00:00:00 2001 From: Leo Liu Date: Fri, 27 Apr 2018 08:32:41 -0400 Subject: st/omx/enc: fix blit setup for YUV LoadImage MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The blit here involves scaling since it's copying from I8 format to R8G8 format. Half of source will be filtered out with PIPE_TEX_FILTER_NEAREST instruction, it looks that GPU always uses the second half as source. Currently we use "1" as the start point of x for R, then causing 1 source pixel of U component shift to right. So "-1" should be the start point for U component. Cc: 18.0 18.1 Reviewed-by: Marek Olšák --- src/gallium/state_trackers/omx/vid_enc_common.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src/gallium/state_trackers') diff --git a/src/gallium/state_trackers/omx/vid_enc_common.c b/src/gallium/state_trackers/omx/vid_enc_common.c index 874dd3a1c82..2aa739da22a 100644 --- a/src/gallium/state_trackers/omx/vid_enc_common.c +++ b/src/gallium/state_trackers/omx/vid_enc_common.c @@ -353,7 +353,7 @@ OMX_ERRORTYPE enc_LoadImage_common(vid_enc_PrivateType * priv, OMX_VIDEO_PORTDEF blit.src.resource = inp->resource; blit.src.format = inp->resource->format; - blit.src.box.x = 0; + blit.src.box.x = -1; blit.src.box.y = def->nFrameHeight; blit.src.box.width = def->nFrameWidth; blit.src.box.height = def->nFrameHeight / 2 ; @@ -367,11 +367,11 @@ OMX_ERRORTYPE enc_LoadImage_common(vid_enc_PrivateType * priv, OMX_VIDEO_PORTDEF blit.dst.box.depth = 1; blit.filter = PIPE_TEX_FILTER_NEAREST; - blit.mask = PIPE_MASK_G; + blit.mask = PIPE_MASK_R; priv->s_pipe->blit(priv->s_pipe, &blit); - blit.src.box.x = 1; - blit.mask = PIPE_MASK_R; + blit.src.box.x = 0; + blit.mask = PIPE_MASK_G; priv->s_pipe->blit(priv->s_pipe, &blit); priv->s_pipe->flush(priv->s_pipe, NULL, 0); -- cgit v1.2.3