![]() |
Why can't we have composite with overlay?
Why isn't it allowed to have the X composite extension turned on and overlay support in the nvidia driver?
Doesn't the overlay hardware just read the framebuffer and put the video where it sees a certain keycolour? Admittedly with composite and transparency you might get some funny effects over the video sometimes but I can't see any technical reason why it wouldn't work. And it would allow perfect vsync in a composite environment (which isn't currently possible at all). Am I missing something here? |
Re: Why can't we have composite with overlay?
Quote:
VSYNC should be possible using any opengl based CM like compiz or mutter "isn't currently possible at all" is just wrong ... it works just fine, if it doesn't it is likely a configuration issue. |
Re: Why can't we have composite with overlay?
Quote:
You would get some visual glitches when moving/scaling windows but for a static window just sitting there it would work ok. It would also allow vsync on more than one monitor at a time. |
Re: Why can't we have composite with overlay?
I'm assuming you're talking about VDPAU.
What Dragoran says is true; overlay and redirected (i.e. composited) windows simply don't make logical sense together. VDPAU currently prohibits overlay use whenever the X composite extension is enabled, irrespective of whether the VDPAU presentation window is actually redirected. This is because windows can be dynamically redirected/unredirected, and VDPAU can't dynamically switch between using the overlay and blitting. Having the X composite extension enabled is the default, I believe, in recent times. Consequently, one has to manually configure systems to disable the X composite extension to get the overlay presentation queue. We're putting some thought into removing this restriction, so that overlay can be used when the X composite extension is enabled, but the window is not currently redirected (i.e. compiz/desktop effects are not enabled). That said, I'm not sure exactly how useful that'll be, since I think full compiz is also the default in many cases, which would still prevent overlay use. Also, the way X protocols are currently defined, there's no way for an application to say "I'm done rendering a frame", and synchronize with the composite manager before continuing to render. This means that sometimes the composite manager may only start reading the window's content after the application has started drawing the next frame, which will lead to tearing. Depending on your exact HW/SW configuration, I believe it's possible for NVIDIA GL's sync-to-vblank (i.e. compiz's rendering) to tear too. |
Re: Why can't we have composite with overlay?
Quote:
|
Re: Why can't we have composite with overlay?
Yes, we proposed an extension to solve this problem at the last X Developers' Conference. However, it's a lot of work and so far it hasn't gained much traction.
|
Re: Why can't we have composite with overlay?
Quote:
Also it seems I only get "tearing" with .avi files, not with HD/h264 or .vob files. |
Re: Why can't we have composite with overlay?
Quote:
Can you provide any further details about this mysterious extension? What does it do, or how does it work? |
Re: Why can't we have composite with overlay?
James made some slides for XDevConf. See the presentation parts of this slide deck: http://people.freedesktop.org/~aplat...ronization.pdf
|
Re: Why can't we have composite with overlay?
Awesome, thanks for that. Is that James Jones?
|
Re: Why can't we have composite with overlay?
Quote:
|
Re: Why can't we have composite with overlay?
Quote:
|
| All times are GMT -5. The time now is 04:26 AM. |
Powered by vBulletin® Version 3.7.1
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.
Copyright ©1998 - 2013, nV News.