[Mesa-dev] [PATCH 00/18] En route towards Khronos gl.xml

Emil Velikov emil.l.velikov at gmail.com
Wed Nov 21 12:03:57 UTC 2018


Hi all,

Recently Erik enabled NV_conditional_render for GLES, which highlighted
an existing issue in our generator scripts.

Namely: today we have a single static_data list for all of GL/ES1/ES2.
Thus as we expose an extention (as above) we en up statically exporting
the functions, if they're part of the GL ABI.

Having a look shows that we have:
 - a number of hacks in the ABI-check scripts
 - another hack in the ES2 generator script

Since, our python scripts are based off the custom XML files, I've
borrowed a couple of straight-forward script from GLVND.

A tweaks were needed, some of which I'll send back upstream.

With those in place, I've manually verified that the generated files do
not differ in any [functionally] meaningful way and gave the series a
quick piglit run.

Note: the "HACK" patches are sent for to make verification easier.
We'll have to drop 02/18, although I'm ambivalent wrt 05/18.

As a finale, I've removed the obvious ES* specific code.

If time permits, I'm hoping to continue until we're using only the
upstream XML file. In particular the following bits need work:
 - glapi and shared-glapi
 - indirect gl/glx
 - glGet and friends; needs extra data - upstream to Khronos
 - marshalling/glthread code; needs extra data - likely to stay local 
 - enum to string
 - others?

Any testing and review is greatly appreciated.

Thanks
Emil

Cc: Ian Romanick <ian.d.romanick at intel.com>

Emil Velikov (18):
  mapi: sort static entrypoints numerically
  HACK: glapi: print _glapi_table offsets to a file
  mapi: add all _glapi_table entrypoints to static_data.py
  mapi/new: import mapi scripts from glvnd
  HACK: mapi/new: sort by slot number
  mapi/new: use the static_data offsets in the new generator
  mapi/new: reinstate _NO_HIDDEN suffixes in the new generator
  mapi/new: don't print info we don't need for ES1/ES2
  mapi/new: fixup the GLDEBUGPROCKHR typedef to the non KHR one
  mapi/new: remove duplicate GLvoid/void substitution
  autotools: wire the new generator for es1 and es2
  meson: wire the new generator for es1 and es2
  scons: wire the new generator for es1 and es2
  mapi/es*api: remove GL_OES_EGL_image entrypoints
  mapi/es*api: remove GL_EXT_multi_draw_arrays entrypoints
  mapi/es2api: remove no longer present entrypoints
  mapi: remove old, unused ES* generator code
  mapi: remove machinery handling CSV files

 src/mapi/Makefile.am                |   25 +-
 src/mapi/es1api/ABI-check           |   10 +-
 src/mapi/es1api/meson.build         |    6 +-
 src/mapi/es2api/ABI-check           |   14 +-
 src/mapi/es2api/meson.build         |    6 +-
 src/mapi/glapi/gen/gl_XML.py        |   56 +-
 src/mapi/glapi/gen/gl_table.py      |   10 +-
 src/mapi/glapi/gen/meson.build      |    7 +
 src/mapi/glapi/gen/static_data.py   | 1029 ++++++++++++++++++++++++++-
 src/mapi/mapi_abi.py                |  138 +---
 src/mapi/meson.build                |    1 +
 src/mapi/new/genCommon.py           |  254 +++++++
 src/mapi/new/gen_gldispatch_mapi.py |  180 +++++
 src/mapi/shared-glapi/SConscript    |   28 +-
 14 files changed, 1521 insertions(+), 243 deletions(-)
 create mode 100644 src/mapi/new/genCommon.py
 create mode 100755 src/mapi/new/gen_gldispatch_mapi.py

-- 
2.19.1



More information about the mesa-dev mailing list