Slashdot Mirror


XFree86 DRI on NetBSD

Dan writes "Erik Reid has been working on adding DRI support for NetBSD. Direct Rendering Infrastructure, also known as the DRI Project, is a framework for allowing direct access to graphics hardware in a safe and efficient manner. Some of Erik's work has been imported into XFree86 4.3.0 which is now in xsrc tree. He has subsequently put together a fairly large patch which compiles and works on his NetBSD/i386 1.6P system with a matrox g450. Try out the patch and give him some feedback!"

28 comments

  1. Can anyone then tell me... by amarodeeps · · Score: 2, Insightful

    ...what if anything this might mean for getting DRI on OpenBSD? Thanks.

    1. Re:Can anyone then tell me... by freyr · · Score: 3, Informative

      It shouldn't be too difficult to make it work on OpenBSD, though I'm not going to do it, and I'm not
      going to guarantee anything. :)

      Basically someone that knows something about OpenBSD needs to step up and start digging in. Eric Anholt did some fantastic work in abstracting some of the code, so it really wasn't tough to make it work on NetBSD.

      - Erik

    2. Re:Can anyone then tell me... by methodic · · Score: 2, Interesting

      FreeBSD code is completely different than the other BSD's. OpenBSD's code is still very much like NetBSD's code, with some exceptions, so once it's working good on NetBSD, it should be fairly easy (to the seasoned OpenBSD developer) to port to OpenBSD.

      3D on OpenBSD? Mmmmmmmm.

  2. *nix Support by phavens · · Score: 2, Insightful
    If you have support for one verion of BSD... It can not be hard to get it running for another version. And for that matter another version of *nix. It might just be a matter of recompiling.

    Now give me nVidia and ATI drivers that have all the support/features under linux/BSD that you have under windows THEN I'll be exited.

    --
    Patrick Havens (Mr. 573333 to you.) Graphic Artist / Coder / Father / Journeler
    1. Re:*nix Support by Anonymous Coward · · Score: 0

      Can not be hard? For that matter any other UNIX?

      Oh yeah, must be easy to port Xenix parallel port drivers to Mach/OSX.

      Point is, UNIX implementations can be world apart, but following the directory structre and API is what keeps them UNIX-like.

    2. Re:*nix Support by CoolVibe · · Score: 5, Informative
      Merely recompiling will not do, since the API's of the underlying OS differ too much between the many BSD's. It still requires a lot of patching.

      Although there is a port of the FreeBSD nvidia drivers to NetBSD... Lemme dig up the uri...

      Ah, here it is:

      NVidia drivers on NetBSD

      Have fun!

  3. Unified UNIX drivers by mnmn · · Score: 4, Interesting


    Just like QT unifies the different window systems and opengl unifies various graphic systems, I think we seriously need a unified system of drivers for all *nix including Linux, BSD, Solaris if Sun sees the potential, AIX ditto, Beos and darwin. Newer OSes like Plan9 would use the infrastructure and gain support of ALL the hardware.

    I'm not too sure how we could cope with not adding additional code layers slowing things down.. perhaps an M4-based system that changes the right functions in the driver code, and removes or replaces OS-specific functionality depending on the output of uname. Such a unified system would attract hardware designers who would release their driver code according to this structure to support multiple OSes, and Free Software would be the big winner here.

    Ive had to move from FreeBSD to Linux to Solaris now, due to the inherent lack of tokenring drivers, or its stability. FreeBSD had only one TR supported, in alpha, and it crashed. I wish I had the option of using NetBSD. Linux has a slew of TR supposedly supported but there are some bugs in receive buffers of TR code when using it with ethernet and ipfilter. I tried tuning many things, even tried to implement my own receive buffer with additional checks. It was a bit complicated for me.

    The various unixen have a collection of kernel hooks that could be used in drivers. A simple large table could be made for hooks that are similar, showing differences in naming, arguments and limitations of buffers etc. Other pointer hooks then could be made to represent and encapsulate these hooks, also encapsulating additional procedures that need to be run before/after each hook on specific systems.

    Non-equivalent hooks are more difficult to use, some might need additional programming on some systems while other systems would have part of that functionality built in. For this, we gotta build trees of functionality of each driver type, say networking, graphic, input etc, for each system making a 3d graph of the functionality and working with the weaknesses of some systems making it similar to the strengths of others, makin it easy to create encapsulating hooks.

    The encapsulating hooks themselves could be either C functions, pointers, or M4 macros, which would be replaced with the code of the right system just before compile time. I would go with c pointers if theres NO resulting performance hit after being compiled with gcc -O2. If theres a resulting performance hit on ANY system, I'd say we're pretty much stuck with M4 which on some systems could become too complicated to be worth it.

    Pulling out all drivers from the Linux code, and FreeBSD and sticking it all into the tree, and demonstrating its working would be the end of the first phase. Establishing a proper standards group, quite possibly with posix/ansi/someotherbody would complete the second phase. After that its all sit back and wait, and just like WDM in windows, hardware makers should re-release driver codes for a more unified platform.

    Apart from a major boost to Net/OpenBSD, Plan9 and others, the Linux kernel might be lightened much from todays 30MB+. Yet another issue would be driver signing and security unless the whole driver structure is downloaded with the kernel sources of each OS.

    --
    "Give orange me give eat orange me eat orange give me eat orange give me you." -Nim Chimpsky
    1. Re:Unified UNIX drivers by Anonymous Coward · · Score: 0

      Which is a great idea. But look at the "Linux" world. You have "GNU/Linux" centric ppl who only want to do 'free software', others who call anything running on top of a linux kernel "Linux". (IE 'Our webserving software is Linux' No its apache) The in-fighting over a 'common linux binary' - how many years was the Linux standard binary proposed.

    2. Re:Unified UNIX drivers by CoolVibe · · Score: 1
      (IE 'Our webserving software is Linux' No its apache)

      Well, apache is not the be-all end-all of webserving. There are lots of webservers available for the *nix platform that are not based on or related to apache. One notable exception is roxen, although the development activity is a bit shady at the moment. Check freshmeat for more webservers. There are many.

    3. Re:Unified UNIX drivers by CoolVibe · · Score: 3, Insightful

      In a perfect world, your vision would be useful and yes, I'd vouch for it, but it's a license minefield. :-(

    4. Re:Unified UNIX drivers by Anonymous Coward · · Score: 0

      QT unifies the different window systems? What are you smoking?

      There's a standard desktop and graphics toolkit for UNIX already. They're called CDE and Motif. Ever heard of them? I didn't think so.

      Sorry for the tone; This isn't flaming *you*, but the various people who think everything demands a brand new, throughly incompatible toolkit, object model, sound server and window manager. Admittantly, Motif was non-free for a long time, but so was QT.

    5. Re:Unified UNIX drivers by mnmn · · Score: 1

      >QT unifies the different window systems? What are >you smoking?

      Drink tea. Black.

      > There's a standard desktop and graphics toolkit >for UNIX already. They're called CDE and Motif. >Ever heard of them? I didn't think so.

      Sure, but theyre not standard across to Win32 and OSX. There might be emulators that run on TOP, but that defeats my analogy.
      QT wraps the windowing system functions, from Win32 OSX and X11, presenting a unified and simple bunch of tools. I'm not asking you to love it, just take the analogy and apply it to whats possible for drivers.

      > Sorry for the tone; This isn't flaming *you*, >but the various people who think everything >demands a brand new, throughly incompatible >toolkit, object model, sound server and window >manager.

      Well in that case you are flaming me. I think the drivers across unix clones can be unified.

      OK. I need to use my token ring LAN with my DSL ethernet. Such functionality is flaky or broken with everything but Solaris. If someone could port solaris drivers to Linux I'm happy, but I have a friend who is also using tokenring and needs BSD drivers. Will you port them for us? No? I didnt think so.

      Since the works already been done, doesnt need to be repeated for EVERY OS.

      > Admittantly, Motif was non-free for a long time, >but so was QT.

      Well getting into licensing is different. The driver tree could include licensing info, so you could download a tarball of drivers with BSD and MIT licenses but no GPL for instance. Unzip it in the Linux sources and compile it all, smooth. Do the same for FreeBSD. I think its possible and I think it will boost OpenSource OSes greatly, ones like NetBSD.

      --
      "Give orange me give eat orange me eat orange give me eat orange give me you." -Nim Chimpsky
    6. Re:Unified UNIX drivers by chrisseaton · · Score: 1

      QT does not wrap the windowing systems - it provides it's own windowing system, just emulating the native widgets and stuff.

  4. Re:I'll do it next week! by zzyp · · Score: 1

    Good luck. I had difficulty installing 1.6, when my installation crapped out with a Segmentation fault, 1.5 was more stable...

  5. Re:It's hard being dead by Anonymous Coward · · Score: 0

    And amazingly you are still able to post with a dead brain.

  6. Re:This already exists. by cant_get_a_good_nick · · Score: 3, Informative

    http://www.projectudi.org/ Or existed, it seems like it hasn't been updated in a while.

    I did some work in this, interesting environment. All drivers are source compatible across all conforming environments. If the environments have the same C ABI (say, they're all x86) then the drivers are binary compatible. Caldera actually made this their native DDI for OpenUNIX 8. There are environments for OU8, Linux, and FreeBSD, and some drivers out there. One cool thing is that the environment handles MP. All your functions are guaranteed never to be interrupted. Downside is, it's a very different environment from what you're used to, and it takes a while to get your head around.

    As an aside, RMS doesn't like the environment because it makes it easier to release binary only drivers. Not only does it insulate youfrom DDI differences between platforms, but also between Linux kernel updates.

  7. Boring! by Anonymous Coward · · Score: 0

    Seriously, the "BSD is dying" troll was fairly amusing in it's own trolly way at first, but it's getting really quite tired now.

    Don't get me wrong, I enjoy sifting through the comments with Threshold -1, and I do I like a good AC troll now and again. But I at least like to make my trolls interesting, sarcastic, amusing, and most importantly, different.

    Posting the same dumb troll over and over again is just plain dull and unimaginative. Try and find something new and unique to troll with.

    Thankyou.

  8. Re:This already exists. by mnmn · · Score: 1


    Interesting stuff.

    Part of opensource developer psychology is exclusivity. Belonging to for instance the FreeBSD or Debian linux camp, and not developing something that contributes to the other camps especially the commercial OSes like Solaris. I think this would hinder the unified drivers. And like you said its a very different environment, its also an added layer, and what attracts developers to system/kernel/driver programming in the first place is the low level.

    But I think theres a threshold beyond which people will contribute more. Project UDI will take effort to get there, including remaking previous-ly made drivers in UDI. Since Opensource OSes have much to gain from this, they should rally around this idea, especially the underdog OSes like NetBSD. I wouldnt expect Linux developers coming wholeheartedly.

    --
    "Give orange me give eat orange me eat orange give me eat orange give me you." -Nim Chimpsky
  9. why by vesamies · · Score: 1

    I don't know exactly... Open and Net are similar systems so maybe it will help. But are Open users even interested in this. They seem to be so security focused they don't even mind Mozilla not working... On the other hand what is the use on DRI on Net, somebody playing quake on Net? Maybe in the future we have 3D models living in every web page and DRI becomes essential...