NetBSD-Users archive

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

Re: Article on state of graphics drivers on BSDs

On Sat, Feb 09, 2013 at 08:47:16AM +0530, Mayuresh wrote:
> Should be of interest to this list:

ISTM the reason that support stalls in *BSD for a lot of reasons,
more than I am even aware of, but surely it has something to do with
missing interfaces in BSD (and not mainly missing graphics interfaces),
the Linux-centrism of and poor architecture/documentation for
the requisite kernel interfaces, and X11's dwindling relevance as a

* BSD doesn't provide the native interfaces that a userland device
  driver demands, interfaces for

  1 mapping user memory for DMA, converting user virtual addresses to
    bus addresses, DMA buffer synchronization: basically bus_dma(9) for

  2 sharing limited adapter resources (a graphics command ring,
    texture/vertex/whatever RAM, slots in a GART) between user threads

  3 registering interest in device interrupts

  4 setting color depth, frame rate, resolution, etc

  Incidentally, each of those interfaces are applicable outside the
  domain of graphics drivers.

* Linux does not individually provide those interfaces, either,
  except for #4, for which there is KMS.  I say "individually" because
  Linux seems to provide a *monolithic* framework for accelerated

* the documentation of the Linux framework is no good

* typically developers have brought the Linux graphics drivers into *BSD
  starting with the monolithic framework du jour (DRM/GEM/TTM).  That
  may entail some kind of kernel tear-up, porting/re-writing a lot of
  code, grappling with the VM system and scheduling, with deficiences in
  bus_dma(9) and in bus_space(9).  It's a ton of work; you won't see any
  benefit until the whole thing is done many months hence; it may not
  get finished.

* if it doesn't get finished, because it's a monolith, it leaves
  no re-usable remnants such as a VM change here, or a bus_dma(9)
  improvement there.  There's just one very big, very broken patch.

* X11 isn't such an interesting platform as it used to be.

  * it's not clear if/how mobile/embedded *BSD applications that eschew
    X11 will benefit from improved support for drivers, so
    driver support is easy for a sector of developers to shrug off

  * Many BSDers' do their day-to-day computing on a Mac, and this
    is not merely because of poor hardware support on BSD.  There
    is quality software available for Mac, there is consistency,
    and there is easy interoperability with useful peripherals and
    mobile gadgets. The stable of X11 software just is not widely
    appealing, today, and there are no prospects for improvement.


David Young    Urbana, IL    (217) 721-9981

Home | Main Index | Thread Index | Old Index