diff --git a/src/mapi/glapi/gen/gl_XML.py b/src/mapi/glapi/gen/gl_XML.py index 478f82ca314..2854a9a5688 100644 --- a/src/mapi/glapi/gen/gl_XML.py +++ b/src/mapi/glapi/gen/gl_XML.py @@ -49,7 +49,7 @@ def parse_GL_API( file_name, factory = None ): # that are not part of the ABI. for func in api.functionIterateByCategory(): - if func.assign_offset: + if func.assign_offset and func.offset < 0: func.offset = api.next_offset; api.next_offset += 1 @@ -683,8 +683,12 @@ class gl_function( gl_item ): if name in static_data.offsets and static_data.offsets[name] <= static_data.MAX_OFFSETS: self.offset = static_data.offsets[name] + elif name in static_data.offsets and static_data.offsets[name] > static_data.MAX_OFFSETS: + self.offset = static_data.offsets[name] + self.assign_offset = True else: - self.offset = -1 + if self.exec_flavor != "skip": + raise RuntimeError("Entry-point %s is missing offset in static_data.py. Add one at the bottom of the list." % (name)) self.assign_offset = self.exec_flavor != "skip" or name in static_data.unused_functions if not self.name: diff --git a/src/mapi/glapi/gen/static_data.py b/src/mapi/glapi/gen/static_data.py index dc1926327da..5044e0f78cf 100644 --- a/src/mapi/glapi/gen/static_data.py +++ b/src/mapi/glapi/gen/static_data.py @@ -29,7 +29,7 @@ MAX_OFFSETS = 407 """Table of functions that have ABI-mandated offsets in the dispatch table. The first MAX_OFFSETS entries are required by indirect GLX. The rest are -required to preserve the glapi <> drivers ABI. This is to be addressed shortly. +required to preserve the glapi <> GL/GLES ABI. This is to be addressed shortly. This list will never change.""" offsets = {