[haiku-bugs] Re: [Haiku] #9919: Haiku needs a hardware rendering pipeline / API for Mesa3D

  • From: "kallisti5" <trac@xxxxxxxxxxxx>
  • Date: Tue, 18 Mar 2014 14:23:04 -0000

#9919: Haiku needs a hardware rendering pipeline / API for Mesa3D
-------------------------------+----------------------------
   Reporter:  kallisti5        |      Owner:  kallisti5
       Type:  enhancement      |     Status:  new
   Priority:  normal           |  Milestone:  Unscheduled
  Component:  Kits/OpenGL Kit  |    Version:  R1/Development
 Resolution:                   |   Keywords:
 Blocked By:                   |   Blocking:
Has a Patch:  0                |   Platform:  All
-------------------------------+----------------------------

Comment (by kallisti5):

 This is still up in the air 7 months later.

 Current issues:

  * DRI3 has xorg dependencies
  * libdrm doesn't require xorg
    * libdrm requires libpciaccess, which requires xorg
      https://bugs.freedesktop.org/show_bug.cgi?id=76320
  * Wayland uses EGL, which is a pipeline to an OpenGL DRI interface (DRI
 still requires in-kernel / in driver support)
    * The DRI3 code that is out there requires xorg
      * libraries that support DRI3 require xorg

 '''More info on DRI3:'''
   * http://keithp.com/blogs/dri3_extension/

 (These git repos can be browsed on http://git.freedesktop.org)
 '''DRI3 protocol and spec:'''
   * git://people.freedesktop.org/~keithp/dri3proto      master
 '''XCB protocol'''
   * git://people.freedesktop.org/~keithp/xcb/proto.git  dri3
 '''XCB library'''
   * git://people.freedesktop.org/~keithp/xcb/libxcb.git dri3
 '''xshmfence library:'''
   * git://people.freedesktop.org/~keithp/libxshmfence.git   master
 '''X server:'''
   * git://people.freedesktop.org/~keithp/xserver.git    dri3
 '''Mesa:'''
   * git://people.freedesktop.org/~keithp/mesa.git       dri3

 We're going to have to do one of the following:

   * Make a custom pipeline. This will require code written for each
 accelerant to interface with using this new pipeline
     * '''Pros:'''
        * Stable, we control the ecosystem.
        * We can design it under our rules, avoiding all the C spaghetti
 code that comes with DRI / DRM. Only the outward interface to userland
 needs to be C.
     * '''Cons:'''
        * More initial work.
        * Could suffer minor breakages due to upstream changes in Mesa.

   * Port over existing drm drivers from the linux kernel. Port over drm
 code for each driver.
     * '''Pros:'''
        * Possibly slightly less work
     * '''Cons:'''
        * More likely to break as an update to the DRI specification or an
 update to the DRM library could cause massive changes requiring a large
 rewrite.
        * Prone for us to get 'left behind' as with other large projects
 such as Webkit.

--
Ticket URL: <https://dev.haiku-os.org/ticket/9919#comment:5>
Haiku <https://dev.haiku-os.org>
Haiku - the operating system.

Other related posts: