ARM Graphics Stack on X

Registered by Duncan McGreggor

* requirements for graphics drivers for a good X11 experience
* performance benchmarking on X
* 3D story on X and arm
* video/multimedia on X and arm

Blueprint information

Status:
Complete
Approver:
Alexander Sack
Priority:
High
Drafter:
Alexandros Frantzis
Direction:
Needs approval
Assignee:
Alexandros Frantzis
Definition:
Approved
Series goal:
Accepted for maverick
Implementation:
Implemented
Milestone target:
milestone icon ubuntu-10.10
Started by
Alexander Sack
Completed by
Alexandros Frantzis

Related branches

Sprints

Whiteboard

[asac Jun 10] alpha 3 planning: shift focus for clutter/mutter/unity stack from archive to ppa as upstream clutter code is not ready for a plugin like distribution scheme needed for the linaro archive. moving ppa actions to beta-10.10 as it has no archive/FF impact.
[asac Jul 10]: updated TI on how to properly package GL* libs from SGX
[asac Jul 10]: tested the gallium es -> gl binding and made https://wiki.linaro.org/DeveloperDocs/EglWithGallium that documents how to develop opengl ES on x86 without a powervr sdk or alike.
[asac Sep 10]: postponing powervr review items as of release-meeting sep 9.

Status:
clutter/gles/eglx packages done; need archive upload/sponsoring

Work items (maverick-alpha-2):
Package and make available in the archive a build of Mesa with EGL/OpenGL support: DONE
[asac] Validate the Mesa EGL/OpenGL package: DONE
Investigate the feasibility of having Clutter use runtime loadable plugins for various backends (OpenGL, OpenGL ES 2.0): POSTPONE
Package and make available in a ppa a build of Clutter with OpenGL ES 2.0 support: DONE

Work items (maverick-alpha-3):
[asac] reach out to TI and imagination on finding appropriate ways to make the imagination user space libraries easily available in the archive; decide if and how to make those available: DONE

Work items (ubuntu-10.10-beta):
[asac] implement distribution strategy decided with TI and imagination for the SGX userspace libraries (as decided in work item for alpha-2): DONE
Schedule regular calls/meetings with DX Team and vendors to coordinate efforts to solve any issues related to the functionality/performance of their stacks: DONE

Work Items:
Coordinate with Unity team to make Unity work with Clutter OpenGL ES 2.0: DONE
Package and make available in a ppa a build of Unity Stack on top of OpenGL ES 2.0: DONE
Validate Unity OpenGL ES 2.0 package stack: DONE
[lnxtorez] make powervr kernel modules available in the archive for omap3 and omap4: POSTPONE
[lnxtorez] review powervr kernel code and write up suggestions on how to improve their code: POSTPONE
[asac] initiate discussion with imagination and vendors on results of powervr kernel code review from above : POSTPONE
Package and make available in the archive a OpenGL ES->OpenGL wrapper: DONE
Validate the OpenGL ES->OpenGL wrapper package: DONE
Package and make available in the archive plugins for a Clutter OpenGL and OpenGL ES 2.0 backends: POSTPONED
Provide a mechanism for loading the correct Clutter backend plugin depending on the platform: POSTPONED
Coordinate DX Team and vendors efforts to produce a specification of minimum driver/hardware requirements: TODO

tseliot 06-05-2010: tentative list of requirements

* Kernel driver:
  - Compatibility with kernel 2.6.32 (Lucid) or higher.
  - KMS (Kernel Mode Setting)
  - Compatibility with the userspace libdrm 2.4.18 (Lucid) or higher
  - Support for RandR output hotplug events (so that the xserver receives an event when external screens are connected or disconnected)
  - GEM (Graphics Execution Manager), TTM (Translation Table Maps) or an alternative kernel video memory manager
  - Dynamic front buffer resizing as in -intel's UXA (so that we don't have to set the virtual resolution and restart X when dealing with external screens using high resolutions)

* DDX (X.Org) driver:
  - Compatibility with xserver 1.7.x (Lucid) or higher (1.8.x or 1.9.x)
  - Support for RandR 1.3 (especially transformations, scaling, etc.)
  - Use of the E-EDID functions in X.org (this is useful for HDMI)
  - DRI 2 (Direct Rendering Infrastructure) which allows GLX applications to do direct rendering to redirected windows. This makes OpenGL and XV (X video extension) work correctly with compositing managers.

* Multimedia:
  - Support for either VA-API (Video Acceleration API) or VDPAU (Video Decode and Presentation API for Unix) to allow video programs to offload portions of the video decoding process and video post-processing to the GPU video-hardware.

* 3D driver:
  - OpenGL 2.1 (or later) compliant driver, more specifically we would like to have the following extensions available:
    + GL_ARB_framebuffer_object
    + GL_ARB_vertex_program
    + GL_ARB_fragment_program
    + GL_ARB_texture_non_power_of_two
    + GL_EXT_stencil_two_side
    + GL_ARB_vertex_buffer_object
 - Support for GLSL

* performance tests
  - 3D tests
    + phoronix-test-suite (openGL based tests)
  - 2D tests
    + gtkperf (to test performance with GTK+)
    + cairo-perf-trace (to test performance of apps which use cairo e.g. firefox)
       http://cworth.org/intel/performance_measurement/

[asac]: copied drm + mesa with gles/egl support from https://edge.launchpad.net/~raof/+archive/mesa-egl to https://edge.launchpad.net/~asac/+archive/armel1 to get armel binaries built

(?)

Work Items