[Mesa-dev] [PATCH 0/7] egl, i965: Implement EGL_KHR_mutable_render_buffer

Chad Versace chadversary at chromium.org
Tue Jul 31 18:18:02 UTC 2018


Despite the KHR, Android is the only OS that uses this extension, as far
as I know. Essentially, it allows the app to toggle
front-buffer/back-buffer rendering using EGL.

Android requires this extension if the device advertises support for
virtual reality. No Chrome OS device yet supports Android's VR software
requirements, though, and VR is not why I implemented this.

This extension enables handwriting and drawing apps on Chrome and
Android devices to achieve very low latency between touch input
and display response.

Please don't bash me for this oddly-specified Android extension.
I didn't create it. I'm just writing the code that Android requires.

* Patch 3 defines a pair of new DRI extensions, DRI_MutableRenderBuffer{Driver,Loader}.
* Patches 1-5 add the generic code for the DRI and EGL extensions.
* Patch 6 implements DRI_MutableRenderBufferLoader for Android EGL.
* Patch 7 implements DRI_MutableRenderBufferDriver for i965.

This series is tagged at:
    http://git.kiwitree.net/cgit/~chadv/mesa/log/?h=refs/tags/chadv/review/i965-mutable-render-buffer-v01

Chad Versace (7):
  egl: Simplify queries for EGL_RENDER_BUFFER
  egl/dri2: In dri2_make_current, return early on failure
  dri: Define DRI_MutableRenderBuffer extensions
  dri: Add param driCreateConfigs(mutable_render_buffer)
  egl/main: Add bits for EGL_KHR_mutable_render_buffer
  egl/android: Implement EGL_KHR_mutable_render_buffer
  i965: Implement EGL_KHR_mutable_render_buffer

 include/GL/internal/dri_interface.h           | 138 +++++++++++++-
 src/egl/drivers/dri2/egl_dri2.c               |  71 +++++---
 src/egl/drivers/dri2/egl_dri2.h               |   7 +
 src/egl/drivers/dri2/platform_android.c       | 168 +++++++++++++++++-
 src/egl/main/eglapi.c                         |   1 +
 src/egl/main/eglconfig.c                      |   3 +
 src/egl/main/eglcontext.c                     |  40 ++++-
 src/egl/main/eglcontext.h                     |   3 -
 src/egl/main/egldisplay.h                     |   1 +
 src/egl/main/eglsurface.c                     |  81 ++++++++-
 src/egl/main/eglsurface.h                     |  59 +++++-
 src/gallium/state_trackers/dri/dri_screen.c   |   4 +-
 src/mesa/drivers/dri/common/dri_util.c        |   2 +
 src/mesa/drivers/dri/common/dri_util.h        |   4 +
 src/mesa/drivers/dri/common/utils.c           |  10 +-
 src/mesa/drivers/dri/common/utils.h           |   3 +-
 src/mesa/drivers/dri/i915/intel_screen.c      |   4 +-
 src/mesa/drivers/dri/i965/brw_context.c       |  86 ++++++++-
 src/mesa/drivers/dri/i965/brw_context.h       |  12 ++
 src/mesa/drivers/dri/i965/intel_screen.c      |  17 +-
 src/mesa/drivers/dri/nouveau/nouveau_screen.c |   2 +-
 src/mesa/drivers/dri/radeon/radeon_screen.c   |   2 +-
 src/mesa/drivers/dri/swrast/swrast.c          |   2 +-
 src/mesa/main/mtypes.h                        |   3 +
 24 files changed, 664 insertions(+), 59 deletions(-)

-- 
2.18.0.345.g5c9ce644c3-goog



More information about the mesa-dev mailing list