diff options
author | Ian Romanick <idr@us.ibm.com> | 2006-08-11 23:56:37 +0000 |
---|---|---|
committer | Ian Romanick <idr@us.ibm.com> | 2006-08-11 23:56:37 +0000 |
commit | 8fbe16d4dd0664f7766f5241c055efb582cc06e5 (patch) | |
tree | 8648d4740b823c3103ac66b90e9339a60b16862c /src/mesa/glapi | |
parent | 56f349515c75a93923255ba1eb7cdae67b432a53 (diff) |
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.
Diffstat (limited to 'src/mesa/glapi')
-rw-r--r-- | src/mesa/glapi/extension_helper.py | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/mesa/glapi/extension_helper.py b/src/mesa/glapi/extension_helper.py index a2a16a8b36..f7fa90c390 100644 --- a/src/mesa/glapi/extension_helper.py +++ b/src/mesa/glapi/extension_helper.py @@ -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 }' |