[oe] [meta-browser][PATCH v3 0/4] Introduce EGL/GLES and component build patches for Chromium

Carlos Rafael Giani dv at pseudoterminal.org
Thu May 1 20:36:06 UTC 2014


This set of patches extends the chromium recipe to allow for EGL&GLESv2 based 2D rendering,
considerably improving performance. This also adds hardware-accelerated WebGL support.

Three new PACKAGECONFIG for chromium are introduced:

* "component-build" : If set, Chromium is built in component mode. Each subsystem of Chromium
  ends up in a separate shared object. The alternative is the regular mode, which links everything
  into one big binary. Component builds are useful for development and testing, and consumes
  significantly less RAM during building. It is essential when building Chromium on a 32-bit OS.

* "use-egl" : Ordinarily, Chromium will try to use GLX and regular (= Desktop) OpenGL for 2D
  acceleration. If that fails, software rendering is used. If use-egl is set, it will use EGL
  instead of GLX and OpenGL ES 2.0 instead of regular OpenGL. This is very useful if the
  target platform provides hardware acceleration for this API. Chromium will then render all 2D
  components as well as WebGL contents with hardware acceleration, Canvas being an exception
  (see below).

* "ignore-lost-context" : Without this flag, HTML Canvas will not be accelerated, even with the
  "use-egl" flag set. The reason for this is a conceptual problem: HTML Canvas expects the
  backing store of the canvas to persist until the web page goes away. But if the backing store
  is a GLES texture, then in theory the associated EGL context could get lost (for example, during
  a power management cycle), and the texture along with it. This violates requirements for canvas.
  So, one has to choose: either remain fully standards compliant, and have no acceleration, or
  have acceleration, and risk losing the Canvas content. Note that context losses do not happen on
  all platforms (they haven't been observed with Vivante GPUs for example, and internals of its
  galcore module do not show anything that could cause a lost context). But since these recipes
  do not depend on a specific platform, this option must be explicitely enabled.

Carlos Rafael Giani (4):
  chromium: Add component-build PACKAGECONFIG option
  chromium: Add variable to contain extra command-line arguments
  chromium: Add use-egl PACKAGECONFIG option
  chromium: Add ignore-lost-context PACKAGECONFIG option

 .../chromium/chromium/component-build.gypi         |  5 ++++
 recipes-browser/chromium/chromium/google-chrome    | 11 +++++---
 .../remove-linux-accel-canvas-from-blacklist.patch | 32 ++++++++++++++++++++++
 recipes-browser/chromium/chromium_35.0.1883.0.bb   | 27 ++++++++++++++++--
 4 files changed, 69 insertions(+), 6 deletions(-)
 create mode 100644 recipes-browser/chromium/chromium/component-build.gypi
 create mode 100644 recipes-browser/chromium/chromium/remove-linux-accel-canvas-from-blacklist.patch

-- 
1.8.3.2



More information about the Openembedded-devel mailing list