|
|
#1 | |
|
Registered User
Join Date: Oct 2008
Posts: 86
|
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? |
|
|
|
|
|
|
#2 | |
|
Registered User
Join Date: May 2004
Posts: 711
|
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. |
|
|
|
|
|
|
#3 | |
|
Registered User
Join Date: Oct 2008
Posts: 86
|
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. |
|
|
|
|
|
|
#4 | |
|
Moderator
Join Date: Aug 2005
Posts: 1,327
|
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. |
|
|
|
|
|
|
#5 | |
|
Registered User
Join Date: Oct 2008
Posts: 86
|
Quote:
|
|
|
|
|
|
|
#6 | |
|
NVIDIA Corporation
Join Date: Mar 2005
Posts: 2,487
|
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.
|
|
|
|
|
|
|
#7 | |
|
Registered User
Join Date: Nov 2009
Posts: 13
|
Quote:
Also it seems I only get "tearing" with .avi files, not with HD/h264 or .vob files. |
|
|
|
|
|
|
#8 | |
|
Registered User
Join Date: Jan 2008
Posts: 4
|
Quote:
Can you provide any further details about this mysterious extension? What does it do, or how does it work? |
|
|
|
|
|
|
#9 |
|
NVIDIA Corporation
Join Date: Mar 2005
Posts: 2,487
|
James made some slides for XDevConf. See the presentation parts of this slide deck: http://people.freedesktop.org/~aplat...ronization.pdf
|
|
|
|
|
|
#10 |
|
Registered User
Join Date: Jan 2008
Posts: 4
|
Awesome, thanks for that. Is that James Jones?
|
|
|
|
|
|
#11 |
|
Registered User
Join Date: Feb 2009
Posts: 138
|
It is possible to *mostly* avoid tearing by configuring the compositing manager correctly, but *completely* avoiding it is not possible. That is due to various X protocol limitations.
|
|
|
|
|
|
#12 |
|
NVIDIA Corporation
Join Date: Mar 2005
Posts: 2,487
|
|
|
|
|
![]() |
| Thread Tools | |
|
|