No announcement yet.

Writing a Gallium3D Driver for VirtualBox

  • Filter
  • Time
  • Show
Clear All
new posts

  • Writing a Gallium3D Driver for VirtualBox

    Oracle's response to my request has been less than preferable. I have decided to do this myself over the next year or two, but will need a lot of mentoring.

    I currently have the following conceptions about this project:

    1. The first order of business will be to establish a skeleton driver that uses the softpipe for everything.
    2. TGSI instructions will be translated to OpenGL 2.1 and sent through VirtualBox's existing Chromium pipeline, theoretically requiring no changes to VirtualBox itself.

    But for initial questions:

    1. Does a DRM driver need to be implemented?

    I appreciate any help I can get.

  • #2
    Why does the X11 winsys have so many ifdefs for Cell?


    • #3
      Originally posted by wswartzendruber View Post
      Oracle's response to my request has been less than preferable. I 1. Does a DRM driver need to be implemented?
      I appreciate any help I can get.
      I don't know how up-to-date it is, but does not mention any particular duties of the DRM driver (just the module, which is the in-kernel bit). DRI1 requires a drm driver, which the VBox Additions already contain, but doesn't require it to do anything useful, and I suspect that that may be enough for DRI2 too.


      • #4
        I want to avoid having to learn how to write a DRM driver if possible. However, the configuration GUI has an option to set how much graphics RAM there is, and that tells me I need to use memory management, which implies I need to learn how to work with GEM (God help me!).


        • #5
          Are you certain it will be easier than making the missing bits to work with the VMWare svga driver?


          • #6
            I think the two are very different under the hood. VirtualBox uses a Chromium pipeline.

            I still need to talk to my department adviser before I make any long-term plans.


            • #7
              As far as I know VirtualBox does not yet put textures or anything else 3D-related in guest video RAM, instead sending them straight to the host from "normal" guest memory (which the host can of course access at will, bar paging issues which are handled more or less transparently by guest APIs). There were plans to move to using guest video RAM for textures, but I don't think Leonid has had time to implement that yet. So you probably won't be needing to get to grips with GEM for now.


              • #8
                Do I need to wait until this is done to begin? Can I at least start on a Gallium3D skeleton driver?


                • #9
                  If you wait until it is done you might be waiting for quite a while. I assume that there is nothing in the Gallium archetecture that would require the use of Video RAM (at least not if a software pipe is possible), and the driver could still be changed later to use guest VRAM.


                  • #10

                    Holey Moley. That is some serious hobby you have picked! Hopefully, if you ever get something productive done, more developers will jump on your project! That would be way cool, man. And if this draws attention, you got some major credit from the Open Source community and a damn nice thing to write on your CV! I wish you and your project the best of luck!