Originally posted by Dinth
View Post
Older GPUs had sync-to-vblank capability built into the hardware overlay. When we started moving from video overlay to textured video (overlay doesn't work with compositors) and took the dedicated video processor out of the overlay (starting with 5xx) we lost the hardware sync-to-vblank and needed to build that capability into the driver stack.
The X/DRI framework doesn't really have a mechanism for dealing with this (it does with a direct-rendering driver like OpenGL but not with an indirect-rendered one like Xv) and that is being designed into the framework now. This is another case where over-writing portions of the framework would have made our life easier, but since doing that also tends to slow down the rate at which the framework improves we over-write as little as possible and back out that code as the framework catches up.
Originally posted by Dinth
View Post
Originally posted by Dinth
View Post
Originally posted by Dinth
View Post
Mesa is designed to be highly portable across different environments, not for ultimate performance, while fglrx is designed for maximum 3D performance. We moved the last of our OpenGL drivers over to an architecture like Gallium3D almost two years ago, around the time that Gallium3D was first announced. The proprietary drivers have had high performance memory management in the kernel for years. Again, that capability is just being added to the standard framework now in the form of GEM and TTM.
Others have already mentioned that we actually over-write *less* of the X/DRI environment than other binary drivers, not more. We do pay a price for that in terms of the extra work required to stay compatible with new kernel and X versions, but I think it's still worth the price.
Xv is an API (which we support) more than a technology. When you complain about tearing you're complaining about tearing via the Xv API.
Leave a comment: