This is my attempt to upstream some of the functionality in Chrome OS's
fork of Waffle. My plan is:

    1. (this patch series) Add a new Waffle platform for
       EGL_MESA_platform_surfaceless. Initially, this platform supports
       only the basic features of EGL_MESA_platform_surfaceless, and
       waffle_window is backed by an EGL pbuffer. Support for KMS comes
       later, as I wanted to first get the basics working.

    2. (future) Shuffle the gbm code so Waffle's 'gbm' platform
       and 'surfaceless_egl' platform can share it.

    3. (future) Add support for KMS to the 'gbm' platform. (I'll post my
       plans for this in a separate mail).

    4. (future) Add support for KMS to the 'surfaceless_egl' platform.

    *. Make a new Waffle release tarball sometime after step 1.

This patch series doesn't add the new platform in one giant commit. It's
incremental:

    1. First, some refactors.
    2. The CMake changes.
    3. Add the code in src/waffle/surfaceless_egl/.
    4. Update wflinfo.
    5. Update gl_basic_test.

wflinfo works. But gl_basic_test fails. I suspect it's a Mesa bug.
Haixia, Gurcheta, can you help diagnose the bug?

This patch series lives at
    
https://github.com/chadversary/waffle/commits/review/platform-surfaceless-v01
and depends on the previously submitted branch
    
https://github.com/chadversary/waffle/commits/review/eglGetPlatformDisplay-v01
and also this patch submitted to mesa-dev
    https://patchwork.freedesktop.org/patch/116476/

Chad Versace (7):
  egl: Rename files wegl_window.* -> wegl_surface.*
  egl: Rename struct wegl_window -> wegl_surface
  egl: Allow pbuffers to back wegl_surface
  cmake: Add option waffle_has_surfaceless_egl
  surfaceless_egl: Implement new platform
  wflinfo: Support --platform=surfaceless_egl
  tests/gl_basic_test: Support platform surfaceless_egl

 Android.mk                                         |   2 +-
 Options.cmake                                      |   3 +
 cmake/Modules/WaffleDefineCompilerFlags.cmake      |   4 +
 cmake/Modules/WaffleDefineInternalOptions.cmake    |   3 +-
 .../Modules/WafflePrintConfigurationSummary.cmake  |   3 +
 cmake/Modules/WaffleValidateOptions.cmake          |  15 ++-
 include/waffle/waffle.h                            |   1 +
 man/waffle_init.3.xml                              |   9 ++
 man/wflinfo.1.xml                                  |   1 +
 src/utils/wflinfo.c                                |   5 +-
 src/waffle/CMakeLists.txt                          |  11 +-
 src/waffle/android/droid_platform.c                |   2 +-
 src/waffle/android/droid_window.c                  |   2 +-
 src/waffle/android/droid_window.h                  |   6 +-
 src/waffle/api/waffle_init.c                       |  12 ++
 src/waffle/egl/wegl_platform.c                     |   7 +
 src/waffle/egl/wegl_platform.h                     |   2 +
 src/waffle/egl/{wegl_window.c => wegl_surface.c}   |  79 ++++++++---
 src/waffle/egl/{wegl_window.h => wegl_surface.h}   |  17 ++-
 src/waffle/egl/wegl_util.c                         |   4 +-
 src/waffle/gbm/wgbm_window.c                       |   4 +-
 src/waffle/gbm/wgbm_window.h                       |   6 +-
 src/waffle/surfaceless_egl/sl_display.c            |  70 ++++++++++
 src/waffle/surfaceless_egl/sl_display.h            |  45 +++++++
 src/waffle/surfaceless_egl/sl_platform.c           | 144 +++++++++++++++++++++
 src/waffle/surfaceless_egl/sl_platform.h           |  49 +++++++
 src/waffle/surfaceless_egl/sl_window.c             |  92 +++++++++++++
 src/waffle/surfaceless_egl/sl_window.h             |  53 ++++++++
 src/waffle/wayland/wayland_window.c                |   4 +-
 src/waffle/wayland/wayland_window.h                |   6 +-
 src/waffle/xegl/xegl_platform.c                    |   2 +-
 src/waffle/xegl/xegl_window.c                      |   2 +-
 src/waffle/xegl/xegl_window.h                      |   6 +-
 tests/functional/gl_basic_test.c                   |  17 +++
 34 files changed, 636 insertions(+), 52 deletions(-)
 rename src/waffle/egl/{wegl_window.c => wegl_surface.c} (55%)
 rename src/waffle/egl/{wegl_window.h => wegl_surface.h} (80%)
 create mode 100644 src/waffle/surfaceless_egl/sl_display.c
 create mode 100644 src/waffle/surfaceless_egl/sl_display.h
 create mode 100644 src/waffle/surfaceless_egl/sl_platform.c
 create mode 100644 src/waffle/surfaceless_egl/sl_platform.h
 create mode 100644 src/waffle/surfaceless_egl/sl_window.c
 create mode 100644 src/waffle/surfaceless_egl/sl_window.h

-- 
2.10.0

_______________________________________________
waffle mailing list
waffle@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/waffle

Reply via email to