From: Thomas H. <th...@sh...> - 2009-08-31 12:58:38
|
Daniel Vetter wrote: > On Mon, Aug 31, 2009 at 02:15:15PM +0200, Stephane Marchesin wrote: > >> 2009/8/31 Thomas Hellström <th...@sh...>: >> >>> Daniel Vetter wrote: >>> >>> ... >>> >>>> In conclusion I don't think a common ioctl is worth it. But sharing some >>>> code and infrastructure on the kernel side is certainly possible, if >>>> someone implements overlay support for another chipset. But I don't really >>>> count on that, because at least radeon has textured video for all it's >>>> chips. >>>> >>>> >>> I understand your concerns about the new X architecture where everything >>> is composited, and I admit I haven't looked through your patch in detail. >>> >>> However, >>> we'll _probably_ need to add overlay support to the Xorg gallium + KMS >>> state-tracker shortly, and if so, with that a generic KMS interface that >>> is sufficient to implement a simple Xv overlay adaptor with KMS. >>> > > Is this some new (embedded) hw support your working on (that supports > gallium), Thomas? Or why do you think gallium needs overlay support? > I must stress this is not Gallium. It's the Xorg state-tracker that uses Gallium for acceleration and KMS for modesetting. We want to leverage that to a usable state for an application where we probably can't drop previous (overlay) capabilities. Textured Xv adaptors of course goes through Gallium, Overlay needs to go through KMS. The other possible use I can see is for embedded devices where power is a big concern, but that's nothing we're involved in ATM. I do think, however, that overlays are going to live on for a while in those devices. > >>> Given the fact that Xv and various virtual device overlay support >>> implementations exist, I assume there *must* be a way to do this >>> generically. Perhaps not in the interest of sharing kernel code, but in >>> the interest of a single user-space interface and a single user-space >>> implementation supporting multiple hardware drivers. >>> >> I've looked at this before, and you basically end up adding something >> similar to the Xv API in the kernel (for handling pixel formats, size >> & pitch limitations, vsyncing, ...). I'm not sure it's worth it, >> especially since overlays are doomed. Of course overlays are faster >> than textured/blitter video so it's worth implementing, but I'd keep >> this as a device-specific ioctl. >> >> Stephane >> > > The problem I see with Xv-API-in-kernel is that of the various hw > constrains on the buffer layout. IMHO this has two solutions: > > a) complicated to communicate the constrains to userspace. This is either > to generic or not suitable for everything. > IIRC Xv exposes this all the way down to the user-app, as format and then offset into buffer + stride for each plane? > b) one fixed format. If it does not fit, just copy the stuff in the right > format into a new bo. This is what the intel Xv driver does at the moment. > I don't think this belongs into the kernel. > Agreed. It's not a problem to implement this in a generic user-space driver. > In short I think it's best to do the impedance matching in userspace. We > would need something there anyway to match the various video APIs onto the > kernel model. > > Yours, Daniel > > btw: I don't think we can sketch out a common interface before we have a second > implementation to go pattern hunting. > OK. We're probably some time away on this. Thanks, /Thomas |