Summary

  • DRI2 is an extension through which X11 clients are able to directly render to X drawables.The main user of this extension is an GLX/OpenGL or EGL/OpenGL ES implementation but it can be used with other X cleints as well.The DRI extension defines the protocol through which X clients direct access to X drawables for rendering directly. It does not enforce actual implementation. This spec describes different aspects of implementing DRI2 - kernel support for DRI2, Xorg support for DRI2 and Egl/Glx support for DRI2.

Rationale

  • As the DRI2 specification does not enforce implementation details of DRI2 implementations, This spec intends to evaluate various options for implementing DRI2.In addition to DRI2 implementation , it is also intended to look at use of 2d blitters, system dma , neon optimisation along with GPU's to provide efficient DRI2 implementation.

Design

  • Basic DRI2 support involving Xorg DRI2 and EXA modules
  • EGL adaptation for X11
  • DRI2 support with drm driver and libdrm
  • Kernel mode setting (KMS) support.
  • Kernel Memory Management (GEM/TTM/UMP/SHM)
  • Usage of 2d blitters/system DMA with GPU
  • Neon optimisation targets
  • Rendering synchronisation(with vblank)
  • Security related aspects (DRI2Authenticate, access to drm driver etc)

Implementation

  • Document DRI2 implementation guideline based after analyzing above design items
  • Document DRI2 implementation difference between PCI and non PCI attached GPU's
  • Develop an application that can reveal implementation details of DRI2 on a platform.

Inputs for Analysis and Implementation

  • Mesa and gallium drivers
  • drm drivers part of standard kernel
  • kernel drivers and Xorg modules for MALI (available in opensource)

References

* Consolidated Xorg DRI framework for ARM GPUs

WorkingGroups/Middleware/Graphics/Specs/1105/DirectrenderingArmBasedGPUs (last modified 2011-01-11 18:33:26)