#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.