Re: new userspace API approaches atomic *

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> There are several problems with this:
>
> - I can't test other drivers
>
> - I don't have the knowledge or inclination to implement atomic semantics
>   for everyone's favorite hardware, and without that there's little
>   point in doing the work. Some of my initial code was layered on top of
>   drm_crtc_helper though, so it might be possible to use that as a basis
>   for an atomic helper, but there would actually be no benefit from
>   using it apart from allowing those drivers to respond to the atomic
>   ioctl. But we wouldn't use any of that w/ i915, so it would be better is
>   someone else does that part.

The "I can't test it" argument doesn't fly with me, you are creating a
new API that adds a useful feature, it should be possible to get a few
other driver maintainers interested, but also I'd hope that most of
the ideas for converting to a new API would be mechanical in a lot of
ways. Atomic semantics aren't hw specific from what i can see, if they
are then the API is obviously wrong.

> - Replacing all the legacy codepaths with new code in one go increases the
>   chance that we get a regression, and then we have no choice but to
>   back out the whole thing. Also it seems that no-one apart from Rob has
>   even looked at the code, so it seems likely that there would be heavy
>   opposition to replacing the current code with something new.

I never said one go, I said before pushing the new API. This means you
get everything internally converted in the drm/driver interface, drop
the old drm/driver interface, and the new userspace API. At least
regressions should be a lot more obvious and we can port a driver at a
time if needed. We can also block new drivers from using the old
interfaces from being merged.

> - These are the reasons I would like to merge the thing without touching
>   the legcay codepaths too much. Then each driver author could move their
>   code over the new APIs. I'm willing to help of course, but the driver
>   authors are in a much better position to make something that actually
>   works for their hardware.

Yup thats what you want, but you don't want to bring in the new API
before this happens, since only once you've ported a bunch of drivers
will you know the API actually works.

>> f) get b merged standalone, transition phase is fine, but every driver
>> needs to be ported before the API
>> goes in.
>
> Why? The current drivers are not using the same APIs internally anyway.
> i915 doesn't use drm_crtc_helper for example. You didn't demand that
> Daniel rewrite drm_crtc_helper to suit i915 and fix up all the other
> drivers, did you?
>

helpers are not APIs. The API from drm_crtc.c to driver is the main
modesetting API, for instance Daniel is trying to stop taking locks in
the drm_crtc side of things, to do this he is going and reimplementing
lots of bits in lots of drivers at the same time.

>
> Right, so either I rewrite the modeset and pageflip code for all drivers,
> or I wait until all the driver authors decide to help me. The first one
> will take approximately five years given that I don't know the hardware
> and I have other tasks on my plate, and based on the past interest the
> second one doesn't seem likely to happen anytime soon
>
> All this make me think I should just try to push it as an i915 private
> feature. Damn the other drivers. That should make the management happy too
> since everyone that needs atomic display updates on Linux will need to buy
> Intel hardware.
>
> Oh well, the world is supposedly ending in a few days anyway, so perhaps
> I can just relax and stop caring :)

Well start by converting Intel to a new internal API without the
external, kick a few driver authors to start porting other drivers to
the new internal API. The API seems like it should be pretty much hw
independent. But I expect getting other maintainers interested might
involve actually going out and actually writing crappy patches and
sending them to them to pick up. I can also help kick heads in the
right direction.

I just don't want to implement any userspace APIs on only one driver,
and this and atomic modeset are things that are definitely heading in
that direction.

Dave.
_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/dri-devel


[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux