Fix long standing bug that prevented newer drivers from working with

older libGL.  The data in extension_helper.h erroneous instructed
drivers to expect all functions with establised offsets, even those
not in the ABI, to have a specific offset allocated.  This is just
wrong.  A function is either in the ABI and has a set offset or a
function is not in the ABI and has a re-map offset.
This commit is contained in:
Ian Romanick
2006-08-11 23:56:37 +00:00
parent 56f349515c
commit 8fbe16d4dd
3 changed files with 537 additions and 530 deletions

View File

@@ -211,12 +211,17 @@ class PrintGlExtensionGlue(gl_XML.gl_print_base):
print 'static const struct dri_extension_function %s_functions[] = {' % (category)
for f in category_list[ category ]:
# A function either has an offset that is
# assigned by the ABI, or it has a remap
# index.
if any_entrypoints_in_abi(f, abi, api):
index_name = "-1"
offset = f.offset
else:
index_name = "%s_remap_index" % (f.name)
offset = -1
print ' { %s_names, %s, %d },' % (f.name, index_name, f.offset)
print ' { %s_names, %s, %d },' % (f.name, index_name, offset)
print ' { NULL, 0, 0 }'