All of lore.kernel.org
 help / color / mirror / Atom feed
* Update: UVD status on loongson 3a platform
@ 2013-09-05 14:14 Chen Jie
  2013-09-05 19:29 ` Jerome Glisse
  0 siblings, 1 reply; 6+ messages in thread
From: Chen Jie @ 2013-09-05 14:14 UTC (permalink / raw)
  To: dri-devel, mesa-dev
  Cc: 陈华才, 王锐,
	丁汨江

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?



-- Regards,

Chen Jie

^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2013-09-06  8:56 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-09-05 14:14 Update: UVD status on loongson 3a platform Chen Jie
2013-09-05 19:29 ` Jerome Glisse
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

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.