From: Jerome Glisse <j.glisse@gmail.com>
To: Chen Jie <chenj@lemote.com>
Cc: mesa-dev@lists.freedesktop.org, 丁汨江 <dingmj@lemote.com>,
王锐 <wangr@lemote.com>,
dri-devel@lists.freedesktop.org, 陈华才 <chenhc@lemote.com>
Subject: Re: Update: UVD status on loongson 3a platform
Date: Thu, 5 Sep 2013 15:29:52 -0400 [thread overview]
Message-ID: <20130905191704.GA3621@gmail.com> (raw)
In-Reply-To: <CAGXxSxX6wAbKA-K-vWFTrrUA0MwHk85dgTFgeKMomY-FnD+wWw@mail.gmail.com>
On Thu, Sep 05, 2013 at 10:14:32PM +0800, Chen Jie wrote:
> Hi all,
>
> This thread is about
> http://lists.freedesktop.org/archives/dri-devel/2013-April/037598.html.
>
> We recently find some interesting thing about UVD based playback on
> loongson 3a plaform, and also find a way to fix the problem.
>
> First, we find memcpy in [mesa]src/gallium/drivers/radeon/radeon_uvd.c
> caused the problem:
> * If memcpy is implemented though 16B or 8B load/store instructions,
> it will normally caused video mosaic. When insert a memcmp after the
> copying code in memcpy, it will report the src and dest are not equal.
> * If memcpy use 1B load/store instructions only, the memcmp after the
> copying code reports equal.
>
> Then we find the following changeset fixs out problem:
>
> diff --git a/src/gallium/drivers/radeon/radeon_uvd.c
> b/src/gallium/drivers/radeon/radeon_uvd.c
> index 2f98de2..f9599b6 100644
> --- a/src/gallium/drivers/radeon/radeon_uvd.c
> +++ b/src/gallium/drivers/radeon/radeon_uvd.c
> @@ -162,7 +162,7 @@ static bool create_buffer(struct ruvd_decoder *dec,
> unsigned size)
> {
> buffer->buf = dec->ws->buffer_create(dec->ws, size, 4096, false,
> - RADEON_DOMAIN_GTT | RADEON_DOMAIN_VRAM);
> + RADEON_DOMAIN_GTT);
> if (!buffer->buf)
> return false;
>
> The VRAM is mapped to an uncached area in out platform, so, my
> question is what could go wrong while using >4B load/store
> instructions in UVD workflow? Any idea?
>
How do you map the VRAM into user process mapping ? ie do you have
something like Intel PAT or something like MTRR or something else.
In other word, can you map into process address space a region of
io memory (GPU VRAM in this case) and mark it as uncached so that
none of the access to it goes through CPU cache.
Cheers,
Jerome
next prev parent reply other threads:[~2013-09-05 19:29 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-09-05 14:14 Update: UVD status on loongson 3a platform Chen Jie
2013-09-05 19:29 ` Jerome Glisse [this message]
2013-09-05 19:50 ` Jerome Glisse
2013-09-06 2:52 ` cee1
2013-09-06 8:56 ` Christian König
2013-09-06 3:19 ` cee1
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20130905191704.GA3621@gmail.com \
--to=j.glisse@gmail.com \
--cc=chenhc@lemote.com \
--cc=chenj@lemote.com \
--cc=dingmj@lemote.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=mesa-dev@lists.freedesktop.org \
--cc=wangr@lemote.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.