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.roman...@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 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev