Account Options

  1. Sign in
The old Google Groups will be going away soon, but your browser is incompatible with the new version.
Google Groups Home
« Groups Home
OMAP DRM when using YUV frames
There are currently too many topics in this group that display first. To make this topic appear first, remove this option from another topic.
There was an error processing your request. Please try again.
flag
  9 messages - Collapse all  -  Translate all to Translated (View all originals)
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
Andre Renaud  
View profile  
 More options Oct 9 2012, 6:12 pm
From: Andre Renaud <an...@bluewatersys.com>
Date: Wed, 10 Oct 2012 11:12:43 +1300
Local: Tues, Oct 9 2012 6:12 pm
Subject: OMAP DRM when using YUV frames
Hi,

I'm using libDRM on the OMAP platform, and using the alpha channel of
the ARGB plane to merge in a YUV plane. I'm doing the drmModePageFlip
(for the ARGB) and the drmModeSetPlane (for the YUV) immediately after
I've done a done a drmHandleEvent (with page_flip_handler etc...),
which I thought meant that the page flips should happen immediately
after the vsync, and thus not cause any tearing. However I do get
tearing on the YUV plane.

On a similar vein, every now and then I see the following messages
printed to the console:
[161879.239227] omapdss DISPC error: GO bit not down for channel 1
this corresponds to a brief flicker on the screen where the YUV frame
is replaced with garbage. On the next screen update, the garbage
disappears, so it is only present for 1/60th of a second. However it
is quite noticeable.

Does anyone know how either of these two issues can be mitigated?

Regards,
Andre


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Rob Clark  
View profile  
 More options Oct 9 2012, 7:13 pm
From: Rob Clark <robdcl...@gmail.com>
Date: Tue, 9 Oct 2012 18:13:49 -0500
Local: Tues, Oct 9 2012 7:13 pm
Subject: Re: [pandaboard] OMAP DRM when using YUV frames

On Tue, Oct 9, 2012 at 5:12 PM, Andre Renaud <an...@bluewatersys.com> wrote:
> Hi,

> I'm using libDRM on the OMAP platform, and using the alpha channel of
> the ARGB plane to merge in a YUV plane. I'm doing the drmModePageFlip
> (for the ARGB) and the drmModeSetPlane (for the YUV) immediately after
> I've done a done a drmHandleEvent (with page_flip_handler etc...),
> which I thought meant that the page flips should happen immediately
> after the vsync, and thus not cause any tearing. However I do get
> tearing on the YUV plane.

I'd guess the tearing is on the producer side (ie. what is writing
into the buffer).  The problem is that if you wait for the page-flip
event, then call drmModeSetPlane(), the scanout address for the
overlay is updated and GO bit set, but the previous frame is still on
screen until the *next* vblank.

The best thing you could do right now is call drmModeSetPlane()
immediately after or before drmModePageFlip().  And then wait for the
page-flip event to know when the overlay buffer can be given back to
the decoder.  This is a bit racey, but as long as you aren't getting
close to the vblank before flipping the fb and overlay layer, then it
should roughly work.

The better solution is the atomic-pageflip stuff that I'm working on,
which will let you tell the kernel to update fb and zero or more
overlay layers in a single ioctl to guarantee that they are all
swapped on the same vblank:

  https://github.com/robclark/kernel-omap4/commits/drm_nuclear

That is the good news.. the bad news is that it is all based on newer
"vanilla" upstream kernel.. I should have updated RFC patches on 3.6+
sometime this week, I'm shooting to get this merged for 3.8 merge
window since we are already into 3.7 merge window.  But this is on
upstream kernel missing gfx and ivahd stuff.. so for short term that
doesn't help you too much unless you want to do a bunch of backporting
or fwd porting..)

> On a similar vein, every now and then I see the following messages
> printed to the console:
> [161879.239227] omapdss DISPC error: GO bit not down for channel 1
> this corresponds to a brief flicker on the screen where the YUV frame
> is replaced with garbage. On the next screen update, the garbage
> disappears, so it is only present for 1/60th of a second. However it
> is quite noticeable.

yeah, current 3.4 based stuff is missing something like:

https://github.com/robclark/kernel-omap4/blob/87a66648760a5f2db0073cb...

I noticed that issue when working on the atomic-pageflip stuff..
although unfortunately the fix is lumped in w/ all the rest of the
atomic-pageflip stuff which makes it not so easy to cherry-pick.  I
think all you should need is the 'if (omap_crtc->irq.registered) goto
out' stuff.  If you have trouble backporting that, let me know and
I'll give a try, but might be a few days before I have time.

BR,
-R


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Andre Renaud  
View profile  
 More options Oct 9 2012, 10:22 pm
From: Andre Renaud <an...@bluewatersys.com>
Date: Wed, 10 Oct 2012 15:22:50 +1300
Local: Tues, Oct 9 2012 10:22 pm
Subject: Re: [pandaboard] OMAP DRM when using YUV frames
Hi Rob,

Thanks for that - adding in that snippet seems to have resolved the issue.

Regards,
Andre


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
leo.armesto.an...@gmail.com  
View profile  
 More options Feb 25, 5:53 am
From: leo.armesto.an...@gmail.com
Date: Mon, 25 Feb 2013 02:53:07 -0800 (PST)
Local: Mon, Feb 25 2013 5:53 am
Subject: Re: [pandaboard] OMAP DRM when using YUV frames

Can anyone clarify me some issues regarding with YUYV video rendering with
DRM?

I am testing omapDRM driver and dumping all info. The problem is that I am
calling the function drmModeGetPlane and it is returning that I have no
free planes (it returns 0 count) that can be connected to my CRTC. Why?

Regards,

El miércoles, 10 de octubre de 2012 04:22:55 UTC+2, Andre Renaud escribió:


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Rob Clark  
View profile  
 More options Feb 25, 9:49 am
From: Rob Clark <robdcl...@gmail.com>
Date: Mon, 25 Feb 2013 09:49:09 -0500
Local: Mon, Feb 25 2013 9:49 am
Subject: Re: [pandaboard] OMAP DRM when using YUV frames
You might want to try the modetest app in libdrm/test

http://cgit.freedesktop.org/mesa/drm/tree/tests/modetest

it is drmModeGetPlaneResources() that should return the # of overlays.

Anyways, if you could run modetest that should correctly dump all the
available resources.

BR,
-R


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
leo.armesto.an...@gmail.com  
View profile  
 More options Feb 25, 11:47 am
From: leo.armesto.an...@gmail.com
Date: Mon, 25 Feb 2013 08:47:29 -0800 (PST)
Local: Mon, Feb 25 2013 11:47 am
Subject: Re: [pandaboard] OMAP DRM when using YUV frames

That is exactly what I was refering to. I run the test and dump all
available resources. The problem is that no plane resources are found and
that is something that I did not expect. In theory I should have GFX, YUV1,
YUV2 and YUV3 corresponding to old framebuffer with omapfb, isn't?

Regards,

El lunes, 25 de febrero de 2013 15:49:09 UTC+1, rob escribió:


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
leo.armesto.an...@gmail.com  
View profile  
 More options Feb 25, 12:01 pm
From: leo.armesto.an...@gmail.com
Date: Mon, 25 Feb 2013 09:01:27 -0800 (PST)
Local: Mon, Feb 25 2013 12:01 pm
Subject: Re: [pandaboard] OMAP DRM when using YUV frames

sorry I meant VID1, VID2, VID3 of the DSS subsystem...

Regards,

Leo.

El lunes, 25 de febrero de 2013 17:47:29 UTC+1, leo.arme...@gmail.com
escribió:


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Rob Clark  
View profile  
 More options Feb 27, 7:20 pm
From: Rob Clark <robdcl...@gmail.com>
Date: Wed, 27 Feb 2013 19:20:30 -0500
Local: Wed, Feb 27 2013 7:20 pm
Subject: Re: [pandaboard] OMAP DRM when using YUV frames
yes.. well, it depends a bit on bootargs/kernel config, but it can
partition GFX/VID1/VID2/VID3 between crtc's and planes.. I think by
default you should have two crtcs and two planes.

What kernel version are you using?  Can you add drm.debug=7 to
bootargs and send me all the drm debug traces it dumps out at boot?

BR,
-R


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
leo.armesto.an...@gmail.com  
View profile  
 More options Feb 28, 4:08 am
From: leo.armesto.an...@gmail.com
Date: Thu, 28 Feb 2013 01:08:39 -0800 (PST)
Local: Thurs, Feb 28 2013 4:08 am
Subject: Re: [pandaboard] OMAP DRM when using YUV frames

Rob,

Thanks for your time. You are right, although I could find the solution
myself. My confusion was that I set the number of CRTCs to 4 since I
thought that it was referring to framebuffers (/dev/fbX) as in old omapfb
driver. That's why the number of planes left was simply 0.

Regards,

Leo.

El jueves, 28 de febrero de 2013 01:20:30 UTC+1, rob escribió:


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
End of messages
« Back to Discussions « Newer topic     Older topic »