From 800816d70be50b0b04669a016288121e1b11f0c8 Mon Sep 17 00:00:00 2001 From: Eric Engestrom Date: Fri, 3 Apr 2020 12:29:04 +0200 Subject: [PATCH] egl/entrypoint-check: add check that GLVND and plain EGL have the same entrypoints Cc: mesa-stable Signed-off-by: Eric Engestrom Reviewed-by: Emil Velikov Part-of: --- src/egl/egl-entrypoint-check.py | 42 +++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/src/egl/egl-entrypoint-check.py b/src/egl/egl-entrypoint-check.py index 7cbb8a7708a..332578f44c2 100644 --- a/src/egl/egl-entrypoint-check.py +++ b/src/egl/egl-entrypoint-check.py @@ -1,11 +1,22 @@ #!/usr/bin/env python import argparse +from generate.eglFunctionList import EGL_FUNCTIONS as GLVND_ENTRYPOINTS + PREFIX = 'EGL_ENTRYPOINT(' SUFFIX = ')' +# These entrypoints should *not* be in the GLVND entrypoints +GLVND_EXCLUDED_ENTRYPOINTS = [ + # EGL_KHR_debug + 'eglDebugMessageControlKHR', + 'eglQueryDebugKHR', + 'eglLabelObjectKHR', + ] + + def check_entrypoint_sorted(entrypoints): print('Checking that EGL API entrypoints are sorted...') @@ -20,6 +31,33 @@ def check_entrypoint_sorted(entrypoints): print('All good :)') +def check_glvnd_entrypoints(egl_entrypoints, glvnd_entrypoints): + print('Checking the GLVND entrypoints against the plain EGL ones...') + success = True + + for egl_entrypoint in egl_entrypoints: + if egl_entrypoint in GLVND_EXCLUDED_ENTRYPOINTS: + continue + if egl_entrypoint not in glvnd_entrypoints: + print('ERROR: ' + egl_entrypoint + ' is missing from the GLVND entrypoints (src/egl/generate/eglFunctionList.py)') + success = False + + for glvnd_entrypoint in glvnd_entrypoints: + if glvnd_entrypoint not in egl_entrypoints: + print('ERROR: ' + glvnd_entrypoint + ' is missing from the plain EGL entrypoints (src/egl/main/eglentrypoint.h)') + success = False + + for glvnd_entrypoint in GLVND_EXCLUDED_ENTRYPOINTS: + if glvnd_entrypoint in glvnd_entrypoints: + print('ERROR: ' + glvnd_entrypoint + ' is should *not* be in the GLVND entrypoints (src/egl/generate/eglFunctionList.py)') + success = False + + if success: + print('All good :)') + else: + exit(1) + + def main(): parser = argparse.ArgumentParser() parser.add_argument('header') @@ -37,5 +75,9 @@ def main(): check_entrypoint_sorted(entrypoints) + glvnd_entrypoints = [x[0] for x in GLVND_ENTRYPOINTS] + + check_glvnd_entrypoints(entrypoints, glvnd_entrypoints) + if __name__ == '__main__': main() -- 2.30.2