xserver: Branch 'input-hotplug' - 26 commits

Daniel Stone daniels at kemper.freedesktop.org
Thu Aug 24 13:35:32 PDT 2006


 GL/glx/Makefile.am                   |    3 
 GL/glx/g_disptab.c                   |  325 ----
 GL/glx/g_disptab.h                   |  100 -
 GL/glx/g_disptab_EXT.c               |   13 
 GL/glx/g_disptab_EXT.h               |    5 
 GL/glx/glxcmds.c                     |  350 +---
 GL/glx/glxcmdsswap.c                 |  509 +-----
 GL/glx/glxext.c                      |   39 
 GL/glx/glxext.h                      |    4 
 GL/glx/glxscreens.c                  |   24 
 GL/glx/glxserver.h                   |    8 
 GL/glx/indirect_dispatch.h           |  176 +-
 GL/glx/indirect_table.c              | 1517 ++++++++++++++++++++
 GL/glx/indirect_table.h              |  106 +
 GL/glx/indirect_util.c               |  112 +
 GL/glx/indirect_util.h               |   10 
 GL/glx/rensize.c                     |    2 
 GL/glx/rensizetab.c                  | 2552 -----------------------------------
 GL/glx/single2.c                     |   10 
 GL/glx/single2swap.c                 |   10 
 GL/glx/singlepix.c                   |    5 
 GL/glx/singlepixswap.c               |    5 
 GL/glx/xfont.c                       |    3 
 GL/symlink-mesa.sh                   |    2 
 config/config.c                      |   28 
 configure.ac                         |    6 
 dix/events.c                         |    6 
 hw/vfb/InitOutput.c                  |    3 
 hw/xfree86/common/xf86Config.c       |    9 
 hw/xfree86/common/xf86Cursor.c       |   36 
 hw/xfree86/common/xf86Init.c         |    4 
 hw/xfree86/common/xf86Privstr.h      |    1 
 hw/xfree86/doc/man/xorg.conf.man.pre |    4 
 hw/xnest/Args.c                      |    7 
 hw/xwin/winmultiwindowwndproc.c      |   20 
 hw/xwin/winshadgdi.c                 |    7 
 include/dix-config.h.in              |    3 
 xkb/xkbUtils.c                       |  155 +-
 38 files changed, 2408 insertions(+), 3771 deletions(-)

New commits:
diff-tree 3a36b0a24aa9e9e238faa7f00100f59800f5142b (from parents)
Merge: db1ab1bdb2f79eca593fe247056309a16ebd29c6 b879356ce96929d02bcb75b9aa24b17ac7e28125
Author: Daniel Stone <daniel at fooishbar.org>
Date:   Thu Aug 24 23:35:28 2006 +0300

    Merge branch 'master' of git+ssh://git.freedesktop.org/git/xorg/xserver into input-hotplug

diff-tree db1ab1bdb2f79eca593fe247056309a16ebd29c6 (from 5fb8d947bb88d715b9b236342885c445cb5a9387)
Author: Daniel Stone <daniel at fooishbar.org>
Date:   Thu Aug 24 23:33:59 2006 +0300

    XkbCopyKeymap: fix various range issues
    Fix a bunch of range issues caused by incorrect assumptions (e.g. that the
    design was at least halfway sensible), and copy types by hand, instead of
    just blindly memcpy()ing the lot, since it itself cleverly contains a ton
    of allocated pointers.

diff --git a/xkb/xkbUtils.c b/xkb/xkbUtils.c
index 74799e8..5f1176b 100644
--- a/xkb/xkbUtils.c
+++ b/xkb/xkbUtils.c
@@ -28,6 +28,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
 #include <dix-config.h>
 #endif
 
+#include "os.h"
 #include <stdio.h>
 #include <ctype.h>
 #include <math.h>
@@ -1009,16 +1010,17 @@ XkbCopyKeymap(XkbDescPtr src, XkbDescPtr
         if (src->map->syms) {
             if (src->map->size_syms != dst->map->size_syms) {
                 if (dst->map->syms)
-                    tmp = xrealloc(dst->map->syms, src->map->size_syms);
+                    tmp = xrealloc(dst->map->syms,
+                                   src->map->size_syms * sizeof(KeySym));
                 else
-                    tmp = xalloc(src->map->size_syms);
+                    tmp = xalloc(src->map->size_syms * sizeof(KeySym));
                 if (!tmp)
                     return FALSE;
                 dst->map->syms = tmp;
+
             }
-            memcpy(dst->map->syms, src->map->syms, src->map->size_syms);
-            memcpy(dst->map->key_sym_map, src->map->key_sym_map,
-                   src->map->size_syms);
+            memcpy(dst->map->syms, src->map->syms,
+                   src->map->size_syms * sizeof(KeySym));
         }
         else {
             if (dst->map->syms) {
@@ -1029,37 +1031,116 @@ XkbCopyKeymap(XkbDescPtr src, XkbDescPtr
         dst->map->num_syms = src->map->num_syms;
         dst->map->size_syms = src->map->size_syms;
 
-        if (src->map->types) {
-            if (src->map->size_types != dst->map->size_types) {
-                XkbKeyTypePtr stype = src->map->types;
-
-                if (dst->map->types)
-                    tmp = xrealloc(dst->map->types, src->map->size_types);
+        if (src->map->key_sym_map) {
+            if (src->max_key_code != dst->max_key_code) {
+                if (dst->map->key_sym_map)
+                    tmp = xrealloc(dst->map->key_sym_map,
+                                   (src->max_key_code + 1) *
+                                     sizeof(XkbSymMapRec));
                 else
-                    tmp = xalloc(src->map->size_types);
+                    tmp = xalloc((src->max_key_code + 1) *
+                                 sizeof(XkbSymMapRec));
+                if (!tmp)
+                    return FALSE;
+                dst->map->key_sym_map = tmp;
+            }
+            memcpy(dst->map->key_sym_map, src->map->key_sym_map,
+                   (src->max_key_code + 1) * sizeof(XkbSymMapRec));
+        }
+        else {
+            if (dst->map->key_sym_map) {
+                xfree(dst->map->key_sym_map);
+                dst->map->key_sym_map = NULL;
+            }
+        }
+
+        if (src->map->types) {
+            if (src->map->size_types > dst->map->size_types) {
+                if (dst->map->types) {
+                    tmp = xrealloc(dst->map->types,
+                                   src->map->size_types * sizeof(XkbKeyTypeRec));
+                    bzero(dst->map->types +
+                            (dst->map->size_types * sizeof(XkbKeyTypeRec)),
+                          (src->map->size_types - dst->map->size_types) *
+                            sizeof(XkbKeyTypeRec));
+                }
+                else {
+                    tmp = xcalloc(src->map->size_types, sizeof(XkbKeyTypeRec));
+                }
                 if (!tmp)
                     return FALSE;
                 dst->map->types = tmp;
             }
-            memcpy(dst->map->types, src->map->types, src->map->size_types);
+            else if (src->map->size_types < dst->map->size_types) {
+                if (dst->map->types) {
+                    for (i = src->map->num_types, dtype = (dst->map->types + i);
+                         i < dst->map->size_types; i++, dtype++) {
+                        if (dtype->level_names)
+                            xfree(dtype->level_names);
+                        dtype->level_names = NULL;
+                        dtype->num_levels = 0;
+                    }
+                }
+            }
 
             stype = src->map->types;
             dtype = dst->map->types;
             for (i = 0; i < dst->map->num_types; i++, dtype++, stype++) {
-                dtype->level_names = xalloc(dtype->num_levels * sizeof(Atom));
-                if (!dtype->level_names)
-                    continue; /* don't return FALSE here, try to whack all the
-                                 pointers we can, so we don't double-free when
-                                 going down. */
+                if (stype->num_levels != dtype->num_levels) {
+                    if (dtype->level_names)
+                        tmp = xrealloc(dtype->level_names,
+                                       stype->num_levels * sizeof(Atom));
+                    else
+                        tmp = xalloc(stype->num_levels * sizeof(Atom));
+                    if (!tmp)
+                        continue; /* don't return FALSE here, try to whack
+                                     all the pointers we can, so we don't
+                                     double-free when going down. */
+                    dtype->level_names = tmp;
+                    dtype->num_levels = stype->num_levels;
+                }
                 memcpy(dtype->level_names, stype->level_names,
-                       dtype->num_levels * sizeof(Atom));
+                       stype->num_levels * sizeof(Atom));
+
+                dtype->name = stype->name;
+                memcpy(&dtype->mods, &stype->mods, sizeof(XkbModsRec));
+
+                if (stype->map_count != dtype->map_count) {
+                    if (dtype->map)
+                        tmp = xrealloc(dtype->map,
+                                       stype->map_count *
+                                         sizeof(XkbKTMapEntryRec));
+                    else
+                        tmp = xalloc(stype->map_count *
+                                     sizeof(XkbKTMapEntryRec));
+                    if (!tmp)
+                        return FALSE;
+                    dtype->map = tmp;
+
+                    if (dtype->preserve)
+                        tmp = xrealloc(dtype->preserve,
+                                       stype->map_count * sizeof(XkbModsRec));
+                    else
+                        tmp = xalloc(stype->map_count * sizeof(XkbModsRec));
+                    if (!tmp)
+                        return FALSE;
+                    dtype->preserve = tmp;
+                }
+                dtype->map_count = stype->map_count;
+                memcpy(dtype->map, stype->map, stype->map_count *
+                                               sizeof(XkbKTMapEntryRec));
+                memcpy(dtype->preserve, stype->preserve, stype->map_count *
+                                                         sizeof(XkbModsRec));
             }
         }
         else {
             if (dst->map->types) {
                 for (i = 0, dtype = dst->map->types; i < dst->map->num_types;
-                     i++, dtype++)
+                     i++, dtype++) {
                     xfree(dtype->level_names);
+                    xfree(dtype->map);
+                    xfree(dtype->preserve);
+                }
                 xfree(dst->map->types);
                 dst->map->types = NULL;
             }
@@ -1123,15 +1204,16 @@ XkbCopyKeymap(XkbDescPtr src, XkbDescPtr
         if (src->server->acts) {
             if (src->server->size_acts != dst->server->size_acts) {
                 if (dst->server->acts)
-                    tmp = xrealloc(dst->server->acts, src->server->size_acts);
+                    tmp = xrealloc(dst->server->acts,
+                                   src->server->size_acts * sizeof(XkbAction));
                 else
-                    tmp = xalloc(src->server->size_acts);
+                    tmp = xalloc(src->server->size_acts * sizeof(XkbAction));
                 if (!tmp)
                     return FALSE;
                 dst->server->acts = tmp;
             }
             memcpy(dst->server->acts, src->server->acts,
-                   src->server->size_acts);
+                   src->server->size_acts * sizeof(XkbAction));
         }
         else {
             if (dst->server->acts) {
@@ -1140,19 +1222,23 @@ XkbCopyKeymap(XkbDescPtr src, XkbDescPtr
             }
         }
        dst->server->size_acts = src->server->size_acts;
+       dst->server->num_acts = src->server->num_acts;
 
         if (src->server->key_acts) {
             if (src->max_key_code != dst->max_key_code) {
                 if (dst->server->key_acts)
-                    tmp = xrealloc(dst->server->key_acts, src->max_key_code + 1);
+                    tmp = xrealloc(dst->server->key_acts,
+                                   (src->max_key_code + 1) *
+                                     sizeof(unsigned short));
                 else
-                    tmp = xalloc(src->max_key_code + 1);
+                    tmp = xalloc((src->max_key_code + 1) *
+                                 sizeof(unsigned short));
                 if (!tmp)
                     return FALSE;
                 dst->server->key_acts = tmp;
             }
             memcpy(dst->server->key_acts, src->server->key_acts,
-                   src->max_key_code + 1);
+                   (src->max_key_code + 1) * sizeof(unsigned short));
         }
         else {
             if (dst->server->key_acts) {
@@ -1188,15 +1274,17 @@ XkbCopyKeymap(XkbDescPtr src, XkbDescPtr
             if (src->max_key_code != dst->max_key_code) {
                 if (dst->server->vmodmap)
                     tmp = xrealloc(dst->server->vmodmap,
-                                   src->max_key_code + 1);
+                                   (src->max_key_code + 1) *
+                                   sizeof(unsigned short));
                 else
-                    tmp = xalloc(src->max_key_code + 1);
+                    tmp = xalloc((src->max_key_code + 1) *
+                                 sizeof(unsigned short));
                 if (!tmp)
                     return FALSE;
                 dst->server->vmodmap = tmp;
             }
             memcpy(dst->server->vmodmap, src->server->vmodmap,
-                   src->max_key_code + 1);
+                   (src->max_key_code + 1) * sizeof(unsigned short));
         }
         else {
             if (dst->server->vmodmap) {
@@ -1324,20 +1412,20 @@ XkbCopyKeymap(XkbDescPtr src, XkbDescPtr
     /* compat */
     if (src->compat) {
         if (src->compat->sym_interpret) {
-            if (src->compat->num_si != dst->compat->num_si) {
+            if (src->compat->size_si != dst->compat->size_si) {
                 if (dst->compat->sym_interpret)
                     tmp = xrealloc(dst->compat->sym_interpret,
-                                   src->compat->num_si *
+                                   src->compat->size_si *
                                      sizeof(XkbSymInterpretRec));
                 else
-                    tmp = xalloc(src->compat->num_si *
+                    tmp = xalloc(src->compat->size_si *
                                  sizeof(XkbSymInterpretRec));
                 if (!tmp)
                     return FALSE;
                 dst->compat->sym_interpret = tmp;
             }
             memcpy(dst->compat->sym_interpret, src->compat->sym_interpret,
-                   src->compat->num_si * sizeof(XkbSymInterpretRec));
+                   src->compat->size_si * sizeof(XkbSymInterpretRec));
         }
         else {
             if (dst->compat->sym_interpret) {
@@ -1346,6 +1434,7 @@ XkbCopyKeymap(XkbDescPtr src, XkbDescPtr
             }
         }
         dst->compat->num_si = src->compat->num_si;
+        dst->compat->size_si = src->compat->size_si;
 
         memcpy(dst->compat->groups, src->compat->groups,
                XkbNumKbdGroups * sizeof(XkbModsRec));
diff-tree 5fb8d947bb88d715b9b236342885c445cb5a9387 (from 4e37c07ba6e5d299d4f8922dc6cf054c814f7baf)
Author: Daniel Stone <daniel at fooishbar.org>
Date:   Thu Aug 24 23:16:43 2006 +0300

    configure.ac: more thinkos
    Fix auto tests for vidmode and xf86dga.  I win at life.

diff --git a/configure.ac b/configure.ac
index 1c30a22..360f61c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1066,7 +1066,7 @@ if test "x$XORG" = xyes -o "x$XGL" = xye
 	XORG_LIBS="$COMPOSITE_LIB $MI_LIB $FIXES_LIB $XEXTXORG_LIB $GLX_LIBS $RENDER_LIB $RANDR_LIB $DAMAGE_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB $XPSTUBS_LIB $OS_LIB"
 
 	if test "x$DGA" = xauto; then
-		PKG_CHECK_MODULES(DGA, dgaproto, [DGA=yes], [DGA=no])
+		PKG_CHECK_MODULES(DGA, xf86dgaproto, [DGA=yes], [DGA=no])
 	fi
 	if test "x$DGA" = xyes; then
 		XORG_MODULES="$XORG_MODULES xf86dgaproto"
@@ -1083,7 +1083,7 @@ if test "x$XORG" = xyes -o "x$XGL" = xye
 	fi
 
 	if test "x$XF86VIDMODE" = xauto; then
-		PKG_CHECK_MODULES(XF86VIDMODE, xf86vidmode, [XF86VIDMODE=yes], [XF86VIDMODE=no])
+		PKG_CHECK_MODULES(XF86VIDMODE, xf86vidmodeproto, [XF86VIDMODE=yes], [XF86VIDMODE=no])
 	fi
 	if test "x$XF86VIDMODE" = xyes; then
 		XORG_MODULES="$XORG_MODULES xf86vidmodeproto"
diff-tree 4e37c07ba6e5d299d4f8922dc6cf054c814f7baf (from 866ca1f929c95689bac9f0a0b3478f7b4d77214b)
Author: Daniel Stone <daniel at fooishbar.org>
Date:   Thu Aug 24 23:16:17 2006 +0300

    config: clean up debugging messages, make failure to acquire name fatal
    Bomb with FatalError when we can't acquire the bus and name.
    Clean up a bunch of debugging ErrorFs to be hidden behind #ifdef DEBUG.

diff --git a/config/config.c b/config/config.c
index d4cf233..d980f76 100644
--- a/config/config.c
+++ b/config/config.c
@@ -60,6 +60,7 @@ configMessage(DBusConnection *connection
     int deviceid = -1;
     DeviceIntPtr pDev = NULL;
 
+#ifdef DEBUG
     ErrorF("[dbus] new message!\n");
     ErrorF("       source: %s\n", dbus_message_get_sender(message));
     ErrorF("       destination: %s\n", dbus_message_get_destination(message));
@@ -70,6 +71,7 @@ configMessage(DBusConnection *connection
     ErrorF("       method call? %s\n", (dbus_message_get_type(message) ==
                                          DBUS_MESSAGE_TYPE_METHOD_CALL) ?
                                         "yes" : "no");
+#endif
 
     dbus_error_init(&error);
 
@@ -81,7 +83,9 @@ configMessage(DBusConnection *connection
             return DBUS_HANDLER_RESULT_NEED_MEMORY; /* ?? */
         }
         if (strcmp(dbus_message_get_member(message), "add") == 0) {
+#ifdef DEBUG
             ErrorF("       we want to add a device!\n");
+#endif
             /* signature should be [ss][ss]... */
             while (dbus_message_iter_get_arg_type(&iter) == DBUS_TYPE_ARRAY) {
                 option = (InputOption *)xcalloc(sizeof(InputOption), 1);
@@ -160,7 +164,9 @@ configMessage(DBusConnection *connection
             return DBUS_HANDLER_RESULT_HANDLED;
         }
         else if (strcmp(dbus_message_get_member(message), "remove") == 0) {
+#ifdef DEBUG
             ErrorF("        we want to remove a device!\n");
+#endif
             if (!dbus_message_get_args(message, &error, DBUS_TYPE_INT32,
                                        &deviceid, DBUS_TYPE_INVALID)) {
                 ErrorF("couldn't get args: %s %s\n", error.name, error.message);
@@ -172,7 +178,6 @@ configMessage(DBusConnection *connection
                 dbus_error_free(&error);
                 return DBUS_HANDLER_RESULT_HANDLED;
             }
-            ErrorF("pDev is %p\n", pDev);
             /* Call PIE here so we don't try to dereference a device that's
              * already been removed.  Technically there's still a small race
              * here, so we should ensure that SIGIO is blocked. */
@@ -200,56 +205,56 @@ configInitialise()
     dbus_error_init(&error);
     bus = dbus_bus_get(DBUS_BUS_SYSTEM, &error);
     if (!bus || dbus_error_is_set(&error)) {
-        ErrorF("[dbus] some kind of error occurred: %s (%s)\n", error.name,
-                error.message);
         dbus_error_free(&error);
+        FatalError("[dbus] some kind of error occurred: %s (%s)\n", error.name,
+                   error.message);
         return;
     }
 
     if (!dbus_connection_get_unix_fd(bus, &configfd)) {
-        ErrorF("[dbus] couldn't get fd for bus\n");
         dbus_connection_close(bus);
         configfd = -1;
+        FatalError("[dbus] couldn't get fd for bus\n");
         return;
     }
 
     snprintf(busname, sizeof(busname), "org.x.config.display%d", atoi(display));
     if (!dbus_bus_request_name(bus, busname, 0, &error) ||
         dbus_error_is_set(&error)) {
-        ErrorF("[dbus] couldn't take over org.x.config: %s (%s)\n",
-               error.name, error.message);
         dbus_error_free(&error);
         dbus_connection_close(bus);
         configfd = -1;
+        FatalError("[dbus] couldn't take over org.x.config: %s (%s)\n",
+                   error.name, error.message);
         return;
     }
 
     /* blocks until we get a reply. */
     dbus_bus_add_match(bus, MATCH_RULE, &error);
     if (dbus_error_is_set(&error)) {
-        ErrorF("[dbus] couldn't match X.Org rule: %s (%s)\n", error.name,
-               error.message);
         dbus_error_free(&error);
         dbus_bus_release_name(bus, busname, &error);
         dbus_connection_close(bus);
         configfd = -1;
+        FatalError("[dbus] couldn't match X.Org rule: %s (%s)\n", error.name,
+                   error.message);
         return;
     }
 
     vtable.message_function = configMessage;
     snprintf(busobject, sizeof(busobject), "/org/x/config/%d", atoi(display));
     if (!dbus_connection_register_object_path(bus, busobject, &vtable, NULL)) {
-        ErrorF("[dbus] couldn't register object path\n");
         configfd = -1;
         dbus_bus_release_name(bus, busname, &error);
         dbus_bus_remove_match(bus, MATCH_RULE, &error);
         dbus_connection_close(bus);
-        configfd = -1;
+        FatalError("[dbus] couldn't register object path\n");
         return;
     }
+#ifdef DEBUG
     ErrorF("[dbus] registered object path %s\n", busobject);
-
     ErrorF("[dbus] registered and listening\n");
+#endif
 
     dbus_error_free(&error);
 
@@ -265,7 +270,6 @@ configFini()
 
     if (configConnection) {
         dbus_error_init(&error);
-        ErrorF("configFini being called\n");
         dbus_bus_remove_match(configConnection, MATCH_RULE, &error);
         dbus_bus_release_name(configConnection, busname, &error);
         dbus_connection_close(configConnection);
diff-tree b879356ce96929d02bcb75b9aa24b17ac7e28125 (from 4ed311cf1c29090c53e474a3001c5702ff8409df)
Author: Adam Jackson <ajax at benzedrine.nwnk.net>
Date:   Thu Aug 24 15:50:15 2006 -0400

    More #ifdef USE_DEPRECATED_KEYBOARD_DRIVER.

diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c
index cd072f5..408536d 100644
--- a/hw/xfree86/common/xf86Init.c
+++ b/hw/xfree86/common/xf86Init.c
@@ -135,7 +135,8 @@ static int numFormats = 6;
 #endif
 static Bool formatsDone = FALSE;
 
-InputDriverRec XF86KEYBOARD = {
+#ifdef USE_DEPRECATED_KEYBOARD_DRIVER
+static InputDriverRec XF86KEYBOARD = {
 	1,
 	"keyboard",
 	NULL,
@@ -144,6 +145,7 @@ InputDriverRec XF86KEYBOARD = {
 	NULL,
 	0
 };
+#endif
 
 static Bool
 xf86CreateRootWindow(WindowPtr pWin)
diff-tree 4ed311cf1c29090c53e474a3001c5702ff8409df (from parents)
Merge: 73e58adda96c1d1b5176d819107faa7697c3eb94 b29b236d88789fd45d823a55dbedb393bb134c5b
Author: Matthias Hopf <mhopf at suse.de>
Date:   Thu Aug 24 20:17:10 2006 +0200

    Merge branch 'master' of git://anongit.freedesktop.org/git/xorg/xserver

diff-tree b29b236d88789fd45d823a55dbedb393bb134c5b (from ce4a0a4ddafd3833d7025f83ed3729915c8aba70)
Author: Lukáš Turek <8an at centrum.cz>
Date:   Thu Aug 24 15:57:09 2006 +0200

    Adapt to Mesa header name change.

diff --git a/GL/symlink-mesa.sh b/GL/symlink-mesa.sh
index 32f839a..7b5ed5c 100755
--- a/GL/symlink-mesa.sh
+++ b/GL/symlink-mesa.sh
@@ -468,7 +468,7 @@ symlink_mesa_shader_slang_library() {
     action slang_core_gc.h
     action slang_fragment_builtin_gc.h
     action slang_shader_syn.h
-    action slang_version_syn.h
+    action slang_pp_version_syn.h
     action slang_vertex_builtin_gc.h
 }        
 
diff-tree ce4a0a4ddafd3833d7025f83ed3729915c8aba70 (from 67bd672c880869ef625ae0c0163c3ec1eba46abf)
Author: Alan Hourihane <alanh at fairlite.demon.co.uk>
Date:   Thu Aug 24 13:56:22 2006 +0100

    Apply patch in bug #7919, blit improvements in
    multiwindow mode for Xming/CygwinX

diff --git a/hw/xwin/winmultiwindowwndproc.c b/hw/xwin/winmultiwindowwndproc.c
index e359744..0df896d 100644
--- a/hw/xwin/winmultiwindowwndproc.c
+++ b/hw/xwin/winmultiwindowwndproc.c
@@ -304,7 +304,6 @@ winTopLevelWindowProc (HWND hwnd, UINT m
   winScreenInfo		*s_pScreenInfo = NULL;
   HWND			hwndScreen = NULL;
   DrawablePtr		pDraw = NULL;
-  int		        iX, iY, iWidth, iHeight, iBorder;
   winWMMessageRec	wmMsg;
   Bool                  fWMMsgInitialized = FALSE;
   static Bool		s_fTracking = FALSE;
@@ -442,20 +441,19 @@ winTopLevelWindowProc (HWND hwnd, UINT m
 
       /* BeginPaint gives us an hdc that clips to the invalidated region */
       hdcUpdate = BeginPaint (hwnd, &ps);
-
-      /* Get the position and dimensions of the window */
-      iBorder = wBorderWidth (pWin);
-      iX = pWin->drawable.x;
-      iY = pWin->drawable.y;
-      iWidth = pWin->drawable.width;
-      iHeight = pWin->drawable.height;
+      /* Avoid the BitBlt's if the PAINTSTRUCT is bogus */
+      if (ps.rcPaint.right==0 && ps.rcPaint.bottom==0 && ps.rcPaint.left==0 && ps.rcPaint.top==0)
+      {
+	EndPaint (hwndScreen, &ps);
+	return 0;
+      }
 
       /* Try to copy from the shadow buffer */
       if (!BitBlt (hdcUpdate,
-		   0, 0,
-		   iWidth, iHeight,
+		   ps.rcPaint.left, ps.rcPaint.top,
+		   ps.rcPaint.right - ps.rcPaint.left, ps.rcPaint.bottom - ps.rcPaint.top,
 		   s_pScreenPriv->hdcShadow,
-		   iX, iY,
+		   ps.rcPaint.left + pWin->drawable.x, ps.rcPaint.top + pWin->drawable.y,
 		   SRCCOPY))
 	{
 	  LPVOID lpMsgBuf;
diff --git a/hw/xwin/winshadgdi.c b/hw/xwin/winshadgdi.c
index ba98192..04cc2f7 100644
--- a/hw/xwin/winshadgdi.c
+++ b/hw/xwin/winshadgdi.c
@@ -540,8 +540,9 @@ winShadowUpdateGDI (ScreenPtr pScreen, 
    * handle large regions by creating a clipping region and 
    * doing a single blit constrained to that clipping region.
    */
-  if (pScreenInfo->dwClipUpdatesNBoxes == 0
-      || dwBox < pScreenInfo->dwClipUpdatesNBoxes)
+  if (!pScreenInfo->fMultiWindow &&
+      (pScreenInfo->dwClipUpdatesNBoxes == 0 ||
+      dwBox < pScreenInfo->dwClipUpdatesNBoxes))
     {
       /* Loop through all boxes in the damaged region */
       while (dwBox--)
@@ -566,7 +567,7 @@ winShadowUpdateGDI (ScreenPtr pScreen, 
 	  ++pBox;
 	}
     }
-  else
+  else if (!pScreenInfo->fMultiWindow)
     {
       /* Compute a GDI region from the damaged region */
       hrgnCombined = CreateRectRgn (pBox->x1, pBox->y1, pBox->x2, pBox->y2);
diff-tree 866ca1f929c95689bac9f0a0b3478f7b4d77214b (from 2b06c69c8feaf3bdc065635ee711efa45b3033b3)
Author: Daniel Stone <daniel at fooishbar.org>
Date:   Thu Aug 24 15:46:44 2006 +0300

    configure.ac: fix XF86VidMode test

diff --git a/configure.ac b/configure.ac
index 19ef8d1..1c30a22 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1082,8 +1082,8 @@ if test "x$XORG" = xyes -o "x$XGL" = xye
 		AC_DEFINE(XF86MISC, 1, [Support XFree86 miscellaneous extensions])
 	fi
 
-	if test "x$XF86VIDMOE" = xauto; then
-		PKG_CHECK_MODULES(XF86VIDMODE, xf86vidmode, [DGA=yes], [DGA=no])
+	if test "x$XF86VIDMODE" = xauto; then
+		PKG_CHECK_MODULES(XF86VIDMODE, xf86vidmode, [XF86VIDMODE=yes], [XF86VIDMODE=no])
 	fi
 	if test "x$XF86VIDMODE" = xyes; then
 		XORG_MODULES="$XORG_MODULES xf86vidmodeproto"
diff-tree 2b06c69c8feaf3bdc065635ee711efa45b3033b3 (from 4adf9af313c9f63b6ad734e174efe1d36ddb5813)
Author: Daniel Stone <daniel at fooishbar.org>
Date:   Thu Aug 24 14:51:26 2006 +0300

    GKVE: pass correct arguments to XkbCopyKeymap
    Fix horrendous thinko.  Indicators now work perfectly.

diff --git a/dix/events.c b/dix/events.c
index 6372a20..581fa08 100644
--- a/dix/events.c
+++ b/dix/events.c
@@ -4651,7 +4651,8 @@ int GetKeyboardValuatorEvents(xEvent *ev
                               int key_code, int num_valuators,
                               int *valuators) {
     int numEvents = 0, ms = 0, first_valuator = 0;
-    KeySym sym = pDev->key->curKeySyms.map[key_code * pDev->key->curKeySyms.mapWidth];
+    KeySym sym = pDev->key->curKeySyms.map[key_code *
+                                           pDev->key->curKeySyms.mapWidth];
     deviceKeyButtonPointer *kbp = NULL;
     deviceValuator *xv = NULL;
     KeyClassPtr ckeyc;
@@ -4778,7 +4779,8 @@ int GetKeyboardValuatorEvents(xEvent *ev
 #ifdef XKB
             if (!noXkbExtension && pDev->key->xkbInfo &&
                 pDev->key->xkbInfo->desc) {
-                if (!XkbCopyKeymap(pDev->key->xkbInfo, ckeyc->xkbInfo, True))
+                if (!XkbCopyKeymap(pDev->key->xkbInfo->desc,
+                                   ckeyc->xkbInfo->desc, True))
                     FatalError("Couldn't pivot keymap from device to core!\n");
             }
 #endif
diff-tree 4adf9af313c9f63b6ad734e174efe1d36ddb5813 (from parents)
Merge: 33af05d58f1f4f021036e9ce4b60fd76dbaebe73 67bd672c880869ef625ae0c0163c3ec1eba46abf
Author: Daniel Stone <daniel at fooishbar.org>
Date:   Thu Aug 24 10:59:33 2006 +0300

    Merge branch 'master' into input-hotplug

diff-tree 67bd672c880869ef625ae0c0163c3ec1eba46abf (from 733c4beb16c2c4ad9e9a4ea9a85b09fc5062a775)
Author: Alan Hourihane <alanh at fairlite.demon.co.uk>
Date:   Thu Aug 24 08:47:06 2006 +0100

    Fix typo

diff --git a/GL/glx/glxscreens.c b/GL/glx/glxscreens.c
index 865fcba..40de9ee 100644
--- a/GL/glx/glxscreens.c
+++ b/GL/glx/glxscreens.c
@@ -78,7 +78,7 @@ static const char GLServerExtensions[] =
 			"GL_EXT_copy_texture "
 			"GL_EXT_draw_range_elements "
 			"GL_EXT_fog_coord "
-			"GL_EXT_framebuffe_object "
+			"GL_EXT_framebuffer_object "
 			"GL_EXT_multi_draw_arrays "
 			"GL_EXT_packed_pixels "
 			"GL_EXT_point_parameters "
diff-tree 733c4beb16c2c4ad9e9a4ea9a85b09fc5062a775 (from b983773d446cef6a0948ca264ed48126e404ae9a)
Author: David Nusinow <dnusinow at debian.org>
Date:   Wed Aug 23 22:39:42 2006 +0000

    Add xorg.conf IgnoreABI option which does the same thing as -ignoreABI

diff --git a/hw/xfree86/common/xf86Config.c b/hw/xfree86/common/xf86Config.c
index 4d933aa..87b8a0b 100644
--- a/hw/xfree86/common/xf86Config.c
+++ b/hw/xfree86/common/xf86Config.c
@@ -761,7 +761,8 @@ typedef enum {
     FLAG_RENDER_COLORMAP_MODE,
     FLAG_HANDLE_SPECIAL_KEYS,
     FLAG_RANDR,
-    FLAG_AIGLX
+    FLAG_AIGLX,
+    FLAG_IGNORE_ABI
 } FlagValues;
    
 static OptionInfoRec FlagOptions[] = {
@@ -833,6 +834,8 @@ static OptionInfoRec FlagOptions[] = {
 	{0}, FALSE },
   { FLAG_AIGLX,			"AIGLX",			OPTV_BOOLEAN,
 	{0}, FALSE },
+  { FLAG_IGNORE_ABI,			"IgnoreABI",			OPTV_BOOLEAN,
+	{0}, FALSE },
   { -1,				NULL,				OPTV_NONE,
 	{0}, FALSE },
 };
@@ -891,6 +894,10 @@ configServerFlags(XF86ConfFlagsPtr flags
 		      &(xf86Info.grabInfo.allowDeactivate));
     xf86GetOptValBool(FlagOptions, FLAG_ALLOW_CLOSEDOWN_GRABS,
 		      &(xf86Info.grabInfo.allowClosedown));
+    xf86GetOptValBool(FlagOptions, FLAG_IGNORE_ABI, &xf86Info.ignoreABI);
+    if (&xf86Info.ignoreABI) {
+	    xf86Msg(X_CONFIG, "Ignoring ABI Version\n");
+    }
 
     /*
      * Set things up based on the config file information.  Some of these
diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c
index d045c06..cd072f5 100644
--- a/hw/xfree86/common/xf86Init.c
+++ b/hw/xfree86/common/xf86Init.c
@@ -331,6 +331,10 @@ InitOutput(ScreenInfo *pScreenInfo, int 
     /* Tell the loader the default module search path */
     LoaderSetPath(xf86ModulePath);
 
+    if (xf86Info.ignoreABI) {
+        LoaderSetOptions(LDR_OPT_ABI_MISMATCH_NONFATAL);
+    }
+
 #ifdef TESTING
     {
 	char **list, **l;
diff --git a/hw/xfree86/common/xf86Privstr.h b/hw/xfree86/common/xf86Privstr.h
index a01b07f..67d4304 100644
--- a/hw/xfree86/common/xf86Privstr.h
+++ b/hw/xfree86/common/xf86Privstr.h
@@ -166,6 +166,7 @@ typedef struct {
     MessageType		randRFrom;
     Bool		aiglx;
     MessageType		aiglxFrom;
+    Bool        ignoreABI;
     struct {
 	Bool		disabled;		/* enable/disable deactivating
 						 * grabs or closing the
diff --git a/hw/xfree86/doc/man/xorg.conf.man.pre b/hw/xfree86/doc/man/xorg.conf.man.pre
index 3340af0..e94804c 100644
--- a/hw/xfree86/doc/man/xorg.conf.man.pre
+++ b/hw/xfree86/doc/man/xorg.conf.man.pre
@@ -605,6 +605,10 @@ the builtin handler will be used.
 .TP 7
 .BI "Option \*qAIGLX\*q \*q" boolean \*q
 enable or disable AIGLX. AIGLX is enabled by default.
+.TP 7
+.BI "Option \*qIgnoreABI\*q \*q" boolean \*q
+Allow modules built for a different, potentially incompatible version of
+the X server to load. Disabled by default.
 .SH MODULE SECTION
 The
 .B Module
diff-tree b983773d446cef6a0948ca264ed48126e404ae9a (from parents)
Merge: 0623d3643fc28ebc514b2ca872c985d0cf0c753a d9a86566c21afd7985673f3ed851b055d9dac46f
Author: Ian Romanick <idr at umwelt.(none)>
Date:   Wed Aug 23 17:16:50 2006 -0700

    Merge branch 'master' of git+ssh://git.freedesktop.org/git/xorg/xserver

diff-tree 0623d3643fc28ebc514b2ca872c985d0cf0c753a (from 5d2caacff570dd68bb3fb05e776e02515b2a9da0)
Author: Ian Romanick <idr at umwelt.(none)>
Date:   Wed Aug 23 17:16:02 2006 -0700

    Fix the sorting of the extension string.  Add a few extensions that
    are supported by the new code.  A few of these were actually supported
    before but weren't advertised.

diff --git a/GL/glx/glxscreens.c b/GL/glx/glxscreens.c
index e388fce..865fcba 100644
--- a/GL/glx/glxscreens.c
+++ b/GL/glx/glxscreens.c
@@ -48,8 +48,11 @@
 const char GLServerVersion[] = "1.2";
 static const char GLServerExtensions[] = 
 			"GL_ARB_depth_texture "
+			"GL_ARB_draw_buffers "
 			"GL_ARB_imaging "
+			"GL_ARB_multisample "
 			"GL_ARB_multitexture "
+			"GL_ARB_occlusion_query "
 			"GL_ARB_point_parameters "
 			"GL_ARB_point_sprite "
 			"GL_ARB_shadow "
@@ -61,9 +64,9 @@ static const char GLServerExtensions[] =
 			"GL_ARB_texture_env_crossbar "
 			"GL_ARB_texture_env_dot3 "
 			"GL_ARB_texture_mirrored_repeat "
+			"GL_ARB_texture_non_power_of_two "
 			"GL_ARB_transpose_matrix "
 			"GL_ARB_window_pos "
-			"GL_ARB_texture_non_power_of_two "
 			"GL_EXT_abgr "
 			"GL_EXT_bgra "
  			"GL_EXT_blend_color "
@@ -75,8 +78,10 @@ static const char GLServerExtensions[] =
 			"GL_EXT_copy_texture "
 			"GL_EXT_draw_range_elements "
 			"GL_EXT_fog_coord "
+			"GL_EXT_framebuffe_object "
 			"GL_EXT_multi_draw_arrays "
 			"GL_EXT_packed_pixels "
+			"GL_EXT_point_parameters "
 			"GL_EXT_polygon_offset "
 			"GL_EXT_rescale_normal "
 			"GL_EXT_secondary_color "
@@ -93,29 +98,40 @@ static const char GLServerExtensions[] =
  			"GL_EXT_texture_env_dot3 "
 			"GL_EXT_texture_lod "
  			"GL_EXT_texture_lod_bias "
+ 			"GL_EXT_texture_mirror_clamp "
 			"GL_EXT_texture_object "
 			"GL_EXT_texture_rectangle "
 			"GL_EXT_vertex_array "
-			"GL_EXT_framebuffer_object "
 			"GL_APPLE_packed_pixels "
-			"GL_ATI_texture_mirror_once "
+			"GL_ATI_draw_buffers "
 			"GL_ATI_texture_env_combine3 "
+			"GL_ATI_texture_mirror_once "
  			"GL_HP_occlusion_test "
 			"GL_IBM_texture_mirrored_repeat "
+			"GL_INGR_blend_func_separate "
 			"GL_MESA_pack_invert "
 			"GL_MESA_ycbcr_texture "
 			"GL_NV_blend_square "
+			"GL_NV_depth_clamp "
+			"GL_NV_fog_distance "
+			"GL_NV_light_max_exponent "
+			"GL_NV_multisample_filter_hint "
 			"GL_NV_point_sprite "
 			"GL_NV_texgen_reflection "
-			"GL_NV_texture_rectangle "
 			"GL_NV_texture_env_combine4 "
+			"GL_NV_texture_expand_normal "
+			"GL_NV_texture_rectangle "
+			"GL_SGI_color_matrix "
 			"GL_SGIS_generate_mipmap "
+			"GL_SGIS_multisample "
+			"GL_SGIS_point_parameters "
 			"GL_SGIS_texture_border_clamp "
 			"GL_SGIS_texture_edge_clamp "
 			"GL_SGIS_texture_lod "
 			"GL_SGIX_depth_texture "
 			"GL_SGIX_shadow "
 			"GL_SGIX_shadow_ambient "
+			"GL_SUN_slice_accum "
 			;
 
 /*
diff-tree 5d2caacff570dd68bb3fb05e776e02515b2a9da0 (from 866bb3f34046045c9fa0744db1d76e035b3da9c7)
Author: Ian Romanick <idr at umwelt.(none)>
Date:   Wed Aug 23 16:47:00 2006 -0700

    Refector __glXDisp_Render and __glXDispSwap_Render to DoRender.
    Refector __glXDisp_RenderLarge and __glXDispSwap_RenderLarge to
    DoRenderLarge.

diff --git a/GL/glx/glxcmds.c b/GL/glx/glxcmds.c
index e16087a..01e8ffa 100644
--- a/GL/glx/glxcmds.c
+++ b/GL/glx/glxcmds.c
@@ -1717,10 +1717,7 @@ int __glXDisp_GetDrawableAttributes(__GL
 ** client library to send batches of GL rendering commands.
 */
 
-/*
-** Execute all the drawing commands in a request.
-*/
-int __glXDisp_Render(__GLXclientState *cl, GLbyte *pc)
+int DoRender(__GLXclientState *cl, GLbyte *pc, int do_swap)
 {
     xGLXRenderReq *req;
     ClientPtr client= cl->client;
@@ -1729,14 +1726,15 @@ int __glXDisp_Render(__GLXclientState *c
     CARD16 opcode;
     __GLXrenderHeader *hdr;
     __GLXcontext *glxc;
+    __GLX_DECLARE_SWAP_VARIABLES;
 
-    /*
-    ** NOTE: much of this code also appears in the byteswapping version of this
-    ** routine, __glXDisp_SwapRender().  Any changes made here should also be
-    ** duplicated there.
-    */
     
     req = (xGLXRenderReq *) pc;
+    if (do_swap) {
+	__GLX_SWAP_SHORT(&req->length);
+	__GLX_SWAP_INT(&req->contextTag);
+    }
+
     glxc = __glXForceCurrent(cl, req->contextTag, &error);
     if (!glxc) {
 	return error;
@@ -1756,6 +1754,10 @@ int __glXDisp_Render(__GLXclientState *c
 	** Also, each command must be word aligned.
 	*/
 	hdr = (__GLXrenderHeader *) pc;
+	if (do_swap) {
+	    __GLX_SWAP_SHORT(&hdr->length);
+	    __GLX_SWAP_SHORT(&hdr->opcode);
+	}
 	cmdlen = hdr->length;
 	opcode = hdr->opcode;
 
@@ -1764,7 +1766,7 @@ int __glXDisp_Render(__GLXclientState *c
 	*/
 	err = __glXGetProtocolSizeData(& Render_dispatch_info, opcode, & entry);
 	proc = (__GLXdispatchRenderProcPtr)
-	  __glXGetProtocolDecodeFunction(& Render_dispatch_info, opcode, 0);
+	  __glXGetProtocolDecodeFunction(& Render_dispatch_info, opcode, do_swap);
 
 	if ((err < 0) || (proc == NULL)) {
 	    client->errorValue = commandsDone;
@@ -1773,7 +1775,7 @@ int __glXDisp_Render(__GLXclientState *c
 
         if (entry.varsize) {
             /* variable size command */
-            extra = (*entry.varsize)(pc + __GLX_RENDER_HDR_SIZE, False);
+            extra = (*entry.varsize)(pc + __GLX_RENDER_HDR_SIZE, do_swap);
             if (extra < 0) {
                 extra = 0;
             }
@@ -1807,25 +1809,34 @@ int __glXDisp_Render(__GLXclientState *c
 }
 
 /*
-** Execute a large rendering request (one that spans multiple X requests).
+** Execute all the drawing commands in a request.
 */
-int __glXDisp_RenderLarge(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_Render(__GLXclientState *cl, GLbyte *pc)
+{
+    return DoRender(cl, pc, False);
+}
+
+int DoRenderLarge(__GLXclientState *cl, GLbyte *pc, int do_swap)
 {
     xGLXRenderLargeReq *req;
     ClientPtr client= cl->client;
-    GLuint dataBytes;
+    size_t dataBytes;
     __GLXrenderLargeHeader *hdr;
     __GLXcontext *glxc;
     int error;
     CARD16 opcode;
+    __GLX_DECLARE_SWAP_VARIABLES;
 
-    /*
-    ** NOTE: much of this code also appears in the byteswapping version of this
-    ** routine, __glXDisp_SwapRenderLarge().  Any changes made here should also be
-    ** duplicated there.
-    */
     
     req = (xGLXRenderLargeReq *) pc;
+    if (do_swap) {
+	__GLX_SWAP_SHORT(&req->length);
+	__GLX_SWAP_INT(&req->contextTag);
+	__GLX_SWAP_INT(&req->dataBytes);
+	__GLX_SWAP_SHORT(&req->requestNumber);
+	__GLX_SWAP_SHORT(&req->requestTotal);
+    }
+
     glxc = __glXForceCurrent(cl, req->contextTag, &error);
     if (!glxc) {
 	/* Reset in case this isn't 1st request. */
@@ -1847,7 +1858,8 @@ int __glXDisp_RenderLarge(__GLXclientSta
     
     if (cl->largeCmdRequestsSoFar == 0) {
 	__GLXrenderSizeData entry;
-	int extra, cmdlen;
+	int extra;
+	size_t cmdlen;
 	int err;
 
 	/*
@@ -1860,6 +1872,10 @@ int __glXDisp_RenderLarge(__GLXclientSta
 	}
 
 	hdr = (__GLXrenderLargeHeader *) pc;
+	if (do_swap) {
+	    __GLX_SWAP_INT(&hdr->length);
+	    __GLX_SWAP_INT(&hdr->opcode);
+	}
 	cmdlen = hdr->length;
 	opcode = hdr->opcode;
 
@@ -1878,7 +1894,7 @@ int __glXDisp_RenderLarge(__GLXclientSta
 	    ** be computed from its parameters), all the parameters needed
 	    ** will be in the 1st request, so it's okay to do this.
 	    */
-	    extra = (*entry.varsize)(pc + __GLX_RENDER_LARGE_HDR_SIZE, False);
+	    extra = (*entry.varsize)(pc + __GLX_RENDER_LARGE_HDR_SIZE, do_swap);
 	    if (extra < 0) {
 		extra = 0;
 	    }
@@ -1897,10 +1913,9 @@ int __glXDisp_RenderLarge(__GLXclientSta
 	*/
 	if (cl->largeCmdBufSize < cmdlen) {
 	    if (!cl->largeCmdBuf) {
-		cl->largeCmdBuf = (GLbyte *) xalloc((size_t)cmdlen);
+		cl->largeCmdBuf = (GLbyte *) xalloc(cmdlen);
 	    } else {
-		cl->largeCmdBuf = (GLbyte *) xrealloc(cl->largeCmdBuf, 
-						      (size_t)cmdlen);
+		cl->largeCmdBuf = (GLbyte *) xrealloc(cl->largeCmdBuf, cmdlen);
 	    }
 	    if (!cl->largeCmdBuf) {
 		return BadAlloc;
@@ -1970,13 +1985,16 @@ int __glXDisp_RenderLarge(__GLXclientSta
 		return __glXError(GLXBadLargeRequest);
 	    }
 	    hdr = (__GLXrenderLargeHeader *) cl->largeCmdBuf;
-	    opcode = hdr->opcode;
-
 	    /*
+	    ** The opcode and length field in the header had already been
+	    ** swapped when the first request was received.
+	    **
 	    ** Use the opcode to index into the procedure table.
 	    */
+	    opcode = hdr->opcode;
+
 	    proc = (__GLXdispatchRenderProcPtr)
-	      __glXGetProtocolDecodeFunction(& Render_dispatch_info, opcode, 0);
+	      __glXGetProtocolDecodeFunction(& Render_dispatch_info, opcode, do_swap);
 	    if (proc == NULL) {
 		client->errorValue = opcode;
 		return __glXError(GLXBadLargeRequest);
@@ -2001,6 +2019,14 @@ int __glXDisp_RenderLarge(__GLXclientSta
     }
 }
 
+/*
+** Execute a large rendering request (one that spans multiple X requests).
+*/
+int __glXDisp_RenderLarge(__GLXclientState *cl, GLbyte *pc)
+{
+    return DoRenderLarge(cl, pc, False);
+}
+
 extern RESTYPE __glXSwapBarrierRes;
 
 int __glXDisp_BindSwapBarrierSGIX(__GLXclientState *cl, GLbyte *pc)
diff --git a/GL/glx/glxcmdsswap.c b/GL/glx/glxcmdsswap.c
index ae6a9d1..551824c 100644
--- a/GL/glx/glxcmdsswap.c
+++ b/GL/glx/glxcmdsswap.c
@@ -641,91 +641,7 @@ void __glXSwapGetDrawableAttributesReply
 
 int __glXDispSwap_Render(__GLXclientState *cl, GLbyte *pc)
 {
-    xGLXRenderReq *req;
-    ClientPtr client= cl->client;
-    int left, cmdlen, error;
-    int commandsDone;
-    CARD16 opcode;
-    __GLXrenderHeader *hdr;
-    __GLXcontext *cx;
-    __GLX_DECLARE_SWAP_VARIABLES;
-
-    /*
-    ** NOTE: much of this code also appears in the nonswapping version of this
-    ** routine, __glXRender().  Any changes made here should also be
-    ** duplicated there.
-    */
-    
-    req = (xGLXRenderReq *) pc;
-    __GLX_SWAP_SHORT(&req->length);
-    __GLX_SWAP_INT(&req->contextTag);
-
-    cx = __glXForceCurrent(cl, req->contextTag, &error);
-    if (!cx) {
-	return error;
-    }
-
-    commandsDone = 0;
-    pc += sz_xGLXRenderReq;
-    left = (req->length << 2) - sz_xGLXRenderReq;
-    while (left > 0) {
-        __GLXrenderSizeData entry;
-        int extra;
-	__GLXdispatchRenderProcPtr proc;
-	int err;
-
-	/*
-	** Verify that the header length and the overall length agree.
-	** Also, each command must be word aligned.
-	*/
-	hdr = (__GLXrenderHeader *) pc;
-	__GLX_SWAP_SHORT(&hdr->length);
-	__GLX_SWAP_SHORT(&hdr->opcode);
-	cmdlen = hdr->length;
-	opcode = hdr->opcode;
-
-	err = __glXGetProtocolSizeData(& Render_dispatch_info, opcode, & entry);
-	proc = (__GLXdispatchRenderProcPtr)
-	  __glXGetProtocolDecodeFunction(& Render_dispatch_info, opcode, 1);
-
-	if ((err < 0) || (proc == NULL)) {
-	    client->errorValue = commandsDone;
-	    return __glXError(GLXBadRenderRequest);
-	}
-
-        if (entry.varsize) {
-            /* variable size command */
-            extra = (*entry.varsize)(pc + __GLX_RENDER_HDR_SIZE, True);
-            if (extra < 0) {
-                extra = 0;
-            }
-            if (cmdlen != __GLX_PAD(entry.bytes + extra)) {
-                return BadLength;
-            }
-        } else {
-            /* constant size command */
-            if (cmdlen != __GLX_PAD(entry.bytes)) {
-                return BadLength;
-            }
-        }
-	if (left < cmdlen) {
-	    return BadLength;
-	}
-
-	/*
-	** Skip over the header and execute the command.  We allow the
-	** caller to trash the command memory.  This is useful especially
-	** for things that require double alignment - they can just shift
-	** the data towards lower memory (trashing the header) by 4 bytes
-	** and achieve the required alignment.
-	*/
-	(*proc)(pc + __GLX_RENDER_HDR_SIZE);
-	pc += cmdlen;
-	left -= cmdlen;
-	commandsDone++;
-    }
-    __GLX_NOTE_UNFLUSHED_CMDS(cx);
-    return Success;
+    return DoRender(cl, pc, True);
 }
 
 /*
@@ -733,203 +649,7 @@ int __glXDispSwap_Render(__GLXclientStat
 */
 int __glXDispSwap_RenderLarge(__GLXclientState *cl, GLbyte *pc)
 {
-    xGLXRenderLargeReq *req;
-    ClientPtr client= cl->client;
-    size_t dataBytes;
-    __GLXrenderLargeHeader *hdr;
-    __GLXcontext *cx;
-    int error;
-    CARD16 opcode;
-    __GLX_DECLARE_SWAP_VARIABLES;
-
-    /*
-    ** NOTE: much of this code also appears in the nonswapping version of this
-    ** routine, __glXRenderLarge().  Any changes made here should also be
-    ** duplicated there.
-    */
-    
-    req = (xGLXRenderLargeReq *) pc;
-    __GLX_SWAP_SHORT(&req->length);
-    __GLX_SWAP_INT(&req->contextTag);
-    __GLX_SWAP_INT(&req->dataBytes);
-    __GLX_SWAP_SHORT(&req->requestNumber);
-    __GLX_SWAP_SHORT(&req->requestTotal);
-    cx = __glXForceCurrent(cl, req->contextTag, &error);
-    if (!cx) {
-	/* Reset in case this isn't 1st request. */
-	__glXResetLargeCommandStatus(cl);
-	return error;
-    }
-    dataBytes = req->dataBytes;
-
-    /*
-    ** Check the request length.
-    */
-    if ((req->length << 2) != __GLX_PAD(dataBytes) + sz_xGLXRenderLargeReq) {
-	client->errorValue = req->length;
-	/* Reset in case this isn't 1st request. */
-	__glXResetLargeCommandStatus(cl);
-	return BadLength;
-    }
-    pc += sz_xGLXRenderLargeReq;
-    
-    if (cl->largeCmdRequestsSoFar == 0) {
-	__GLXrenderSizeData entry;
-	int extra;
-	size_t cmdlen;
-	int err;
-
-	/*
-	** This is the first request of a multi request command.
-	** Make enough space in the buffer, then copy the entire request.
-	*/
-	if (req->requestNumber != 1) {
-	    client->errorValue = req->requestNumber;
-	    return __glXError(GLXBadLargeRequest);
-	}
-	hdr = (__GLXrenderLargeHeader *) pc;
-	__GLX_SWAP_INT(&hdr->length);
-	__GLX_SWAP_INT(&hdr->opcode);
-	cmdlen = hdr->length;
-	opcode = hdr->opcode;
-
-	err = __glXGetProtocolSizeData(& Render_dispatch_info, opcode, & entry);
-	if (err < 0) {
-	    client->errorValue = opcode;
-	    return __glXError(GLXBadLargeRequest);
-	}
-
-	if (entry.varsize) {
-	    /*
-	    ** If it's a variable-size command (a command whose length must
-	    ** be computed from its parameters), all the parameters needed
-	    ** will be in the 1st request, so it's okay to do this.
-	    */
-	    extra = (*entry.varsize)(pc + __GLX_RENDER_LARGE_HDR_SIZE, True);
-	    if (extra < 0) {
-		extra = 0;
-	    }
-	    /* large command's header is 4 bytes longer, so add 4 */
-	    if (cmdlen != __GLX_PAD(entry.bytes + 4 + extra)) {
-		return BadLength;
-	    }
-	} else {
-	    /* constant size command */
-	    if (cmdlen != __GLX_PAD(entry.bytes + 4)) {
-		return BadLength;
-	    }
-	}
-	/*
-	** Make enough space in the buffer, then copy the entire request.
-	*/
-	if (cl->largeCmdBufSize < cmdlen) {
-	    if (!cl->largeCmdBuf) {
-		cl->largeCmdBuf = (GLbyte *) xalloc(cmdlen);
-	    } else {
-		cl->largeCmdBuf = (GLbyte *) xrealloc(cl->largeCmdBuf, cmdlen);
-	    }
-	    if (!cl->largeCmdBuf) {
-		return BadAlloc;
-	    }
-	    cl->largeCmdBufSize = cmdlen;
-	}
-	memcpy(cl->largeCmdBuf, pc, dataBytes);
-
-	cl->largeCmdBytesSoFar = dataBytes;
-	cl->largeCmdBytesTotal = cmdlen;
-	cl->largeCmdRequestsSoFar = 1;
-	cl->largeCmdRequestsTotal = req->requestTotal;
-	return Success;
-	
-    } else {
-	/*
-	** We are receiving subsequent (i.e. not the first) requests of a
-	** multi request command.
-	*/
-
-	/*
-	** Check the request number and the total request count.
-	*/
-	if (req->requestNumber != cl->largeCmdRequestsSoFar + 1) {
-	    client->errorValue = req->requestNumber;
-	    __glXResetLargeCommandStatus(cl);
-	    return __glXError(GLXBadLargeRequest);
-	}
-	if (req->requestTotal != cl->largeCmdRequestsTotal) {
-	    client->errorValue = req->requestTotal;
-	    __glXResetLargeCommandStatus(cl);
-	    return __glXError(GLXBadLargeRequest);
-	}
-
-	/*
-	** Check that we didn't get too much data.
-	*/
-	if ((cl->largeCmdBytesSoFar + dataBytes) > cl->largeCmdBytesTotal) {
-	    client->errorValue = dataBytes;
-	    __glXResetLargeCommandStatus(cl);
-	    return __glXError(GLXBadLargeRequest);
-	}
-	memcpy(cl->largeCmdBuf + cl->largeCmdBytesSoFar, pc, dataBytes);
-	cl->largeCmdBytesSoFar += dataBytes;
-	cl->largeCmdRequestsSoFar++;
-
-	if (req->requestNumber == cl->largeCmdRequestsTotal) {
-	    __GLXdispatchRenderProcPtr proc;
-
-	    /*
-	    ** This is the last request; it must have enough bytes to complete
-	    ** the command.
-	    */
-	    /* NOTE: the two pad macros have been added below; they are needed
-	    ** because the client library pads the total byte count, but not
-	    ** the per-request byte counts.  The Protocol Encoding says the
-	    ** total byte count should not be padded, so a proposal will be 
-	    ** made to the ARB to relax the padding constraint on the total 
-	    ** byte count, thus preserving backward compatibility.  Meanwhile, 
-	    ** the padding done below fixes a bug that did not allow
-	    ** large commands of odd sizes to be accepted by the server.
-	    */
-	    if (__GLX_PAD(cl->largeCmdBytesSoFar) !=
-		__GLX_PAD(cl->largeCmdBytesTotal)) {
-		client->errorValue = dataBytes;
-		__glXResetLargeCommandStatus(cl);
-		return __glXError(GLXBadLargeRequest);
-	    }
-	    hdr = (__GLXrenderLargeHeader *) cl->largeCmdBuf;
-	    /*
-	    ** The opcode and length field in the header had already been
-	    ** swapped when the first request was received.
-	    */
-
-	    /*
-	    ** Use the opcode to index into the procedure table.
-	    */
-	    opcode = hdr->opcode;
-
-	    proc = (__GLXdispatchRenderProcPtr)
-	      __glXGetProtocolDecodeFunction(& Render_dispatch_info, opcode, 1);
-	    if (proc == NULL) {
-		client->errorValue = opcode;
-		return __glXError(GLXBadLargeRequest);
-	    }
-
-	    /*
-	    ** Skip over the header and execute the command.
-	    */
-	    (*proc)(cl->largeCmdBuf + __GLX_RENDER_LARGE_HDR_SIZE);
-	    __GLX_NOTE_UNFLUSHED_CMDS(cx);
-
-	    /*
-	    ** Reset for the next RenderLarge series.
-	    */
-	    __glXResetLargeCommandStatus(cl);
-	} else {
-	    /*
-	    ** This is neither the first nor the last request.
-	    */
-	}
-	return Success;
-    }
+    return DoRenderLarge(cl, pc, True);
 }
 
 /************************************************************************/
diff --git a/GL/glx/glxext.h b/GL/glx/glxext.h
index b19a716..c494de4 100644
--- a/GL/glx/glxext.h
+++ b/GL/glx/glxext.h
@@ -89,6 +89,9 @@ extern int DoDestroyPixmap(__GLXclientSt
 
 extern int DoQueryContext(__GLXclientState *cl, GLXContextID gcId);
 
+extern int DoRender(__GLXclientState *cl, GLbyte *pc, int do_swap);
+extern int DoRenderLarge(__GLXclientState *cl, GLbyte *pc, int do_swap);
+
 extern void GlxExtensionInit(void);
 
 extern Bool __glXCoreType(void);
diff-tree 866bb3f34046045c9fa0744db1d76e035b3da9c7 (from f6fd7d8f8393f93705e76b2b2777a0d9bcafa991)
Author: Ian Romanick <idr at umwelt.(none)>
Date:   Wed Aug 23 16:41:53 2006 -0700

    Memo to myself: Whenever a Makefile.am changes, autogen.sh must be
    re-run.  This is especially true if the change is to remove a source
    file.
    
    Fix RenderLarge to actually use the new protocol decode tables.

diff --git a/GL/glx/glxcmds.c b/GL/glx/glxcmds.c
index fdd36e2..e16087a 100644
--- a/GL/glx/glxcmds.c
+++ b/GL/glx/glxcmds.c
@@ -1814,7 +1814,6 @@ int __glXDisp_RenderLarge(__GLXclientSta
     xGLXRenderLargeReq *req;
     ClientPtr client= cl->client;
     GLuint dataBytes;
-    __GLXdispatchRenderProcPtr proc;
     __GLXrenderLargeHeader *hdr;
     __GLXcontext *glxc;
     int error;
@@ -1873,13 +1872,6 @@ int __glXDisp_RenderLarge(__GLXclientSta
 	    return __glXError(GLXBadLargeRequest);
 	}
 
-	proc = (__GLXdispatchRenderProcPtr)
-	  __glXGetProtocolDecodeFunction(& Render_dispatch_info, opcode, 0);
-	if (proc == NULL) {
-	    client->errorValue = opcode;
-	    return __glXError(GLXBadLargeRequest);
-	}
-
 	if (entry.varsize) {
 	    /*
 	    ** If it's a variable-size command (a command whose length must
@@ -1956,6 +1948,8 @@ int __glXDisp_RenderLarge(__GLXclientSta
 	cl->largeCmdRequestsSoFar++;
 
 	if (req->requestNumber == cl->largeCmdRequestsTotal) {
+	    __GLXdispatchRenderProcPtr proc;
+
 	    /*
 	    ** This is the last request; it must have enough bytes to complete
 	    ** the command.
@@ -1981,16 +1975,9 @@ int __glXDisp_RenderLarge(__GLXclientSta
 	    /*
 	    ** Use the opcode to index into the procedure table.
 	    */
-	    if ( (opcode >= __GLX_MIN_RENDER_OPCODE) && 
-		 (opcode <= __GLX_MAX_RENDER_OPCODE) ) {
-		proc = __glXRenderTable[opcode];
-#if __GLX_MAX_RENDER_OPCODE_EXT > __GLX_MIN_RENDER_OPCODE_EXT
-	    } else if ( (opcode >= __GLX_MIN_RENDER_OPCODE_EXT) && 
-		 (opcode <= __GLX_MAX_RENDER_OPCODE_EXT) ) {
-		opcode -= __GLX_MIN_RENDER_OPCODE_EXT;
-		proc = __glXRenderTable_EXT[opcode];
-#endif /* __GLX_MAX_RENDER_OPCODE_EXT > __GLX_MIN_RENDER_OPCODE_EXT */
-	    } else {
+	    proc = (__GLXdispatchRenderProcPtr)
+	      __glXGetProtocolDecodeFunction(& Render_dispatch_info, opcode, 0);
+	    if (proc == NULL) {
 		client->errorValue = opcode;
 		return __glXError(GLXBadLargeRequest);
 	    }
diff --git a/GL/glx/glxcmdsswap.c b/GL/glx/glxcmdsswap.c
index 5dd98ca..ae6a9d1 100644
--- a/GL/glx/glxcmdsswap.c
+++ b/GL/glx/glxcmdsswap.c
@@ -736,7 +736,6 @@ int __glXDispSwap_RenderLarge(__GLXclien
     xGLXRenderLargeReq *req;
     ClientPtr client= cl->client;
     size_t dataBytes;
-    __GLXdispatchRenderProcPtr proc;
     __GLXrenderLargeHeader *hdr;
     __GLXcontext *cx;
     int error;
@@ -800,13 +799,6 @@ int __glXDispSwap_RenderLarge(__GLXclien
 	    return __glXError(GLXBadLargeRequest);
 	}
 
-	proc = (__GLXdispatchRenderProcPtr)
-	  __glXGetProtocolDecodeFunction(& Render_dispatch_info, opcode, 0);
-	if (proc == NULL) {
-	    client->errorValue = opcode;
-	    return __glXError(GLXBadLargeRequest);
-	}
-
 	if (entry.varsize) {
 	    /*
 	    ** If it's a variable-size command (a command whose length must
@@ -882,6 +874,8 @@ int __glXDispSwap_RenderLarge(__GLXclien
 	cl->largeCmdRequestsSoFar++;
 
 	if (req->requestNumber == cl->largeCmdRequestsTotal) {
+	    __GLXdispatchRenderProcPtr proc;
+
 	    /*
 	    ** This is the last request; it must have enough bytes to complete
 	    ** the command.
@@ -911,16 +905,10 @@ int __glXDispSwap_RenderLarge(__GLXclien
 	    ** Use the opcode to index into the procedure table.
 	    */
 	    opcode = hdr->opcode;
-	    if ( (opcode >= __GLX_MIN_RENDER_OPCODE) && 
-		 (opcode <= __GLX_MAX_RENDER_OPCODE) ) {
-		proc = __glXSwapRenderTable[opcode];
-#if __GLX_MAX_RENDER_OPCODE_EXT > __GLX_MIN_RENDER_OPCODE_EXT
-	    } else if ( (opcode >= __GLX_MIN_RENDER_OPCODE_EXT) && 
-		 (opcode <= __GLX_MAX_RENDER_OPCODE_EXT) ) {
-		int index = opcode - __GLX_MIN_RENDER_OPCODE_EXT;
-		proc = __glXSwapRenderTable_EXT[index];
-#endif /* __GLX_MAX_RENDER_OPCODE_EXT > __GLX_MIN_RENDER_OPCODE_EXT */
-	    } else {
+
+	    proc = (__GLXdispatchRenderProcPtr)
+	      __glXGetProtocolDecodeFunction(& Render_dispatch_info, opcode, 1);
+	    if (proc == NULL) {
 		client->errorValue = opcode;
 		return __glXError(GLXBadLargeRequest);
 	    }
diff-tree d9a86566c21afd7985673f3ed851b055d9dac46f (from bdec9680fa74dd23cf319d09af1940f8cf71a5b1)
Author: Alan Coopersmith <alan.coopersmith at sun.com>
Date:   Wed Aug 23 16:15:19 2006 -0700

    Add LOCALCONN to dix-config.h template for xtrans

diff --git a/include/dix-config.h.in b/include/dix-config.h.in
index 2b9f273..69dc674 100644
--- a/include/dix-config.h.in
+++ b/include/dix-config.h.in
@@ -222,6 +222,9 @@
 /* Support IPv6 for TCP connections */
 #undef IPv6
 
+/* Support os-specific local connections */
+#undef LOCALCONN
+
 /* Support MIT Misc extension */
 #undef MITMISC
 
diff-tree f6fd7d8f8393f93705e76b2b2777a0d9bcafa991 (from 7ae82b5fc8721be78b43a322bbf2c46aac08b8cf)
Author: Ian Romanick <idr at umwelt.(none)>
Date:   Wed Aug 23 16:05:37 2006 -0700

    Convert protocol decode tabels for Render and RenderLarge to use nice,
    compact N-way search trees generated by scripts in Mesa.

diff --git a/GL/glx/Makefile.am b/GL/glx/Makefile.am
index 2bb6943..94f8fd6 100644
--- a/GL/glx/Makefile.am
+++ b/GL/glx/Makefile.am
@@ -70,7 +70,6 @@ libglx_la_SOURCES = \
         renderpix.c \
         renderpixswap.c \
         rensize.c \
-        rensizetab.c \
         single2.c \
         single2swap.c \
         singlepix.c \
diff --git a/GL/glx/glxcmds.c b/GL/glx/glxcmds.c
index b52528d..fdd36e2 100644
--- a/GL/glx/glxcmds.c
+++ b/GL/glx/glxcmds.c
@@ -1746,9 +1746,10 @@ int __glXDisp_Render(__GLXclientState *c
     pc += sz_xGLXRenderReq;
     left = (req->length << 2) - sz_xGLXRenderReq;
     while (left > 0) {
-        __GLXrenderSizeData *entry;
+        __GLXrenderSizeData entry;
         int extra;
-	void (* proc)(GLbyte *);
+	__GLXdispatchRenderProcPtr proc;
+	int err;
 
 	/*
 	** Verify that the header length and the overall length agree.
@@ -1761,41 +1762,27 @@ int __glXDisp_Render(__GLXclientState *c
 	/*
 	** Check for core opcodes and grab entry data.
 	*/
-	if ( (opcode >= __GLX_MIN_RENDER_OPCODE) && 
-	     (opcode <= __GLX_MAX_RENDER_OPCODE) ) {
-	    entry = &__glXRenderSizeTable[opcode];
-	    proc = __glXRenderTable[opcode];
-#if __GLX_MAX_RENDER_OPCODE_EXT > __GLX_MIN_RENDER_OPCODE_EXT
-	} else if ( (opcode >= __GLX_MIN_RENDER_OPCODE_EXT) && 
-		    (opcode <= __GLX_MAX_RENDER_OPCODE_EXT) ) {
-	    entry = 
-		&__glXRenderSizeTable_EXT[opcode - 
-					 __GLX_MIN_RENDER_OPCODE_EXT];
-	    proc = __glXRenderTable_EXT[opcode - 
-				       __GLX_MIN_RENDER_OPCODE_EXT];
-#endif /* __GLX_MAX_RENDER_OPCODE_EXT > __GLX_MIN_RENDER_OPCODE_EXT */
-	} else {
+	err = __glXGetProtocolSizeData(& Render_dispatch_info, opcode, & entry);
+	proc = (__GLXdispatchRenderProcPtr)
+	  __glXGetProtocolDecodeFunction(& Render_dispatch_info, opcode, 0);
+
+	if ((err < 0) || (proc == NULL)) {
 	    client->errorValue = commandsDone;
 	    return __glXError(GLXBadRenderRequest);
 	}
 
-        if (!entry->bytes) {
-            /* unused opcode */
-            client->errorValue = commandsDone;
-            return __glXError(GLXBadRenderRequest);
-        }
-        if (entry->varsize) {
+        if (entry.varsize) {
             /* variable size command */
-            extra = (*entry->varsize)(pc + __GLX_RENDER_HDR_SIZE, False);
+            extra = (*entry.varsize)(pc + __GLX_RENDER_HDR_SIZE, False);
             if (extra < 0) {
                 extra = 0;
             }
-            if (cmdlen != __GLX_PAD(entry->bytes + extra)) {
+            if (cmdlen != __GLX_PAD(entry.bytes + extra)) {
                 return BadLength;
             }
         } else {
             /* constant size command */
-            if (cmdlen != __GLX_PAD(entry->bytes)) {
+            if (cmdlen != __GLX_PAD(entry.bytes)) {
                 return BadLength;
             }
         }
@@ -1827,7 +1814,7 @@ int __glXDisp_RenderLarge(__GLXclientSta
     xGLXRenderLargeReq *req;
     ClientPtr client= cl->client;
     GLuint dataBytes;
-    void (*proc)(GLbyte *);
+    __GLXdispatchRenderProcPtr proc;
     __GLXrenderLargeHeader *hdr;
     __GLXcontext *glxc;
     int error;
@@ -1860,8 +1847,10 @@ int __glXDisp_RenderLarge(__GLXclientSta
     pc += sz_xGLXRenderLargeReq;
     
     if (cl->largeCmdRequestsSoFar == 0) {
-	__GLXrenderSizeData *entry;
+	__GLXrenderSizeData entry;
 	int extra, cmdlen;
+	int err;
+
 	/*
 	** This is the first request of a multi request command.
 	** Make enough space in the buffer, then copy the entire request.
@@ -1878,42 +1867,36 @@ int __glXDisp_RenderLarge(__GLXclientSta
 	/*
 	** Check for core opcodes and grab entry data.
 	*/
-	if ( (opcode >= __GLX_MIN_RENDER_OPCODE) && 
-	     (opcode <= __GLX_MAX_RENDER_OPCODE) ) {
-	    entry = &__glXRenderSizeTable[opcode];
-#if __GLX_MAX_RENDER_OPCODE_EXT > __GLX_MIN_RENDER_OPCODE_EXT
-	} else if ( (opcode >= __GLX_MIN_RENDER_OPCODE_EXT) && 
-	     (opcode <= __GLX_MAX_RENDER_OPCODE_EXT) ) {
-	    opcode -= __GLX_MIN_RENDER_OPCODE_EXT;
-	    entry = &__glXRenderSizeTable_EXT[opcode];
-#endif /* __GLX_MAX_RENDER_OPCODE_EXT > __GLX_MIN_RENDER_OPCODE_EXT */
-	} else {
+	err = __glXGetProtocolSizeData(& Render_dispatch_info, opcode, & entry);
+	if (err < 0) {
 	    client->errorValue = opcode;
 	    return __glXError(GLXBadLargeRequest);
 	}
 
-        if (!entry->bytes) {
-            /* unused opcode */
-            client->errorValue = opcode;
-            return __glXError(GLXBadLargeRequest);
-        }
-	if (entry->varsize) {
+	proc = (__GLXdispatchRenderProcPtr)
+	  __glXGetProtocolDecodeFunction(& Render_dispatch_info, opcode, 0);
+	if (proc == NULL) {
+	    client->errorValue = opcode;
+	    return __glXError(GLXBadLargeRequest);
+	}
+
+	if (entry.varsize) {
 	    /*
 	    ** If it's a variable-size command (a command whose length must
 	    ** be computed from its parameters), all the parameters needed
 	    ** will be in the 1st request, so it's okay to do this.
 	    */
-	    extra = (*entry->varsize)(pc + __GLX_RENDER_LARGE_HDR_SIZE, False);
+	    extra = (*entry.varsize)(pc + __GLX_RENDER_LARGE_HDR_SIZE, False);
 	    if (extra < 0) {
 		extra = 0;
 	    }
 	    /* large command's header is 4 bytes longer, so add 4 */
-	    if (cmdlen != __GLX_PAD(entry->bytes + 4 + extra)) {
+	    if (cmdlen != __GLX_PAD(entry.bytes + 4 + extra)) {
 		return BadLength;
 	    }
 	} else {
 	    /* constant size command */
-	    if (cmdlen != __GLX_PAD(entry->bytes + 4)) {
+	    if (cmdlen != __GLX_PAD(entry.bytes + 4)) {
 		return BadLength;
 	    }
 	}
diff --git a/GL/glx/glxcmdsswap.c b/GL/glx/glxcmdsswap.c
index 78a26f5..5dd98ca 100644
--- a/GL/glx/glxcmdsswap.c
+++ b/GL/glx/glxcmdsswap.c
@@ -669,9 +669,10 @@ int __glXDispSwap_Render(__GLXclientStat
     pc += sz_xGLXRenderReq;
     left = (req->length << 2) - sz_xGLXRenderReq;
     while (left > 0) {
-        __GLXrenderSizeData *entry;
+        __GLXrenderSizeData entry;
         int extra;
-	void (* proc)(GLbyte *);
+	__GLXdispatchRenderProcPtr proc;
+	int err;
 
 	/*
 	** Verify that the header length and the overall length agree.
@@ -683,38 +684,27 @@ int __glXDispSwap_Render(__GLXclientStat
 	cmdlen = hdr->length;
 	opcode = hdr->opcode;
 
-	if ( (opcode >= __GLX_MIN_RENDER_OPCODE) && 
-	     (opcode <= __GLX_MAX_RENDER_OPCODE) ) {
-	    entry = &__glXRenderSizeTable[opcode];
-	    proc = __glXSwapRenderTable[opcode];
-#if __GLX_MAX_RENDER_OPCODE_EXT > __GLX_MIN_RENDER_OPCODE_EXT
-	} else if ( (opcode >= __GLX_MIN_RENDER_OPCODE_EXT) && 
-	     (opcode <= __GLX_MAX_RENDER_OPCODE_EXT) ) {
-	    int index = opcode - __GLX_MIN_RENDER_OPCODE_EXT;
-	    entry = &__glXRenderSizeTable_EXT[index];
-	    proc = __glXSwapRenderTable_EXT[index];
-#endif /* __GLX_MAX_RENDER_OPCODE_EXT > __GLX_MIN_RENDER_OPCODE_EXT */
-	} else {
+	err = __glXGetProtocolSizeData(& Render_dispatch_info, opcode, & entry);
+	proc = (__GLXdispatchRenderProcPtr)
+	  __glXGetProtocolDecodeFunction(& Render_dispatch_info, opcode, 1);
+
+	if ((err < 0) || (proc == NULL)) {
 	    client->errorValue = commandsDone;
 	    return __glXError(GLXBadRenderRequest);
 	}
-        if (!entry->bytes) {
-            /* unused opcode */
-	    client->errorValue = commandsDone;
-            return __glXError(GLXBadRenderRequest);
-        }
-        if (entry->varsize) {
+
+        if (entry.varsize) {
             /* variable size command */
-            extra = (*entry->varsize)(pc + __GLX_RENDER_HDR_SIZE, True);
+            extra = (*entry.varsize)(pc + __GLX_RENDER_HDR_SIZE, True);
             if (extra < 0) {
                 extra = 0;
             }
-            if (cmdlen != __GLX_PAD(entry->bytes + extra)) {
+            if (cmdlen != __GLX_PAD(entry.bytes + extra)) {
                 return BadLength;
             }
         } else {
             /* constant size command */
-            if (cmdlen != __GLX_PAD(entry->bytes)) {
+            if (cmdlen != __GLX_PAD(entry.bytes)) {
                 return BadLength;
             }
         }
@@ -746,7 +736,7 @@ int __glXDispSwap_RenderLarge(__GLXclien
     xGLXRenderLargeReq *req;
     ClientPtr client= cl->client;
     size_t dataBytes;
-    void (*proc)(GLbyte *);
+    __GLXdispatchRenderProcPtr proc;
     __GLXrenderLargeHeader *hdr;
     __GLXcontext *cx;
     int error;
@@ -785,9 +775,11 @@ int __glXDispSwap_RenderLarge(__GLXclien
     pc += sz_xGLXRenderLargeReq;
     
     if (cl->largeCmdRequestsSoFar == 0) {
-	__GLXrenderSizeData *entry;
+	__GLXrenderSizeData entry;
 	int extra;
 	size_t cmdlen;
+	int err;
+
 	/*
 	** This is the first request of a multi request command.
 	** Make enough space in the buffer, then copy the entire request.
@@ -802,44 +794,36 @@ int __glXDispSwap_RenderLarge(__GLXclien
 	cmdlen = hdr->length;
 	opcode = hdr->opcode;
 
-	if ( (opcode >= __GLX_MIN_RENDER_OPCODE) && 
-	     (opcode <= __GLX_MAX_RENDER_OPCODE) ) {
-	    entry = &__glXRenderSizeTable[opcode];
-	    proc = __glXSwapRenderTable[opcode];
-#if __GLX_MAX_RENDER_OPCODE_EXT > __GLX_MIN_RENDER_OPCODE_EXT
-	} else if ( (opcode >= __GLX_MIN_RENDER_OPCODE_EXT) && 
-	     (opcode <= __GLX_MAX_RENDER_OPCODE_EXT) ) {
-	    int index = opcode - __GLX_MIN_RENDER_OPCODE_EXT;
-	    entry = &__glXRenderSizeTable_EXT[index];
-	    proc = __glXSwapRenderTable_EXT[index];
-#endif /* __GLX_MAX_RENDER_OPCODE_EXT > __GLX_MIN_RENDER_OPCODE_EXT */
-	} else {
+	err = __glXGetProtocolSizeData(& Render_dispatch_info, opcode, & entry);
+	if (err < 0) {
 	    client->errorValue = opcode;
 	    return __glXError(GLXBadLargeRequest);
 	}
 
-        if (!entry->bytes) {
-            /* unused opcode */
-            client->errorValue = opcode;
-            return __glXError(GLXBadLargeRequest);
-        }
-	if (entry->varsize) {
+	proc = (__GLXdispatchRenderProcPtr)
+	  __glXGetProtocolDecodeFunction(& Render_dispatch_info, opcode, 0);
+	if (proc == NULL) {
+	    client->errorValue = opcode;
+	    return __glXError(GLXBadLargeRequest);
+	}
+
+	if (entry.varsize) {
 	    /*
 	    ** If it's a variable-size command (a command whose length must
 	    ** be computed from its parameters), all the parameters needed
 	    ** will be in the 1st request, so it's okay to do this.
 	    */
-	    extra = (*entry->varsize)(pc + __GLX_RENDER_LARGE_HDR_SIZE, True);
+	    extra = (*entry.varsize)(pc + __GLX_RENDER_LARGE_HDR_SIZE, True);
 	    if (extra < 0) {
 		extra = 0;
 	    }
 	    /* large command's header is 4 bytes longer, so add 4 */
-	    if (cmdlen != __GLX_PAD(entry->bytes + 4 + extra)) {
+	    if (cmdlen != __GLX_PAD(entry.bytes + 4 + extra)) {
 		return BadLength;
 	    }
 	} else {
 	    /* constant size command */
-	    if (cmdlen != __GLX_PAD(entry->bytes + 4)) {
+	    if (cmdlen != __GLX_PAD(entry.bytes + 4)) {
 		return BadLength;
 	    }
 	}
diff --git a/GL/glx/glxserver.h b/GL/glx/glxserver.h
index 387489a..a79520e 100644
--- a/GL/glx/glxserver.h
+++ b/GL/glx/glxserver.h
@@ -202,8 +202,6 @@ typedef struct {
     int bytes;
     gl_proto_size_func varsize;
 } __GLXrenderSizeData;
-extern __GLXrenderSizeData __glXRenderSizeTable[];
-extern __GLXrenderSizeData __glXRenderSizeTable_EXT[];
 
 /************************************************************************/
 
diff --git a/GL/glx/indirect_table.c b/GL/glx/indirect_table.c
index 2c88589..ec69234 100644
--- a/GL/glx/indirect_table.c
+++ b/GL/glx/indirect_table.c
@@ -74,7 +74,7 @@ static const int_fast16_t Single_dispatc
 
 };
 
-static const __GLXdispatchSingleProcPtr Single_function_table[112][2] = {
+static const void *Single_function_table[112][2] = {
     /* [  0] =     0 */ {NULL, NULL},
     /* [  1] =     1 */ {__glXDisp_Render, __glXDispSwap_Render},
     /* [  2] =     2 */ {__glXDisp_RenderLarge, __glXDispSwap_RenderLarge},
@@ -198,6 +198,1014 @@ const struct __glXDispatchInfo Single_di
 };
 
 /*****************************************************************/
+/* tree depth = 8 */
+static const int_fast16_t Render_dispatch_tree[96] = {
+    /* [0] -> opcode range [0, 8192], node depth 1 */
+    2,
+    5,
+    31,
+    54,
+    EMPTY_LEAF,
+
+    /* [5] -> opcode range [0, 2048], node depth 2 */
+    1,
+    8,
+    EMPTY_LEAF,
+
+    /* [8] -> opcode range [0, 1024], node depth 3 */
+    1,
+    11,
+    EMPTY_LEAF,
+
+    /* [11] -> opcode range [0, 512], node depth 4 */
+    1,
+    14,
+    EMPTY_LEAF,
+
+    /* [14] -> opcode range [0, 256], node depth 5 */
+    4,
+    LEAF(0),
+    LEAF(16),
+    LEAF(32),
+    LEAF(48),
+    LEAF(64),
+    LEAF(80),
+    LEAF(96),
+    LEAF(112),
+    LEAF(128),
+    LEAF(144),
+    LEAF(160),
+    LEAF(176),
+    LEAF(192),
+    LEAF(208),
+    LEAF(224),
+    EMPTY_LEAF,
+
+    /* [31] -> opcode range [2048, 4096], node depth 2 */
+    1,
+    34,
+    EMPTY_LEAF,
+
+    /* [34] -> opcode range [2048, 3072], node depth 3 */
+    1,
+    37,
+    EMPTY_LEAF,
+
+    /* [37] -> opcode range [2048, 2560], node depth 4 */
+    1,
+    40,
+    EMPTY_LEAF,
+
+    /* [40] -> opcode range [2048, 2304], node depth 5 */
+    1,
+    43,
+    EMPTY_LEAF,
+
+    /* [43] -> opcode range [2048, 2176], node depth 6 */
+    1,
+    46,
+    EMPTY_LEAF,
+
+    /* [46] -> opcode range [2048, 2112], node depth 7 */
+    1,
+    49,
+    EMPTY_LEAF,
+
+    /* [49] -> opcode range [2048, 2080], node depth 8 */
+    2,
+    LEAF(240),
+    LEAF(248),
+    LEAF(256),
+    EMPTY_LEAF,
+
+    /* [54] -> opcode range [4096, 6144], node depth 2 */
+    1,
+    57,
+    EMPTY_LEAF,
+
+    /* [57] -> opcode range [4096, 5120], node depth 3 */
+    1,
+    60,
+    EMPTY_LEAF,
+
+    /* [60] -> opcode range [4096, 4608], node depth 4 */
+    1,
+    63,
+    EMPTY_LEAF,
+
+    /* [63] -> opcode range [4096, 4352], node depth 5 */
+    3,
+    LEAF(264),
+    72,
+    78,
+    LEAF(296),
+    81,
+    EMPTY_LEAF,
+    84,
+    90,
+
+    /* [72] -> opcode range [4128, 4160], node depth 6 */
+    1,
+    75,
+    EMPTY_LEAF,
+
+    /* [75] -> opcode range [4128, 4144], node depth 7 */
+    1,
+    LEAF(328),
+    EMPTY_LEAF,
+
+    /* [78] -> opcode range [4160, 4192], node depth 6 */
+    1,
+    EMPTY_LEAF,
+    LEAF(336),
+
+    /* [81] -> opcode range [4224, 4256], node depth 6 */
+    1,
+    LEAF(352),
+    EMPTY_LEAF,
+
+    /* [84] -> opcode range [4288, 4320], node depth 6 */
+    1,
+    EMPTY_LEAF,
+    87,
+
+    /* [87] -> opcode range [4304, 4320], node depth 7 */
+    1,
+    EMPTY_LEAF,
+    LEAF(368),
+
+    /* [90] -> opcode range [4320, 4352], node depth 6 */
+    1,
+    93,
+    EMPTY_LEAF,
+
+    /* [93] -> opcode range [4320, 4336], node depth 7 */
+    1,
+    LEAF(376),
+    EMPTY_LEAF,
+
+};
+
+static const void *Render_function_table[384][2] = {
+    /* [  0] =     0 */ {NULL, NULL},
+    /* [  1] =     1 */ {__glXDisp_CallList, __glXDispSwap_CallList},
+    /* [  2] =     2 */ {__glXDisp_CallLists, __glXDispSwap_CallLists},
+    /* [  3] =     3 */ {__glXDisp_ListBase, __glXDispSwap_ListBase},
+    /* [  4] =     4 */ {__glXDisp_Begin, __glXDispSwap_Begin},
+    /* [  5] =     5 */ {__glXDisp_Bitmap, __glXDispSwap_Bitmap},
+    /* [  6] =     6 */ {__glXDisp_Color3bv, __glXDispSwap_Color3bv},
+    /* [  7] =     7 */ {__glXDisp_Color3dv, __glXDispSwap_Color3dv},
+    /* [  8] =     8 */ {__glXDisp_Color3fv, __glXDispSwap_Color3fv},
+    /* [  9] =     9 */ {__glXDisp_Color3iv, __glXDispSwap_Color3iv},
+    /* [ 10] =    10 */ {__glXDisp_Color3sv, __glXDispSwap_Color3sv},
+    /* [ 11] =    11 */ {__glXDisp_Color3ubv, __glXDispSwap_Color3ubv},
+    /* [ 12] =    12 */ {__glXDisp_Color3uiv, __glXDispSwap_Color3uiv},
+    /* [ 13] =    13 */ {__glXDisp_Color3usv, __glXDispSwap_Color3usv},
+    /* [ 14] =    14 */ {__glXDisp_Color4bv, __glXDispSwap_Color4bv},
+    /* [ 15] =    15 */ {__glXDisp_Color4dv, __glXDispSwap_Color4dv},
+    /* [ 16] =    16 */ {__glXDisp_Color4fv, __glXDispSwap_Color4fv},
+    /* [ 17] =    17 */ {__glXDisp_Color4iv, __glXDispSwap_Color4iv},
+    /* [ 18] =    18 */ {__glXDisp_Color4sv, __glXDispSwap_Color4sv},
+    /* [ 19] =    19 */ {__glXDisp_Color4ubv, __glXDispSwap_Color4ubv},
+    /* [ 20] =    20 */ {__glXDisp_Color4uiv, __glXDispSwap_Color4uiv},
+    /* [ 21] =    21 */ {__glXDisp_Color4usv, __glXDispSwap_Color4usv},
+    /* [ 22] =    22 */ {__glXDisp_EdgeFlagv, __glXDispSwap_EdgeFlagv},
+    /* [ 23] =    23 */ {__glXDisp_End, __glXDispSwap_End},
+    /* [ 24] =    24 */ {__glXDisp_Indexdv, __glXDispSwap_Indexdv},
+    /* [ 25] =    25 */ {__glXDisp_Indexfv, __glXDispSwap_Indexfv},
+    /* [ 26] =    26 */ {__glXDisp_Indexiv, __glXDispSwap_Indexiv},
+    /* [ 27] =    27 */ {__glXDisp_Indexsv, __glXDispSwap_Indexsv},
+    /* [ 28] =    28 */ {__glXDisp_Normal3bv, __glXDispSwap_Normal3bv},
+    /* [ 29] =    29 */ {__glXDisp_Normal3dv, __glXDispSwap_Normal3dv},
+    /* [ 30] =    30 */ {__glXDisp_Normal3fv, __glXDispSwap_Normal3fv},
+    /* [ 31] =    31 */ {__glXDisp_Normal3iv, __glXDispSwap_Normal3iv},
+    /* [ 32] =    32 */ {__glXDisp_Normal3sv, __glXDispSwap_Normal3sv},
+    /* [ 33] =    33 */ {__glXDisp_RasterPos2dv, __glXDispSwap_RasterPos2dv},
+    /* [ 34] =    34 */ {__glXDisp_RasterPos2fv, __glXDispSwap_RasterPos2fv},
+    /* [ 35] =    35 */ {__glXDisp_RasterPos2iv, __glXDispSwap_RasterPos2iv},
+    /* [ 36] =    36 */ {__glXDisp_RasterPos2sv, __glXDispSwap_RasterPos2sv},
+    /* [ 37] =    37 */ {__glXDisp_RasterPos3dv, __glXDispSwap_RasterPos3dv},
+    /* [ 38] =    38 */ {__glXDisp_RasterPos3fv, __glXDispSwap_RasterPos3fv},
+    /* [ 39] =    39 */ {__glXDisp_RasterPos3iv, __glXDispSwap_RasterPos3iv},
+    /* [ 40] =    40 */ {__glXDisp_RasterPos3sv, __glXDispSwap_RasterPos3sv},
+    /* [ 41] =    41 */ {__glXDisp_RasterPos4dv, __glXDispSwap_RasterPos4dv},
+    /* [ 42] =    42 */ {__glXDisp_RasterPos4fv, __glXDispSwap_RasterPos4fv},
+    /* [ 43] =    43 */ {__glXDisp_RasterPos4iv, __glXDispSwap_RasterPos4iv},
+    /* [ 44] =    44 */ {__glXDisp_RasterPos4sv, __glXDispSwap_RasterPos4sv},
+    /* [ 45] =    45 */ {__glXDisp_Rectdv, __glXDispSwap_Rectdv},
+    /* [ 46] =    46 */ {__glXDisp_Rectfv, __glXDispSwap_Rectfv},
+    /* [ 47] =    47 */ {__glXDisp_Rectiv, __glXDispSwap_Rectiv},
+    /* [ 48] =    48 */ {__glXDisp_Rectsv, __glXDispSwap_Rectsv},
+    /* [ 49] =    49 */ {__glXDisp_TexCoord1dv, __glXDispSwap_TexCoord1dv},
+    /* [ 50] =    50 */ {__glXDisp_TexCoord1fv, __glXDispSwap_TexCoord1fv},
+    /* [ 51] =    51 */ {__glXDisp_TexCoord1iv, __glXDispSwap_TexCoord1iv},
+    /* [ 52] =    52 */ {__glXDisp_TexCoord1sv, __glXDispSwap_TexCoord1sv},
+    /* [ 53] =    53 */ {__glXDisp_TexCoord2dv, __glXDispSwap_TexCoord2dv},
+    /* [ 54] =    54 */ {__glXDisp_TexCoord2fv, __glXDispSwap_TexCoord2fv},
+    /* [ 55] =    55 */ {__glXDisp_TexCoord2iv, __glXDispSwap_TexCoord2iv},
+    /* [ 56] =    56 */ {__glXDisp_TexCoord2sv, __glXDispSwap_TexCoord2sv},
+    /* [ 57] =    57 */ {__glXDisp_TexCoord3dv, __glXDispSwap_TexCoord3dv},
+    /* [ 58] =    58 */ {__glXDisp_TexCoord3fv, __glXDispSwap_TexCoord3fv},
+    /* [ 59] =    59 */ {__glXDisp_TexCoord3iv, __glXDispSwap_TexCoord3iv},
+    /* [ 60] =    60 */ {__glXDisp_TexCoord3sv, __glXDispSwap_TexCoord3sv},
+    /* [ 61] =    61 */ {__glXDisp_TexCoord4dv, __glXDispSwap_TexCoord4dv},
+    /* [ 62] =    62 */ {__glXDisp_TexCoord4fv, __glXDispSwap_TexCoord4fv},
+    /* [ 63] =    63 */ {__glXDisp_TexCoord4iv, __glXDispSwap_TexCoord4iv},
+    /* [ 64] =    64 */ {__glXDisp_TexCoord4sv, __glXDispSwap_TexCoord4sv},
+    /* [ 65] =    65 */ {__glXDisp_Vertex2dv, __glXDispSwap_Vertex2dv},
+    /* [ 66] =    66 */ {__glXDisp_Vertex2fv, __glXDispSwap_Vertex2fv},
+    /* [ 67] =    67 */ {__glXDisp_Vertex2iv, __glXDispSwap_Vertex2iv},
+    /* [ 68] =    68 */ {__glXDisp_Vertex2sv, __glXDispSwap_Vertex2sv},
+    /* [ 69] =    69 */ {__glXDisp_Vertex3dv, __glXDispSwap_Vertex3dv},
+    /* [ 70] =    70 */ {__glXDisp_Vertex3fv, __glXDispSwap_Vertex3fv},
+    /* [ 71] =    71 */ {__glXDisp_Vertex3iv, __glXDispSwap_Vertex3iv},
+    /* [ 72] =    72 */ {__glXDisp_Vertex3sv, __glXDispSwap_Vertex3sv},
+    /* [ 73] =    73 */ {__glXDisp_Vertex4dv, __glXDispSwap_Vertex4dv},
+    /* [ 74] =    74 */ {__glXDisp_Vertex4fv, __glXDispSwap_Vertex4fv},
+    /* [ 75] =    75 */ {__glXDisp_Vertex4iv, __glXDispSwap_Vertex4iv},
+    /* [ 76] =    76 */ {__glXDisp_Vertex4sv, __glXDispSwap_Vertex4sv},
+    /* [ 77] =    77 */ {__glXDisp_ClipPlane, __glXDispSwap_ClipPlane},
+    /* [ 78] =    78 */ {__glXDisp_ColorMaterial, __glXDispSwap_ColorMaterial},
+    /* [ 79] =    79 */ {__glXDisp_CullFace, __glXDispSwap_CullFace},
+    /* [ 80] =    80 */ {__glXDisp_Fogf, __glXDispSwap_Fogf},
+    /* [ 81] =    81 */ {__glXDisp_Fogfv, __glXDispSwap_Fogfv},
+    /* [ 82] =    82 */ {__glXDisp_Fogi, __glXDispSwap_Fogi},
+    /* [ 83] =    83 */ {__glXDisp_Fogiv, __glXDispSwap_Fogiv},
+    /* [ 84] =    84 */ {__glXDisp_FrontFace, __glXDispSwap_FrontFace},
+    /* [ 85] =    85 */ {__glXDisp_Hint, __glXDispSwap_Hint},
+    /* [ 86] =    86 */ {__glXDisp_Lightf, __glXDispSwap_Lightf},
+    /* [ 87] =    87 */ {__glXDisp_Lightfv, __glXDispSwap_Lightfv},
+    /* [ 88] =    88 */ {__glXDisp_Lighti, __glXDispSwap_Lighti},
+    /* [ 89] =    89 */ {__glXDisp_Lightiv, __glXDispSwap_Lightiv},
+    /* [ 90] =    90 */ {__glXDisp_LightModelf, __glXDispSwap_LightModelf},
+    /* [ 91] =    91 */ {__glXDisp_LightModelfv, __glXDispSwap_LightModelfv},
+    /* [ 92] =    92 */ {__glXDisp_LightModeli, __glXDispSwap_LightModeli},
+    /* [ 93] =    93 */ {__glXDisp_LightModeliv, __glXDispSwap_LightModeliv},
+    /* [ 94] =    94 */ {__glXDisp_LineStipple, __glXDispSwap_LineStipple},
+    /* [ 95] =    95 */ {__glXDisp_LineWidth, __glXDispSwap_LineWidth},
+    /* [ 96] =    96 */ {__glXDisp_Materialf, __glXDispSwap_Materialf},
+    /* [ 97] =    97 */ {__glXDisp_Materialfv, __glXDispSwap_Materialfv},
+    /* [ 98] =    98 */ {__glXDisp_Materiali, __glXDispSwap_Materiali},
+    /* [ 99] =    99 */ {__glXDisp_Materialiv, __glXDispSwap_Materialiv},
+    /* [ 100] =   100 */ {__glXDisp_PointSize, __glXDispSwap_PointSize},
+    /* [ 101] =   101 */ {__glXDisp_PolygonMode, __glXDispSwap_PolygonMode},
+    /* [ 102] =   102 */ {__glXDisp_PolygonStipple, __glXDispSwap_PolygonStipple},
+    /* [ 103] =   103 */ {__glXDisp_Scissor, __glXDispSwap_Scissor},
+    /* [ 104] =   104 */ {__glXDisp_ShadeModel, __glXDispSwap_ShadeModel},
+    /* [ 105] =   105 */ {__glXDisp_TexParameterf, __glXDispSwap_TexParameterf},
+    /* [ 106] =   106 */ {__glXDisp_TexParameterfv, __glXDispSwap_TexParameterfv},
+    /* [ 107] =   107 */ {__glXDisp_TexParameteri, __glXDispSwap_TexParameteri},
+    /* [ 108] =   108 */ {__glXDisp_TexParameteriv, __glXDispSwap_TexParameteriv},
+    /* [ 109] =   109 */ {__glXDisp_TexImage1D, __glXDispSwap_TexImage1D},
+    /* [ 110] =   110 */ {__glXDisp_TexImage2D, __glXDispSwap_TexImage2D},
+    /* [ 111] =   111 */ {__glXDisp_TexEnvf, __glXDispSwap_TexEnvf},
+    /* [ 112] =   112 */ {__glXDisp_TexEnvfv, __glXDispSwap_TexEnvfv},
+    /* [ 113] =   113 */ {__glXDisp_TexEnvi, __glXDispSwap_TexEnvi},
+    /* [ 114] =   114 */ {__glXDisp_TexEnviv, __glXDispSwap_TexEnviv},
+    /* [ 115] =   115 */ {__glXDisp_TexGend, __glXDispSwap_TexGend},
+    /* [ 116] =   116 */ {__glXDisp_TexGendv, __glXDispSwap_TexGendv},
+    /* [ 117] =   117 */ {__glXDisp_TexGenf, __glXDispSwap_TexGenf},
+    /* [ 118] =   118 */ {__glXDisp_TexGenfv, __glXDispSwap_TexGenfv},
+    /* [ 119] =   119 */ {__glXDisp_TexGeni, __glXDispSwap_TexGeni},
+    /* [ 120] =   120 */ {__glXDisp_TexGeniv, __glXDispSwap_TexGeniv},
+    /* [ 121] =   121 */ {__glXDisp_InitNames, __glXDispSwap_InitNames},
+    /* [ 122] =   122 */ {__glXDisp_LoadName, __glXDispSwap_LoadName},
+    /* [ 123] =   123 */ {__glXDisp_PassThrough, __glXDispSwap_PassThrough},
+    /* [ 124] =   124 */ {__glXDisp_PopName, __glXDispSwap_PopName},
+    /* [ 125] =   125 */ {__glXDisp_PushName, __glXDispSwap_PushName},
+    /* [ 126] =   126 */ {__glXDisp_DrawBuffer, __glXDispSwap_DrawBuffer},
+    /* [ 127] =   127 */ {__glXDisp_Clear, __glXDispSwap_Clear},
+    /* [ 128] =   128 */ {__glXDisp_ClearAccum, __glXDispSwap_ClearAccum},
+    /* [ 129] =   129 */ {__glXDisp_ClearIndex, __glXDispSwap_ClearIndex},
+    /* [ 130] =   130 */ {__glXDisp_ClearColor, __glXDispSwap_ClearColor},
+    /* [ 131] =   131 */ {__glXDisp_ClearStencil, __glXDispSwap_ClearStencil},
+    /* [ 132] =   132 */ {__glXDisp_ClearDepth, __glXDispSwap_ClearDepth},
+    /* [ 133] =   133 */ {__glXDisp_StencilMask, __glXDispSwap_StencilMask},
+    /* [ 134] =   134 */ {__glXDisp_ColorMask, __glXDispSwap_ColorMask},
+    /* [ 135] =   135 */ {__glXDisp_DepthMask, __glXDispSwap_DepthMask},
+    /* [ 136] =   136 */ {__glXDisp_IndexMask, __glXDispSwap_IndexMask},
+    /* [ 137] =   137 */ {__glXDisp_Accum, __glXDispSwap_Accum},
+    /* [ 138] =   138 */ {__glXDisp_Disable, __glXDispSwap_Disable},
+    /* [ 139] =   139 */ {__glXDisp_Enable, __glXDispSwap_Enable},
+    /* [ 140] =   140 */ {NULL, NULL},
+    /* [ 141] =   141 */ {__glXDisp_PopAttrib, __glXDispSwap_PopAttrib},
+    /* [ 142] =   142 */ {__glXDisp_PushAttrib, __glXDispSwap_PushAttrib},
+    /* [ 143] =   143 */ {__glXDisp_Map1d, __glXDispSwap_Map1d},
+    /* [ 144] =   144 */ {__glXDisp_Map1f, __glXDispSwap_Map1f},
+    /* [ 145] =   145 */ {__glXDisp_Map2d, __glXDispSwap_Map2d},
+    /* [ 146] =   146 */ {__glXDisp_Map2f, __glXDispSwap_Map2f},
+    /* [ 147] =   147 */ {__glXDisp_MapGrid1d, __glXDispSwap_MapGrid1d},
+    /* [ 148] =   148 */ {__glXDisp_MapGrid1f, __glXDispSwap_MapGrid1f},
+    /* [ 149] =   149 */ {__glXDisp_MapGrid2d, __glXDispSwap_MapGrid2d},
+    /* [ 150] =   150 */ {__glXDisp_MapGrid2f, __glXDispSwap_MapGrid2f},
+    /* [ 151] =   151 */ {__glXDisp_EvalCoord1dv, __glXDispSwap_EvalCoord1dv},
+    /* [ 152] =   152 */ {__glXDisp_EvalCoord1fv, __glXDispSwap_EvalCoord1fv},
+    /* [ 153] =   153 */ {__glXDisp_EvalCoord2dv, __glXDispSwap_EvalCoord2dv},
+    /* [ 154] =   154 */ {__glXDisp_EvalCoord2fv, __glXDispSwap_EvalCoord2fv},
+    /* [ 155] =   155 */ {__glXDisp_EvalMesh1, __glXDispSwap_EvalMesh1},
+    /* [ 156] =   156 */ {__glXDisp_EvalPoint1, __glXDispSwap_EvalPoint1},
+    /* [ 157] =   157 */ {__glXDisp_EvalMesh2, __glXDispSwap_EvalMesh2},
+    /* [ 158] =   158 */ {__glXDisp_EvalPoint2, __glXDispSwap_EvalPoint2},
+    /* [ 159] =   159 */ {__glXDisp_AlphaFunc, __glXDispSwap_AlphaFunc},
+    /* [ 160] =   160 */ {__glXDisp_BlendFunc, __glXDispSwap_BlendFunc},
+    /* [ 161] =   161 */ {__glXDisp_LogicOp, __glXDispSwap_LogicOp},
+    /* [ 162] =   162 */ {__glXDisp_StencilFunc, __glXDispSwap_StencilFunc},
+    /* [ 163] =   163 */ {__glXDisp_StencilOp, __glXDispSwap_StencilOp},
+    /* [ 164] =   164 */ {__glXDisp_DepthFunc, __glXDispSwap_DepthFunc},
+    /* [ 165] =   165 */ {__glXDisp_PixelZoom, __glXDispSwap_PixelZoom},
+    /* [ 166] =   166 */ {__glXDisp_PixelTransferf, __glXDispSwap_PixelTransferf},
+    /* [ 167] =   167 */ {__glXDisp_PixelTransferi, __glXDispSwap_PixelTransferi},
+    /* [ 168] =   168 */ {__glXDisp_PixelMapfv, __glXDispSwap_PixelMapfv},
+    /* [ 169] =   169 */ {__glXDisp_PixelMapuiv, __glXDispSwap_PixelMapuiv},
+    /* [ 170] =   170 */ {__glXDisp_PixelMapusv, __glXDispSwap_PixelMapusv},
+    /* [ 171] =   171 */ {__glXDisp_ReadBuffer, __glXDispSwap_ReadBuffer},
+    /* [ 172] =   172 */ {__glXDisp_CopyPixels, __glXDispSwap_CopyPixels},
+    /* [ 173] =   173 */ {__glXDisp_DrawPixels, __glXDispSwap_DrawPixels},
+    /* [ 174] =   174 */ {__glXDisp_DepthRange, __glXDispSwap_DepthRange},
+    /* [ 175] =   175 */ {__glXDisp_Frustum, __glXDispSwap_Frustum},
+    /* [ 176] =   176 */ {__glXDisp_LoadIdentity, __glXDispSwap_LoadIdentity},
+    /* [ 177] =   177 */ {__glXDisp_LoadMatrixf, __glXDispSwap_LoadMatrixf},
+    /* [ 178] =   178 */ {__glXDisp_LoadMatrixd, __glXDispSwap_LoadMatrixd},
+    /* [ 179] =   179 */ {__glXDisp_MatrixMode, __glXDispSwap_MatrixMode},
+    /* [ 180] =   180 */ {__glXDisp_MultMatrixf, __glXDispSwap_MultMatrixf},
+    /* [ 181] =   181 */ {__glXDisp_MultMatrixd, __glXDispSwap_MultMatrixd},
+    /* [ 182] =   182 */ {__glXDisp_Ortho, __glXDispSwap_Ortho},
+    /* [ 183] =   183 */ {__glXDisp_PopMatrix, __glXDispSwap_PopMatrix},
+    /* [ 184] =   184 */ {__glXDisp_PushMatrix, __glXDispSwap_PushMatrix},
+    /* [ 185] =   185 */ {__glXDisp_Rotated, __glXDispSwap_Rotated},
+    /* [ 186] =   186 */ {__glXDisp_Rotatef, __glXDispSwap_Rotatef},
+    /* [ 187] =   187 */ {__glXDisp_Scaled, __glXDispSwap_Scaled},
+    /* [ 188] =   188 */ {__glXDisp_Scalef, __glXDispSwap_Scalef},
+    /* [ 189] =   189 */ {__glXDisp_Translated, __glXDispSwap_Translated},
+    /* [ 190] =   190 */ {__glXDisp_Translatef, __glXDispSwap_Translatef},
+    /* [ 191] =   191 */ {__glXDisp_Viewport, __glXDispSwap_Viewport},
+    /* [ 192] =   192 */ {__glXDisp_PolygonOffset, __glXDispSwap_PolygonOffset},
+    /* [ 193] =   193 */ {__glXDisp_DrawArrays, __glXDispSwap_DrawArrays},
+    /* [ 194] =   194 */ {__glXDisp_Indexubv, __glXDispSwap_Indexubv},
+    /* [ 195] =   195 */ {__glXDisp_ColorSubTable, __glXDispSwap_ColorSubTable},
+    /* [ 196] =   196 */ {__glXDisp_CopyColorSubTable, __glXDispSwap_CopyColorSubTable},
+    /* [ 197] =   197 */ {__glXDisp_ActiveTextureARB, __glXDispSwap_ActiveTextureARB},
+    /* [ 198] =   198 */ {__glXDisp_MultiTexCoord1dvARB, __glXDispSwap_MultiTexCoord1dvARB},
+    /* [ 199] =   199 */ {__glXDisp_MultiTexCoord1fvARB, __glXDispSwap_MultiTexCoord1fvARB},
+    /* [ 200] =   200 */ {__glXDisp_MultiTexCoord1ivARB, __glXDispSwap_MultiTexCoord1ivARB},
+    /* [ 201] =   201 */ {__glXDisp_MultiTexCoord1svARB, __glXDispSwap_MultiTexCoord1svARB},
+    /* [ 202] =   202 */ {__glXDisp_MultiTexCoord2dvARB, __glXDispSwap_MultiTexCoord2dvARB},
+    /* [ 203] =   203 */ {__glXDisp_MultiTexCoord2fvARB, __glXDispSwap_MultiTexCoord2fvARB},
+    /* [ 204] =   204 */ {__glXDisp_MultiTexCoord2ivARB, __glXDispSwap_MultiTexCoord2ivARB},
+    /* [ 205] =   205 */ {__glXDisp_MultiTexCoord2svARB, __glXDispSwap_MultiTexCoord2svARB},
+    /* [ 206] =   206 */ {__glXDisp_MultiTexCoord3dvARB, __glXDispSwap_MultiTexCoord3dvARB},
+    /* [ 207] =   207 */ {__glXDisp_MultiTexCoord3fvARB, __glXDispSwap_MultiTexCoord3fvARB},
+    /* [ 208] =   208 */ {__glXDisp_MultiTexCoord3ivARB, __glXDispSwap_MultiTexCoord3ivARB},
+    /* [ 209] =   209 */ {__glXDisp_MultiTexCoord3svARB, __glXDispSwap_MultiTexCoord3svARB},
+    /* [ 210] =   210 */ {__glXDisp_MultiTexCoord4dvARB, __glXDispSwap_MultiTexCoord4dvARB},
+    /* [ 211] =   211 */ {__glXDisp_MultiTexCoord4fvARB, __glXDispSwap_MultiTexCoord4fvARB},
+    /* [ 212] =   212 */ {__glXDisp_MultiTexCoord4ivARB, __glXDispSwap_MultiTexCoord4ivARB},
+    /* [ 213] =   213 */ {__glXDisp_MultiTexCoord4svARB, __glXDispSwap_MultiTexCoord4svARB},
+    /* [ 214] =   214 */ {__glXDisp_CompressedTexImage1DARB, __glXDispSwap_CompressedTexImage1DARB},
+    /* [ 215] =   215 */ {__glXDisp_CompressedTexImage2DARB, __glXDispSwap_CompressedTexImage2DARB},
+    /* [ 216] =   216 */ {__glXDisp_CompressedTexImage3DARB, __glXDispSwap_CompressedTexImage3DARB},
+    /* [ 217] =   217 */ {__glXDisp_CompressedTexSubImage1DARB, __glXDispSwap_CompressedTexSubImage1DARB},
+    /* [ 218] =   218 */ {__glXDisp_CompressedTexSubImage2DARB, __glXDispSwap_CompressedTexSubImage2DARB},
+    /* [ 219] =   219 */ {__glXDisp_CompressedTexSubImage3DARB, __glXDispSwap_CompressedTexSubImage3DARB},
+    /* [ 220] =   220 */ {NULL, NULL},
+    /* [ 221] =   221 */ {NULL, NULL},
+    /* [ 222] =   222 */ {NULL, NULL},
+    /* [ 223] =   223 */ {NULL, NULL},
+    /* [ 224] =   224 */ {NULL, NULL},
+    /* [ 225] =   225 */ {NULL, NULL},
+    /* [ 226] =   226 */ {NULL, NULL},
+    /* [ 227] =   227 */ {NULL, NULL},
+    /* [ 228] =   228 */ {NULL, NULL},
+    /* [ 229] =   229 */ {__glXDisp_SampleCoverageARB, __glXDispSwap_SampleCoverageARB},
+    /* [ 230] =   230 */ {__glXDisp_WindowPos3fvMESA, __glXDispSwap_WindowPos3fvMESA},
+    /* [ 231] =   231 */ {__glXDisp_BeginQueryARB, __glXDispSwap_BeginQueryARB},
+    /* [ 232] =   232 */ {__glXDisp_EndQueryARB, __glXDispSwap_EndQueryARB},
+    /* [ 233] =   233 */ {__glXDisp_DrawBuffersARB, __glXDispSwap_DrawBuffersARB},
+    /* [ 234] =   234 */ {NULL, NULL},
+    /* [ 235] =   235 */ {NULL, NULL},
+    /* [ 236] =   236 */ {NULL, NULL},
+    /* [ 237] =   237 */ {NULL, NULL},
+    /* [ 238] =   238 */ {NULL, NULL},
+    /* [ 239] =   239 */ {NULL, NULL},
+    /* [ 240] =  2048 */ {__glXDisp_SampleMaskSGIS, __glXDispSwap_SampleMaskSGIS},
+    /* [ 241] =  2049 */ {__glXDisp_SamplePatternSGIS, __glXDispSwap_SamplePatternSGIS},
+    /* [ 242] =  2050 */ {NULL, NULL},
+    /* [ 243] =  2051 */ {NULL, NULL},
+    /* [ 244] =  2052 */ {NULL, NULL},
+    /* [ 245] =  2053 */ {__glXDisp_ColorTable, __glXDispSwap_ColorTable},
+    /* [ 246] =  2054 */ {__glXDisp_ColorTableParameterfv, __glXDispSwap_ColorTableParameterfv},
+    /* [ 247] =  2055 */ {__glXDisp_ColorTableParameteriv, __glXDispSwap_ColorTableParameteriv},
+    /* [ 248] =  2056 */ {__glXDisp_CopyColorTable, __glXDispSwap_CopyColorTable},
+    /* [ 249] =  2057 */ {NULL, NULL},
+    /* [ 250] =  2058 */ {NULL, NULL},
+    /* [ 251] =  2059 */ {NULL, NULL},
+    /* [ 252] =  2060 */ {NULL, NULL},
+    /* [ 253] =  2061 */ {NULL, NULL},
+    /* [ 254] =  2062 */ {NULL, NULL},
+    /* [ 255] =  2063 */ {NULL, NULL},
+    /* [ 256] =  2064 */ {NULL, NULL},
+    /* [ 257] =  2065 */ {__glXDisp_PointParameterfEXT, __glXDispSwap_PointParameterfEXT},
+    /* [ 258] =  2066 */ {__glXDisp_PointParameterfvEXT, __glXDispSwap_PointParameterfvEXT},
+    /* [ 259] =  2067 */ {NULL, NULL},
+    /* [ 260] =  2068 */ {NULL, NULL},
+    /* [ 261] =  2069 */ {NULL, NULL},
+    /* [ 262] =  2070 */ {NULL, NULL},
+    /* [ 263] =  2071 */ {NULL, NULL},
+    /* [ 264] =  4096 */ {__glXDisp_BlendColor, __glXDispSwap_BlendColor},
+    /* [ 265] =  4097 */ {__glXDisp_BlendEquation, __glXDispSwap_BlendEquation},
+    /* [ 266] =  4098 */ {NULL, NULL},
+    /* [ 267] =  4099 */ {__glXDisp_TexSubImage1D, __glXDispSwap_TexSubImage1D},
+    /* [ 268] =  4100 */ {__glXDisp_TexSubImage2D, __glXDispSwap_TexSubImage2D},
+    /* [ 269] =  4101 */ {__glXDisp_ConvolutionFilter1D, __glXDispSwap_ConvolutionFilter1D},
+    /* [ 270] =  4102 */ {__glXDisp_ConvolutionFilter2D, __glXDispSwap_ConvolutionFilter2D},
+    /* [ 271] =  4103 */ {__glXDisp_ConvolutionParameterf, __glXDispSwap_ConvolutionParameterf},
+    /* [ 272] =  4104 */ {__glXDisp_ConvolutionParameterfv, __glXDispSwap_ConvolutionParameterfv},
+    /* [ 273] =  4105 */ {__glXDisp_ConvolutionParameteri, __glXDispSwap_ConvolutionParameteri},
+    /* [ 274] =  4106 */ {__glXDisp_ConvolutionParameteriv, __glXDispSwap_ConvolutionParameteriv},
+    /* [ 275] =  4107 */ {__glXDisp_CopyConvolutionFilter1D, __glXDispSwap_CopyConvolutionFilter1D},
+    /* [ 276] =  4108 */ {__glXDisp_CopyConvolutionFilter2D, __glXDispSwap_CopyConvolutionFilter2D},
+    /* [ 277] =  4109 */ {__glXDisp_SeparableFilter2D, __glXDispSwap_SeparableFilter2D},
+    /* [ 278] =  4110 */ {__glXDisp_Histogram, __glXDispSwap_Histogram},
+    /* [ 279] =  4111 */ {__glXDisp_Minmax, __glXDispSwap_Minmax},
+    /* [ 280] =  4112 */ {__glXDisp_ResetHistogram, __glXDispSwap_ResetHistogram},
+    /* [ 281] =  4113 */ {__glXDisp_ResetMinmax, __glXDispSwap_ResetMinmax},
+    /* [ 282] =  4114 */ {__glXDisp_TexImage3D, __glXDispSwap_TexImage3D},
+    /* [ 283] =  4115 */ {__glXDisp_TexSubImage3D, __glXDispSwap_TexSubImage3D},
+    /* [ 284] =  4116 */ {NULL, NULL},
+    /* [ 285] =  4117 */ {__glXDisp_BindTexture, __glXDispSwap_BindTexture},
+    /* [ 286] =  4118 */ {__glXDisp_PrioritizeTextures, __glXDispSwap_PrioritizeTextures},
+    /* [ 287] =  4119 */ {__glXDisp_CopyTexImage1D, __glXDispSwap_CopyTexImage1D},
+    /* [ 288] =  4120 */ {__glXDisp_CopyTexImage2D, __glXDispSwap_CopyTexImage2D},
+    /* [ 289] =  4121 */ {__glXDisp_CopyTexSubImage1D, __glXDispSwap_CopyTexSubImage1D},
+    /* [ 290] =  4122 */ {__glXDisp_CopyTexSubImage2D, __glXDispSwap_CopyTexSubImage2D},
+    /* [ 291] =  4123 */ {__glXDisp_CopyTexSubImage3D, __glXDispSwap_CopyTexSubImage3D},
+    /* [ 292] =  4124 */ {__glXDisp_FogCoordfvEXT, __glXDispSwap_FogCoordfvEXT},
+    /* [ 293] =  4125 */ {__glXDisp_FogCoorddvEXT, __glXDispSwap_FogCoorddvEXT},
+    /* [ 294] =  4126 */ {__glXDisp_SecondaryColor3bvEXT, __glXDispSwap_SecondaryColor3bvEXT},
+    /* [ 295] =  4127 */ {__glXDisp_SecondaryColor3svEXT, __glXDispSwap_SecondaryColor3svEXT},
+    /* [ 296] =  4192 */ {__glXDisp_VertexAttrib4svARB, __glXDispSwap_VertexAttrib4svARB},
+    /* [ 297] =  4193 */ {__glXDisp_VertexAttrib1fvARB, __glXDispSwap_VertexAttrib1fvARB},
+    /* [ 298] =  4194 */ {__glXDisp_VertexAttrib2fvARB, __glXDispSwap_VertexAttrib2fvARB},
+    /* [ 299] =  4195 */ {__glXDisp_VertexAttrib3fvNV, __glXDispSwap_VertexAttrib3fvNV},
+    /* [ 300] =  4196 */ {__glXDisp_VertexAttrib4fvARB, __glXDispSwap_VertexAttrib4fvARB},
+    /* [ 301] =  4197 */ {__glXDisp_VertexAttrib1dvARB, __glXDispSwap_VertexAttrib1dvARB},
+    /* [ 302] =  4198 */ {__glXDisp_VertexAttrib2dvARB, __glXDispSwap_VertexAttrib2dvARB},
+    /* [ 303] =  4199 */ {__glXDisp_VertexAttrib3dvNV, __glXDispSwap_VertexAttrib3dvNV},
+    /* [ 304] =  4200 */ {__glXDisp_VertexAttrib4dvNV, __glXDispSwap_VertexAttrib4dvNV},
+    /* [ 305] =  4201 */ {__glXDisp_VertexAttrib4NubvARB, __glXDispSwap_VertexAttrib4NubvARB},
+    /* [ 306] =  4202 */ {__glXDisp_VertexAttribs1svNV, __glXDispSwap_VertexAttribs1svNV},
+    /* [ 307] =  4203 */ {__glXDisp_VertexAttribs2svNV, __glXDispSwap_VertexAttribs2svNV},
+    /* [ 308] =  4204 */ {__glXDisp_VertexAttribs3svNV, __glXDispSwap_VertexAttribs3svNV},
+    /* [ 309] =  4205 */ {__glXDisp_VertexAttribs4svNV, __glXDispSwap_VertexAttribs4svNV},
+    /* [ 310] =  4206 */ {__glXDisp_VertexAttribs1fvNV, __glXDispSwap_VertexAttribs1fvNV},
+    /* [ 311] =  4207 */ {__glXDisp_VertexAttribs2fvNV, __glXDispSwap_VertexAttribs2fvNV},
+    /* [ 312] =  4208 */ {__glXDisp_VertexAttribs3fvNV, __glXDispSwap_VertexAttribs3fvNV},
+    /* [ 313] =  4209 */ {__glXDisp_VertexAttribs4fvNV, __glXDispSwap_VertexAttribs4fvNV},
+    /* [ 314] =  4210 */ {__glXDisp_VertexAttribs1dvNV, __glXDispSwap_VertexAttribs1dvNV},
+    /* [ 315] =  4211 */ {__glXDisp_VertexAttribs2dvNV, __glXDispSwap_VertexAttribs2dvNV},
+    /* [ 316] =  4212 */ {__glXDisp_VertexAttribs3dvNV, __glXDispSwap_VertexAttribs3dvNV},
+    /* [ 317] =  4213 */ {__glXDisp_VertexAttribs4dvNV, __glXDispSwap_VertexAttribs4dvNV},
+    /* [ 318] =  4214 */ {__glXDisp_VertexAttribs4ubvNV, __glXDispSwap_VertexAttribs4ubvNV},
+    /* [ 319] =  4215 */ {__glXDisp_ProgramLocalParameter4fvARB, __glXDispSwap_ProgramLocalParameter4fvARB},
+    /* [ 320] =  4216 */ {__glXDisp_ProgramLocalParameter4dvARB, __glXDispSwap_ProgramLocalParameter4dvARB},
+    /* [ 321] =  4217 */ {__glXDisp_ProgramStringARB, __glXDispSwap_ProgramStringARB},
+    /* [ 322] =  4218 */ {__glXDisp_ProgramNamedParameter4fvNV, __glXDispSwap_ProgramNamedParameter4fvNV},
+    /* [ 323] =  4219 */ {__glXDisp_ProgramNamedParameter4dvNV, __glXDispSwap_ProgramNamedParameter4dvNV},
+    /* [ 324] =  4220 */ {__glXDisp_ActiveStencilFaceEXT, __glXDispSwap_ActiveStencilFaceEXT},
+    /* [ 325] =  4221 */ {__glXDisp_PointParameteriNV, __glXDispSwap_PointParameteriNV},
+    /* [ 326] =  4222 */ {__glXDisp_PointParameterivNV, __glXDispSwap_PointParameterivNV},
+    /* [ 327] =  4223 */ {NULL, NULL},
+    /* [ 328] =  4128 */ {__glXDisp_SecondaryColor3ivEXT, __glXDispSwap_SecondaryColor3ivEXT},
+    /* [ 329] =  4129 */ {__glXDisp_SecondaryColor3fvEXT, __glXDispSwap_SecondaryColor3fvEXT},
+    /* [ 330] =  4130 */ {__glXDisp_SecondaryColor3dvEXT, __glXDispSwap_SecondaryColor3dvEXT},
+    /* [ 331] =  4131 */ {__glXDisp_SecondaryColor3ubvEXT, __glXDispSwap_SecondaryColor3ubvEXT},
+    /* [ 332] =  4132 */ {__glXDisp_SecondaryColor3usvEXT, __glXDispSwap_SecondaryColor3usvEXT},
+    /* [ 333] =  4133 */ {__glXDisp_SecondaryColor3uivEXT, __glXDispSwap_SecondaryColor3uivEXT},
+    /* [ 334] =  4134 */ {__glXDisp_BlendFuncSeparateEXT, __glXDispSwap_BlendFuncSeparateEXT},
+    /* [ 335] =  4135 */ {NULL, NULL},
+    /* [ 336] =  4176 */ {NULL, NULL},
+    /* [ 337] =  4177 */ {NULL, NULL},
+    /* [ 338] =  4178 */ {NULL, NULL},
+    /* [ 339] =  4179 */ {NULL, NULL},
+    /* [ 340] =  4180 */ {__glXDisp_BindProgramNV, __glXDispSwap_BindProgramNV},
+    /* [ 341] =  4181 */ {__glXDisp_ExecuteProgramNV, __glXDispSwap_ExecuteProgramNV},
+    /* [ 342] =  4182 */ {__glXDisp_RequestResidentProgramsNV, __glXDispSwap_RequestResidentProgramsNV},
+    /* [ 343] =  4183 */ {__glXDisp_LoadProgramNV, __glXDispSwap_LoadProgramNV},
+    /* [ 344] =  4184 */ {__glXDisp_ProgramParameter4fvNV, __glXDispSwap_ProgramParameter4fvNV},
+    /* [ 345] =  4185 */ {__glXDisp_ProgramParameter4dvNV, __glXDispSwap_ProgramParameter4dvNV},
+    /* [ 346] =  4186 */ {__glXDisp_ProgramParameters4fvNV, __glXDispSwap_ProgramParameters4fvNV},
+    /* [ 347] =  4187 */ {__glXDisp_ProgramParameters4dvNV, __glXDispSwap_ProgramParameters4dvNV},
+    /* [ 348] =  4188 */ {__glXDisp_TrackMatrixNV, __glXDispSwap_TrackMatrixNV},
+    /* [ 349] =  4189 */ {__glXDisp_VertexAttrib1svNV, __glXDispSwap_VertexAttrib1svNV},
+    /* [ 350] =  4190 */ {__glXDisp_VertexAttrib2svARB, __glXDispSwap_VertexAttrib2svARB},
+    /* [ 351] =  4191 */ {__glXDisp_VertexAttrib3svNV, __glXDispSwap_VertexAttrib3svNV},
+    /* [ 352] =  4224 */ {NULL, NULL},
+    /* [ 353] =  4225 */ {NULL, NULL},
+    /* [ 354] =  4226 */ {NULL, NULL},
+    /* [ 355] =  4227 */ {NULL, NULL},
+    /* [ 356] =  4228 */ {NULL, NULL},
+    /* [ 357] =  4229 */ {NULL, NULL},
+    /* [ 358] =  4230 */ {__glXDisp_VertexAttrib4bvARB, __glXDispSwap_VertexAttrib4bvARB},
+    /* [ 359] =  4231 */ {__glXDisp_VertexAttrib4ivARB, __glXDispSwap_VertexAttrib4ivARB},
+    /* [ 360] =  4232 */ {__glXDisp_VertexAttrib4ubvARB, __glXDispSwap_VertexAttrib4ubvARB},
+    /* [ 361] =  4233 */ {__glXDisp_VertexAttrib4usvARB, __glXDispSwap_VertexAttrib4usvARB},
+    /* [ 362] =  4234 */ {__glXDisp_VertexAttrib4uivARB, __glXDispSwap_VertexAttrib4uivARB},
+    /* [ 363] =  4235 */ {__glXDisp_VertexAttrib4NbvARB, __glXDispSwap_VertexAttrib4NbvARB},
+    /* [ 364] =  4236 */ {__glXDisp_VertexAttrib4NsvARB, __glXDispSwap_VertexAttrib4NsvARB},
+    /* [ 365] =  4237 */ {__glXDisp_VertexAttrib4NivARB, __glXDispSwap_VertexAttrib4NivARB},
+    /* [ 366] =  4238 */ {__glXDisp_VertexAttrib4NusvARB, __glXDispSwap_VertexAttrib4NusvARB},
+    /* [ 367] =  4239 */ {__glXDisp_VertexAttrib4NuivARB, __glXDispSwap_VertexAttrib4NuivARB},
+    /* [ 368] =  4312 */ {NULL, NULL},
+    /* [ 369] =  4313 */ {NULL, NULL},
+    /* [ 370] =  4314 */ {NULL, NULL},
+    /* [ 371] =  4315 */ {NULL, NULL},
+    /* [ 372] =  4316 */ {__glXDisp_BindRenderbufferEXT, __glXDispSwap_BindRenderbufferEXT},
+    /* [ 373] =  4317 */ {__glXDisp_DeleteRenderbuffersEXT, __glXDispSwap_DeleteRenderbuffersEXT},
+    /* [ 374] =  4318 */ {__glXDisp_RenderbufferStorageEXT, __glXDispSwap_RenderbufferStorageEXT},
+    /* [ 375] =  4319 */ {__glXDisp_BindFramebufferEXT, __glXDispSwap_BindFramebufferEXT},
+    /* [ 376] =  4320 */ {__glXDisp_DeleteFramebuffersEXT, __glXDispSwap_DeleteFramebuffersEXT},
+    /* [ 377] =  4321 */ {__glXDisp_FramebufferTexture1DEXT, __glXDispSwap_FramebufferTexture1DEXT},
+    /* [ 378] =  4322 */ {__glXDisp_FramebufferTexture2DEXT, __glXDispSwap_FramebufferTexture2DEXT},
+    /* [ 379] =  4323 */ {__glXDisp_FramebufferTexture3DEXT, __glXDispSwap_FramebufferTexture3DEXT},
+    /* [ 380] =  4324 */ {__glXDisp_FramebufferRenderbufferEXT, __glXDispSwap_FramebufferRenderbufferEXT},
+    /* [ 381] =  4325 */ {__glXDisp_GenerateMipmapEXT, __glXDispSwap_GenerateMipmapEXT},
+    /* [ 382] =  4326 */ {NULL, NULL},
+    /* [ 383] =  4327 */ {NULL, NULL},
+};
+
+static const int_fast16_t Render_size_table[384][2] = {
+    /* [  0] =     0 */ {  0, ~0},
+    /* [  1] =     1 */ {  8, ~0},
+    /* [  2] =     2 */ { 12,  0},
+    /* [  3] =     3 */ {  8, ~0},
+    /* [  4] =     4 */ {  8, ~0},
+    /* [  5] =     5 */ { 48,  1},
+    /* [  6] =     6 */ {  8, ~0},
+    /* [  7] =     7 */ { 28, ~0},
+    /* [  8] =     8 */ { 16, ~0},
+    /* [  9] =     9 */ { 16, ~0},
+    /* [ 10] =    10 */ { 12, ~0},
+    /* [ 11] =    11 */ {  8, ~0},
+    /* [ 12] =    12 */ { 16, ~0},
+    /* [ 13] =    13 */ { 12, ~0},
+    /* [ 14] =    14 */ {  8, ~0},
+    /* [ 15] =    15 */ { 36, ~0},
+    /* [ 16] =    16 */ { 20, ~0},
+    /* [ 17] =    17 */ { 20, ~0},
+    /* [ 18] =    18 */ { 12, ~0},
+    /* [ 19] =    19 */ {  8, ~0},
+    /* [ 20] =    20 */ { 20, ~0},
+    /* [ 21] =    21 */ { 12, ~0},
+    /* [ 22] =    22 */ {  8, ~0},
+    /* [ 23] =    23 */ {  4, ~0},
+    /* [ 24] =    24 */ { 12, ~0},
+    /* [ 25] =    25 */ {  8, ~0},
+    /* [ 26] =    26 */ {  8, ~0},
+    /* [ 27] =    27 */ {  8, ~0},
+    /* [ 28] =    28 */ {  8, ~0},
+    /* [ 29] =    29 */ { 28, ~0},
+    /* [ 30] =    30 */ { 16, ~0},
+    /* [ 31] =    31 */ { 16, ~0},
+    /* [ 32] =    32 */ { 12, ~0},
+    /* [ 33] =    33 */ { 20, ~0},
+    /* [ 34] =    34 */ { 12, ~0},
+    /* [ 35] =    35 */ { 12, ~0},
+    /* [ 36] =    36 */ {  8, ~0},
+    /* [ 37] =    37 */ { 28, ~0},
+    /* [ 38] =    38 */ { 16, ~0},
+    /* [ 39] =    39 */ { 16, ~0},
+    /* [ 40] =    40 */ { 12, ~0},
+    /* [ 41] =    41 */ { 36, ~0},
+    /* [ 42] =    42 */ { 20, ~0},
+    /* [ 43] =    43 */ { 20, ~0},
+    /* [ 44] =    44 */ { 12, ~0},
+    /* [ 45] =    45 */ { 36, ~0},
+    /* [ 46] =    46 */ { 20, ~0},
+    /* [ 47] =    47 */ { 20, ~0},
+    /* [ 48] =    48 */ { 12, ~0},
+    /* [ 49] =    49 */ { 12, ~0},
+    /* [ 50] =    50 */ {  8, ~0},
+    /* [ 51] =    51 */ {  8, ~0},
+    /* [ 52] =    52 */ {  8, ~0},
+    /* [ 53] =    53 */ { 20, ~0},
+    /* [ 54] =    54 */ { 12, ~0},
+    /* [ 55] =    55 */ { 12, ~0},
+    /* [ 56] =    56 */ {  8, ~0},
+    /* [ 57] =    57 */ { 28, ~0},
+    /* [ 58] =    58 */ { 16, ~0},
+    /* [ 59] =    59 */ { 16, ~0},
+    /* [ 60] =    60 */ { 12, ~0},
+    /* [ 61] =    61 */ { 36, ~0},
+    /* [ 62] =    62 */ { 20, ~0},
+    /* [ 63] =    63 */ { 20, ~0},
+    /* [ 64] =    64 */ { 12, ~0},
+    /* [ 65] =    65 */ { 20, ~0},
+    /* [ 66] =    66 */ { 12, ~0},
+    /* [ 67] =    67 */ { 12, ~0},
+    /* [ 68] =    68 */ {  8, ~0},
+    /* [ 69] =    69 */ { 28, ~0},
+    /* [ 70] =    70 */ { 16, ~0},
+    /* [ 71] =    71 */ { 16, ~0},
+    /* [ 72] =    72 */ { 12, ~0},
+    /* [ 73] =    73 */ { 36, ~0},
+    /* [ 74] =    74 */ { 20, ~0},
+    /* [ 75] =    75 */ { 20, ~0},
+    /* [ 76] =    76 */ { 12, ~0},
+    /* [ 77] =    77 */ { 40, ~0},
+    /* [ 78] =    78 */ { 12, ~0},
+    /* [ 79] =    79 */ {  8, ~0},
+    /* [ 80] =    80 */ { 12, ~0},
+    /* [ 81] =    81 */ {  8,  2},
+    /* [ 82] =    82 */ { 12, ~0},
+    /* [ 83] =    83 */ {  8,  3},
+    /* [ 84] =    84 */ {  8, ~0},
+    /* [ 85] =    85 */ { 12, ~0},
+    /* [ 86] =    86 */ { 16, ~0},
+    /* [ 87] =    87 */ { 12,  4},
+    /* [ 88] =    88 */ { 16, ~0},
+    /* [ 89] =    89 */ { 12,  5},
+    /* [ 90] =    90 */ { 12, ~0},
+    /* [ 91] =    91 */ {  8,  6},
+    /* [ 92] =    92 */ { 12, ~0},
+    /* [ 93] =    93 */ {  8,  7},
+    /* [ 94] =    94 */ { 12, ~0},
+    /* [ 95] =    95 */ {  8, ~0},
+    /* [ 96] =    96 */ { 16, ~0},
+    /* [ 97] =    97 */ { 12,  8},
+    /* [ 98] =    98 */ { 16, ~0},
+    /* [ 99] =    99 */ { 12,  9},
+    /* [100] =   100 */ {  8, ~0},
+    /* [101] =   101 */ { 12, ~0},
+    /* [102] =   102 */ { 24, 10},
+    /* [103] =   103 */ { 20, ~0},
+    /* [104] =   104 */ {  8, ~0},
+    /* [105] =   105 */ { 16, ~0},
+    /* [106] =   106 */ { 12, 11},
+    /* [107] =   107 */ { 16, ~0},
+    /* [108] =   108 */ { 12, 12},
+    /* [109] =   109 */ { 56, 13},
+    /* [110] =   110 */ { 56, 14},
+    /* [111] =   111 */ { 16, ~0},
+    /* [112] =   112 */ { 12, 15},
+    /* [113] =   113 */ { 16, ~0},
+    /* [114] =   114 */ { 12, 16},
+    /* [115] =   115 */ { 20, ~0},
+    /* [116] =   116 */ { 12, 17},
+    /* [117] =   117 */ { 16, ~0},
+    /* [118] =   118 */ { 12, 18},
+    /* [119] =   119 */ { 16, ~0},
+    /* [120] =   120 */ { 12, 19},
+    /* [121] =   121 */ {  4, ~0},
+    /* [122] =   122 */ {  8, ~0},
+    /* [123] =   123 */ {  8, ~0},
+    /* [124] =   124 */ {  4, ~0},
+    /* [125] =   125 */ {  8, ~0},
+    /* [126] =   126 */ {  8, ~0},
+    /* [127] =   127 */ {  8, ~0},
+    /* [128] =   128 */ { 20, ~0},
+    /* [129] =   129 */ {  8, ~0},
+    /* [130] =   130 */ { 20, ~0},
+    /* [131] =   131 */ {  8, ~0},
+    /* [132] =   132 */ { 12, ~0},
+    /* [133] =   133 */ {  8, ~0},
+    /* [134] =   134 */ {  8, ~0},
+    /* [135] =   135 */ {  8, ~0},
+    /* [136] =   136 */ {  8, ~0},
+    /* [137] =   137 */ { 12, ~0},
+    /* [138] =   138 */ {  8, ~0},
+    /* [139] =   139 */ {  8, ~0},
+    /* [140] =   140 */ {  0, ~0},
+    /* [141] =   141 */ {  4, ~0},
+    /* [142] =   142 */ {  8, ~0},
+    /* [143] =   143 */ { 40, 20},
+    /* [144] =   144 */ { 28, 21},
+    /* [145] =   145 */ { 64, 22},
+    /* [146] =   146 */ { 44, 23},
+    /* [147] =   147 */ { 24, ~0},
+    /* [148] =   148 */ { 16, ~0},
+    /* [149] =   149 */ { 44, ~0},
+    /* [150] =   150 */ { 28, ~0},
+    /* [151] =   151 */ { 12, ~0},
+    /* [152] =   152 */ {  8, ~0},
+    /* [153] =   153 */ { 20, ~0},
+    /* [154] =   154 */ { 12, ~0},
+    /* [155] =   155 */ { 16, ~0},
+    /* [156] =   156 */ {  8, ~0},
+    /* [157] =   157 */ { 24, ~0},
+    /* [158] =   158 */ { 12, ~0},
+    /* [159] =   159 */ { 12, ~0},
+    /* [160] =   160 */ { 12, ~0},
+    /* [161] =   161 */ {  8, ~0},
+    /* [162] =   162 */ { 16, ~0},
+    /* [163] =   163 */ { 16, ~0},
+    /* [164] =   164 */ {  8, ~0},
+    /* [165] =   165 */ { 12, ~0},
+    /* [166] =   166 */ { 12, ~0},
+    /* [167] =   167 */ { 12, ~0},
+    /* [168] =   168 */ { 12, 24},
+    /* [169] =   169 */ { 12, 25},
+    /* [170] =   170 */ { 12, 26},
+    /* [171] =   171 */ {  8, ~0},
+    /* [172] =   172 */ { 24, ~0},
+    /* [173] =   173 */ { 40, 27},
+    /* [174] =   174 */ { 20, ~0},
+    /* [175] =   175 */ { 52, ~0},
+    /* [176] =   176 */ {  4, ~0},
+    /* [177] =   177 */ { 68, ~0},
+    /* [178] =   178 */ {132, ~0},
+    /* [179] =   179 */ {  8, ~0},
+    /* [180] =   180 */ { 68, ~0},
+    /* [181] =   181 */ {132, ~0},
+    /* [182] =   182 */ { 52, ~0},
+    /* [183] =   183 */ {  4, ~0},
+    /* [184] =   184 */ {  4, ~0},
+    /* [185] =   185 */ { 36, ~0},
+    /* [186] =   186 */ { 20, ~0},
+    /* [187] =   187 */ { 28, ~0},
+    /* [188] =   188 */ { 16, ~0},
+    /* [189] =   189 */ { 28, ~0},
+    /* [190] =   190 */ { 16, ~0},
+    /* [191] =   191 */ { 20, ~0},
+    /* [192] =   192 */ { 12, ~0},
+    /* [193] =   193 */ { 16, 28},
+    /* [194] =   194 */ {  8, ~0},
+    /* [195] =   195 */ { 44, 29},
+    /* [196] =   196 */ { 24, ~0},
+    /* [197] =   197 */ {  8, ~0},
+    /* [198] =   198 */ { 16, ~0},
+    /* [199] =   199 */ { 12, ~0},
+    /* [200] =   200 */ { 12, ~0},
+    /* [201] =   201 */ { 12, ~0},
+    /* [202] =   202 */ { 24, ~0},
+    /* [203] =   203 */ { 16, ~0},
+    /* [204] =   204 */ { 16, ~0},
+    /* [205] =   205 */ { 12, ~0},
+    /* [206] =   206 */ { 32, ~0},
+    /* [207] =   207 */ { 20, ~0},
+    /* [208] =   208 */ { 20, ~0},
+    /* [209] =   209 */ { 16, ~0},
+    /* [210] =   210 */ { 40, ~0},
+    /* [211] =   211 */ { 24, ~0},
+    /* [212] =   212 */ { 24, ~0},
+    /* [213] =   213 */ { 16, ~0},
+    /* [214] =   214 */ { 28, 30},
+    /* [215] =   215 */ { 32, 31},
+    /* [216] =   216 */ { 36, 32},
+    /* [217] =   217 */ { 28, 33},
+    /* [218] =   218 */ { 36, 34},
+    /* [219] =   219 */ { 44, 35},
+    /* [220] =   220 */ {  0, ~0},
+    /* [221] =   221 */ {  0, ~0},
+    /* [222] =   222 */ {  0, ~0},
+    /* [223] =   223 */ {  0, ~0},
+    /* [224] =   224 */ {  0, ~0},
+    /* [225] =   225 */ {  0, ~0},
+    /* [226] =   226 */ {  0, ~0},
+    /* [227] =   227 */ {  0, ~0},
+    /* [228] =   228 */ {  0, ~0},
+    /* [229] =   229 */ { 12, ~0},
+    /* [230] =   230 */ { 16, ~0},
+    /* [231] =   231 */ { 12, ~0},
+    /* [232] =   232 */ {  8, ~0},
+    /* [233] =   233 */ {  8, 36},
+    /* [234] =   234 */ {  0, ~0},
+    /* [235] =   235 */ {  0, ~0},
+    /* [236] =   236 */ {  0, ~0},
+    /* [237] =   237 */ {  0, ~0},
+    /* [238] =   238 */ {  0, ~0},
+    /* [239] =   239 */ {  0, ~0},
+    /* [240] =  2048 */ { 12, ~0},
+    /* [241] =  2049 */ {  8, ~0},
+    /* [242] =  2050 */ {  0, ~0},
+    /* [243] =  2051 */ {  0, ~0},
+    /* [244] =  2052 */ {  0, ~0},
+    /* [245] =  2053 */ { 44, 37},
+    /* [246] =  2054 */ { 12, 38},
+    /* [247] =  2055 */ { 12, 39},
+    /* [248] =  2056 */ { 24, ~0},
+    /* [249] =  2057 */ {  0, ~0},
+    /* [250] =  2058 */ {  0, ~0},
+    /* [251] =  2059 */ {  0, ~0},
+    /* [252] =  2060 */ {  0, ~0},
+    /* [253] =  2061 */ {  0, ~0},
+    /* [254] =  2062 */ {  0, ~0},
+    /* [255] =  2063 */ {  0, ~0},
+    /* [256] =  2064 */ {  0, ~0},
+    /* [257] =  2065 */ { 12, ~0},
+    /* [258] =  2066 */ {  8, 40},
+    /* [259] =  2067 */ {  0, ~0},
+    /* [260] =  2068 */ {  0, ~0},
+    /* [261] =  2069 */ {  0, ~0},
+    /* [262] =  2070 */ {  0, ~0},
+    /* [263] =  2071 */ {  0, ~0},
+    /* [264] =  4096 */ { 20, ~0},
+    /* [265] =  4097 */ {  8, ~0},
+    /* [266] =  4098 */ {  0, ~0},
+    /* [267] =  4099 */ { 60, 41},
+    /* [268] =  4100 */ { 60, 42},
+    /* [269] =  4101 */ { 48, 43},
+    /* [270] =  4102 */ { 48, 44},
+    /* [271] =  4103 */ { 16, ~0},
+    /* [272] =  4104 */ { 12, 45},
+    /* [273] =  4105 */ { 16, ~0},
+    /* [274] =  4106 */ { 12, 46},
+    /* [275] =  4107 */ { 24, ~0},
+    /* [276] =  4108 */ { 28, ~0},
+    /* [277] =  4109 */ { 32, 47},
+    /* [278] =  4110 */ { 20, ~0},
+    /* [279] =  4111 */ { 16, ~0},
+    /* [280] =  4112 */ {  8, ~0},
+    /* [281] =  4113 */ {  8, ~0},
+    /* [282] =  4114 */ { 84, 48},
+    /* [283] =  4115 */ { 92, 49},
+    /* [284] =  4116 */ {  0, ~0},
+    /* [285] =  4117 */ { 12, ~0},
+    /* [286] =  4118 */ {  8, 50},
+    /* [287] =  4119 */ { 32, ~0},
+    /* [288] =  4120 */ { 36, ~0},
+    /* [289] =  4121 */ { 28, ~0},
+    /* [290] =  4122 */ { 36, ~0},
+    /* [291] =  4123 */ { 40, ~0},
+    /* [292] =  4124 */ {  8, ~0},
+    /* [293] =  4125 */ { 12, ~0},
+    /* [294] =  4126 */ {  8, ~0},
+    /* [295] =  4127 */ { 12, ~0},
+    /* [296] =  4192 */ { 16, ~0},
+    /* [297] =  4193 */ { 12, ~0},
+    /* [298] =  4194 */ { 16, ~0},
+    /* [299] =  4195 */ { 20, ~0},
+    /* [300] =  4196 */ { 24, ~0},
+    /* [301] =  4197 */ { 16, ~0},
+    /* [302] =  4198 */ { 24, ~0},
+    /* [303] =  4199 */ { 32, ~0},
+    /* [304] =  4200 */ { 40, ~0},
+    /* [305] =  4201 */ { 12, ~0},
+    /* [306] =  4202 */ { 12, 51},
+    /* [307] =  4203 */ { 12, 52},
+    /* [308] =  4204 */ { 12, 53},
+    /* [309] =  4205 */ { 12, 54},
+    /* [310] =  4206 */ { 12, 55},
+    /* [311] =  4207 */ { 12, 56},
+    /* [312] =  4208 */ { 12, 57},
+    /* [313] =  4209 */ { 12, 58},
+    /* [314] =  4210 */ { 12, 59},
+    /* [315] =  4211 */ { 12, 60},
+    /* [316] =  4212 */ { 12, 61},
+    /* [317] =  4213 */ { 12, 62},
+    /* [318] =  4214 */ { 12, 63},
+    /* [319] =  4215 */ { 28, ~0},
+    /* [320] =  4216 */ { 44, ~0},
+    /* [321] =  4217 */ { 16, 64},
+    /* [322] =  4218 */ { 28, 65},
+    /* [323] =  4219 */ { 44, 66},
+    /* [324] =  4220 */ {  8, ~0},
+    /* [325] =  4221 */ { 12, ~0},
+    /* [326] =  4222 */ {  8, 67},
+    /* [327] =  4223 */ {  0, ~0},
+    /* [328] =  4128 */ { 16, ~0},
+    /* [329] =  4129 */ { 16, ~0},
+    /* [330] =  4130 */ { 28, ~0},
+    /* [331] =  4131 */ {  8, ~0},
+    /* [332] =  4132 */ { 12, ~0},
+    /* [333] =  4133 */ { 16, ~0},
+    /* [334] =  4134 */ { 20, ~0},
+    /* [335] =  4135 */ {  0, ~0},
+    /* [336] =  4176 */ {  0, ~0},
+    /* [337] =  4177 */ {  0, ~0},
+    /* [338] =  4178 */ {  0, ~0},
+    /* [339] =  4179 */ {  0, ~0},
+    /* [340] =  4180 */ { 12, ~0},
+    /* [341] =  4181 */ { 28, ~0},
+    /* [342] =  4182 */ {  8, 68},
+    /* [343] =  4183 */ { 16, 69},
+    /* [344] =  4184 */ { 28, ~0},
+    /* [345] =  4185 */ { 44, ~0},
+    /* [346] =  4186 */ { 16, 70},
+    /* [347] =  4187 */ { 16, 71},
+    /* [348] =  4188 */ { 20, ~0},
+    /* [349] =  4189 */ { 12, ~0},
+    /* [350] =  4190 */ { 12, ~0},
+    /* [351] =  4191 */ { 16, ~0},
+    /* [352] =  4224 */ {  0, ~0},
+    /* [353] =  4225 */ {  0, ~0},
+    /* [354] =  4226 */ {  0, ~0},
+    /* [355] =  4227 */ {  0, ~0},
+    /* [356] =  4228 */ {  0, ~0},
+    /* [357] =  4229 */ {  0, ~0},
+    /* [358] =  4230 */ { 12, ~0},
+    /* [359] =  4231 */ { 24, ~0},
+    /* [360] =  4232 */ { 12, ~0},
+    /* [361] =  4233 */ { 16, ~0},
+    /* [362] =  4234 */ { 24, ~0},
+    /* [363] =  4235 */ { 12, ~0},
+    /* [364] =  4236 */ { 16, ~0},
+    /* [365] =  4237 */ { 24, ~0},
+    /* [366] =  4238 */ { 16, ~0},
+    /* [367] =  4239 */ { 24, ~0},
+    /* [368] =  4312 */ {  0, ~0},
+    /* [369] =  4313 */ {  0, ~0},
+    /* [370] =  4314 */ {  0, ~0},
+    /* [371] =  4315 */ {  0, ~0},
+    /* [372] =  4316 */ { 12, ~0},
+    /* [373] =  4317 */ {  8, 72},
+    /* [374] =  4318 */ { 20, ~0},
+    /* [375] =  4319 */ { 12, ~0},
+    /* [376] =  4320 */ {  8, 73},
+    /* [377] =  4321 */ { 24, ~0},
+    /* [378] =  4322 */ { 24, ~0},
+    /* [379] =  4323 */ { 28, ~0},
+    /* [380] =  4324 */ { 20, ~0},
+    /* [381] =  4325 */ {  8, ~0},
+    /* [382] =  4326 */ {  0, ~0},
+    /* [383] =  4327 */ {  0, ~0},
+};
+
+static const gl_proto_size_func Render_size_func_table[74] = {
+   __glXCallListsReqSize,
+   __glXBitmapReqSize,
+   __glXFogfvReqSize,
+   __glXFogivReqSize,
+   __glXLightfvReqSize,
+   __glXLightivReqSize,
+   __glXLightModelfvReqSize,
+   __glXLightModelivReqSize,
+   __glXMaterialfvReqSize,
+   __glXMaterialivReqSize,
+   __glXPolygonStippleReqSize,
+   __glXTexParameterfvReqSize,
+   __glXTexParameterivReqSize,
+   __glXTexImage1DReqSize,
+   __glXTexImage2DReqSize,
+   __glXTexEnvfvReqSize,
+   __glXTexEnvivReqSize,
+   __glXTexGendvReqSize,
+   __glXTexGenfvReqSize,
+   __glXTexGenivReqSize,
+   __glXMap1dReqSize,
+   __glXMap1fReqSize,
+   __glXMap2dReqSize,
+   __glXMap2fReqSize,
+   __glXPixelMapfvReqSize,
+   __glXPixelMapuivReqSize,
+   __glXPixelMapusvReqSize,
+   __glXDrawPixelsReqSize,
+   __glXDrawArraysReqSize,
+   __glXColorSubTableReqSize,
+   __glXCompressedTexImage1DARBReqSize,
+   __glXCompressedTexImage2DARBReqSize,
+   __glXCompressedTexImage3DARBReqSize,
+   __glXCompressedTexSubImage1DARBReqSize,
+   __glXCompressedTexSubImage2DARBReqSize,
+   __glXCompressedTexSubImage3DARBReqSize,
+   __glXDrawBuffersARBReqSize,
+   __glXColorTableReqSize,
+   __glXColorTableParameterfvReqSize,
+   __glXColorTableParameterivReqSize,
+   __glXPointParameterfvEXTReqSize,
+   __glXTexSubImage1DReqSize,
+   __glXTexSubImage2DReqSize,
+   __glXConvolutionFilter1DReqSize,
+   __glXConvolutionFilter2DReqSize,
+   __glXConvolutionParameterfvReqSize,
+   __glXConvolutionParameterivReqSize,
+   __glXSeparableFilter2DReqSize,
+   __glXTexImage3DReqSize,
+   __glXTexSubImage3DReqSize,
+   __glXPrioritizeTexturesReqSize,
+   __glXVertexAttribs1svNVReqSize,
+   __glXVertexAttribs2svNVReqSize,
+   __glXVertexAttribs3svNVReqSize,
+   __glXVertexAttribs4svNVReqSize,
+   __glXVertexAttribs1fvNVReqSize,
+   __glXVertexAttribs2fvNVReqSize,
+   __glXVertexAttribs3fvNVReqSize,
+   __glXVertexAttribs4fvNVReqSize,
+   __glXVertexAttribs1dvNVReqSize,
+   __glXVertexAttribs2dvNVReqSize,
+   __glXVertexAttribs3dvNVReqSize,
+   __glXVertexAttribs4dvNVReqSize,
+   __glXVertexAttribs4ubvNVReqSize,
+   __glXProgramStringARBReqSize,
+   __glXProgramNamedParameter4fvNVReqSize,
+   __glXProgramNamedParameter4dvNVReqSize,
+   __glXPointParameterivNVReqSize,
+   __glXRequestResidentProgramsNVReqSize,
+   __glXLoadProgramNVReqSize,
+   __glXProgramParameters4fvNVReqSize,
+   __glXProgramParameters4dvNVReqSize,
+   __glXDeleteRenderbuffersEXTReqSize,
+   __glXDeleteFramebuffersEXTReqSize,
+};
+
+const struct __glXDispatchInfo Render_dispatch_info = {
+    13,
+    Render_dispatch_tree,
+    Render_function_table,
+    Render_size_table,
+    Render_size_func_table
+};
+
+/*****************************************************************/
 /* tree depth = 13 */
 static const int_fast16_t VendorPriv_dispatch_tree[138] = {
     /* [0] -> opcode range [0, 131072], node depth 1 */
@@ -424,7 +1432,7 @@ static const int_fast16_t VendorPriv_dis
 
 };
 
-static const __GLXdispatchVendorPrivProcPtr VendorPriv_function_table[72][2] = {
+static const void *VendorPriv_function_table[72][2] = {
     /* [  0] =     8 */ {NULL, NULL},
     /* [  1] =     9 */ {NULL, NULL},
     /* [  2] =    10 */ {NULL, NULL},
diff --git a/GL/glx/indirect_util.c b/GL/glx/indirect_util.c
index 3964cd5..93f1484 100644
--- a/GL/glx/indirect_util.c
+++ b/GL/glx/indirect_util.c
@@ -289,7 +289,7 @@ __glXGetProtocolDecodeFunction(const str
 
     return (func_index < 0) 
 	? NULL 
-	: dispatch_info->dispatch_functions[func_index][swapped_version];
+	: (void *) dispatch_info->dispatch_functions[func_index][swapped_version];
 }
 
 
@@ -300,13 +300,14 @@ __glXGetProtocolSizeData(const struct __
     if (dispatch_info->size_table != NULL) {
 	const int func_index = get_decode_index(dispatch_info, opcode);
 
-	if (func_index >= 0) {
+	if ((func_index >= 0) 
+	    && (dispatch_info->size_table[func_index][0] != 0)) {
 	    const int var_offset = 
 		dispatch_info->size_table[func_index][1];
 
 	    data->bytes = dispatch_info->size_table[func_index][0];
 	    data->varsize = (var_offset != ~0)
-		? dispatch_info->size_table[func_index]
+		? dispatch_info->size_func_table[var_offset]
 		: NULL;
 
 	    return 0;
diff --git a/GL/glx/rensizetab.c b/GL/glx/rensizetab.c
deleted file mode 100644
index 22dfc49..0000000
--- a/GL/glx/rensizetab.c
+++ /dev/null
@@ -1,2552 +0,0 @@
-/*
-** License Applicability. Except to the extent portions of this file are
-** made subject to an alternative license as permitted in the SGI Free
-** Software License B, Version 1.1 (the "License"), the contents of this
-** file are subject only to the provisions of the License. You may not use
-** this file except in compliance with the License. You may obtain a copy
-** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600
-** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at:
-** 
-** http://oss.sgi.com/projects/FreeB
-** 
-** Note that, as provided in the License, the Software is distributed on an
-** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS
-** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND
-** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A
-** PARTICULAR PURPOSE, AND NON-INFRINGEMENT.
-** 
-** Original Code. The Original Code is: OpenGL Sample Implementation,
-** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics,
-** Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc.
-** Copyright in any portions created by third parties is as indicated
-** elsewhere herein. All Rights Reserved.
-** 
-** Additional Notice Provisions: The application programming interfaces
-** established by SGI in conjunction with the Original Code are The
-** OpenGL(R) Graphics System: A Specification (Version 1.2.1), released
-** April 1, 1999; The OpenGL(R) Graphics System Utility Library (Version
-** 1.3), released November 4, 1998; and OpenGL(R) Graphics with the X
-** Window System(R) (Version 1.3), released October 19, 1998. This software
-** was created using the OpenGL(R) version 1.2.1 Sample Implementation
-** published by SGI, but has not been independently verified as being
-** compliant with the OpenGL(R) version 1.2.1 Specification.
-**
-*/
-
-#ifdef HAVE_DIX_CONFIG_H
-#include <dix-config.h>
-#endif
-
-#include "glxserver.h"
-#include "indirect_reqsize.h"
-#include "g_disptab_EXT.h"
-
-__GLXrenderSizeData __glXRenderSizeTable[__GLX_MAX_RENDER_OPCODE_EXT - __GLX_MIN_RENDER_OPCODE_EXT + 1] = {
-	/* no such opcode      */       {   0,  0                         },
-	/* CallList            */	{   8, 	0                         },
-	/* CallLists           */	{  12, 	__glXCallListsReqSize     },
-	/* ListBase            */	{   8, 	0                         },
-	/* Begin               */	{   8, 	0                         },
-	/* Bitmap              */	{  48, 	__glXBitmapReqSize        },
-	/* Color3bv            */	{   8, 	0                         },
-	/* Color3dv            */	{  28, 	0                         },
-	/* Color3fv            */	{  16, 	0                         },
-	/* Color3iv            */	{  16, 	0                         },
-	/* Color3sv            */	{  12, 	0                         },
-	/* Color3ubv           */	{   8, 	0                         },
-	/* Color3uiv           */	{  16, 	0                         },
-	/* Color3usv           */	{  12, 	0                         },
-	/* Color4bv            */	{   8, 	0                         },
-	/* Color4dv            */	{  36, 	0                         },
-	/* Color4fv            */	{  20, 	0                         },
-	/* Color4iv            */	{  20, 	0                         },
-	/* Color4sv            */	{  12, 	0                         },
-	/* Color4ubv           */	{   8, 	0                         },
-	/* Color4uiv           */	{  20, 	0                         },
-	/* Color4usv           */	{  12, 	0                         },
-	/* EdgeFlagv           */	{   8, 	0                         },
-	/* End                 */	{   4, 	0                         },
-	/* Indexdv             */	{  12, 	0                         },
-	/* Indexfv             */	{   8, 	0                         },
-	/* Indexiv             */	{   8, 	0                         },
-	/* Indexsv             */	{   8, 	0                         },
-	/* Normal3bv           */	{   8, 	0                         },
-	/* Normal3dv           */	{  28, 	0                         },
-	/* Normal3fv           */	{  16, 	0                         },
-	/* Normal3iv           */	{  16, 	0                         },
-	/* Normal3sv           */	{  12, 	0                         },
-	/* RasterPos2dv        */	{  20, 	0                         },
-	/* RasterPos2fv        */	{  12, 	0                         },
-	/* RasterPos2iv        */	{  12, 	0                         },
-	/* RasterPos2sv        */	{   8, 	0                         },
-	/* RasterPos3dv        */	{  28, 	0                         },
-	/* RasterPos3fv        */	{  16, 	0                         },
-	/* RasterPos3iv        */	{  16, 	0                         },
-	/* RasterPos3sv        */	{  12, 	0                         },
-	/* RasterPos4dv        */	{  36, 	0                         },
-	/* RasterPos4fv        */	{  20, 	0                         },
-	/* RasterPos4iv        */	{  20, 	0                         },
-	/* RasterPos4sv        */	{  12, 	0                         },
-	/* Rectdv              */	{  36, 	0                         },
-	/* Rectfv              */	{  20, 	0                         },
-	/* Rectiv              */	{  20, 	0                         },
-	/* Rectsv              */	{  12, 	0                         },
-	/* TexCoord1dv         */	{  12, 	0                         },
-	/* TexCoord1fv         */	{   8, 	0                         },
-	/* TexCoord1iv         */	{   8, 	0                         },
-	/* TexCoord1sv         */	{   8, 	0                         },
-	/* TexCoord2dv         */	{  20, 	0                         },
-	/* TexCoord2fv         */	{  12, 	0                         },
-	/* TexCoord2iv         */	{  12, 	0                         },
-	/* TexCoord2sv         */	{   8, 	0                         },
-	/* TexCoord3dv         */	{  28, 	0                         },
-	/* TexCoord3fv         */	{  16, 	0                         },
-	/* TexCoord3iv         */	{  16, 	0                         },
-	/* TexCoord3sv         */	{  12, 	0                         },
-	/* TexCoord4dv         */	{  36, 	0                         },
-	/* TexCoord4fv         */	{  20, 	0                         },
-	/* TexCoord4iv         */	{  20, 	0                         },
-	/* TexCoord4sv         */	{  12, 	0                         },
-	/* Vertex2dv           */	{  20, 	0                         },
-	/* Vertex2fv           */	{  12, 	0                         },
-	/* Vertex2iv           */	{  12, 	0                         },
-	/* Vertex2sv           */	{   8, 	0                         },
-	/* Vertex3dv           */	{  28, 	0                         },
-	/* Vertex3fv           */	{  16, 	0                         },
-	/* Vertex3iv           */	{  16, 	0                         },
-	/* Vertex3sv           */	{  12, 	0                         },
-	/* Vertex4dv           */	{  36, 	0                         },
-	/* Vertex4fv           */	{  20, 	0                         },
-	/* Vertex4iv           */	{  20, 	0                         },
-	/* Vertex4sv           */	{  12, 	0                         },
-	/* ClipPlane           */	{  40, 	0                         },
-	/* ColorMaterial       */	{  12, 	0                         },
-	/* CullFace            */	{   8, 	0                         },
-	/* Fogf                */	{  12, 	0                         },
-	/* Fogfv               */	{   8, 	__glXFogfvReqSize         },
-	/* Fogi                */	{  12, 	0                         },
-	/* Fogiv               */	{   8, 	__glXFogivReqSize         },
-	/* FrontFace           */	{   8, 	0                         },
-	/* Hint                */	{  12, 	0                         },
-	/* Lightf              */	{  16, 	0                         },
-	/* Lightfv             */	{  12, 	__glXLightfvReqSize       },
-	/* Lighti              */	{  16, 	0                         },
-	/* Lightiv             */	{  12, 	__glXLightivReqSize       },
-	/* LightModelf         */	{  12, 	0                         },
-	/* LightModelfv        */	{   8, 	__glXLightModelfvReqSize  },
-	/* LightModeli         */	{  12, 	0                         },
-	/* LightModeliv        */	{   8, 	__glXLightModelivReqSize  },
-	/* LineStipple         */	{  12, 	0                         },
-	/* LineWidth           */	{   8, 	0                         },
-	/* Materialf           */	{  16, 	0                         },
-	/* Materialfv          */	{  12, 	__glXMaterialfvReqSize    },
-	/* Materiali           */	{  16, 	0                         },
-	/* Materialiv          */	{  12, 	__glXMaterialivReqSize    },
-	/* PointSize           */	{   8, 	0                         },
-	/* PolygonMode         */	{  12, 	0                         },
-	/* PolygonStipple      */	{ 152, 	0                         },
-	/* Scissor             */	{  20, 	0                         },
-	/* ShadeModel          */	{   8, 	0                         },
-	/* TexParameterf       */	{  16, 	0                         },
-	/* TexParameterfv      */	{  12, 	__glXTexParameterfvReqSize },
-	/* TexParameteri       */	{  16, 	0                         },
-	/* TexParameteriv      */	{  12, 	__glXTexParameterivReqSize },
-	/* TexImage1D          */	{  56, 	__glXTexImage1DReqSize    },
-	/* TexImage2D          */	{  56, 	__glXTexImage2DReqSize    },
-	/* TexEnvf             */	{  16, 	0                         },
-	/* TexEnvfv            */	{  12, 	__glXTexEnvfvReqSize      },
-	/* TexEnvi             */	{  16, 	0                         },
-	/* TexEnviv            */	{  12, 	__glXTexEnvivReqSize      },
-	/* TexGend             */	{  20, 	0                         },
-	/* TexGendv            */	{  12, 	__glXTexGendvReqSize      },
-	/* TexGenf             */	{  16, 	0                         },
-	/* TexGenfv            */	{  12, 	__glXTexGenfvReqSize      },
-	/* TexGeni             */	{  16, 	0                         },
-	/* TexGeniv            */	{  12, 	__glXTexGenivReqSize      },
-	/* InitNames           */	{   4, 	0                         },
-	/* LoadName            */	{   8, 	0                         },
-	/* PassThrough         */	{   8, 	0                         },
-	/* PopName             */	{   4, 	0                         },
-	/* PushName            */	{   8, 	0                         },
-	/* DrawBuffer          */	{   8, 	0                         },
-	/* Clear               */	{   8, 	0                         },
-	/* ClearAccum          */	{  20, 	0                         },
-	/* ClearIndex          */	{   8, 	0                         },
-	/* ClearColor          */	{  20, 	0                         },
-	/* ClearStencil        */	{   8, 	0                         },
-	/* ClearDepth          */	{  12, 	0                         },
-	/* StencilMask         */	{   8, 	0                         },
-	/* ColorMask           */	{   8, 	0                         },
-	/* DepthMask           */	{   8, 	0                         },
-	/* IndexMask           */	{   8, 	0                         },
-	/* Accum               */	{  12, 	0                         },
-	/* Disable             */	{   8, 	0                         },
-	/* Enable              */	{   8, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* PopAttrib           */	{   4, 	0                         },
-	/* PushAttrib          */	{   8, 	0                         },
-	/* Map1d               */	{  28, 	__glXMap1dReqSize         },
-	/* Map1f               */	{  20, 	__glXMap1fReqSize         },
-	/* Map2d               */	{  48, 	__glXMap2dReqSize         },
-	/* Map2f               */	{  32, 	__glXMap2fReqSize         },
-	/* MapGrid1d           */	{  24, 	0                         },
-	/* MapGrid1f           */	{  16, 	0                         },
-	/* MapGrid2d           */	{  44, 	0                         },
-	/* MapGrid2f           */	{  28, 	0                         },
-	/* EvalCoord1dv        */	{  12, 	0                         },
-	/* EvalCoord1fv        */	{   8, 	0                         },
-	/* EvalCoord2dv        */	{  20, 	0                         },
-	/* EvalCoord2fv        */	{  12, 	0                         },
-	/* EvalMesh1           */	{  16, 	0                         },
-	/* EvalPoint1          */	{   8, 	0                         },
-	/* EvalMesh2           */	{  24, 	0                         },
-	/* EvalPoint2          */	{  12, 	0                         },
-	/* AlphaFunc           */	{  12, 	0                         },
-	/* BlendFunc           */	{  12, 	0                         },
-	/* LogicOp             */	{   8, 	0                         },
-	/* StencilFunc         */	{  16, 	0                         },
-	/* StencilOp           */	{  16, 	0                         },
-	/* DepthFunc           */	{   8, 	0                         },
-	/* PixelZoom           */	{  12, 	0                         },
-	/* PixelTransferf      */	{  12, 	0                         },
-	/* PixelTransferi      */	{  12, 	0                         },
-	/* PixelMapfv          */	{  12, 	__glXPixelMapfvReqSize    },
-	/* PixelMapuiv         */	{  12, 	__glXPixelMapuivReqSize   },
-	/* PixelMapusv         */	{  12, 	__glXPixelMapusvReqSize   },
-	/* ReadBuffer          */	{   8, 	0                         },
-	/* CopyPixels          */	{  24, 	0                         },
-	/* DrawPixels          */	{  40, 	__glXDrawPixelsReqSize    },
-	/* DepthRange          */	{  20, 	0                         },
-	/* Frustum             */	{  52, 	0                         },
-	/* LoadIdentity        */	{   4, 	0                         },
-	/* LoadMatrixf         */	{  68, 	0                         },
-	/* LoadMatrixd         */	{ 132, 	0                         },
-	/* MatrixMode          */	{   8, 	0                         },
-	/* MultMatrixf         */	{  68, 	0                         },
-	/* MultMatrixd         */	{ 132, 	0                         },
-	/* Ortho               */	{  52, 	0                         },
-	/* PopMatrix           */	{   4, 	0                         },
-	/* PushMatrix          */	{   4, 	0                         },
-	/* Rotated             */	{  36, 	0                         },
-	/* Rotatef             */	{  20, 	0                         },
-	/* Scaled              */	{  28, 	0                         },
-	/* Scalef              */	{  16, 	0                         },
-	/* Translated          */	{  28, 	0                         },
-	/* Translatef          */	{  16, 	0                         },
-	/* Viewport            */	{  20, 	0                         },
-	/* PolygonOffset       */	{  12, 	0                         },
-	/* DrawArrays          */	{  16, 	__glXDrawArraysReqSize    },
-	/* Indexubv            */	{  8, 	0                         },
-	/* ColorSubTable       */       {  44,  __glXColorSubTableReqSize },
-	/* CopyColorSubTable   */       {  24,  0                         },
-	/* ActiveTextureARB    */       {  8,   0                         },
-	/* MultiTexCoord1dvARB */       {  16,  0                         },
-	/* MultiTexCoord1fvARB */       {  12,  0                         },
-	/* MultiTexCoord1ivARB */       {  12,  0                         },
-	/* MultiTexCoord1svARB */       {  12,  0                         },
-	/* MultiTexCoord2dvARB */       {  24,  0                         },
-	/* MultiTexCoord2fvARB */       {  16,  0                         },
-	/* MultiTexCoord2ivARB */       {  16,  0                         },
-	/* MultiTexCoord2svARB */       {  12,  0                         },
-	/* MultiTexCoord3dvARB */       {  32,  0                         },
-	/* MultiTexCoord3fvARB */       {  20,  0                         },
-	/* MultiTexCoord3ivARB */       {  20,  0                         },
-	/* MultiTexCoord3svARB */       {  16,  0                         },
-	/* MultiTexCoord4dvARB */       {  40,  0                         },
-	/* MultiTexCoord4fvARB */       {  24,  0                         },
-	/* MultiTexCoord4ivARB */       {  24,  0                         },
-	/* MultiTexCoord4svARB   213 */ {  16,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode        220 */ {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* WindowPos3fvMESA      230 */ {  16,  0                         },
-};
-__GLXrenderSizeData __glXRenderSizeTable_EXT[__GLX_MAX_RENDER_OPCODE_EXT - __GLX_MIN_RENDER_OPCODE_EXT + 1] = {
-	/* ColorTable          2053 */  {  44,  __glXColorTableReqSize    },
-	/* ColorTableParameterfv */     {  12,  __glXColorTableParameterfvReqSize         },
-	/* ColorTableParameteriv */     {  12,  __glXColorTableParameterivReqSize         },
-	/* CopyColorTable      */       {  24,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* PointParameterfEXT   2065 */ {  12,  0                         },
-	/* PointParameterfvEXT  2066 */ {   8,  __glXPointParameterfvEXTReqSize },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */       {   0,  0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* BlendColor          */       {  20,  0                         },
-	/* BlendEquation       */       {   8,  0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* TexSubImage1D       */       {  60,  __glXTexSubImage1DReqSize },
-	/* TexSubImage2D       */       {  60,  __glXTexSubImage2DReqSize },
-	/* ConvolutionFilter1D */       {  48,  __glXConvolutionFilter1DReqSize },
-	/* ConvolutionFilter2D     */   {  48,  __glXConvolutionFilter2DReqSize },
-	/* ConvolutionParameterf   */   {  16,  0                         },
-	/* ConvolutionParameterfv  */   {  12,  __glXConvolutionParameterfvReqSize },
-	/* ConvolutionParameteri   */   {  16,  0                         },
-	/* ConvolutionParameteriv  */   {  12,  __glXConvolutionParameterivReqSize },
-	/* CopyConvolutionFilter1D */   {  24,                            },
-	/* CopyConvolutionFilter2D */   {  28,                            },
-	/* SeparableFilter2D   */       {  48,  __glXSeparableFilter2DReqSize },
-	/* Histogram           */       {  20,                            },
-	/* Minmax              */       {  16,                            },
-	/* ResetHistogram      */       {  8,                             },
-	/* ResetMinmax         */       {  8,                             },
-	/* TexImage3D          */       {  84,  __glXTexImage3DReqSize    },
-	/* TexSubImage3D       */       {  92,  __glXTexSubImage3DReqSize },
-	/* DrawArrays          */	{  16, 	__glXDrawArraysReqSize    },
-	/* BindTexture         */	{  12, 	0                         },
-	/* PrioritizeTextures  */	{   8, 	__glXPrioritizeTexturesReqSize },
-	/* CopyTexImage1D      */	{  32, 	0 },
-	/* CopyTexImage2D      */	{  36, 	0 },
-	/* CopyTexSubImage1D   */	{  28, 	0 },
-	/* CopyTexSubImage2D   */	{  36, 	0 },
-	/* CopyTexSubImage3D    4123 */ {  40,  0 },
-	/* FogCoordfv           4124 */	{   8, 	0 },
-	/* FogCoorddv           4125 */	{  12, 	0 },
-	/* SecondaryColor3bv    4126 */	{   8, 	0 },
-	/* SecondaryColor3sv    4127 */	{  12, 	0 },
-	/* SecondaryColor3iv    4128 */	{  16, 	0 },
-	/* SecondaryColor3fv    4129 */	{  16, 	0 },
-	/* SecondaryColor3dv    4130 */	{  28, 	0 },
-	/* SecondaryColor3ubv   4131 */	{   8, 	0 },
-	/* SecondaryColor3usv   4132 */	{  12, 	0 },
-	/* SecondaryColor3uiv   4133 */	{  16, 	0 },
-	/* BlendFuncSeparate    4134 */	{  20, 	0 },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* ActiveStencilFaceEXT 4220 */ {   8,  0 },
-	/* PointParameteriNV    4221 */	{  12, 	0 },
-	/* PointParameterivNV   4222 */	{   8, 	__glXPointParameterivNVReqSize },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-	/* no such opcode      */	{   0, 	0                         },
-
-	/* BindRenderbufferEXT */	{  12, 	0                         },
-	/* DeleteRenderbuffersEXT */	{   8, 	__glXDeleteRenderbuffersEXTReqSize },
-	/* RenderbufferStorageEXT */	{  20, 	0                         },
-	/* BindFramebufferEXT */	{  12, 	0                         },
-	/* DeleteFramebuffersEXT */	{   8, 	__glXDeleteFramebuffersEXTReqSize },
-	/* FramebufferTexture1DEXT */	{  24, 	0                         },
-	/* FramebufferTexture2DEXT */	{  24, 	0                         },
-	/* FramebufferTexture3DEXT */	{  28, 	0                         },
-	/* FramebufferRenderbufferTexture3DEXT */ { 20, 0                 },
-	/* GenerateMipmapEXT */		{  8, 	0                         }
-};
diff-tree 7ae82b5fc8721be78b43a322bbf2c46aac08b8cf (from 39a620d17809dc71fb5ad61a955fe3c442f90a05)
Author: Ian Romanick <idr at umwelt.(none)>
Date:   Wed Aug 23 16:00:48 2006 -0700

    Fix __glXDispatchInfo::dispatch_functions and
    __glXDispatchInfo::size_table.  dispatch_functions had the const in
    the wrong place, and size_table was declared as an array of two
    pointers to int_fast16_t instead of a pointer to an array of 2
    int_fast16_t.  cdecl to the rescue!

diff --git a/GL/glx/indirect_table.h b/GL/glx/indirect_table.h
index a2562a0..4af1ccb 100644
--- a/GL/glx/indirect_table.h
+++ b/GL/glx/indirect_table.h
@@ -53,7 +53,7 @@ struct __glXDispatchInfo {
      * is the non-byte-swapped version, and the second element is the
      * byte-swapped version.
      */
-    void * const (*dispatch_functions)[2];
+    const void *(*dispatch_functions)[2];
 
     /**
      * Pointer to size validation data.  This table is indexed with the same
@@ -70,7 +70,7 @@ struct __glXDispatchInfo {
      * If size checking is not to be performed on this type of protocol
      * data, this pointer will be \c NULL.
      */
-    const int_fast16_t * size_table[2];
+    const int_fast16_t (*size_table)[2];
 
     /**
      * Array of functions used to calculate the variable-size portion of
@@ -81,7 +81,7 @@ struct __glXDispatchInfo {
      * If size checking is not to be performed on this type of protocol
      * data, this pointer will be \c NULL.
      */
-    const gl_proto_size_func * size_func_table;
+    const gl_proto_size_func *size_func_table;
 };
 
 /**
diff-tree 39a620d17809dc71fb5ad61a955fe3c442f90a05 (from 86406455f0e5fc977431948611e9bb5fda1e1d46)
Author: Ian Romanick <idr at umwelt.(none)>
Date:   Wed Aug 23 14:24:34 2006 -0700

    Rename __glXDrawArraysSize to __glXDrawArraysReqSize.  This makes its
    name match the pattern of all the other functions in
    __glXRenderSizeTable.

diff --git a/GL/glx/glxserver.h b/GL/glx/glxserver.h
index ce91ce3..387489a 100644
--- a/GL/glx/glxserver.h
+++ b/GL/glx/glxserver.h
@@ -254,6 +254,6 @@ extern int __glXImageSize(GLenum format,
     GLint imageHeight, GLint rowLength, GLint skipImages, GLint skipRows,
     GLint alignment);
 
-extern int __glXDrawArraysSize(const GLbyte *pc, Bool swap);
+extern int __glXDrawArraysReqSize(const GLbyte *pc, Bool swap);
 
 #endif /* !__GLX_server_h__ */
diff --git a/GL/glx/rensize.c b/GL/glx/rensize.c
index 47d6989..c69619a 100644
--- a/GL/glx/rensize.c
+++ b/GL/glx/rensize.c
@@ -323,7 +323,7 @@ int __glXTypeSize(GLenum enm)
   }
 }
 
-int __glXDrawArraysSize( const GLbyte *pc, Bool swap )
+int __glXDrawArraysReqSize( const GLbyte *pc, Bool swap )
 {
     __GLXdispatchDrawArraysHeader *hdr = (__GLXdispatchDrawArraysHeader *) pc;
     __GLXdispatchDrawArraysComponentHeader *compHeader;
diff --git a/GL/glx/rensizetab.c b/GL/glx/rensizetab.c
index b9768a5..22dfc49 100644
--- a/GL/glx/rensizetab.c
+++ b/GL/glx/rensizetab.c
@@ -235,7 +235,7 @@ __GLXrenderSizeData __glXRenderSizeTable
 	/* Translatef          */	{  16, 	0                         },
 	/* Viewport            */	{  20, 	0                         },
 	/* PolygonOffset       */	{  12, 	0                         },
-	/* DrawArrays          */	{  16, 	__glXDrawArraysSize       },
+	/* DrawArrays          */	{  16, 	__glXDrawArraysReqSize    },
 	/* Indexubv            */	{  8, 	0                         },
 	/* ColorSubTable       */       {  44,  __glXColorSubTableReqSize },
 	/* CopyColorSubTable   */       {  24,  0                         },
@@ -2338,7 +2338,7 @@ __GLXrenderSizeData __glXRenderSizeTable
 	/* ResetMinmax         */       {  8,                             },
 	/* TexImage3D          */       {  84,  __glXTexImage3DReqSize    },
 	/* TexSubImage3D       */       {  92,  __glXTexSubImage3DReqSize },
-	/* DrawArrays          */	{  16, 	__glXDrawArraysSize       },
+	/* DrawArrays          */	{  16, 	__glXDrawArraysReqSize    },
 	/* BindTexture         */	{  12, 	0                         },
 	/* PrioritizeTextures  */	{   8, 	__glXPrioritizeTexturesReqSize },
 	/* CopyTexImage1D      */	{  32, 	0 },
diff-tree 86406455f0e5fc977431948611e9bb5fda1e1d46 (from d7a7f12361d31001bbd9394a57de029ef0b934b8)
Author: Ian Romanick <idr at umwelt.(none)>
Date:   Wed Aug 23 13:30:59 2006 -0700

    Re-generated files after a fix to glX_API.xml (in Mesa).

diff --git a/GL/glx/indirect_dispatch.h b/GL/glx/indirect_dispatch.h
index 07bc97b..e2c0c41 100644
--- a/GL/glx/indirect_dispatch.h
+++ b/GL/glx/indirect_dispatch.h
@@ -345,6 +345,8 @@ extern HIDDEN int __glXDisp_CreateContex
 extern HIDDEN int __glXDispSwap_CreateContextWithConfigSGIX(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_FramebufferTexture3DEXT(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_FramebufferTexture3DEXT(GLbyte * pc);
+extern HIDDEN int __glXDisp_CopySubBufferMESA(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_CopySubBufferMESA(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_BlendEquation(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_BlendEquation(GLbyte * pc);
 extern HIDDEN int __glXDisp_GetError(struct __GLXclientStateRec *, GLbyte *);
diff --git a/GL/glx/indirect_table.c b/GL/glx/indirect_table.c
index da5fb6b..2c88589 100644
--- a/GL/glx/indirect_table.c
+++ b/GL/glx/indirect_table.c
@@ -483,7 +483,7 @@ static const __GLXdispatchVendorPrivProc
     /* [ 55] =  1431 */ {NULL, NULL},
     /* [ 56] =  5152 */ {__glXDisp_BindTexImageEXT, __glXDispSwap_BindTexImageEXT},
     /* [ 57] =  5153 */ {__glXDisp_ReleaseTexImageEXT, __glXDispSwap_ReleaseTexImageEXT},
-    /* [ 58] =  5154 */ {NULL, NULL},
+    /* [ 58] =  5154 */ {__glXDisp_CopySubBufferMESA, __glXDispSwap_CopySubBufferMESA},
     /* [ 59] =  5155 */ {NULL, NULL},
     /* [ 60] =  5156 */ {NULL, NULL},
     /* [ 61] =  5157 */ {NULL, NULL},
diff-tree d7a7f12361d31001bbd9394a57de029ef0b934b8 (from db82e12fac5eaa16a39fc1bd0bc31ad95089dc95)
Author: Ian Romanick <idr at umwelt.(none)>
Date:   Wed Aug 23 13:30:13 2006 -0700

    Convert protocol decode tables for Single, VendorPrivate, and
    VendorPrivateWithReply message to use nice, compact N-way search trees
    generated by scripts in Mesa.
    
    The Render protocol decode tables are next...

diff --git a/GL/glx/Makefile.am b/GL/glx/Makefile.am
index 1d4a986..2bb6943 100644
--- a/GL/glx/Makefile.am
+++ b/GL/glx/Makefile.am
@@ -61,6 +61,8 @@ libglx_la_SOURCES = \
         indirect_reqsize.h \
         indirect_size_get.c \
         indirect_size_get.h \
+        indirect_table.c \
+        indirect_table.h \
         indirect_util.c \
         indirect_util.h \
         render2.c \
diff --git a/GL/glx/g_disptab.c b/GL/glx/g_disptab.c
index 8e33626..6019301 100644
--- a/GL/glx/g_disptab.c
+++ b/GL/glx/g_disptab.c
@@ -37,169 +37,6 @@
 #include "g_disptab.h"
 #include "indirect_dispatch.h"
 
-__GLXdispatchSingleProcPtr __glXSingleTable[__GLX_SINGLE_TABLE_SIZE] = {
-	__glXNoSuchSingleOpcode,
-	__glXRender,
-	__glXRenderLarge,
-	__glXCreateContext,
-	__glXDestroyContext,
-	__glXMakeCurrent,
-	__glXIsDirect,
-	__glXQueryVersion,
-	__glXWaitGL,				/* 0x08 */
-	__glXWaitX,
-	__glXCopyContext,
-	__glXSwapBuffers,
-	__glXUseXFont,
-	__glXCreateGLXPixmap,
-	__glXGetVisualConfigs,
-	__glXDestroyGLXPixmap,
-	__glXVendorPrivate,			/* 0x10 */
-	__glXVendorPrivateWithReply,
-	__glXQueryExtensionsString,
-	__glXQueryServerString,
-	__glXClientInfo,
-	__glXGetFBConfigs,
-	__glXCreatePixmap,
-	__glXDestroyPixmap,
-	__glXCreateNewContext,			/* 0x18 */
-	__glXQueryContext,
-	__glXMakeContextCurrent,
-	__glXCreatePbuffer,
-	__glXDestroyPbuffer,
-	__glXGetDrawableAttributes,
-	__glXChangeDrawableAttributes,
-	__glXCreateWindow,
-	__glXDestroyWindow,			/* 0x20 */
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXDisp_NewList,
-	__glXDisp_EndList,
-	__glXDisp_DeleteLists,
-	__glXDisp_GenLists,
-	__glXDisp_FeedbackBuffer,
-	__glXDisp_SelectBuffer,
-	__glXDisp_RenderMode,
-	__glXDisp_Finish,
-	__glXDisp_PixelStoref,
-	__glXDisp_PixelStorei,
-	__glXDisp_ReadPixels,
-	__glXDisp_GetBooleanv,
-	__glXDisp_GetClipPlane,
-	__glXDisp_GetDoublev,
-	__glXDisp_GetError,
-	__glXDisp_GetFloatv,
-	__glXDisp_GetIntegerv,
-	__glXDisp_GetLightfv,
-	__glXDisp_GetLightiv,
-	__glXDisp_GetMapdv,
-	__glXDisp_GetMapfv,
-	__glXDisp_GetMapiv,
-	__glXDisp_GetMaterialfv,
-	__glXDisp_GetMaterialiv,
-	__glXDisp_GetPixelMapfv,
-	__glXDisp_GetPixelMapuiv,
-	__glXDisp_GetPixelMapusv,
-	__glXDisp_GetPolygonStipple,
-	__glXDisp_GetString,
-	__glXDisp_GetTexEnvfv,
-	__glXDisp_GetTexEnviv,
-	__glXDisp_GetTexGendv,
-	__glXDisp_GetTexGenfv,
-	__glXDisp_GetTexGeniv,
-	__glXDisp_GetTexImage,
-	__glXDisp_GetTexParameterfv,
-	__glXDisp_GetTexParameteriv,
-	__glXDisp_GetTexLevelParameterfv,
-	__glXDisp_GetTexLevelParameteriv,
-	__glXDisp_IsEnabled,
-	__glXDisp_IsList,
-	__glXDisp_Flush,
-	__glXDisp_AreTexturesResident,
-	__glXDisp_DeleteTextures,
-	__glXDisp_GenTextures,
-	__glXDisp_IsTexture,
-	__glXDisp_GetColorTable,
-	__glXDisp_GetColorTableParameterfv,
-	__glXDisp_GetColorTableParameteriv,
-	__glXDisp_GetConvolutionFilter,
-	__glXDisp_GetConvolutionParameterfv,
-	__glXDisp_GetConvolutionParameteriv,
-	__glXDisp_GetSeparableFilter,
-	__glXDisp_GetHistogram,
-	__glXDisp_GetHistogramParameterfv,
-	__glXDisp_GetHistogramParameteriv,
-	__glXDisp_GetMinmax,
-	__glXDisp_GetMinmaxParameterfv,
-	__glXDisp_GetMinmaxParameteriv,
-};
-
 __GLXdispatchRenderProcPtr __glXRenderTable[] = {
 	__glXNoSuchRenderOpcode,
 	__glXDisp_CallList,
@@ -438,168 +275,6 @@ __GLXdispatchRenderProcPtr __glXRenderTa
 #endif
 };
 
-__GLXdispatchSingleProcPtr __glXSwapSingleTable[__GLX_SINGLE_TABLE_SIZE] = {
-	__glXNoSuchSingleOpcode,
-	__glXSwapRender,
-	__glXSwapRenderLarge,
-	__glXSwapCreateContext,
-	__glXSwapDestroyContext,
-	__glXSwapMakeCurrent,
-	__glXSwapIsDirect,
-	__glXSwapQueryVersion,
-	__glXSwapWaitGL,			/* 0x08 */
-	__glXSwapWaitX,
-	__glXSwapCopyContext,
-	__glXSwapSwapBuffers,
-	__glXSwapUseXFont,
-	__glXSwapCreateGLXPixmap,
-	__glXSwapGetVisualConfigs,
-	__glXSwapDestroyGLXPixmap,
-	__glXSwapVendorPrivate,			/* 0x10 */
-	__glXSwapVendorPrivateWithReply,
-	__glXSwapQueryExtensionsString,
-	__glXSwapQueryServerString,
-	__glXSwapClientInfo,
-	__glXSwapGetFBConfigs,
-	__glXSwapCreatePixmap,
-	__glXSwapDestroyPixmap,
-	__glXSwapCreateNewContext,		/* 0x18 */
-	__glXSwapQueryContext,
-	__glXSwapMakeContextCurrent,
-	__glXSwapCreatePbuffer,
-	__glXSwapDestroyPbuffer,
-	__glXSwapGetDrawableAttributes,
-	__glXSwapChangeDrawableAttributes,
-	__glXSwapCreateWindow,
-	__glXSwapDestroyWindow,			/* 0x20 */
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXNoSuchSingleOpcode,
-	__glXDispSwap_NewList,
-	__glXDispSwap_EndList,
-	__glXDispSwap_DeleteLists,
-	__glXDispSwap_GenLists,
-	__glXDispSwap_FeedbackBuffer,
-	__glXDispSwap_SelectBuffer,
-	__glXDispSwap_RenderMode,
-	__glXDispSwap_Finish,
-	__glXDispSwap_PixelStoref,
-	__glXDispSwap_PixelStorei,
-	__glXDispSwap_ReadPixels,
-	__glXDispSwap_GetBooleanv,
-	__glXDispSwap_GetClipPlane,
-	__glXDispSwap_GetDoublev,
-	__glXDispSwap_GetError,
-	__glXDispSwap_GetFloatv,
-	__glXDispSwap_GetIntegerv,
-	__glXDispSwap_GetLightfv,
-	__glXDispSwap_GetLightiv,
-	__glXDispSwap_GetMapdv,
-	__glXDispSwap_GetMapfv,
-	__glXDispSwap_GetMapiv,
-	__glXDispSwap_GetMaterialfv,
-	__glXDispSwap_GetMaterialiv,
-	__glXDispSwap_GetPixelMapfv,
-	__glXDispSwap_GetPixelMapuiv,
-	__glXDispSwap_GetPixelMapusv,
-	__glXDispSwap_GetPolygonStipple,
-	__glXDispSwap_GetString,
-	__glXDispSwap_GetTexEnvfv,
-	__glXDispSwap_GetTexEnviv,
-	__glXDispSwap_GetTexGendv,
-	__glXDispSwap_GetTexGenfv,
-	__glXDispSwap_GetTexGeniv,
-	__glXDispSwap_GetTexImage,
-	__glXDispSwap_GetTexParameterfv,
-	__glXDispSwap_GetTexParameteriv,
-	__glXDispSwap_GetTexLevelParameterfv,
-	__glXDispSwap_GetTexLevelParameteriv,
-	__glXDispSwap_IsEnabled,
-	__glXDispSwap_IsList,
-	__glXDispSwap_Flush,
-	__glXDispSwap_AreTexturesResident,
-	__glXDispSwap_DeleteTextures,
-	__glXDispSwap_GenTextures,
-	__glXDispSwap_IsTexture,
-	__glXDispSwap_GetColorTable,
-	__glXDispSwap_GetColorTableParameterfv,
-	__glXDispSwap_GetColorTableParameteriv,
-	__glXDispSwap_GetConvolutionFilter,
-	__glXDispSwap_GetConvolutionParameterfv,
-	__glXDispSwap_GetConvolutionParameteriv,
-	__glXDispSwap_GetSeparableFilter,
-	__glXDispSwap_GetHistogram,
-	__glXDispSwap_GetHistogramParameterfv,
-	__glXDispSwap_GetHistogramParameteriv,
-	__glXDispSwap_GetMinmax,
-	__glXDispSwap_GetMinmaxParameterfv,
-	__glXDispSwap_GetMinmaxParameteriv,
-};
 
 __GLXdispatchRenderProcPtr __glXSwapRenderTable[__GLX_RENDER_TABLE_SIZE] = {
 	__glXNoSuchRenderOpcode,
diff --git a/GL/glx/g_disptab.h b/GL/glx/g_disptab.h
index 4a1c5e9..5ee242f 100644
--- a/GL/glx/g_disptab.h
+++ b/GL/glx/g_disptab.h
@@ -34,97 +34,33 @@
 ** version 1.2.1 Specification.
 */
 
-extern int __glXRender(__GLXclientState*, GLbyte*);
-extern int __glXRenderLarge(__GLXclientState*, GLbyte*);
-extern int __glXCreateContext(__GLXclientState*, GLbyte*);
-extern int __glXDestroyContext(__GLXclientState*, GLbyte*);
-extern int __glXMakeCurrent(__GLXclientState*, GLbyte*);
-extern int __glXIsDirect(__GLXclientState*, GLbyte*);
-extern int __glXQueryVersion(__GLXclientState*, GLbyte*);
-extern int __glXWaitGL(__GLXclientState*, GLbyte*);
-extern int __glXWaitX(__GLXclientState*, GLbyte*);
-extern int __glXCopyContext(__GLXclientState*, GLbyte*);
-extern int __glXSwapBuffers(__GLXclientState*, GLbyte*);
-extern int __glXBindTexImageEXT(__GLXclientState *cl, GLbyte *pc);
-extern int __glXReleaseTexImageEXT(__GLXclientState *cl, GLbyte *pc);
-extern int __glXCopySubBufferMESA(__GLXclientState *cl, GLbyte *pc);
-extern int __glXGetDrawableAttributesSGIX(__GLXclientState *cl, GLbyte *pc);
-extern int __glXUseXFont(__GLXclientState*, GLbyte*);
-extern int __glXCreateGLXPixmap(__GLXclientState*, GLbyte*);
-extern int __glXGetVisualConfigs(__GLXclientState*, GLbyte*);
-extern int __glXDestroyGLXPixmap(__GLXclientState*, GLbyte*);
-extern int __glXVendorPrivate(__GLXclientState*, GLbyte*);
-extern int __glXVendorPrivateWithReply(__GLXclientState*, GLbyte*);
-extern int __glXQueryExtensionsString(__GLXclientState*, GLbyte*);
-extern int __glXQueryServerString(__GLXclientState*, GLbyte*);
-extern int __glXClientInfo(__GLXclientState*, GLbyte*);
-extern int __glXMakeContextCurrent(__GLXclientState*, GLbyte*);
-extern int __glXGetFBConfigs(__GLXclientState*, GLbyte*);
-extern int __glXCreatePixmap(__GLXclientState*, GLbyte*);
-extern int __glXDestroyPixmap(__GLXclientState*, GLbyte*);
-extern int __glXCreateNewContext(__GLXclientState*, GLbyte*);
-extern int __glXQueryContext(__GLXclientState*, GLbyte*);
-extern int __glXMakeContextCurrent(__GLXclientState*, GLbyte*);
-extern int __glXCreatePbuffer(__GLXclientState*, GLbyte*);
-extern int __glXDestroyPbuffer(__GLXclientState*, GLbyte*);
-extern int __glXGetDrawableAttributes(__GLXclientState*, GLbyte*);
-extern int __glXChangeDrawableAttributes(__GLXclientState*, GLbyte*);
-extern int __glXCreateWindow(__GLXclientState*, GLbyte*);
-extern int __glXDestroyWindow(__GLXclientState*, GLbyte*);
-
-extern int __glXSwapRender(__GLXclientState*, GLbyte*);
-extern int __glXSwapRenderLarge(__GLXclientState*, GLbyte*);
-extern int __glXSwapCreateContext(__GLXclientState*, GLbyte*);
-extern int __glXSwapDestroyContext(__GLXclientState*, GLbyte*);
-extern int __glXSwapMakeCurrent(__GLXclientState*, GLbyte*);
-extern int __glXSwapIsDirect(__GLXclientState*, GLbyte*);
-extern int __glXSwapQueryVersion(__GLXclientState*, GLbyte*);
-extern int __glXSwapWaitGL(__GLXclientState*, GLbyte*);
-extern int __glXSwapWaitX(__GLXclientState*, GLbyte*);
-extern int __glXSwapCopyContext(__GLXclientState*, GLbyte*);
-extern int __glXSwapSwapBuffers(__GLXclientState*, GLbyte*);
-extern int __glXSwapBindTexImageEXT(__GLXclientState *cl, GLbyte *pc);
-extern int __glXSwapReleaseTexImageEXT(__GLXclientState *cl, GLbyte *pc);
-extern int __glXSwapReleaseTexImageEXT(__GLXclientState *cl, GLbyte *pc);
-extern int __glXSwapGetDrawableAttributesSGIX(__GLXclientState *cl, GLbyte *pc);
-extern int __glXSwapUseXFont(__GLXclientState*, GLbyte*);
-extern int __glXSwapCreateGLXPixmap(__GLXclientState*, GLbyte*);
-extern int __glXSwapGetVisualConfigs(__GLXclientState*, GLbyte*);
-extern int __glXSwapDestroyGLXPixmap(__GLXclientState*, GLbyte*);
-extern int __glXSwapVendorPrivate(__GLXclientState*, GLbyte*);
-extern int __glXSwapVendorPrivateWithReply(__GLXclientState*, GLbyte*);
-extern int __glXSwapQueryExtensionsString(__GLXclientState*, GLbyte*);
-extern int __glXSwapQueryServerString(__GLXclientState*, GLbyte*);
-extern int __glXSwapClientInfo(__GLXclientState*, GLbyte*);
-extern int __glXSwapMakeContextCurrent(__GLXclientState*, GLbyte*);
-extern int __glXSwapGetFBConfigs(__GLXclientState*, GLbyte*);
-extern int __glXSwapCreatePixmap(__GLXclientState*, GLbyte*);
-extern int __glXSwapDestroyPixmap(__GLXclientState*, GLbyte*);
-extern int __glXSwapCreateNewContext(__GLXclientState*, GLbyte*);
-extern int __glXSwapQueryContext(__GLXclientState*, GLbyte*);
-extern int __glXSwapMakeContextCurrent(__GLXclientState*, GLbyte*);
-extern int __glXSwapCreatePbuffer(__GLXclientState*, GLbyte*);
-extern int __glXSwapDestroyPbuffer(__GLXclientState*, GLbyte*);
-extern int __glXSwapGetDrawableAttributes(__GLXclientState*, GLbyte*);
-extern int __glXSwapChangeDrawableAttributes(__GLXclientState*, GLbyte*);
-extern int __glXSwapCreateWindow(__GLXclientState*, GLbyte*);
-extern int __glXSwapDestroyWindow(__GLXclientState*, GLbyte*);
+extern int __glXDisp_CopySubBufferMESA(__GLXclientState *cl, GLbyte *pc);
+extern int __glXDisp_GetDrawableAttributesSGIX(__GLXclientState *cl, GLbyte *pc);
+extern int __glXDisp_BindSwapBarrierSGIX(__GLXclientState *cl, GLbyte *pc);
+extern int __glXDisp_QueryMaxSwapBarriersSGIX(__GLXclientState *cl, GLbyte *pc);
+extern int __glXDisp_QueryHyperpipeNetworkSGIX(__GLXclientState *cl, GLbyte *pc);
+extern int __glXDisp_DestroyHyperpipeConfigSGIX (__GLXclientState *cl, GLbyte *pc);
+extern int __glXDisp_QueryHyperpipeConfigSGIX(__GLXclientState *cl, GLbyte *pc);
+extern int __glXDisp_HyperpipeConfigSGIX(__GLXclientState *cl, GLbyte *pc);
+
+extern int __glXDispSwap_CopySubBufferMESA(__GLXclientState *cl, GLbyte *pc);
+extern int __glXDispSwap_GetDrawableAttributesSGIX(__GLXclientState *cl, GLbyte *pc);
+extern int __glXDispSwap_BindSwapBarrierSGIX(__GLXclientState *cl, GLbyte *pc);
+extern int __glXDispSwap_QueryMaxSwapBarriersSGIX(__GLXclientState *cl, GLbyte *pc);
+extern int __glXDispSwap_QueryHyperpipeNetworkSGIX(__GLXclientState *cl, GLbyte *pc);
+extern int __glXDispSwap_DestroyHyperpipeConfigSGIX (__GLXclientState *cl, GLbyte *pc);
+extern int __glXDispSwap_QueryHyperpipeConfigSGIX(__GLXclientState *cl, GLbyte *pc);
+extern int __glXDispSwap_HyperpipeConfigSGIX(__GLXclientState *cl, GLbyte *pc);
+
 
 
 #define __GLX_MIN_GLXCMD_OPCODE 1
 #define __GLX_MAX_GLXCMD_OPCODE 20
 #define __GLX_MIN_RENDER_OPCODE 1
-/*#define __GLX_MAX_RENDER_OPCODE 213*/
 #define __GLX_MAX_RENDER_OPCODE 230
-#define __GLX_MIN_SINGLE_OPCODE 1
-#define __GLX_MAX_SINGLE_OPCODE 159
-#define __GLX_SINGLE_TABLE_SIZE 160
-/*#define __GLX_RENDER_TABLE_SIZE 214*/
 #define __GLX_RENDER_TABLE_SIZE 231
 extern __GLXdispatchRenderProcPtr __glXRenderTable[__GLX_RENDER_TABLE_SIZE];
-extern __GLXdispatchSingleProcPtr __glXSingleTable[__GLX_SINGLE_TABLE_SIZE];
 extern __GLXdispatchRenderProcPtr __glXSwapRenderTable[__GLX_RENDER_TABLE_SIZE];
-extern __GLXdispatchSingleProcPtr __glXSwapSingleTable[__GLX_SINGLE_TABLE_SIZE];
 
 /* Copied from mesa src/glx/x11/glxcmds.c
  *
diff --git a/GL/glx/g_disptab_EXT.c b/GL/glx/g_disptab_EXT.c
index 087fb24..9c171ac 100644
--- a/GL/glx/g_disptab_EXT.c
+++ b/GL/glx/g_disptab_EXT.c
@@ -2338,12 +2338,6 @@ __GLXdispatchRenderProcPtr __glXRenderTa
 	__glXDisp_FramebufferRenderbufferEXT, /* 4324 */
 	__glXDisp_GenerateMipmapEXT /* 4325 */
 };
-__GLXdispatchVendorPrivProcPtr __glXVendorPrivTable_EXT[__GLX_MAX_VENDPRIV_OPCODE_EXT - __GLX_MIN_VENDPRIV_OPCODE_EXT + 1] = {
-	__glXDisp_AreTexturesResidentEXT, /* 11 */
-	__glXDisp_DeleteTextures, /* 12 */
-	__glXDisp_GenTexturesEXT, /* 13 */
-	__glXDisp_IsTextureEXT, /* 14 */
-};
 
 
 __GLXdispatchRenderProcPtr __glXSwapRenderTable_EXT[__GLX_MAX_RENDER_OPCODE_EXT - __GLX_MIN_RENDER_OPCODE_EXT + 1] = {
@@ -4647,10 +4641,3 @@ __GLXdispatchRenderProcPtr __glXSwapRend
 	__glXDispSwap_FramebufferRenderbufferEXT, /* 4324 */
 	__glXDispSwap_GenerateMipmapEXT /* 4325 */
 };
-__GLXdispatchVendorPrivProcPtr __glXSwapVendorPrivTable_EXT[__GLX_MAX_VENDPRIV_OPCODE_EXT - __GLX_MIN_VENDPRIV_OPCODE_EXT + 1] = {
-	__glXDispSwap_AreTexturesResidentEXT, /* 11 */
-	__glXDispSwap_DeleteTextures, /* 12 */
-	__glXDispSwap_GenTexturesEXT, /* 13 */
-	__glXDispSwap_IsTextureEXT, /* 14 */
-};
-
diff --git a/GL/glx/g_disptab_EXT.h b/GL/glx/g_disptab_EXT.h
index 62a7517..0b59171 100644
--- a/GL/glx/g_disptab_EXT.h
+++ b/GL/glx/g_disptab_EXT.h
@@ -36,12 +36,7 @@
 
 #define __GLX_MIN_RENDER_OPCODE_EXT 2053
 #define __GLX_MAX_RENDER_OPCODE_EXT 4325
-#define __GLX_MIN_VENDPRIV_OPCODE_EXT 11
-#define __GLX_MAX_VENDPRIV_OPCODE_EXT 14
-#define __GLX_VENDPRIV_TABLE_SIZE_EXT (__GLX_MAX_VENDPRIV_OPCODE_EXT - __GLX_MIN_VENDPRIV_OPCODE_EXT + 1)
 #define __GLX_RENDER_TABLE_SIZE_EXT (__GLX_MAX_RENDER_OPCODE_EXT - __GLX_MIN_RENDER_OPCODE_EXT + 1)
 extern __GLXdispatchRenderProcPtr __glXRenderTable_EXT[__GLX_RENDER_TABLE_SIZE_EXT];
-extern __GLXdispatchVendorPrivProcPtr __glXVendorPrivTable_EXT[__GLX_VENDPRIV_TABLE_SIZE_EXT];
 extern __GLXdispatchRenderProcPtr __glXSwapRenderTable_EXT[__GLX_RENDER_TABLE_SIZE_EXT];
-extern __GLXdispatchVendorPrivProcPtr __glXSwapVendorPrivTable_EXT[__GLX_VENDPRIV_TABLE_SIZE_EXT];
 #endif /* _GLX_g_disptab_EXT_h_ */
diff --git a/GL/glx/glxcmds.c b/GL/glx/glxcmds.c
index f0a6474..b52528d 100644
--- a/GL/glx/glxcmds.c
+++ b/GL/glx/glxcmds.c
@@ -57,6 +57,8 @@
 #include "glthread.h"
 #include "dispatch.h"
 #include "indirect_dispatch.h"
+#include "indirect_table.h"
+#include "indirect_util.h"
 
 /************************************************************************/
 
@@ -66,18 +68,6 @@ GlxSetRenderTables (struct _glapi_table 
     _glapi_set_dispatch (table);
 }
 
-static int __glXGetFBConfigsSGIX(__GLXclientState *cl, GLbyte *pc);
-static int __glXCreateContextWithConfigSGIX(__GLXclientState *cl, GLbyte *pc);
-static int __glXCreateGLXPixmapWithConfigSGIX(__GLXclientState *cl, GLbyte *pc);
-static int __glXMakeCurrentReadSGI(__GLXclientState *cl, GLbyte *pc);
-
-static int __glXBindSwapBarrierSGIX(__GLXclientState *cl, GLbyte *pc);
-static int __glXQueryMaxSwapBarriersSGIX(__GLXclientState *cl, GLbyte *pc);
-static int __glxQueryHyperpipeNetworkSGIX(__GLXclientState *cl, GLbyte *pc);
-static int __glxDestroyHyperpipeConfigSGIX (__GLXclientState *cl, GLbyte *pc);
-static int __glxQueryHyperpipeConfigSGIX(__GLXclientState *cl, GLbyte *pc);
-static int __glxHyperpipeConfigSGIX(__GLXclientState *cl, GLbyte *pc);
-
 
 /************************************************************************/
 
@@ -254,7 +244,7 @@ int DoCreateContext(__GLXclientState *cl
 }
 
 
-int __glXCreateContext(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_CreateContext(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXCreateContextReq *req = (xGLXCreateContextReq *) pc;
     return DoCreateContext( cl, req->context, req->shareList, req->visual,
@@ -262,7 +252,7 @@ int __glXCreateContext(__GLXclientState 
 }
 
 
-int __glXCreateNewContext(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_CreateNewContext(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXCreateNewContextReq *req = (xGLXCreateNewContextReq *) pc;
     return DoCreateContext( cl, req->context, req->shareList, req->fbconfig,
@@ -270,7 +260,7 @@ int __glXCreateNewContext(__GLXclientSta
 }
 
 
-int __glXCreateContextWithConfigSGIX(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_CreateContextWithConfigSGIX(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXCreateContextWithConfigSGIXReq *req = 
 	(xGLXCreateContextWithConfigSGIXReq *) pc;
@@ -281,7 +271,7 @@ int __glXCreateContextWithConfigSGIX(__G
 /*
 ** Destroy a GL context as an X resource.
 */
-int __glXDestroyContext(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_DestroyContext(__GLXclientState *cl, GLbyte *pc)
 {
     ClientPtr client = cl->client;
     xGLXDestroyContextReq *req = (xGLXDestroyContextReq *) pc;
@@ -399,7 +389,7 @@ static void StartUsingContext(__GLXclien
 ** Make an OpenGL context and drawable current.
 */
 
-int __glXMakeCurrent(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_MakeCurrent(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXMakeCurrentReq *req = (xGLXMakeCurrentReq *) pc;
 
@@ -407,7 +397,7 @@ int __glXMakeCurrent(__GLXclientState *c
 			  req->context, req->oldContextTag );
 }
 
-int __glXMakeContextCurrent(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_MakeContextCurrent(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXMakeContextCurrentReq *req = (xGLXMakeContextCurrentReq *) pc;
 
@@ -415,7 +405,7 @@ int __glXMakeContextCurrent(__GLXclientS
 			  req->context, req->oldContextTag );
 }
 
-int __glXMakeCurrentReadSGI(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_MakeCurrentReadSGI(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXMakeCurrentReadSGIReq *req = (xGLXMakeCurrentReadSGIReq *) pc;
 
@@ -750,7 +740,7 @@ int DoMakeCurrent( __GLXclientState *cl,
     return Success;
 }
 
-int __glXIsDirect(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_IsDirect(__GLXclientState *cl, GLbyte *pc)
 {
     ClientPtr client = cl->client;
     xGLXIsDirectReq *req = (xGLXIsDirectReq *) pc;
@@ -780,7 +770,7 @@ int __glXIsDirect(__GLXclientState *cl, 
     return Success;
 }
 
-int __glXQueryVersion(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_QueryVersion(__GLXclientState *cl, GLbyte *pc)
 {
     ClientPtr client = cl->client;
     xGLXQueryVersionReq *req = (xGLXQueryVersionReq *) pc;
@@ -811,7 +801,7 @@ int __glXQueryVersion(__GLXclientState *
     return Success;
 }
 
-int __glXWaitGL(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_WaitGL(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXWaitGLReq *req = (xGLXWaitGLReq *)pc;
     int error;
@@ -823,7 +813,7 @@ int __glXWaitGL(__GLXclientState *cl, GL
     return Success;
 }
 
-int __glXWaitX(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_WaitX(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXWaitXReq *req = (xGLXWaitXReq *)pc;
     int error;
@@ -840,7 +830,7 @@ int __glXWaitX(__GLXclientState *cl, GLb
     return Success;
 }
 
-int __glXCopyContext(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_CopyContext(__GLXclientState *cl, GLbyte *pc)
 {
     ClientPtr client = cl->client;
     xGLXCopyContextReq *req = (xGLXCopyContextReq *) pc;
@@ -1011,7 +1001,7 @@ int DoGetVisualConfigs(__GLXclientState 
     return Success;
 }
 
-int __glXGetVisualConfigs(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_GetVisualConfigs(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXGetVisualConfigsReq *req = (xGLXGetVisualConfigsReq *) pc;
     return DoGetVisualConfigs( cl, req->screen, GL_FALSE );
@@ -1187,14 +1177,14 @@ int DoGetFBConfigs(__GLXclientState *cl,
 }
 
 
-int __glXGetFBConfigs(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_GetFBConfigs(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXGetFBConfigsReq *req = (xGLXGetFBConfigsReq *) pc;
     return DoGetFBConfigs( cl, req->screen, GL_FALSE );
 }
 
 
-int __glXGetFBConfigsSGIX(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_GetFBConfigsSGIX(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXGetFBConfigsSGIXReq *req = (xGLXGetFBConfigsSGIXReq *) pc;
     return DoGetFBConfigs( cl, req->screen, GL_FALSE );
@@ -1290,21 +1280,21 @@ int DoCreateGLXPixmap(__GLXclientState *
     return Success;
 }
 
-int __glXCreateGLXPixmap(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_CreateGLXPixmap(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXCreateGLXPixmapReq *req = (xGLXCreateGLXPixmapReq *) pc;
     return DoCreateGLXPixmap( cl, req->visual, req->screen,
 			      req->pixmap, req->glxpixmap );
 }
 
-int __glXCreatePixmap(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_CreatePixmap(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXCreatePixmapReq *req = (xGLXCreatePixmapReq *) pc;
     return DoCreateGLXPixmap( cl, req->fbconfig, req->screen,
 			      req->pixmap, req->glxpixmap );
 }
 
-int __glXCreateGLXPixmapWithConfigSGIX(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_CreateGLXPixmapWithConfigSGIX(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXCreateGLXPixmapWithConfigSGIXReq *req = 
 	(xGLXCreateGLXPixmapWithConfigSGIXReq *) pc;
@@ -1329,21 +1319,21 @@ int DoDestroyPixmap(__GLXclientState *cl
     return Success;
 }
 
-int __glXDestroyGLXPixmap(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_DestroyGLXPixmap(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXDestroyGLXPixmapReq *req = (xGLXDestroyGLXPixmapReq *) pc;
 
     return DoDestroyPixmap(cl, req->glxpixmap);
 }
 
-int __glXDestroyPixmap(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_DestroyPixmap(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXDestroyPixmapReq *req = (xGLXDestroyPixmapReq *) pc;
 
     return DoDestroyPixmap(cl, req->glxpixmap);
 }
 
-int __glXCreatePbuffer(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_CreatePbuffer(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXCreatePbufferReq *req = (xGLXCreatePbufferReq *) pc;
 
@@ -1352,7 +1342,7 @@ int __glXCreatePbuffer(__GLXclientState 
     return BadRequest;
 }
 
-int __glXDestroyPbuffer(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_DestroyPbuffer(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXDestroyPbufferReq *req = (xGLXDestroyPbufferReq *) pc;
 
@@ -1361,7 +1351,7 @@ int __glXDestroyPbuffer(__GLXclientState
     return BadRequest;
 }
 
-int __glXChangeDrawableAttributes(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_ChangeDrawableAttributes(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXChangeDrawableAttributesReq *req =
 	(xGLXChangeDrawableAttributesReq *) pc;
@@ -1371,7 +1361,7 @@ int __glXChangeDrawableAttributes(__GLXc
     return BadRequest;
 }
 
-int __glXCreateWindow(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_CreateWindow(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXCreateWindowReq *req = (xGLXCreateWindowReq *) pc;
     ClientPtr client = cl->client;
@@ -1403,7 +1393,7 @@ int __glXCreateWindow(__GLXclientState *
     return Success;
 }
 
-int __glXDestroyWindow(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_DestroyWindow(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXDestroyWindowReq *req = (xGLXDestroyWindowReq *) pc;
     ClientPtr client = cl->client;
@@ -1428,7 +1418,7 @@ int __glXDestroyWindow(__GLXclientState 
 ** this time that is of value.  Consequently, this code must be
 ** implemented by somebody other than SGI.
 */
-int __glXSwapBuffers(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_SwapBuffers(__GLXclientState *cl, GLbyte *pc)
 {
     ClientPtr client = cl->client;
     xGLXSwapBuffersReq *req = (xGLXSwapBuffersReq *) pc;
@@ -1518,21 +1508,21 @@ int DoQueryContext(__GLXclientState *cl,
     return Success;
 }
 
-int __glXQueryContextInfoEXT(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_QueryContextInfoEXT(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXQueryContextInfoEXTReq *req = (xGLXQueryContextInfoEXTReq *) pc;
 
     return DoQueryContext(cl, req->context);
 }
 
-int __glXQueryContext(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_QueryContext(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXQueryContextReq *req = (xGLXQueryContextReq *) pc;
 
     return DoQueryContext(cl, req->context);
 }
 
-int __glXBindTexImageEXT(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_BindTexImageEXT(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXVendorPrivateReq *req = (xGLXVendorPrivateReq *) pc;
     ClientPtr		 client = cl->client;
@@ -1568,7 +1558,7 @@ int __glXBindTexImageEXT(__GLXclientStat
 						    pGlxPixmap);
 }
 
-int __glXReleaseTexImageEXT(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_ReleaseTexImageEXT(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXVendorPrivateReq *req = (xGLXVendorPrivateReq *) pc;
     ClientPtr		 client = cl->client;
@@ -1601,7 +1591,7 @@ int __glXReleaseTexImageEXT(__GLXclientS
 						       pGlxPixmap);
 }
 
-int __glXCopySubBufferMESA(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_CopySubBufferMESA(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXVendorPrivateReq *req = (xGLXVendorPrivateReq *) pc;
     GLXContextTag         tag = req->contextTag;
@@ -1701,7 +1691,7 @@ DoGetDrawableAttributes(__GLXclientState
     return Success;
 }
 
-int __glXGetDrawableAttributesSGIX(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_GetDrawableAttributesSGIX(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXVendorPrivateWithReplyReq *req = (xGLXVendorPrivateWithReplyReq *)pc;
     CARD32 *data;
@@ -1713,7 +1703,7 @@ int __glXGetDrawableAttributesSGIX(__GLX
     return DoGetDrawableAttributes(cl, drawable);
 }
 
-int __glXGetDrawableAttributes(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_GetDrawableAttributes(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXGetDrawableAttributesReq *req = (xGLXGetDrawableAttributesReq *)pc;
 
@@ -1730,7 +1720,7 @@ int __glXGetDrawableAttributes(__GLXclie
 /*
 ** Execute all the drawing commands in a request.
 */
-int __glXRender(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_Render(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXRenderReq *req;
     ClientPtr client= cl->client;
@@ -1742,7 +1732,7 @@ int __glXRender(__GLXclientState *cl, GL
 
     /*
     ** NOTE: much of this code also appears in the byteswapping version of this
-    ** routine, __glXSwapRender().  Any changes made here should also be
+    ** routine, __glXDisp_SwapRender().  Any changes made here should also be
     ** duplicated there.
     */
     
@@ -1832,7 +1822,7 @@ int __glXRender(__GLXclientState *cl, GL
 /*
 ** Execute a large rendering request (one that spans multiple X requests).
 */
-int __glXRenderLarge(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_RenderLarge(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXRenderLargeReq *req;
     ClientPtr client= cl->client;
@@ -1845,7 +1835,7 @@ int __glXRenderLarge(__GLXclientState *c
 
     /*
     ** NOTE: much of this code also appears in the byteswapping version of this
-    ** routine, __glXSwapRenderLarge().  Any changes made here should also be
+    ** routine, __glXDisp_SwapRenderLarge().  Any changes made here should also be
     ** duplicated there.
     */
     
@@ -2043,7 +2033,7 @@ int __glXRenderLarge(__GLXclientState *c
 
 extern RESTYPE __glXSwapBarrierRes;
 
-static int __glXBindSwapBarrierSGIX(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_BindSwapBarrierSGIX(__GLXclientState *cl, GLbyte *pc)
 {
     ClientPtr client = cl->client;
     xGLXBindSwapBarrierSGIXReq *req = (xGLXBindSwapBarrierSGIXReq *) pc;
@@ -2073,7 +2063,7 @@ static int __glXBindSwapBarrierSGIX(__GL
 }
 
 
-static int __glXQueryMaxSwapBarriersSGIX(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_QueryMaxSwapBarriersSGIX(__GLXclientState *cl, GLbyte *pc)
 {
     ClientPtr client = cl->client;
     xGLXQueryMaxSwapBarriersSGIXReq *req =
@@ -2104,7 +2094,7 @@ static int __glXQueryMaxSwapBarriersSGIX
 
 #define GLX_BAD_HYPERPIPE_SGIX 92
 
-static int __glxQueryHyperpipeNetworkSGIX(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_QueryHyperpipeNetworkSGIX(__GLXclientState *cl, GLbyte *pc)
 {
     ClientPtr client = cl->client;
     xGLXQueryHyperpipeNetworkSGIXReq * req = (xGLXQueryHyperpipeNetworkSGIXReq *) pc;
@@ -2144,7 +2134,7 @@ static int __glxQueryHyperpipeNetworkSGI
     return Success;
 }
 
-static int __glxDestroyHyperpipeConfigSGIX (__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_DestroyHyperpipeConfigSGIX (__GLXclientState *cl, GLbyte *pc)
 {
     ClientPtr client = cl->client;
     xGLXDestroyHyperpipeConfigSGIXReq * req =
@@ -2179,7 +2169,7 @@ static int __glxDestroyHyperpipeConfigSG
     return Success;
 }
 
-static int __glxQueryHyperpipeConfigSGIX(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_QueryHyperpipeConfigSGIX(__GLXclientState *cl, GLbyte *pc)
 {
     ClientPtr client = cl->client;
     xGLXQueryHyperpipeConfigSGIXReq * req =
@@ -2223,7 +2213,7 @@ static int __glxQueryHyperpipeConfigSGIX
     return Success;
 }
 
-static int __glxHyperpipeConfigSGIX(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_HyperpipeConfigSGIX(__GLXclientState *cl, GLbyte *pc)
 {
     ClientPtr client = cl->client;
     xGLXHyperpipeConfigSGIXReq * req =
@@ -2274,40 +2264,21 @@ static int __glxHyperpipeConfigSGIX(__GL
 ** allocating the entry points in the dispatch table.
 */
 
-int __glXVendorPrivate(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_VendorPrivate(__GLXclientState *cl, GLbyte *pc)
 {
-    xGLXVendorPrivateReq *req;
-    GLint vendorcode;
+    xGLXVendorPrivateReq *req = (xGLXVendorPrivateReq *) pc;
+    GLint vendorcode = req->vendorCode;
+    __GLXdispatchVendorPrivProcPtr proc;
 
-    req = (xGLXVendorPrivateReq *) pc;
-    vendorcode = req->vendorCode;
 
-#ifndef __DARWIN__
-    switch( vendorcode ) {
-    case X_GLvop_SampleMaskSGIS:
-	CALL_SampleMaskSGIS( GET_DISPATCH(),
-			     (*(GLfloat *)(pc + 4), *(GLboolean *)(pc + 8)) );
+    proc = (__GLXdispatchVendorPrivProcPtr)
+      __glXGetProtocolDecodeFunction(& VendorPriv_dispatch_info,
+				     vendorcode, 0);
+    if (proc != NULL) {
+	(*proc)(cl, (GLbyte*)req);
 	return Success;
-    case X_GLvop_SamplePatternSGIS:
-	CALL_SamplePatternSGIS( GET_DISPATCH(),	(*(GLenum *)(pc + 4)) );
-	return Success;
-    case X_GLXvop_BindSwapBarrierSGIX:
-        return __glXBindSwapBarrierSGIX(cl, pc);
-    case X_GLXvop_BindTexImageEXT:
-	return __glXBindTexImageEXT(cl, pc);
-    case X_GLXvop_ReleaseTexImageEXT:
-	return __glXReleaseTexImageEXT(cl, pc);
-    case X_GLXvop_CopySubBufferMESA:
-	return __glXCopySubBufferMESA(cl, pc);
     }
-#endif
 
-    if ((vendorcode >= __GLX_MIN_VENDPRIV_OPCODE_EXT) &&
-          (vendorcode <= __GLX_MAX_VENDPRIV_OPCODE_EXT))  {
-	(*__glXVendorPrivTable_EXT[vendorcode-__GLX_MIN_VENDPRIV_OPCODE_EXT])
-							(cl, (GLbyte*)req);
-	return Success;
-    }
     /*
     ** This sample implemention does not support any private requests.
     */
@@ -2315,67 +2286,25 @@ int __glXVendorPrivate(__GLXclientState 
     return __glXError(GLXUnsupportedPrivateRequest);
 }
 
-int __glXVendorPrivateWithReply(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_VendorPrivateWithReply(__GLXclientState *cl, GLbyte *pc)
 {
-    xGLXVendorPrivateWithReplyReq *req;
-    GLint vendorcode;
+    xGLXVendorPrivateReq *req = (xGLXVendorPrivateReq *) pc;
+    GLint vendorcode = req->vendorCode;
+    __GLXdispatchVendorPrivProcPtr proc;
 
-    req = (xGLXVendorPrivateWithReplyReq *) pc;
-    vendorcode = req->vendorCode;
 
-    switch (vendorcode) {
-      case X_GLXvop_QueryContextInfoEXT:
-	return __glXQueryContextInfoEXT(cl, pc);
-      case X_GLXvop_MakeCurrentReadSGI:
-	return __glXMakeCurrentReadSGI(cl, pc);
-      case X_GLXvop_QueryMaxSwapBarriersSGIX:
-        return __glXQueryMaxSwapBarriersSGIX(cl, pc);
-      case X_GLXvop_QueryHyperpipeNetworkSGIX:
-        return __glxQueryHyperpipeNetworkSGIX(cl, pc);
-      case X_GLXvop_QueryHyperpipeConfigSGIX:
-        return __glxQueryHyperpipeConfigSGIX(cl, pc);
-      case X_GLXvop_DestroyHyperpipeConfigSGIX:
-        return __glxDestroyHyperpipeConfigSGIX(cl, pc);
-      case X_GLXvop_HyperpipeConfigSGIX:
-        return __glxHyperpipeConfigSGIX(cl, pc);
-      case X_GLXvop_GetFBConfigsSGIX:
-	return __glXGetFBConfigsSGIX(cl, pc);
-      case X_GLXvop_CreateContextWithConfigSGIX:
-	return __glXCreateContextWithConfigSGIX(cl, pc);
-      case X_GLXvop_CreateGLXPixmapWithConfigSGIX:
-	return __glXCreateGLXPixmapWithConfigSGIX(cl, pc);
-      case X_GLXvop_GetDrawableAttributesSGIX:
-	return __glXGetDrawableAttributesSGIX(cl, pc);
-      case X_GLvop_IsRenderbufferEXT:
-	return __glXDisp_IsRenderbufferEXT(cl, pc);
-      case X_GLvop_GenRenderbuffersEXT:
-	return __glXDisp_GenRenderbuffersEXT(cl, pc);
-      case X_GLvop_GetRenderbufferParameterivEXT:
-	return __glXDisp_GetRenderbufferParameterivEXT(cl, pc);
-      case X_GLvop_IsFramebufferEXT:
-	return __glXDisp_IsFramebufferEXT(cl, pc);
-      case X_GLvop_GenFramebuffersEXT:
-	return __glXDisp_GenFramebuffersEXT(cl, pc);
-      case X_GLvop_CheckFramebufferStatusEXT:
-	return __glXDisp_CheckFramebufferStatusEXT(cl, pc);
-      case X_GLvop_GetFramebufferAttachmentParameterivEXT:
-	return __glXDisp_GetFramebufferAttachmentParameterivEXT(cl, pc);
-      default:
-	break;
-    }
-
-    if ((vendorcode >= __GLX_MIN_VENDPRIV_OPCODE_EXT) &&
-          (vendorcode <= __GLX_MAX_VENDPRIV_OPCODE_EXT))  {
-	return 
-	(*__glXVendorPrivTable_EXT[vendorcode-__GLX_MIN_VENDPRIV_OPCODE_EXT])
-							(cl, (GLbyte*)req);
+    proc = (__GLXdispatchVendorPrivProcPtr)
+      __glXGetProtocolDecodeFunction(& VendorPriv_dispatch_info,
+				     vendorcode, 0);
+    if (proc != NULL) {
+	return (*proc)(cl, (GLbyte*)req);
     }
 
     cl->client->errorValue = vendorcode;
     return __glXError(GLXUnsupportedPrivateRequest);
 }
 
-int __glXQueryExtensionsString(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_QueryExtensionsString(__GLXclientState *cl, GLbyte *pc)
 {
     ClientPtr client = cl->client;
     xGLXQueryExtensionsStringReq *req = (xGLXQueryExtensionsStringReq *) pc;
@@ -2420,7 +2349,7 @@ int __glXQueryExtensionsString(__GLXclie
     return Success;
 }
 
-int __glXQueryServerString(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_QueryServerString(__GLXclientState *cl, GLbyte *pc)
 {
     ClientPtr client = cl->client;
     xGLXQueryServerStringReq *req = (xGLXQueryServerStringReq *) pc;
@@ -2478,7 +2407,7 @@ int __glXQueryServerString(__GLXclientSt
     return Success;
 }
 
-int __glXClientInfo(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_ClientInfo(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXClientInfoReq *req = (xGLXClientInfoReq *) pc;
     const char *buf;
@@ -2492,4 +2421,3 @@ int __glXClientInfo(__GLXclientState *cl
 
     return Success;
 }
-
diff --git a/GL/glx/glxcmdsswap.c b/GL/glx/glxcmdsswap.c
index bb86243..78a26f5 100644
--- a/GL/glx/glxcmdsswap.c
+++ b/GL/glx/glxcmdsswap.c
@@ -54,11 +54,9 @@
 #include "glthread.h"
 #include "dispatch.h"
 #include "indirect_dispatch.h"
+#include "indirect_table.h"
+#include "indirect_util.h"
 
-static int __glXSwapGetFBConfigsSGIX(__GLXclientState *cl, GLbyte *pc);
-static int __glXSwapCreateContextWithConfigSGIX(__GLXclientState *cl, GLbyte *pc);
-static int __glXSwapCreateGLXPixmapWithConfigSGIX(__GLXclientState *cl, GLbyte *pc);
-static int __glXSwapMakeCurrentReadSGI(__GLXclientState *cl, GLbyte *pc);
 
 /************************************************************************/
 
@@ -69,7 +67,7 @@ static int __glXSwapMakeCurrentReadSGI(_
 ** it is called at the end of the unswapped routine.
 */
 
-int __glXSwapCreateContext(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_CreateContext(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXCreateContextReq *req = (xGLXCreateContextReq *) pc;
     __GLX_DECLARE_SWAP_VARIABLES;
@@ -84,7 +82,7 @@ int __glXSwapCreateContext(__GLXclientSt
 			    req->screen, req->isDirect );
 }
 
-int __glXSwapCreateNewContext(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_CreateNewContext(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXCreateNewContextReq *req = (xGLXCreateNewContextReq *) pc;
     __GLX_DECLARE_SWAP_VARIABLES;
@@ -100,7 +98,7 @@ int __glXSwapCreateNewContext(__GLXclien
 			    req->screen, req->isDirect );
 }
 
-int __glXSwapCreateContextWithConfigSGIX(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_CreateContextWithConfigSGIX(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXCreateContextWithConfigSGIXReq *req =
 	(xGLXCreateContextWithConfigSGIXReq *) pc;
@@ -117,7 +115,7 @@ int __glXSwapCreateContextWithConfigSGIX
 			    req->screen, req->isDirect );
 }
 
-int __glXSwapDestroyContext(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_DestroyContext(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXDestroyContextReq *req = (xGLXDestroyContextReq *) pc;
     __GLX_DECLARE_SWAP_VARIABLES;
@@ -125,10 +123,10 @@ int __glXSwapDestroyContext(__GLXclientS
     __GLX_SWAP_SHORT(&req->length);
     __GLX_SWAP_INT(&req->context);
 
-    return __glXDestroyContext(cl, pc);
+    return __glXDisp_DestroyContext(cl, pc);
 }
 
-int __glXSwapMakeCurrent(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_MakeCurrent(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXMakeCurrentReq *req = (xGLXMakeCurrentReq *) pc;
     __GLX_DECLARE_SWAP_VARIABLES;
@@ -142,7 +140,7 @@ int __glXSwapMakeCurrent(__GLXclientStat
 			  req->context, req->oldContextTag );
 }
 
-int __glXSwapMakeContextCurrent(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_MakeContextCurrent(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXMakeContextCurrentReq *req = (xGLXMakeContextCurrentReq *) pc;
     __GLX_DECLARE_SWAP_VARIABLES;
@@ -157,7 +155,7 @@ int __glXSwapMakeContextCurrent(__GLXcli
 			  req->context, req->oldContextTag );
 }
 
-int __glXSwapMakeCurrentReadSGI(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_MakeCurrentReadSGI(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXMakeCurrentReadSGIReq *req = (xGLXMakeCurrentReadSGIReq *) pc;
     __GLX_DECLARE_SWAP_VARIABLES;
@@ -172,7 +170,7 @@ int __glXSwapMakeCurrentReadSGI(__GLXcli
 			  req->context, req->oldContextTag );
 }
 
-int __glXSwapIsDirect(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_IsDirect(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXIsDirectReq *req = (xGLXIsDirectReq *) pc;
     __GLX_DECLARE_SWAP_VARIABLES;
@@ -180,10 +178,10 @@ int __glXSwapIsDirect(__GLXclientState *
     __GLX_SWAP_SHORT(&req->length);
     __GLX_SWAP_INT(&req->context);
 
-    return __glXIsDirect(cl, pc);
+    return __glXDisp_IsDirect(cl, pc);
 }
 
-int __glXSwapQueryVersion(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_QueryVersion(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXQueryVersionReq *req = (xGLXQueryVersionReq *) pc;
     __GLX_DECLARE_SWAP_VARIABLES;
@@ -192,10 +190,10 @@ int __glXSwapQueryVersion(__GLXclientSta
     __GLX_SWAP_INT(&req->majorVersion);
     __GLX_SWAP_INT(&req->minorVersion);
 
-    return __glXQueryVersion(cl, pc);
+    return __glXDisp_QueryVersion(cl, pc);
 }
 
-int __glXSwapWaitGL(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_WaitGL(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXWaitGLReq *req = (xGLXWaitGLReq *) pc;
     __GLX_DECLARE_SWAP_VARIABLES;
@@ -203,10 +201,10 @@ int __glXSwapWaitGL(__GLXclientState *cl
     __GLX_SWAP_SHORT(&req->length);
     __GLX_SWAP_INT(&req->contextTag);
 
-    return __glXWaitGL(cl, pc);
+    return __glXDisp_WaitGL(cl, pc);
 }
 
-int __glXSwapWaitX(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_WaitX(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXWaitXReq *req = (xGLXWaitXReq *) pc;
     __GLX_DECLARE_SWAP_VARIABLES;
@@ -214,10 +212,10 @@ int __glXSwapWaitX(__GLXclientState *cl,
     __GLX_SWAP_SHORT(&req->length);
     __GLX_SWAP_INT(&req->contextTag);
 
-    return __glXWaitX(cl, pc);
+    return __glXDisp_WaitX(cl, pc);
 }
 
-int __glXSwapCopyContext(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_CopyContext(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXCopyContextReq *req = (xGLXCopyContextReq *) pc;
     __GLX_DECLARE_SWAP_VARIABLES;
@@ -227,10 +225,10 @@ int __glXSwapCopyContext(__GLXclientStat
     __GLX_SWAP_INT(&req->dest);
     __GLX_SWAP_INT(&req->mask);
 
-    return __glXCopyContext(cl, pc);
+    return __glXDisp_CopyContext(cl, pc);
 }
 
-int __glXSwapGetVisualConfigs(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_GetVisualConfigs(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXGetVisualConfigsReq *req = (xGLXGetVisualConfigsReq *) pc;
     __GLX_DECLARE_SWAP_VARIABLES;
@@ -239,7 +237,7 @@ int __glXSwapGetVisualConfigs(__GLXclien
     return DoGetVisualConfigs( cl, req->screen, GL_TRUE );
 }
 
-int __glXSwapGetFBConfigs(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_GetFBConfigs(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXGetFBConfigsReq *req = (xGLXGetFBConfigsReq *) pc;
     __GLX_DECLARE_SWAP_VARIABLES;
@@ -248,7 +246,7 @@ int __glXSwapGetFBConfigs(__GLXclientSta
     return DoGetFBConfigs( cl, req->screen, GL_TRUE );
 }
 
-int __glXSwapGetFBConfigsSGIX(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_GetFBConfigsSGIX(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXGetFBConfigsSGIXReq *req = (xGLXGetFBConfigsSGIXReq *) pc;
     __GLX_DECLARE_SWAP_VARIABLES;
@@ -257,7 +255,7 @@ int __glXSwapGetFBConfigsSGIX(__GLXclien
     return DoGetFBConfigs( cl, req->screen, GL_TRUE );
 }
 
-int __glXSwapCreateGLXPixmap(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_CreateGLXPixmap(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXCreateGLXPixmapReq *req = (xGLXCreateGLXPixmapReq *) pc;
     __GLX_DECLARE_SWAP_VARIABLES;
@@ -272,7 +270,7 @@ int __glXSwapCreateGLXPixmap(__GLXclient
 			      req->pixmap, req->glxpixmap );
 }
 
-int __glXSwapCreatePixmap(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_CreatePixmap(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXCreatePixmapReq *req = (xGLXCreatePixmapReq *) pc;
     __GLX_DECLARE_SWAP_VARIABLES;
@@ -287,7 +285,7 @@ int __glXSwapCreatePixmap(__GLXclientSta
 			      req->pixmap, req->glxpixmap );
 }
 
-int __glXSwapCreateGLXPixmapWithConfigSGIX(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_CreateGLXPixmapWithConfigSGIX(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXCreateGLXPixmapWithConfigSGIXReq *req = 
 	(xGLXCreateGLXPixmapWithConfigSGIXReq *) pc;
@@ -303,7 +301,7 @@ int __glXSwapCreateGLXPixmapWithConfigSG
 			      req->pixmap, req->glxpixmap );
 }
 
-int __glXSwapDestroyGLXPixmap(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_DestroyGLXPixmap(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXDestroyGLXPixmapReq *req = (xGLXDestroyGLXPixmapReq *) pc;
     __GLX_DECLARE_SWAP_VARIABLES;
@@ -311,10 +309,10 @@ int __glXSwapDestroyGLXPixmap(__GLXclien
     __GLX_SWAP_SHORT(&req->length);
     __GLX_SWAP_INT(&req->glxpixmap);
 
-    return __glXDestroyGLXPixmap(cl, pc);
+    return __glXDisp_DestroyGLXPixmap(cl, pc);
 }
 
-int __glXSwapDestroyPixmap(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_DestroyPixmap(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXDestroyGLXPixmapReq *req = (xGLXDestroyGLXPixmapReq *) pc;
     __GLX_DECLARE_SWAP_VARIABLES;
@@ -322,10 +320,10 @@ int __glXSwapDestroyPixmap(__GLXclientSt
     __GLX_SWAP_SHORT(&req->length);
     __GLX_SWAP_INT(&req->glxpixmap);
 
-    return __glXDestroyGLXPixmap(cl, pc);
+    return __glXDisp_DestroyGLXPixmap(cl, pc);
 }
 
-int __glXSwapQueryContext(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_QueryContext(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXQueryContextReq *req = (xGLXQueryContextReq *) pc;    
 
@@ -334,7 +332,7 @@ int __glXSwapQueryContext(__GLXclientSta
     return BadRequest;    
 }
 
-int __glXSwapCreatePbuffer(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_CreatePbuffer(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXCreatePbufferReq *req = (xGLXCreatePbufferReq *) pc;    
 
@@ -343,14 +341,14 @@ int __glXSwapCreatePbuffer(__GLXclientSt
     return BadRequest;    
 }
 
-int __glXSwapDestroyPbuffer(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_DestroyPbuffer(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXDestroyPbufferReq *req = (xGLXDestroyPbufferReq *) req;
 
     return BadRequest;
 }
 
-int __glXSwapChangeDrawableAttributes(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_ChangeDrawableAttributes(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXChangeDrawableAttributesReq *req =
 	(xGLXChangeDrawableAttributesReq *) req;
@@ -358,7 +356,7 @@ int __glXSwapChangeDrawableAttributes(__
     return BadRequest;
 }
 
-int __glXSwapCreateWindow(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_CreateWindow(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXCreateWindowReq *req = (xGLXCreateWindowReq *) pc;
 
@@ -367,7 +365,7 @@ int __glXSwapCreateWindow(__GLXclientSta
     return BadRequest;
 }
 
-int __glXSwapDestroyWindow(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_DestroyWindow(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXDestroyWindowReq *req = (xGLXDestroyWindowReq *) pc;
 
@@ -376,7 +374,7 @@ int __glXSwapDestroyWindow(__GLXclientSt
     return BadRequest;
 }
 
-int __glXSwapSwapBuffers(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_SwapBuffers(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXSwapBuffersReq *req = (xGLXSwapBuffersReq *) pc;
     __GLX_DECLARE_SWAP_VARIABLES;
@@ -385,10 +383,10 @@ int __glXSwapSwapBuffers(__GLXclientStat
     __GLX_SWAP_INT(&req->contextTag);
     __GLX_SWAP_INT(&req->drawable);
 
-    return __glXSwapBuffers(cl, pc);
+    return __glXDisp_SwapBuffers(cl, pc);
 }
 
-int __glXSwapUseXFont(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_UseXFont(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXUseXFontReq *req = (xGLXUseXFontReq *) pc;
     __GLX_DECLARE_SWAP_VARIABLES;
@@ -400,11 +398,11 @@ int __glXSwapUseXFont(__GLXclientState *
     __GLX_SWAP_INT(&req->count);
     __GLX_SWAP_INT(&req->listBase);
 
-    return __glXUseXFont(cl, pc);
+    return __glXDisp_UseXFont(cl, pc);
 }
 
 
-int __glXSwapQueryExtensionsString(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_QueryExtensionsString(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXQueryExtensionsStringReq *req = (xGLXQueryExtensionsStringReq *)pc;
     __GLX_DECLARE_SWAP_VARIABLES;
@@ -412,10 +410,10 @@ int __glXSwapQueryExtensionsString(__GLX
     __GLX_SWAP_SHORT(&req->length);
     __GLX_SWAP_INT(&req->screen);
 
-    return __glXQueryExtensionsString(cl, pc);
+    return __glXDisp_QueryExtensionsString(cl, pc);
 }
 
-int __glXSwapQueryServerString(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_QueryServerString(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXQueryServerStringReq *req = (xGLXQueryServerStringReq *)pc;
     __GLX_DECLARE_SWAP_VARIABLES;
@@ -424,10 +422,10 @@ int __glXSwapQueryServerString(__GLXclie
     __GLX_SWAP_INT(&req->screen);
     __GLX_SWAP_INT(&req->name);
 
-    return __glXQueryServerString(cl, pc);
+    return __glXDisp_QueryServerString(cl, pc);
 }
 
-int __glXSwapClientInfo(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_ClientInfo(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXClientInfoReq *req = (xGLXClientInfoReq *)pc;
     __GLX_DECLARE_SWAP_VARIABLES;
@@ -437,10 +435,10 @@ int __glXSwapClientInfo(__GLXclientState
     __GLX_SWAP_INT(&req->minor);
     __GLX_SWAP_INT(&req->numbytes);
 
-    return __glXClientInfo(cl, pc);
+    return __glXDisp_ClientInfo(cl, pc);
 }
 
-int __glXSwapQueryContextInfoEXT(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_QueryContextInfoEXT(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXQueryContextInfoEXTReq *req = (xGLXQueryContextInfoEXTReq *) pc;
     __GLX_DECLARE_SWAP_VARIABLES;
@@ -448,10 +446,10 @@ int __glXSwapQueryContextInfoEXT(__GLXcl
     __GLX_SWAP_SHORT(&req->length);
     __GLX_SWAP_INT(&req->context);
 
-    return __glXQueryContextInfoEXT(cl, pc);
+    return __glXDisp_QueryContextInfoEXT(cl, pc);
 }
 
-int __glXSwapBindTexImageEXT(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_BindTexImageEXT(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXVendorPrivateReq *req = (xGLXVendorPrivateReq *) pc;
     GLXDrawable		 *drawId;
@@ -469,10 +467,10 @@ int __glXSwapBindTexImageEXT(__GLXclient
     __GLX_SWAP_INT(drawId);
     __GLX_SWAP_INT(buffer);
 
-    return __glXBindTexImageEXT(cl, (GLbyte *)pc);
+    return __glXDisp_BindTexImageEXT(cl, (GLbyte *)pc);
 }
 
-int __glXSwapReleaseTexImageEXT(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_ReleaseTexImageEXT(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXVendorPrivateReq *req = (xGLXVendorPrivateReq *) pc;
     GLXDrawable		 *drawId;
@@ -490,10 +488,10 @@ int __glXSwapReleaseTexImageEXT(__GLXcli
     __GLX_SWAP_INT(drawId);
     __GLX_SWAP_INT(buffer);
 
-    return __glXReleaseTexImageEXT(cl, (GLbyte *)pc);
+    return __glXDisp_ReleaseTexImageEXT(cl, (GLbyte *)pc);
 }
 
-int __glXSwapCopySubBufferMESA(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_CopySubBufferMESA(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXVendorPrivateReq *req = (xGLXVendorPrivateReq *) pc;
     GLXDrawable		 *drawId;
@@ -514,11 +512,11 @@ int __glXSwapCopySubBufferMESA(__GLXclie
     __GLX_SWAP_INT(pc + 12);
     __GLX_SWAP_INT(pc + 16);
 
-    return __glXCopySubBufferMESA(cl, pc);
+    return __glXDisp_CopySubBufferMESA(cl, pc);
 
 }
 
-int __glXSwapGetDrawableAttributesSGIX(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_GetDrawableAttributesSGIX(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXVendorPrivateWithReplyReq *req = (xGLXVendorPrivateWithReplyReq *)pc;
     CARD32 *data;
@@ -530,10 +528,10 @@ int __glXSwapGetDrawableAttributesSGIX(_
     __GLX_SWAP_INT(&req->contextTag);
     __GLX_SWAP_INT(data);
 
-    return __glXGetDrawableAttributesSGIX(cl, pc);
+    return __glXDisp_GetDrawableAttributesSGIX(cl, pc);
 }
 
-int __glXSwapGetDrawableAttributes(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_GetDrawableAttributes(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXGetDrawableAttributesReq *req = (xGLXGetDrawableAttributesReq *)pc;
     
@@ -542,7 +540,7 @@ int __glXSwapGetDrawableAttributes(__GLX
     __GLX_SWAP_SHORT(&req->length);
     __GLX_SWAP_INT(&req->drawable);
 
-    return __glXGetDrawableAttributes(cl, pc);
+    return __glXDisp_GetDrawableAttributes(cl, pc);
 }
 
 
@@ -641,7 +639,7 @@ void __glXSwapGetDrawableAttributesReply
 ** client library to send batches of GL rendering commands.
 */
 
-int __glXSwapRender(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_Render(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXRenderReq *req;
     ClientPtr client= cl->client;
@@ -743,7 +741,7 @@ int __glXSwapRender(__GLXclientState *cl
 /*
 ** Execute a large rendering request (one that spans multiple X requests).
 */
-int __glXSwapRenderLarge(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_RenderLarge(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXRenderLargeReq *req;
     ClientPtr client= cl->client;
@@ -969,10 +967,11 @@ int __glXSwapRenderLarge(__GLXclientStat
 ** allocating these entry points in the dispatch table.
 */
 
-int __glXSwapVendorPrivate(__GLXclientState *cl, GLbyte *pc)
+int __glXDispSwap_VendorPrivate(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXVendorPrivateReq *req;
     GLint vendorcode;
+    __GLXdispatchVendorPrivProcPtr proc;
 
     __GLX_DECLARE_SWAP_VARIABLES;
 
@@ -982,41 +981,24 @@ int __glXSwapVendorPrivate(__GLXclientSt
 
     vendorcode = req->vendorCode;
 
-#ifndef __DARWIN__
-    switch( vendorcode ) {
-    case X_GLvop_SampleMaskSGIS:
-	__GLX_SWAP_FLOAT(pc + 4);
-	__GLX_SWAP_INT(pc + 8);
-	CALL_SampleMaskSGIS( GET_DISPATCH(),
-			     (*(GLfloat *)(pc + 4), *(GLboolean *)(pc + 8)) );
+    proc = (__GLXdispatchVendorPrivProcPtr)
+      __glXGetProtocolDecodeFunction(& VendorPriv_dispatch_info,
+				     vendorcode, 1);
+    if (proc != NULL) {
+	(*proc)(cl, (GLbyte*)req);
 	return Success;
-    case X_GLvop_SamplePatternSGIS:
-	__GLX_SWAP_INT(pc + 4);
-	CALL_SamplePatternSGIS( GET_DISPATCH(), (*(GLenum *)(pc + 4)) );
-	return Success;
-    case X_GLXvop_BindTexImageEXT:
-	return __glXSwapBindTexImageEXT(cl, pc);
-    case X_GLXvop_ReleaseTexImageEXT:
-	return __glXSwapReleaseTexImageEXT(cl, pc);
-    case X_GLXvop_CopySubBufferMESA:
-	return __glXSwapCopySubBufferMESA(cl, pc);
     }
-#endif
-
 
-    if ((vendorcode >= __GLX_MIN_VENDPRIV_OPCODE_EXT) &&
-          (vendorcode <= __GLX_MAX_VENDPRIV_OPCODE_EXT))  {
-	(*__glXSwapVendorPrivTable_EXT[vendorcode-__GLX_MIN_VENDPRIV_OPCODE_EXT])(cl, (GLbyte*)req);
-	return Success;
-    }
     cl->client->errorValue = req->vendorCode;
     return __glXError(GLXUnsupportedPrivateRequest);
 }
 
-int __glXSwapVendorPrivateWithReply(__GLXclientState *cl, GLbyte *pc)
+
+int __glXDispSwap_VendorPrivateWithReply(__GLXclientState *cl, GLbyte *pc)
 {
     xGLXVendorPrivateWithReplyReq *req;
     GLint vendorcode;
+    __GLXdispatchVendorPrivProcPtr proc;
 
     __GLX_DECLARE_SWAP_VARIABLES;
 
@@ -1026,42 +1008,13 @@ int __glXSwapVendorPrivateWithReply(__GL
 
     vendorcode = req->vendorCode;
 
-    switch (vendorcode) {
-      case X_GLXvop_QueryContextInfoEXT:
-	return __glXSwapQueryContextInfoEXT(cl, pc);
-      case X_GLXvop_MakeCurrentReadSGI:
-	return __glXSwapMakeCurrentReadSGI(cl, pc);
-      case X_GLXvop_GetFBConfigsSGIX:
-	return __glXSwapGetFBConfigsSGIX(cl, pc);
-      case X_GLXvop_CreateContextWithConfigSGIX:
-	return __glXSwapCreateContextWithConfigSGIX(cl, pc);
-      case X_GLXvop_CreateGLXPixmapWithConfigSGIX:
-	return __glXSwapCreateGLXPixmapWithConfigSGIX(cl, pc);
-      case X_GLXvop_GetDrawableAttributesSGIX:
-	return __glXSwapGetDrawableAttributesSGIX(cl, pc);
-      case X_GLvop_IsRenderbufferEXT:
-	return __glXDispSwap_IsRenderbufferEXT(cl, pc);
-      case X_GLvop_GenRenderbuffersEXT:
-	return __glXDispSwap_GenRenderbuffersEXT(cl, pc);
-      case X_GLvop_GetRenderbufferParameterivEXT:
-	return __glXDispSwap_GetRenderbufferParameterivEXT(cl, pc);
-      case X_GLvop_IsFramebufferEXT:
-	return __glXDispSwap_IsFramebufferEXT(cl, pc);
-      case X_GLvop_GenFramebuffersEXT:
-	return __glXDispSwap_GenFramebuffersEXT(cl, pc);
-      case X_GLvop_CheckFramebufferStatusEXT:
-	return __glXDispSwap_CheckFramebufferStatusEXT(cl, pc);
-      case X_GLvop_GetFramebufferAttachmentParameterivEXT:
-	return __glXDispSwap_GetFramebufferAttachmentParameterivEXT(cl, pc);
-      default:
-	break;
+    proc = (__GLXdispatchVendorPrivProcPtr)
+      __glXGetProtocolDecodeFunction(& VendorPriv_dispatch_info,
+				     vendorcode, 1);
+    if (proc != NULL) {
+	return (*proc)(cl, (GLbyte*)req);
     }
 
-
-    if ((vendorcode >= __GLX_MIN_VENDPRIV_OPCODE_EXT) &&
-          (vendorcode <= __GLX_MAX_VENDPRIV_OPCODE_EXT))  {
-	return (*__glXSwapVendorPrivTable_EXT[vendorcode-__GLX_MIN_VENDPRIV_OPCODE_EXT])(cl, (GLbyte*)req);
-    }
     cl->client->errorValue = req->vendorCode;
     return __glXError(GLXUnsupportedPrivateRequest);
 }
diff --git a/GL/glx/glxext.c b/GL/glx/glxext.c
index 8bbb83f..5600d17 100644
--- a/GL/glx/glxext.c
+++ b/GL/glx/glxext.c
@@ -32,6 +32,8 @@
 #include "unpack.h"
 #include "glxutil.h"
 #include "glxext.h"
+#include "indirect_table.h"
+#include "indirect_util.h"
 
 /*
 ** The last context used by the server.  It is the context that is current
@@ -452,7 +454,7 @@ static int __glXDispatch(ClientPtr clien
 {
     REQUEST(xGLXSingleReq);
     CARD8 opcode;
-    int (*proc)(__GLXclientState *cl, GLbyte *pc);
+    __GLXdispatchSingleProcPtr proc;
     __GLXclientState *cl;
     int retval;
 
@@ -482,13 +484,6 @@ static int __glXDispatch(ClientPtr clien
     }
 
     /*
-    ** Check for valid opcode.
-    */
-    if (opcode >= __GLX_SINGLE_TABLE_SIZE) {
-	return BadRequest;
-    }
-
-    /*
     ** If we're expecting a glXRenderLarge request, this better be one.
     */
     if ((cl->largeCmdRequestsSoFar != 0) && (opcode != X_GLXRenderLarge)) {
@@ -499,29 +494,27 @@ static int __glXDispatch(ClientPtr clien
     /*
     ** Use the opcode to index into the procedure table.
     */
-    if (client->swapped)
-	proc = __glXSwapSingleTable[opcode];
-    else
-	proc = __glXSingleTable[opcode];
-
-    __glXleaveServer();
+    proc = (__GLXdispatchSingleProcPtr) __glXGetProtocolDecodeFunction(& Single_dispatch_info,
+								       opcode,
+								       client->swapped);
+    if (proc != NULL) {
+	__glXleaveServer();
 
-    inDispatch = True;
+	inDispatch = True;
 
-    retval = proc(cl, (GLbyte *) stuff);
+	retval = (*proc)(cl, (GLbyte *) stuff);
 
-    inDispatch = False;
+	inDispatch = False;
 
-    __glXenterServer();
+	__glXenterServer();
+    }
+    else {
+	retval = BadRequest;
+    }
 
     return retval;
 }
 
-int __glXNoSuchSingleOpcode(__GLXclientState *cl, GLbyte *pc)
-{
-    return BadRequest;
-}
-
 void __glXNoSuchRenderOpcode(GLbyte *pc)
 {
     return;
diff --git a/GL/glx/glxext.h b/GL/glx/glxext.h
index f48f331..b19a716 100644
--- a/GL/glx/glxext.h
+++ b/GL/glx/glxext.h
@@ -67,7 +67,6 @@ extern GLboolean __glXFreeContext(__GLXc
 extern void __glXFlushContextCache(void);
 
 extern void __glXNoSuchRenderOpcode(GLbyte*);
-extern int __glXNoSuchSingleOpcode(__GLXclientState*, GLbyte*);
 extern void __glXErrorCallBack(__GLinterface *gc, GLenum code);
 extern void __glXClearErrorOccured(void);
 extern GLboolean __glXErrorOccured(void);
diff --git a/GL/glx/glxserver.h b/GL/glx/glxserver.h
index 8ece1e2..ce91ce3 100644
--- a/GL/glx/glxserver.h
+++ b/GL/glx/glxserver.h
@@ -196,9 +196,11 @@ extern __GLXprocPtr __glXProcTable[];
 /*
  * Tables for computing the size of each rendering command.
  */
+typedef int (*gl_proto_size_func)(const GLbyte *, Bool);
+
 typedef struct {
     int bytes;
-    int (*varsize)(const GLbyte *pc, Bool swap);
+    gl_proto_size_func varsize;
 } __GLXrenderSizeData;
 extern __GLXrenderSizeData __glXRenderSizeTable[];
 extern __GLXrenderSizeData __glXRenderSizeTable_EXT[];
diff --git a/GL/glx/indirect_dispatch.h b/GL/glx/indirect_dispatch.h
index 950d484..07bc97b 100644
--- a/GL/glx/indirect_dispatch.h
+++ b/GL/glx/indirect_dispatch.h
@@ -67,6 +67,8 @@ extern HIDDEN void __glXDisp_Histogram(G
 extern HIDDEN void __glXDispSwap_Histogram(GLbyte * pc);
 extern HIDDEN int __glXDisp_GetMapfv(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDispSwap_GetMapfv(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN void __glXDisp_RasterPos4dv(GLbyte * pc);
+extern HIDDEN void __glXDispSwap_RasterPos4dv(GLbyte * pc);
 extern HIDDEN void __glXDisp_PolygonStipple(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_PolygonStipple(GLbyte * pc);
 extern HIDDEN int __glXDisp_GetPixelMapfv(struct __GLXclientStateRec *, GLbyte *);
@@ -79,16 +81,26 @@ extern HIDDEN void __glXDisp_VertexAttri
 extern HIDDEN void __glXDispSwap_VertexAttrib4svNV(GLbyte * pc);
 extern HIDDEN void __glXDisp_EvalCoord2fv(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_EvalCoord2fv(GLbyte * pc);
+extern HIDDEN int __glXDisp_DestroyPixmap(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_DestroyPixmap(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_ProgramEnvParameter4dvARB(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_ProgramEnvParameter4dvARB(GLbyte * pc);
 extern HIDDEN int __glXDisp_GetMapiv(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDispSwap_GetMapiv(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDisp_SwapBuffers(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_SwapBuffers(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_Indexubv(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_Indexubv(GLbyte * pc);
+extern HIDDEN int __glXDisp_Render(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_Render(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDisp_GetQueryivARB(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDispSwap_GetQueryivARB(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_TexImage3D(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_TexImage3D(GLbyte * pc);
+extern HIDDEN int __glXDisp_MakeContextCurrent(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_MakeContextCurrent(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDisp_GetFBConfigs(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_GetFBConfigs(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_Color3ubv(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_Color3ubv(GLbyte * pc);
 extern HIDDEN int __glXDisp_GetQueryObjectivARB(struct __GLXclientStateRec *, GLbyte *);
@@ -105,16 +117,18 @@ extern HIDDEN void __glXDisp_VertexAttri
 extern HIDDEN void __glXDispSwap_VertexAttribs1dvNV(GLbyte * pc);
 extern HIDDEN void __glXDisp_Normal3bv(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_Normal3bv(GLbyte * pc);
-extern HIDDEN void __glXDisp_TexGeniv(GLbyte * pc);
-extern HIDDEN void __glXDispSwap_TexGeniv(GLbyte * pc);
+extern HIDDEN int __glXDisp_VendorPrivate(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_VendorPrivate(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDisp_CreateGLXPixmapWithConfigSGIX(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_CreateGLXPixmapWithConfigSGIX(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_Vertex3iv(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_Vertex3iv(GLbyte * pc);
 extern HIDDEN void __glXDisp_CopyConvolutionFilter1D(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_CopyConvolutionFilter1D(GLbyte * pc);
 extern HIDDEN void __glXDisp_BlendColor(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_BlendColor(GLbyte * pc);
-extern HIDDEN void __glXDisp_CallLists(GLbyte * pc);
-extern HIDDEN void __glXDispSwap_CallLists(GLbyte * pc);
+extern HIDDEN void __glXDisp_Scalef(GLbyte * pc);
+extern HIDDEN void __glXDispSwap_Scalef(GLbyte * pc);
 extern HIDDEN void __glXDisp_Normal3iv(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_Normal3iv(GLbyte * pc);
 extern HIDDEN void __glXDisp_PassThrough(GLbyte * pc);
@@ -123,8 +137,10 @@ extern HIDDEN void __glXDisp_Viewport(GL
 extern HIDDEN void __glXDispSwap_Viewport(GLbyte * pc);
 extern HIDDEN void __glXDisp_VertexAttrib4NusvARB(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_VertexAttrib4NusvARB(GLbyte * pc);
-extern HIDDEN void __glXDisp_PrioritizeTextures(GLbyte * pc);
-extern HIDDEN void __glXDispSwap_PrioritizeTextures(GLbyte * pc);
+extern HIDDEN void __glXDisp_CopyTexSubImage2D(GLbyte * pc);
+extern HIDDEN void __glXDispSwap_CopyTexSubImage2D(GLbyte * pc);
+extern HIDDEN void __glXDisp_DepthRange(GLbyte * pc);
+extern HIDDEN void __glXDispSwap_DepthRange(GLbyte * pc);
 extern HIDDEN void __glXDisp_ResetHistogram(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_ResetHistogram(GLbyte * pc);
 extern HIDDEN int __glXDisp_GetProgramNamedParameterfvNV(struct __GLXclientStateRec *, GLbyte *);
@@ -145,10 +161,14 @@ extern HIDDEN int __glXDisp_GetConvoluti
 extern HIDDEN int __glXDispSwap_GetConvolutionParameteriv(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_Vertex2dv(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_Vertex2dv(GLbyte * pc);
+extern HIDDEN int __glXDisp_GetVisualConfigs(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_GetVisualConfigs(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_MultiTexCoord1fvARB(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_MultiTexCoord1fvARB(GLbyte * pc);
 extern HIDDEN void __glXDisp_TexCoord3iv(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_TexCoord3iv(GLbyte * pc);
+extern HIDDEN int __glXDisp_CopyContext(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_CopyContext(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_Color3fv(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_Color3fv(GLbyte * pc);
 extern HIDDEN void __glXDisp_PointSize(GLbyte * pc);
@@ -161,36 +181,40 @@ extern HIDDEN void __glXDisp_Vertex4sv(G
 extern HIDDEN void __glXDispSwap_Vertex4sv(GLbyte * pc);
 extern HIDDEN int __glXDisp_GetTexEnvfv(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDispSwap_GetTexEnvfv(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN void __glXDisp_LineStipple(GLbyte * pc);
+extern HIDDEN void __glXDispSwap_LineStipple(GLbyte * pc);
 extern HIDDEN void __glXDisp_TexEnvi(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_TexEnvi(GLbyte * pc);
 extern HIDDEN int __glXDisp_GetClipPlane(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDispSwap_GetClipPlane(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_VertexAttribs3dvNV(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_VertexAttribs3dvNV(GLbyte * pc);
+extern HIDDEN void __glXDisp_LightModeli(GLbyte * pc);
+extern HIDDEN void __glXDispSwap_LightModeli(GLbyte * pc);
 extern HIDDEN void __glXDisp_VertexAttribs4fvNV(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_VertexAttribs4fvNV(GLbyte * pc);
 extern HIDDEN void __glXDisp_Scaled(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_Scaled(GLbyte * pc);
-extern HIDDEN void __glXDisp_Scalef(GLbyte * pc);
-extern HIDDEN void __glXDispSwap_Scalef(GLbyte * pc);
+extern HIDDEN void __glXDisp_CallLists(GLbyte * pc);
+extern HIDDEN void __glXDispSwap_CallLists(GLbyte * pc);
 extern HIDDEN void __glXDisp_AlphaFunc(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_AlphaFunc(GLbyte * pc);
 extern HIDDEN void __glXDisp_TexCoord2iv(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_TexCoord2iv(GLbyte * pc);
 extern HIDDEN void __glXDisp_CompressedTexImage1DARB(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_CompressedTexImage1DARB(GLbyte * pc);
-extern HIDDEN void __glXDisp_Rotated(GLbyte * pc);
-extern HIDDEN void __glXDispSwap_Rotated(GLbyte * pc);
 extern HIDDEN int __glXDisp_ReadPixels(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDispSwap_ReadPixels(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_EdgeFlagv(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_EdgeFlagv(GLbyte * pc);
-extern HIDDEN void __glXDisp_Color4iv(GLbyte * pc);
-extern HIDDEN void __glXDispSwap_Color4iv(GLbyte * pc);
+extern HIDDEN void __glXDisp_Rotatef(GLbyte * pc);
+extern HIDDEN void __glXDispSwap_Rotatef(GLbyte * pc);
 extern HIDDEN void __glXDisp_TexParameterf(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_TexParameterf(GLbyte * pc);
 extern HIDDEN void __glXDisp_TexParameteri(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_TexParameteri(GLbyte * pc);
+extern HIDDEN int __glXDisp_DestroyContext(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_DestroyContext(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_DrawPixels(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_DrawPixels(GLbyte * pc);
 extern HIDDEN void __glXDisp_MultiTexCoord2svARB(GLbyte * pc);
@@ -215,8 +239,6 @@ extern HIDDEN void __glXDisp_Color4usv(G
 extern HIDDEN void __glXDispSwap_Color4usv(GLbyte * pc);
 extern HIDDEN void __glXDisp_Fogi(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_Fogi(GLbyte * pc);
-extern HIDDEN void __glXDisp_DepthRange(GLbyte * pc);
-extern HIDDEN void __glXDispSwap_DepthRange(GLbyte * pc);
 extern HIDDEN void __glXDisp_RasterPos3iv(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_RasterPos3iv(GLbyte * pc);
 extern HIDDEN void __glXDisp_PixelMapfv(GLbyte * pc);
@@ -229,8 +251,6 @@ extern HIDDEN int __glXDisp_AreTexturesR
 extern HIDDEN int __glXDispSwap_AreTexturesResident(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDisp_IsRenderbufferEXT(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDispSwap_IsRenderbufferEXT(struct __GLXclientStateRec *, GLbyte *);
-extern HIDDEN void __glXDisp_ColorTableParameteriv(GLbyte * pc);
-extern HIDDEN void __glXDispSwap_ColorTableParameteriv(GLbyte * pc);
 extern HIDDEN void __glXDisp_PointParameterfvEXT(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_PointParameterfvEXT(GLbyte * pc);
 extern HIDDEN void __glXDisp_Color3bv(GLbyte * pc);
@@ -291,8 +311,14 @@ extern HIDDEN int __glXDisp_CheckFramebu
 extern HIDDEN int __glXDispSwap_CheckFramebufferStatusEXT(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDisp_GetVertexAttribivARB(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDispSwap_GetVertexAttribivARB(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDisp_GetFBConfigsSGIX(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_GetFBConfigsSGIX(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDisp_CreateNewContext(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_CreateNewContext(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDisp_GetMinmax(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDispSwap_GetMinmax(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDisp_GetVertexAttribdvNV(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_GetVertexAttribdvNV(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_Normal3fv(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_Normal3fv(GLbyte * pc);
 extern HIDDEN void __glXDisp_VertexAttrib4ivARB(GLbyte * pc);
@@ -305,6 +331,8 @@ extern HIDDEN void __glXDisp_MultiTexCoo
 extern HIDDEN void __glXDispSwap_MultiTexCoord3fvARB(GLbyte * pc);
 extern HIDDEN int __glXDisp_GetProgramParameterfvNV(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDispSwap_GetProgramParameterfvNV(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN void __glXDisp_BindTexture(GLbyte * pc);
+extern HIDDEN void __glXDispSwap_BindTexture(GLbyte * pc);
 extern HIDDEN void __glXDisp_TexSubImage2D(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_TexSubImage2D(GLbyte * pc);
 extern HIDDEN void __glXDisp_DeleteRenderbuffersEXT(GLbyte * pc);
@@ -313,6 +341,8 @@ extern HIDDEN void __glXDisp_TexGenfv(GL
 extern HIDDEN void __glXDispSwap_TexGenfv(GLbyte * pc);
 extern HIDDEN void __glXDisp_VertexAttrib4bvARB(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_VertexAttrib4bvARB(GLbyte * pc);
+extern HIDDEN int __glXDisp_CreateContextWithConfigSGIX(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_CreateContextWithConfigSGIX(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_FramebufferTexture3DEXT(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_FramebufferTexture3DEXT(GLbyte * pc);
 extern HIDDEN void __glXDisp_BlendEquation(GLbyte * pc);
@@ -337,6 +367,8 @@ extern HIDDEN void __glXDisp_EndQueryARB
 extern HIDDEN void __glXDispSwap_EndQueryARB(GLbyte * pc);
 extern HIDDEN void __glXDisp_DepthMask(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_DepthMask(GLbyte * pc);
+extern HIDDEN void __glXDisp_Rotated(GLbyte * pc);
+extern HIDDEN void __glXDispSwap_Rotated(GLbyte * pc);
 extern HIDDEN int __glXDisp_GetMaterialiv(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDispSwap_GetMaterialiv(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_StencilOp(GLbyte * pc);
@@ -345,6 +377,8 @@ extern HIDDEN void __glXDisp_MultiTexCoo
 extern HIDDEN void __glXDispSwap_MultiTexCoord3svARB(GLbyte * pc);
 extern HIDDEN void __glXDisp_TexEnvfv(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_TexEnvfv(GLbyte * pc);
+extern HIDDEN int __glXDisp_QueryServerString(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_QueryServerString(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_LoadMatrixf(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_LoadMatrixf(GLbyte * pc);
 extern HIDDEN void __glXDisp_Color4bv(GLbyte * pc);
@@ -361,6 +395,8 @@ extern HIDDEN void __glXDisp_LogicOp(GLb
 extern HIDDEN void __glXDispSwap_LogicOp(GLbyte * pc);
 extern HIDDEN void __glXDisp_TexCoord4fv(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_TexCoord4fv(GLbyte * pc);
+extern HIDDEN int __glXDisp_WaitX(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_WaitX(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_VertexAttrib2dvNV(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_VertexAttrib2dvNV(GLbyte * pc);
 extern HIDDEN void __glXDisp_FramebufferRenderbufferEXT(GLbyte * pc);
@@ -371,6 +407,8 @@ extern HIDDEN int __glXDisp_GenTextures(
 extern HIDDEN int __glXDispSwap_GenTextures(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_FramebufferTexture1DEXT(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_FramebufferTexture1DEXT(GLbyte * pc);
+extern HIDDEN int __glXDisp_GetDrawableAttributes(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_GetDrawableAttributes(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_ProgramParameter4fvNV(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_ProgramParameter4fvNV(GLbyte * pc);
 extern HIDDEN void __glXDisp_RasterPos2sv(GLbyte * pc);
@@ -383,6 +421,8 @@ extern HIDDEN void __glXDisp_TexCoord2fv
 extern HIDDEN void __glXDispSwap_TexCoord2fv(GLbyte * pc);
 extern HIDDEN void __glXDisp_TexCoord1sv(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_TexCoord1sv(GLbyte * pc);
+extern HIDDEN void __glXDisp_TexGeniv(GLbyte * pc);
+extern HIDDEN void __glXDispSwap_TexGeniv(GLbyte * pc);
 extern HIDDEN void __glXDisp_DepthFunc(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_DepthFunc(GLbyte * pc);
 extern HIDDEN void __glXDisp_PixelMapusv(GLbyte * pc);
@@ -391,6 +431,8 @@ extern HIDDEN void __glXDisp_PointParame
 extern HIDDEN void __glXDispSwap_PointParameterivNV(GLbyte * pc);
 extern HIDDEN void __glXDisp_BlendFunc(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_BlendFunc(GLbyte * pc);
+extern HIDDEN int __glXDisp_WaitGL(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_WaitGL(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_MultiTexCoord3dvARB(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_MultiTexCoord3dvARB(GLbyte * pc);
 extern HIDDEN void __glXDisp_ProgramNamedParameter4dvNV(GLbyte * pc);
@@ -407,22 +449,26 @@ extern HIDDEN void __glXDisp_PushAttrib(
 extern HIDDEN void __glXDispSwap_PushAttrib(GLbyte * pc);
 extern HIDDEN void __glXDisp_VertexAttrib4usvARB(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_VertexAttrib4usvARB(GLbyte * pc);
+extern HIDDEN int __glXDisp_DestroyPbuffer(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_DestroyPbuffer(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_TexParameteriv(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_TexParameteriv(GLbyte * pc);
 extern HIDDEN void __glXDisp_WindowPos3fvMESA(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_WindowPos3fvMESA(GLbyte * pc);
 extern HIDDEN void __glXDisp_VertexAttrib1svNV(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_VertexAttrib1svNV(GLbyte * pc);
+extern HIDDEN int __glXDisp_QueryExtensionsString(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_QueryExtensionsString(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_RasterPos3fv(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_RasterPos3fv(GLbyte * pc);
 extern HIDDEN void __glXDisp_CopyTexSubImage3D(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_CopyTexSubImage3D(GLbyte * pc);
 extern HIDDEN int __glXDisp_GetColorTable(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDispSwap_GetColorTable(struct __GLXclientStateRec *, GLbyte *);
-extern HIDDEN int __glXDisp_SelectBuffer(struct __GLXclientStateRec *, GLbyte *);
-extern HIDDEN int __glXDispSwap_SelectBuffer(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_Indexiv(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_Indexiv(GLbyte * pc);
+extern HIDDEN int __glXDisp_CreateContext(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_CreateContext(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_CopyColorTable(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_CopyColorTable(GLbyte * pc);
 extern HIDDEN int __glXDisp_GetHistogramParameterfv(struct __GLXclientStateRec *, GLbyte *);
@@ -431,8 +477,12 @@ extern HIDDEN void __glXDisp_Frustum(GLb
 extern HIDDEN void __glXDispSwap_Frustum(GLbyte * pc);
 extern HIDDEN int __glXDisp_GetString(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDispSwap_GetString(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDisp_CreateGLXPixmap(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_CreateGLXPixmap(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_TexEnvf(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_TexEnvf(GLbyte * pc);
+extern HIDDEN int __glXDisp_GetProgramStringARB(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_GetProgramStringARB(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_MultiTexCoord3ivARB(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_MultiTexCoord3ivARB(GLbyte * pc);
 extern HIDDEN void __glXDisp_VertexAttrib1dvARB(GLbyte * pc);
@@ -443,16 +493,18 @@ extern HIDDEN int __glXDisp_GetTexLevelP
 extern HIDDEN int __glXDispSwap_GetTexLevelParameteriv(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_ClearAccum(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_ClearAccum(GLbyte * pc);
+extern HIDDEN int __glXDisp_QueryVersion(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_QueryVersion(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDisp_GetVertexAttribfvARB(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDispSwap_GetVertexAttribfvARB(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_SecondaryColor3ivEXT(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_SecondaryColor3ivEXT(GLbyte * pc);
 extern HIDDEN void __glXDisp_TexCoord4iv(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_TexCoord4iv(GLbyte * pc);
-extern HIDDEN void __glXDisp_PolygonOffset(GLbyte * pc);
-extern HIDDEN void __glXDispSwap_PolygonOffset(GLbyte * pc);
 extern HIDDEN void __glXDisp_SampleMaskSGIS(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_SampleMaskSGIS(GLbyte * pc);
+extern HIDDEN void __glXDisp_ColorTableParameteriv(GLbyte * pc);
+extern HIDDEN void __glXDispSwap_ColorTableParameteriv(GLbyte * pc);
 extern HIDDEN void __glXDisp_VertexAttrib4ubvARB(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_VertexAttrib4ubvARB(GLbyte * pc);
 extern HIDDEN void __glXDisp_CopyTexImage2D(GLbyte * pc);
@@ -467,6 +519,8 @@ extern HIDDEN void __glXDisp_Color4fv(GL
 extern HIDDEN void __glXDispSwap_Color4fv(GLbyte * pc);
 extern HIDDEN void __glXDisp_MultiTexCoord4ivARB(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_MultiTexCoord4ivARB(GLbyte * pc);
+extern HIDDEN int __glXDisp_CreatePixmap(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_CreatePixmap(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_Lightiv(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_Lightiv(GLbyte * pc);
 extern HIDDEN int __glXDisp_GetQueryObjectuivARB(struct __GLXclientStateRec *, GLbyte *);
@@ -479,8 +533,6 @@ extern HIDDEN void __glXDisp_VertexAttri
 extern HIDDEN void __glXDispSwap_VertexAttrib2dvARB(GLbyte * pc);
 extern HIDDEN void __glXDisp_VertexAttribs2svNV(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_VertexAttribs2svNV(GLbyte * pc);
-extern HIDDEN void __glXDisp_VertexAttrib2fvARB(GLbyte * pc);
-extern HIDDEN void __glXDispSwap_VertexAttrib2fvARB(GLbyte * pc);
 extern HIDDEN void __glXDisp_Rectdv(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_Rectdv(GLbyte * pc);
 extern HIDDEN void __glXDisp_VertexAttrib4NivARB(GLbyte * pc);
@@ -495,8 +547,8 @@ extern HIDDEN void __glXDisp_CompressedT
 extern HIDDEN void __glXDispSwap_CompressedTexSubImage1DARB(GLbyte * pc);
 extern HIDDEN int __glXDisp_GetVertexAttribivNV(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDispSwap_GetVertexAttribivNV(struct __GLXclientStateRec *, GLbyte *);
-extern HIDDEN int __glXDisp_GetProgramStringARB(struct __GLXclientStateRec *, GLbyte *);
-extern HIDDEN int __glXDispSwap_GetProgramStringARB(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDisp_IsQueryARB(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_IsQueryARB(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_TexGeni(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_TexGeni(GLbyte * pc);
 extern HIDDEN void __glXDisp_TexGenf(GLbyte * pc);
@@ -513,6 +565,8 @@ extern HIDDEN void __glXDisp_VertexAttri
 extern HIDDEN void __glXDispSwap_VertexAttribs1fvNV(GLbyte * pc);
 extern HIDDEN void __glXDisp_VertexAttrib4NuivARB(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_VertexAttrib4NuivARB(GLbyte * pc);
+extern HIDDEN int __glXDisp_DestroyWindow(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_DestroyWindow(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_Color4sv(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_Color4sv(GLbyte * pc);
 extern HIDDEN int __glXDisp_IsProgramNV(struct __GLXclientStateRec *, GLbyte *);
@@ -531,14 +585,18 @@ extern HIDDEN int __glXDisp_DeleteQuerie
 extern HIDDEN int __glXDispSwap_DeleteQueriesARB(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDisp_GetMapdv(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDispSwap_GetMapdv(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDisp_DestroyGLXPixmap(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_DestroyGLXPixmap(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_SamplePatternSGIS(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_SamplePatternSGIS(GLbyte * pc);
 extern HIDDEN int __glXDisp_PixelStoref(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDispSwap_PixelStoref(struct __GLXclientStateRec *, GLbyte *);
-extern HIDDEN int __glXDisp_IsQueryARB(struct __GLXclientStateRec *, GLbyte *);
-extern HIDDEN int __glXDispSwap_IsQueryARB(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN void __glXDisp_PrioritizeTextures(GLbyte * pc);
+extern HIDDEN void __glXDispSwap_PrioritizeTextures(GLbyte * pc);
 extern HIDDEN int __glXDisp_PixelStorei(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDispSwap_PixelStorei(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN void __glXDisp_Color4iv(GLbyte * pc);
+extern HIDDEN void __glXDispSwap_Color4iv(GLbyte * pc);
 extern HIDDEN void __glXDisp_EvalCoord2dv(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_EvalCoord2dv(GLbyte * pc);
 extern HIDDEN void __glXDisp_VertexAttrib3svARB(GLbyte * pc);
@@ -563,10 +621,12 @@ extern HIDDEN void __glXDisp_TexImage1D(
 extern HIDDEN void __glXDispSwap_TexImage1D(GLbyte * pc);
 extern HIDDEN void __glXDisp_FrontFace(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_FrontFace(GLbyte * pc);
-extern HIDDEN void __glXDisp_SecondaryColor3ubvEXT(GLbyte * pc);
-extern HIDDEN void __glXDispSwap_SecondaryColor3ubvEXT(GLbyte * pc);
+extern HIDDEN int __glXDisp_RenderLarge(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_RenderLarge(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_VertexAttrib4dvARB(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_VertexAttrib4dvARB(GLbyte * pc);
+extern HIDDEN void __glXDisp_PolygonOffset(GLbyte * pc);
+extern HIDDEN void __glXDispSwap_PolygonOffset(GLbyte * pc);
 extern HIDDEN void __glXDisp_ExecuteProgramNV(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_ExecuteProgramNV(GLbyte * pc);
 extern HIDDEN void __glXDisp_Normal3dv(GLbyte * pc);
@@ -585,6 +645,8 @@ extern HIDDEN int __glXDisp_GetFramebuff
 extern HIDDEN int __glXDispSwap_GetFramebufferAttachmentParameterivEXT(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_MultiTexCoord4dvARB(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_MultiTexCoord4dvARB(GLbyte * pc);
+extern HIDDEN int __glXDisp_CreatePbuffer(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_CreatePbuffer(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDisp_GetDoublev(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDispSwap_GetDoublev(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_MultMatrixd(GLbyte * pc);
@@ -603,6 +665,8 @@ extern HIDDEN void __glXDisp_VertexAttri
 extern HIDDEN void __glXDispSwap_VertexAttrib3fvARB(GLbyte * pc);
 extern HIDDEN void __glXDisp_ClearColor(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_ClearColor(GLbyte * pc);
+extern HIDDEN int __glXDisp_IsDirect(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_IsDirect(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_DeleteFramebuffersEXT(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_DeleteFramebuffersEXT(GLbyte * pc);
 extern HIDDEN void __glXDisp_TexEnviv(GLbyte * pc);
@@ -633,6 +697,8 @@ extern HIDDEN void __glXDisp_VertexAttri
 extern HIDDEN void __glXDispSwap_VertexAttrib3svNV(GLbyte * pc);
 extern HIDDEN int __glXDisp_GetTexEnviv(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDispSwap_GetTexEnviv(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDisp_VendorPrivateWithReply(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_VendorPrivateWithReply(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_SeparableFilter2D(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_SeparableFilter2D(GLbyte * pc);
 extern HIDDEN void __glXDisp_Map1d(GLbyte * pc);
@@ -647,6 +713,8 @@ extern HIDDEN void __glXDisp_ProgramPara
 extern HIDDEN void __glXDispSwap_ProgramParameters4fvNV(GLbyte * pc);
 extern HIDDEN int __glXDisp_GetProgramivNV(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDispSwap_GetProgramivNV(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDisp_ChangeDrawableAttributes(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_ChangeDrawableAttributes(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDisp_GetMinmaxParameteriv(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDispSwap_GetMinmaxParameteriv(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_PixelTransferf(GLbyte * pc);
@@ -661,12 +729,10 @@ extern HIDDEN void __glXDisp_TexCoord1dv
 extern HIDDEN void __glXDispSwap_TexCoord1dv(GLbyte * pc);
 extern HIDDEN void __glXDisp_PixelTransferi(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_PixelTransferi(GLbyte * pc);
-extern HIDDEN int __glXDisp_GetVertexAttribdvNV(struct __GLXclientStateRec *, GLbyte *);
-extern HIDDEN int __glXDispSwap_GetVertexAttribdvNV(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN void __glXDisp_SecondaryColor3ubvEXT(GLbyte * pc);
+extern HIDDEN void __glXDispSwap_SecondaryColor3ubvEXT(GLbyte * pc);
 extern HIDDEN void __glXDisp_VertexAttrib3fvNV(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_VertexAttrib3fvNV(GLbyte * pc);
-extern HIDDEN void __glXDisp_Rotatef(GLbyte * pc);
-extern HIDDEN void __glXDispSwap_Rotatef(GLbyte * pc);
 extern HIDDEN void __glXDisp_Clear(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_Clear(GLbyte * pc);
 extern HIDDEN void __glXDisp_ReadBuffer(GLbyte * pc);
@@ -681,8 +747,10 @@ extern HIDDEN void __glXDisp_Convolution
 extern HIDDEN void __glXDispSwap_ConvolutionParameterf(GLbyte * pc);
 extern HIDDEN int __glXDisp_GetColorTableParameteriv(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDispSwap_GetColorTableParameteriv(struct __GLXclientStateRec *, GLbyte *);
-extern HIDDEN void __glXDisp_ShadeModel(GLbyte * pc);
-extern HIDDEN void __glXDispSwap_ShadeModel(GLbyte * pc);
+extern HIDDEN int __glXDisp_ReleaseTexImageEXT(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_ReleaseTexImageEXT(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN void __glXDisp_CallList(GLbyte * pc);
+extern HIDDEN void __glXDispSwap_CallList(GLbyte * pc);
 extern HIDDEN void __glXDisp_VertexAttribs2fvNV(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_VertexAttribs2fvNV(GLbyte * pc);
 extern HIDDEN void __glXDisp_Rectiv(GLbyte * pc);
@@ -697,6 +765,8 @@ extern HIDDEN void __glXDisp_BindRenderb
 extern HIDDEN void __glXDispSwap_BindRenderbufferEXT(GLbyte * pc);
 extern HIDDEN void __glXDisp_Vertex3sv(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_Vertex3sv(GLbyte * pc);
+extern HIDDEN int __glXDisp_BindTexImageEXT(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_BindTexImageEXT(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_ProgramLocalParameter4fvARB(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_ProgramLocalParameter4fvARB(GLbyte * pc);
 extern HIDDEN int __glXDisp_DeleteProgramsNV(struct __GLXclientStateRec *, GLbyte *);
@@ -711,6 +781,8 @@ extern HIDDEN int __glXDisp_GetProgramSt
 extern HIDDEN int __glXDispSwap_GetProgramStringNV(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_LineWidth(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_LineWidth(GLbyte * pc);
+extern HIDDEN void __glXDisp_VertexAttrib2fvARB(GLbyte * pc);
+extern HIDDEN void __glXDispSwap_VertexAttrib2fvARB(GLbyte * pc);
 extern HIDDEN void __glXDisp_TexGendv(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_TexGendv(GLbyte * pc);
 extern HIDDEN void __glXDisp_ResetMinmax(GLbyte * pc);
@@ -723,8 +795,10 @@ extern HIDDEN void __glXDisp_VertexAttri
 extern HIDDEN void __glXDispSwap_VertexAttribs4dvNV(GLbyte * pc);
 extern HIDDEN int __glXDisp_GetMaterialfv(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDispSwap_GetMaterialfv(struct __GLXclientStateRec *, GLbyte *);
-extern HIDDEN void __glXDisp_CallList(GLbyte * pc);
-extern HIDDEN void __glXDispSwap_CallList(GLbyte * pc);
+extern HIDDEN int __glXDisp_UseXFont(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_UseXFont(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN void __glXDisp_ShadeModel(GLbyte * pc);
+extern HIDDEN void __glXDispSwap_ShadeModel(GLbyte * pc);
 extern HIDDEN void __glXDisp_Materialfv(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_Materialfv(GLbyte * pc);
 extern HIDDEN void __glXDisp_TexCoord3fv(GLbyte * pc);
@@ -735,8 +809,8 @@ extern HIDDEN void __glXDisp_MultiTexCoo
 extern HIDDEN void __glXDispSwap_MultiTexCoord1ivARB(GLbyte * pc);
 extern HIDDEN void __glXDisp_MultiTexCoord2ivARB(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_MultiTexCoord2ivARB(GLbyte * pc);
-extern HIDDEN void __glXDisp_CopyTexSubImage2D(GLbyte * pc);
-extern HIDDEN void __glXDispSwap_CopyTexSubImage2D(GLbyte * pc);
+extern HIDDEN void __glXDisp_DrawArrays(GLbyte * pc);
+extern HIDDEN void __glXDispSwap_DrawArrays(GLbyte * pc);
 extern HIDDEN void __glXDisp_Color3iv(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_Color3iv(GLbyte * pc);
 extern HIDDEN int __glXDisp_GetProgramLocalParameterdvARB(struct __GLXclientStateRec *, GLbyte *);
@@ -759,16 +833,18 @@ extern HIDDEN void __glXDisp_PopMatrix(G
 extern HIDDEN void __glXDispSwap_PopMatrix(GLbyte * pc);
 extern HIDDEN int __glXDisp_AreTexturesResidentEXT(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDispSwap_AreTexturesResidentEXT(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDisp_MakeCurrentReadSGI(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_MakeCurrentReadSGI(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDisp_GetTexGeniv(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDispSwap_GetTexGeniv(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDisp_MakeCurrent(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_MakeCurrent(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_Map2d(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_Map2d(GLbyte * pc);
 extern HIDDEN void __glXDisp_Map2f(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_Map2f(GLbyte * pc);
 extern HIDDEN void __glXDisp_ProgramStringARB(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_ProgramStringARB(GLbyte * pc);
-extern HIDDEN void __glXDisp_RasterPos4dv(GLbyte * pc);
-extern HIDDEN void __glXDispSwap_RasterPos4dv(GLbyte * pc);
 extern HIDDEN int __glXDisp_GetCompressedTexImageARB(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDispSwap_GetCompressedTexImageARB(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDisp_GetTexGenfv(struct __GLXclientStateRec *, GLbyte *);
@@ -799,6 +875,8 @@ extern HIDDEN void __glXDisp_Translatef(
 extern HIDDEN void __glXDispSwap_Translatef(GLbyte * pc);
 extern HIDDEN void __glXDisp_StencilMask(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_StencilMask(GLbyte * pc);
+extern HIDDEN int __glXDisp_CreateWindow(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_CreateWindow(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDisp_GetLightiv(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDispSwap_GetLightiv(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDisp_IsList(struct __GLXclientStateRec *, GLbyte *);
@@ -813,8 +891,8 @@ extern HIDDEN void __glXDisp_CopyTexSubI
 extern HIDDEN void __glXDispSwap_CopyTexSubImage1D(GLbyte * pc);
 extern HIDDEN void __glXDisp_CullFace(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_CullFace(GLbyte * pc);
-extern HIDDEN void __glXDisp_BindTexture(GLbyte * pc);
-extern HIDDEN void __glXDispSwap_BindTexture(GLbyte * pc);
+extern HIDDEN int __glXDisp_QueryContextInfoEXT(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_QueryContextInfoEXT(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_VertexAttribs3svNV(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_VertexAttribs3svNV(GLbyte * pc);
 extern HIDDEN void __glXDisp_StencilFunc(GLbyte * pc);
@@ -837,6 +915,8 @@ extern HIDDEN int __glXDisp_GetPixelMapu
 extern HIDDEN int __glXDispSwap_GetPixelMapuiv(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_Indexfv(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_Indexfv(GLbyte * pc);
+extern HIDDEN int __glXDisp_QueryContext(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_QueryContext(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_SecondaryColor3svEXT(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_SecondaryColor3svEXT(GLbyte * pc);
 extern HIDDEN void __glXDisp_IndexMask(GLbyte * pc);
@@ -885,8 +965,8 @@ extern HIDDEN void __glXDisp_TexCoord4dv
 extern HIDDEN void __glXDispSwap_TexCoord4dv(GLbyte * pc);
 extern HIDDEN void __glXDisp_Begin(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_Begin(GLbyte * pc);
-extern HIDDEN void __glXDisp_LightModeli(GLbyte * pc);
-extern HIDDEN void __glXDispSwap_LightModeli(GLbyte * pc);
+extern HIDDEN int __glXDisp_ClientInfo(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_ClientInfo(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_Rectfv(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_Rectfv(GLbyte * pc);
 extern HIDDEN void __glXDisp_LightModelf(GLbyte * pc);
@@ -901,16 +981,14 @@ extern HIDDEN void __glXDisp_MultiTexCoo
 extern HIDDEN void __glXDispSwap_MultiTexCoord2fvARB(GLbyte * pc);
 extern HIDDEN int __glXDisp_GetRenderbufferParameterivEXT(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN int __glXDispSwap_GetRenderbufferParameterivEXT(struct __GLXclientStateRec *, GLbyte *);
-extern HIDDEN void __glXDisp_DrawArrays(GLbyte * pc);
-extern HIDDEN void __glXDispSwap_DrawArrays(GLbyte * pc);
+extern HIDDEN int __glXDisp_SelectBuffer(struct __GLXclientStateRec *, GLbyte *);
+extern HIDDEN int __glXDispSwap_SelectBuffer(struct __GLXclientStateRec *, GLbyte *);
 extern HIDDEN void __glXDisp_ColorMask(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_ColorMask(GLbyte * pc);
 extern HIDDEN void __glXDisp_RasterPos4iv(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_RasterPos4iv(GLbyte * pc);
 extern HIDDEN void __glXDisp_Enable(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_Enable(GLbyte * pc);
-extern HIDDEN void __glXDisp_LineStipple(GLbyte * pc);
-extern HIDDEN void __glXDispSwap_LineStipple(GLbyte * pc);
 extern HIDDEN void __glXDisp_VertexAttribs4svNV(GLbyte * pc);
 extern HIDDEN void __glXDispSwap_VertexAttribs4svNV(GLbyte * pc);
 extern HIDDEN int __glXDisp_GetMinmaxParameterfv(struct __GLXclientStateRec *, GLbyte *);
diff --git a/GL/glx/indirect_table.c b/GL/glx/indirect_table.c
new file mode 100644
index 0000000..da5fb6b
--- /dev/null
+++ b/GL/glx/indirect_table.c
@@ -0,0 +1,509 @@
+/* DO NOT EDIT - This file generated automatically by glX_server_table.py (from Mesa) script */
+
+/*
+ * (C) Copyright IBM Corporation 2005, 2006
+ * All Rights Reserved.
+ * 
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sub license,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ * 
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ * 
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.  IN NO EVENT SHALL
+ * IBM,
+ * AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
+ * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
+#include <inttypes.h>
+#include "glxserver.h"
+#include "glxext.h"
+#include "indirect_dispatch.h"
+#include "indirect_reqsize.h"
+#include "g_disptab.h"
+#include "indirect_table.h"
+
+/*****************************************************************/
+/* tree depth = 3 */
+static const int_fast16_t Single_dispatch_tree[24] = {
+    /* [0] -> opcode range [0, 256], node depth 1 */
+    2,
+    5,
+    13,
+    16,
+    EMPTY_LEAF,
+
+    /* [5] -> opcode range [0, 64], node depth 2 */
+    2,
+    LEAF(0),
+    LEAF(16),
+    10,
+    EMPTY_LEAF,
+
+    /* [10] -> opcode range [32, 48], node depth 3 */
+    1,
+    LEAF(32),
+    EMPTY_LEAF,
+
+    /* [13] -> opcode range [64, 128], node depth 2 */
+    1,
+    EMPTY_LEAF,
+    LEAF(40),
+
+    /* [16] -> opcode range [128, 192], node depth 2 */
+    2,
+    LEAF(72),
+    LEAF(88),
+    21,
+    EMPTY_LEAF,
+
+    /* [21] -> opcode range [160, 176], node depth 3 */
+    1,
+    LEAF(104),
+    EMPTY_LEAF,
+
+};
+
+static const __GLXdispatchSingleProcPtr Single_function_table[112][2] = {
+    /* [  0] =     0 */ {NULL, NULL},
+    /* [  1] =     1 */ {__glXDisp_Render, __glXDispSwap_Render},
+    /* [  2] =     2 */ {__glXDisp_RenderLarge, __glXDispSwap_RenderLarge},
+    /* [  3] =     3 */ {__glXDisp_CreateContext, __glXDispSwap_CreateContext},
+    /* [  4] =     4 */ {__glXDisp_DestroyContext, __glXDispSwap_DestroyContext},
+    /* [  5] =     5 */ {__glXDisp_MakeCurrent, __glXDispSwap_MakeCurrent},
+    /* [  6] =     6 */ {__glXDisp_IsDirect, __glXDispSwap_IsDirect},
+    /* [  7] =     7 */ {__glXDisp_QueryVersion, __glXDispSwap_QueryVersion},
+    /* [  8] =     8 */ {__glXDisp_WaitGL, __glXDispSwap_WaitGL},
+    /* [  9] =     9 */ {__glXDisp_WaitX, __glXDispSwap_WaitX},
+    /* [ 10] =    10 */ {__glXDisp_CopyContext, __glXDispSwap_CopyContext},
+    /* [ 11] =    11 */ {__glXDisp_SwapBuffers, __glXDispSwap_SwapBuffers},
+    /* [ 12] =    12 */ {__glXDisp_UseXFont, __glXDispSwap_UseXFont},
+    /* [ 13] =    13 */ {__glXDisp_CreateGLXPixmap, __glXDispSwap_CreateGLXPixmap},
+    /* [ 14] =    14 */ {__glXDisp_GetVisualConfigs, __glXDispSwap_GetVisualConfigs},
+    /* [ 15] =    15 */ {__glXDisp_DestroyGLXPixmap, __glXDispSwap_DestroyGLXPixmap},
+    /* [ 16] =    16 */ {__glXDisp_VendorPrivate, __glXDispSwap_VendorPrivate},
+    /* [ 17] =    17 */ {__glXDisp_VendorPrivateWithReply, __glXDispSwap_VendorPrivateWithReply},
+    /* [ 18] =    18 */ {__glXDisp_QueryExtensionsString, __glXDispSwap_QueryExtensionsString},
+    /* [ 19] =    19 */ {__glXDisp_QueryServerString, __glXDispSwap_QueryServerString},
+    /* [ 20] =    20 */ {__glXDisp_ClientInfo, __glXDispSwap_ClientInfo},
+    /* [ 21] =    21 */ {__glXDisp_GetFBConfigs, __glXDispSwap_GetFBConfigs},
+    /* [ 22] =    22 */ {__glXDisp_CreatePixmap, __glXDispSwap_CreatePixmap},
+    /* [ 23] =    23 */ {__glXDisp_DestroyPixmap, __glXDispSwap_DestroyPixmap},
+    /* [ 24] =    24 */ {__glXDisp_CreateNewContext, __glXDispSwap_CreateNewContext},
+    /* [ 25] =    25 */ {__glXDisp_QueryContext, __glXDispSwap_QueryContext},
+    /* [ 26] =    26 */ {__glXDisp_MakeContextCurrent, __glXDispSwap_MakeContextCurrent},
+    /* [ 27] =    27 */ {__glXDisp_CreatePbuffer, __glXDispSwap_CreatePbuffer},
+    /* [ 28] =    28 */ {__glXDisp_DestroyPbuffer, __glXDispSwap_DestroyPbuffer},
+    /* [ 29] =    29 */ {__glXDisp_GetDrawableAttributes, __glXDispSwap_GetDrawableAttributes},
+    /* [ 30] =    30 */ {__glXDisp_ChangeDrawableAttributes, __glXDispSwap_ChangeDrawableAttributes},
+    /* [ 31] =    31 */ {__glXDisp_CreateWindow, __glXDispSwap_CreateWindow},
+    /* [ 32] =    32 */ {__glXDisp_DestroyWindow, __glXDispSwap_DestroyWindow},
+    /* [ 33] =    33 */ {NULL, NULL},
+    /* [ 34] =    34 */ {NULL, NULL},
+    /* [ 35] =    35 */ {NULL, NULL},
+    /* [ 36] =    36 */ {NULL, NULL},
+    /* [ 37] =    37 */ {NULL, NULL},
+    /* [ 38] =    38 */ {NULL, NULL},
+    /* [ 39] =    39 */ {NULL, NULL},
+    /* [ 40] =    96 */ {NULL, NULL},
+    /* [ 41] =    97 */ {NULL, NULL},
+    /* [ 42] =    98 */ {NULL, NULL},
+    /* [ 43] =    99 */ {NULL, NULL},
+    /* [ 44] =   100 */ {NULL, NULL},
+    /* [ 45] =   101 */ {__glXDisp_NewList, __glXDispSwap_NewList},
+    /* [ 46] =   102 */ {__glXDisp_EndList, __glXDispSwap_EndList},
+    /* [ 47] =   103 */ {__glXDisp_DeleteLists, __glXDispSwap_DeleteLists},
+    /* [ 48] =   104 */ {__glXDisp_GenLists, __glXDispSwap_GenLists},
+    /* [ 49] =   105 */ {__glXDisp_FeedbackBuffer, __glXDispSwap_FeedbackBuffer},
+    /* [ 50] =   106 */ {__glXDisp_SelectBuffer, __glXDispSwap_SelectBuffer},
+    /* [ 51] =   107 */ {__glXDisp_RenderMode, __glXDispSwap_RenderMode},
+    /* [ 52] =   108 */ {__glXDisp_Finish, __glXDispSwap_Finish},
+    /* [ 53] =   109 */ {__glXDisp_PixelStoref, __glXDispSwap_PixelStoref},
+    /* [ 54] =   110 */ {__glXDisp_PixelStorei, __glXDispSwap_PixelStorei},
+    /* [ 55] =   111 */ {__glXDisp_ReadPixels, __glXDispSwap_ReadPixels},
+    /* [ 56] =   112 */ {__glXDisp_GetBooleanv, __glXDispSwap_GetBooleanv},
+    /* [ 57] =   113 */ {__glXDisp_GetClipPlane, __glXDispSwap_GetClipPlane},
+    /* [ 58] =   114 */ {__glXDisp_GetDoublev, __glXDispSwap_GetDoublev},
+    /* [ 59] =   115 */ {__glXDisp_GetError, __glXDispSwap_GetError},
+    /* [ 60] =   116 */ {__glXDisp_GetFloatv, __glXDispSwap_GetFloatv},
+    /* [ 61] =   117 */ {__glXDisp_GetIntegerv, __glXDispSwap_GetIntegerv},
+    /* [ 62] =   118 */ {__glXDisp_GetLightfv, __glXDispSwap_GetLightfv},
+    /* [ 63] =   119 */ {__glXDisp_GetLightiv, __glXDispSwap_GetLightiv},
+    /* [ 64] =   120 */ {__glXDisp_GetMapdv, __glXDispSwap_GetMapdv},
+    /* [ 65] =   121 */ {__glXDisp_GetMapfv, __glXDispSwap_GetMapfv},
+    /* [ 66] =   122 */ {__glXDisp_GetMapiv, __glXDispSwap_GetMapiv},
+    /* [ 67] =   123 */ {__glXDisp_GetMaterialfv, __glXDispSwap_GetMaterialfv},
+    /* [ 68] =   124 */ {__glXDisp_GetMaterialiv, __glXDispSwap_GetMaterialiv},
+    /* [ 69] =   125 */ {__glXDisp_GetPixelMapfv, __glXDispSwap_GetPixelMapfv},
+    /* [ 70] =   126 */ {__glXDisp_GetPixelMapuiv, __glXDispSwap_GetPixelMapuiv},
+    /* [ 71] =   127 */ {__glXDisp_GetPixelMapusv, __glXDispSwap_GetPixelMapusv},
+    /* [ 72] =   128 */ {__glXDisp_GetPolygonStipple, __glXDispSwap_GetPolygonStipple},
+    /* [ 73] =   129 */ {__glXDisp_GetString, __glXDispSwap_GetString},
+    /* [ 74] =   130 */ {__glXDisp_GetTexEnvfv, __glXDispSwap_GetTexEnvfv},
+    /* [ 75] =   131 */ {__glXDisp_GetTexEnviv, __glXDispSwap_GetTexEnviv},
+    /* [ 76] =   132 */ {__glXDisp_GetTexGendv, __glXDispSwap_GetTexGendv},
+    /* [ 77] =   133 */ {__glXDisp_GetTexGenfv, __glXDispSwap_GetTexGenfv},
+    /* [ 78] =   134 */ {__glXDisp_GetTexGeniv, __glXDispSwap_GetTexGeniv},
+    /* [ 79] =   135 */ {__glXDisp_GetTexImage, __glXDispSwap_GetTexImage},
+    /* [ 80] =   136 */ {__glXDisp_GetTexParameterfv, __glXDispSwap_GetTexParameterfv},
+    /* [ 81] =   137 */ {__glXDisp_GetTexParameteriv, __glXDispSwap_GetTexParameteriv},
+    /* [ 82] =   138 */ {__glXDisp_GetTexLevelParameterfv, __glXDispSwap_GetTexLevelParameterfv},
+    /* [ 83] =   139 */ {__glXDisp_GetTexLevelParameteriv, __glXDispSwap_GetTexLevelParameteriv},
+    /* [ 84] =   140 */ {__glXDisp_IsEnabled, __glXDispSwap_IsEnabled},
+    /* [ 85] =   141 */ {__glXDisp_IsList, __glXDispSwap_IsList},
+    /* [ 86] =   142 */ {__glXDisp_Flush, __glXDispSwap_Flush},
+    /* [ 87] =   143 */ {__glXDisp_AreTexturesResident, __glXDispSwap_AreTexturesResident},
+    /* [ 88] =   144 */ {NULL, NULL},
+    /* [ 89] =   145 */ {__glXDisp_GenTextures, __glXDispSwap_GenTextures},
+    /* [ 90] =   146 */ {__glXDisp_IsTexture, __glXDispSwap_IsTexture},
+    /* [ 91] =   147 */ {__glXDisp_GetColorTable, __glXDispSwap_GetColorTable},
+    /* [ 92] =   148 */ {__glXDisp_GetColorTableParameterfv, __glXDispSwap_GetColorTableParameterfv},
+    /* [ 93] =   149 */ {__glXDisp_GetColorTableParameteriv, __glXDispSwap_GetColorTableParameteriv},
+    /* [ 94] =   150 */ {__glXDisp_GetConvolutionFilter, __glXDispSwap_GetConvolutionFilter},
+    /* [ 95] =   151 */ {__glXDisp_GetConvolutionParameterfv, __glXDispSwap_GetConvolutionParameterfv},
+    /* [ 96] =   152 */ {__glXDisp_GetConvolutionParameteriv, __glXDispSwap_GetConvolutionParameteriv},
+    /* [ 97] =   153 */ {__glXDisp_GetSeparableFilter, __glXDispSwap_GetSeparableFilter},
+    /* [ 98] =   154 */ {__glXDisp_GetHistogram, __glXDispSwap_GetHistogram},
+    /* [ 99] =   155 */ {__glXDisp_GetHistogramParameterfv, __glXDispSwap_GetHistogramParameterfv},
+    /* [ 100] =   156 */ {__glXDisp_GetHistogramParameteriv, __glXDispSwap_GetHistogramParameteriv},
+    /* [ 101] =   157 */ {__glXDisp_GetMinmax, __glXDispSwap_GetMinmax},
+    /* [ 102] =   158 */ {__glXDisp_GetMinmaxParameterfv, __glXDispSwap_GetMinmaxParameterfv},
+    /* [ 103] =   159 */ {__glXDisp_GetMinmaxParameteriv, __glXDispSwap_GetMinmaxParameteriv},
+    /* [ 104] =   160 */ {__glXDisp_GetCompressedTexImageARB, __glXDispSwap_GetCompressedTexImageARB},
+    /* [ 105] =   161 */ {__glXDisp_DeleteQueriesARB, __glXDispSwap_DeleteQueriesARB},
+    /* [ 106] =   162 */ {__glXDisp_GenQueriesARB, __glXDispSwap_GenQueriesARB},
+    /* [ 107] =   163 */ {__glXDisp_IsQueryARB, __glXDispSwap_IsQueryARB},
+    /* [ 108] =   164 */ {__glXDisp_GetQueryivARB, __glXDispSwap_GetQueryivARB},
+    /* [ 109] =   165 */ {__glXDisp_GetQueryObjectivARB, __glXDispSwap_GetQueryObjectivARB},
+    /* [ 110] =   166 */ {__glXDisp_GetQueryObjectuivARB, __glXDispSwap_GetQueryObjectuivARB},
+    /* [ 111] =   167 */ {NULL, NULL},
+};
+
+const struct __glXDispatchInfo Single_dispatch_info = {
+    8,
+    Single_dispatch_tree,
+    Single_function_table,
+    NULL,
+    NULL
+};
+
+/*****************************************************************/
+/* tree depth = 13 */
+static const int_fast16_t VendorPriv_dispatch_tree[138] = {
+    /* [0] -> opcode range [0, 131072], node depth 1 */
+    2,
+    5,
+    EMPTY_LEAF,
+    102,
+    EMPTY_LEAF,
+
+    /* [5] -> opcode range [0, 32768], node depth 2 */
+    1,
+    8,
+    EMPTY_LEAF,
+
+    /* [8] -> opcode range [0, 16384], node depth 3 */
+    1,
+    11,
+    EMPTY_LEAF,
+
+    /* [11] -> opcode range [0, 8192], node depth 4 */
+    2,
+    16,
+    EMPTY_LEAF,
+    78,
+    EMPTY_LEAF,
+
+    /* [16] -> opcode range [0, 2048], node depth 5 */
+    2,
+    21,
+    EMPTY_LEAF,
+    39,
+    EMPTY_LEAF,
+
+    /* [21] -> opcode range [0, 512], node depth 6 */
+    1,
+    24,
+    EMPTY_LEAF,
+
+    /* [24] -> opcode range [0, 256], node depth 7 */
+    1,
+    27,
+    EMPTY_LEAF,
+
+    /* [27] -> opcode range [0, 128], node depth 8 */
+    1,
+    30,
+    EMPTY_LEAF,
+
+    /* [30] -> opcode range [0, 64], node depth 9 */
+    1,
+    33,
+    EMPTY_LEAF,
+
+    /* [33] -> opcode range [0, 32], node depth 10 */
+    1,
+    36,
+    EMPTY_LEAF,
+
+    /* [36] -> opcode range [0, 16], node depth 11 */
+    1,
+    EMPTY_LEAF,
+    LEAF(0),
+
+    /* [39] -> opcode range [1024, 1536], node depth 6 */
+    2,
+    44,
+    EMPTY_LEAF,
+    56,
+    67,
+
+    /* [44] -> opcode range [1024, 1152], node depth 7 */
+    1,
+    47,
+    EMPTY_LEAF,
+
+    /* [47] -> opcode range [1024, 1088], node depth 8 */
+    1,
+    50,
+    EMPTY_LEAF,
+
+    /* [50] -> opcode range [1024, 1056], node depth 9 */
+    1,
+    53,
+    EMPTY_LEAF,
+
+    /* [53] -> opcode range [1024, 1040], node depth 10 */
+    1,
+    LEAF(8),
+    EMPTY_LEAF,
+
+    /* [56] -> opcode range [1280, 1408], node depth 7 */
+    1,
+    59,
+    EMPTY_LEAF,
+
+    /* [59] -> opcode range [1280, 1344], node depth 8 */
+    1,
+    62,
+    EMPTY_LEAF,
+
+    /* [62] -> opcode range [1280, 1312], node depth 9 */
+    2,
+    EMPTY_LEAF,
+    LEAF(16),
+    LEAF(24),
+    LEAF(32),
+
+    /* [67] -> opcode range [1408, 1536], node depth 7 */
+    1,
+    70,
+    EMPTY_LEAF,
+
+    /* [70] -> opcode range [1408, 1472], node depth 8 */
+    1,
+    73,
+    EMPTY_LEAF,
+
+    /* [73] -> opcode range [1408, 1440], node depth 9 */
+    2,
+    EMPTY_LEAF,
+    LEAF(40),
+    LEAF(48),
+    EMPTY_LEAF,
+
+    /* [78] -> opcode range [4096, 6144], node depth 5 */
+    1,
+    EMPTY_LEAF,
+    81,
+
+    /* [81] -> opcode range [5120, 6144], node depth 6 */
+    1,
+    84,
+    EMPTY_LEAF,
+
+    /* [84] -> opcode range [5120, 5632], node depth 7 */
+    1,
+    87,
+    EMPTY_LEAF,
+
+    /* [87] -> opcode range [5120, 5376], node depth 8 */
+    1,
+    90,
+    EMPTY_LEAF,
+
+    /* [90] -> opcode range [5120, 5248], node depth 9 */
+    1,
+    93,
+    EMPTY_LEAF,
+
+    /* [93] -> opcode range [5120, 5184], node depth 10 */
+    1,
+    EMPTY_LEAF,
+    96,
+
+    /* [96] -> opcode range [5152, 5184], node depth 11 */
+    1,
+    99,
+    EMPTY_LEAF,
+
+    /* [99] -> opcode range [5152, 5168], node depth 12 */
+    1,
+    LEAF(56),
+    EMPTY_LEAF,
+
+    /* [102] -> opcode range [65536, 98304], node depth 2 */
+    1,
+    105,
+    EMPTY_LEAF,
+
+    /* [105] -> opcode range [65536, 81920], node depth 3 */
+    1,
+    108,
+    EMPTY_LEAF,
+
+    /* [108] -> opcode range [65536, 73728], node depth 4 */
+    1,
+    111,
+    EMPTY_LEAF,
+
+    /* [111] -> opcode range [65536, 69632], node depth 5 */
+    1,
+    114,
+    EMPTY_LEAF,
+
+    /* [114] -> opcode range [65536, 67584], node depth 6 */
+    1,
+    117,
+    EMPTY_LEAF,
+
+    /* [117] -> opcode range [65536, 66560], node depth 7 */
+    1,
+    120,
+    EMPTY_LEAF,
+
+    /* [120] -> opcode range [65536, 66048], node depth 8 */
+    1,
+    123,
+    EMPTY_LEAF,
+
+    /* [123] -> opcode range [65536, 65792], node depth 9 */
+    1,
+    126,
+    EMPTY_LEAF,
+
+    /* [126] -> opcode range [65536, 65664], node depth 10 */
+    1,
+    129,
+    EMPTY_LEAF,
+
+    /* [129] -> opcode range [65536, 65600], node depth 11 */
+    1,
+    132,
+    EMPTY_LEAF,
+
+    /* [132] -> opcode range [65536, 65568], node depth 12 */
+    1,
+    135,
+    EMPTY_LEAF,
+
+    /* [135] -> opcode range [65536, 65552], node depth 13 */
+    1,
+    LEAF(64),
+    EMPTY_LEAF,
+
+};
+
+static const __GLXdispatchVendorPrivProcPtr VendorPriv_function_table[72][2] = {
+    /* [  0] =     8 */ {NULL, NULL},
+    /* [  1] =     9 */ {NULL, NULL},
+    /* [  2] =    10 */ {NULL, NULL},
+    /* [  3] =    11 */ {__glXDisp_AreTexturesResidentEXT, __glXDispSwap_AreTexturesResidentEXT},
+    /* [  4] =    12 */ {__glXDisp_DeleteTextures, __glXDispSwap_DeleteTextures},
+    /* [  5] =    13 */ {__glXDisp_GenTexturesEXT, __glXDispSwap_GenTexturesEXT},
+    /* [  6] =    14 */ {__glXDisp_IsTextureEXT, __glXDispSwap_IsTextureEXT},
+    /* [  7] =    15 */ {NULL, NULL},
+    /* [  8] =  1024 */ {__glXDisp_QueryContextInfoEXT, __glXDispSwap_QueryContextInfoEXT},
+    /* [  9] =  1025 */ {NULL, NULL},
+    /* [ 10] =  1026 */ {NULL, NULL},
+    /* [ 11] =  1027 */ {NULL, NULL},
+    /* [ 12] =  1028 */ {NULL, NULL},
+    /* [ 13] =  1029 */ {NULL, NULL},
+    /* [ 14] =  1030 */ {NULL, NULL},
+    /* [ 15] =  1031 */ {NULL, NULL},
+    /* [ 16] =  1288 */ {NULL, NULL},
+    /* [ 17] =  1289 */ {NULL, NULL},
+    /* [ 18] =  1290 */ {NULL, NULL},
+    /* [ 19] =  1291 */ {NULL, NULL},
+    /* [ 20] =  1292 */ {NULL, NULL},
+    /* [ 21] =  1293 */ {__glXDisp_AreProgramsResidentNV, __glXDispSwap_AreProgramsResidentNV},
+    /* [ 22] =  1294 */ {__glXDisp_DeleteProgramsNV, __glXDispSwap_DeleteProgramsNV},
+    /* [ 23] =  1295 */ {__glXDisp_GenProgramsNV, __glXDispSwap_GenProgramsNV},
+    /* [ 24] =  1296 */ {__glXDisp_GetProgramEnvParameterfvARB, __glXDispSwap_GetProgramEnvParameterfvARB},
+    /* [ 25] =  1297 */ {__glXDisp_GetProgramEnvParameterdvARB, __glXDispSwap_GetProgramEnvParameterdvARB},
+    /* [ 26] =  1298 */ {__glXDisp_GetProgramivNV, __glXDispSwap_GetProgramivNV},
+    /* [ 27] =  1299 */ {__glXDisp_GetProgramStringNV, __glXDispSwap_GetProgramStringNV},
+    /* [ 28] =  1300 */ {__glXDisp_GetTrackMatrixivNV, __glXDispSwap_GetTrackMatrixivNV},
+    /* [ 29] =  1301 */ {__glXDisp_GetVertexAttribdvARB, __glXDispSwap_GetVertexAttribdvARB},
+    /* [ 30] =  1302 */ {__glXDisp_GetVertexAttribfvNV, __glXDispSwap_GetVertexAttribfvNV},
+    /* [ 31] =  1303 */ {__glXDisp_GetVertexAttribivNV, __glXDispSwap_GetVertexAttribivNV},
+    /* [ 32] =  1304 */ {__glXDisp_IsProgramNV, __glXDispSwap_IsProgramNV},
+    /* [ 33] =  1305 */ {__glXDisp_GetProgramLocalParameterfvARB, __glXDispSwap_GetProgramLocalParameterfvARB},
+    /* [ 34] =  1306 */ {__glXDisp_GetProgramLocalParameterdvARB, __glXDispSwap_GetProgramLocalParameterdvARB},
+    /* [ 35] =  1307 */ {__glXDisp_GetProgramivARB, __glXDispSwap_GetProgramivARB},
+    /* [ 36] =  1308 */ {__glXDisp_GetProgramStringARB, __glXDispSwap_GetProgramStringARB},
+    /* [ 37] =  1309 */ {NULL, NULL},
+    /* [ 38] =  1310 */ {__glXDisp_GetProgramNamedParameterfvNV, __glXDispSwap_GetProgramNamedParameterfvNV},
+    /* [ 39] =  1311 */ {__glXDisp_GetProgramNamedParameterdvNV, __glXDispSwap_GetProgramNamedParameterdvNV},
+    /* [ 40] =  1416 */ {NULL, NULL},
+    /* [ 41] =  1417 */ {NULL, NULL},
+    /* [ 42] =  1418 */ {NULL, NULL},
+    /* [ 43] =  1419 */ {NULL, NULL},
+    /* [ 44] =  1420 */ {NULL, NULL},
+    /* [ 45] =  1421 */ {NULL, NULL},
+    /* [ 46] =  1422 */ {__glXDisp_IsRenderbufferEXT, __glXDispSwap_IsRenderbufferEXT},
+    /* [ 47] =  1423 */ {__glXDisp_GenRenderbuffersEXT, __glXDispSwap_GenRenderbuffersEXT},
+    /* [ 48] =  1424 */ {__glXDisp_GetRenderbufferParameterivEXT, __glXDispSwap_GetRenderbufferParameterivEXT},
+    /* [ 49] =  1425 */ {__glXDisp_IsFramebufferEXT, __glXDispSwap_IsFramebufferEXT},
+    /* [ 50] =  1426 */ {__glXDisp_GenFramebuffersEXT, __glXDispSwap_GenFramebuffersEXT},
+    /* [ 51] =  1427 */ {__glXDisp_CheckFramebufferStatusEXT, __glXDispSwap_CheckFramebufferStatusEXT},
+    /* [ 52] =  1428 */ {__glXDisp_GetFramebufferAttachmentParameterivEXT, __glXDispSwap_GetFramebufferAttachmentParameterivEXT},
+    /* [ 53] =  1429 */ {NULL, NULL},
+    /* [ 54] =  1430 */ {NULL, NULL},
+    /* [ 55] =  1431 */ {NULL, NULL},
+    /* [ 56] =  5152 */ {__glXDisp_BindTexImageEXT, __glXDispSwap_BindTexImageEXT},
+    /* [ 57] =  5153 */ {__glXDisp_ReleaseTexImageEXT, __glXDispSwap_ReleaseTexImageEXT},
+    /* [ 58] =  5154 */ {NULL, NULL},
+    /* [ 59] =  5155 */ {NULL, NULL},
+    /* [ 60] =  5156 */ {NULL, NULL},
+    /* [ 61] =  5157 */ {NULL, NULL},
+    /* [ 62] =  5158 */ {NULL, NULL},
+    /* [ 63] =  5159 */ {NULL, NULL},
+    /* [ 64] = 65536 */ {NULL, NULL},
+    /* [ 65] = 65537 */ {__glXDisp_MakeCurrentReadSGI, __glXDispSwap_MakeCurrentReadSGI},
+    /* [ 66] = 65538 */ {NULL, NULL},
+    /* [ 67] = 65539 */ {NULL, NULL},
+    /* [ 68] = 65540 */ {__glXDisp_GetFBConfigsSGIX, __glXDispSwap_GetFBConfigsSGIX},
+    /* [ 69] = 65541 */ {__glXDisp_CreateContextWithConfigSGIX, __glXDispSwap_CreateContextWithConfigSGIX},
+    /* [ 70] = 65542 */ {__glXDisp_CreateGLXPixmapWithConfigSGIX, __glXDispSwap_CreateGLXPixmapWithConfigSGIX},
+    /* [ 71] = 65543 */ {NULL, NULL},
+};
+
+const struct __glXDispatchInfo VendorPriv_dispatch_info = {
+    17,
+    VendorPriv_dispatch_tree,
+    VendorPriv_function_table,
+    NULL,
+    NULL
+};
+
diff --git a/GL/glx/indirect_table.h b/GL/glx/indirect_table.h
new file mode 100644
index 0000000..a2562a0
--- /dev/null
+++ b/GL/glx/indirect_table.h
@@ -0,0 +1,106 @@
+/*
+ * (C) Copyright IBM Corporation 2005, 2006
+ * All Rights Reserved.
+ * 
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sub license,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ * 
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ * 
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.  IN NO EVENT SHALL
+ * IBM,
+ * AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
+ * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
+/**
+ * \file indirect_table.h
+ *
+ * \author Ian Romanick <idr at us.ibm.com>
+ */
+
+#ifndef INDIRECT_TABLE_H
+#define INDIRECT_TABLE_H
+
+#include <inttypes.h>
+
+/**
+ */
+struct __glXDispatchInfo {
+    /**
+     * Number of significant bits in the protocol opcode.  Opcodes with values
+     * larger than ((1 << bits) - 1) are invalid.
+     */
+    unsigned bits;
+
+    /**
+     */
+    const int_fast16_t * dispatch_tree;
+    
+    /**
+     * Array of protocol decode and dispatch functions index by the opcode
+     * search tree (i.e., \c dispatch_tree).  The first element in each pair
+     * is the non-byte-swapped version, and the second element is the
+     * byte-swapped version.
+     */
+    void * const (*dispatch_functions)[2];
+
+    /**
+     * Pointer to size validation data.  This table is indexed with the same
+     * value as ::dispatch_functions.
+     *
+     * The first element in the pair is the size, in bytes, of the fixed-size
+     * portion of the protocol.
+     *
+     * For opcodes that have a variable-size portion, the second value is an
+     * index in \c size_func_table to calculate that size.  If there is no
+     * variable-size portion, this index will be ~0.
+     *
+     * \note
+     * If size checking is not to be performed on this type of protocol
+     * data, this pointer will be \c NULL.
+     */
+    const int_fast16_t * size_table[2];
+
+    /**
+     * Array of functions used to calculate the variable-size portion of
+     * protocol messages.  Indexed by the second element of the entries
+     * in \c ::size_table.
+     *
+     * \note
+     * If size checking is not to be performed on this type of protocol
+     * data, this pointer will be \c NULL.
+     */
+    const gl_proto_size_func * size_func_table;
+};
+
+/**
+ * Sentinel value for an empty leaf in the \c dispatch_tree.
+ */
+#define EMPTY_LEAF         INT_FAST16_MIN
+
+/**
+ * Declare the index \c x as a leaf index.
+ */
+#define LEAF(x)            -x
+
+/**
+ * Determine if an index is a leaf index.
+ */
+#define IS_LEAF_INDEX(x)   ((x) <= 0)
+
+extern const struct __glXDispatchInfo Single_dispatch_info;
+extern const struct __glXDispatchInfo Render_dispatch_info;
+extern const struct __glXDispatchInfo VendorPriv_dispatch_info;
+
+#endif /* INDIRECT_TABLE_H */
diff --git a/GL/glx/indirect_util.c b/GL/glx/indirect_util.c
index bab0226..3964cd5 100644
--- a/GL/glx/indirect_util.c
+++ b/GL/glx/indirect_util.c
@@ -52,6 +52,7 @@
 #include "glthread.h"
 #include "dispatch.h"
 #include "glxext.h"
+#include "indirect_table.h"
 #include "indirect_util.h"
 
 
@@ -204,3 +205,113 @@ __glXSendReplySwap( ClientPtr client, co
         WriteToClient( client, reply_ints * 4, (char *) data );
     }
 }
+
+
+static int
+get_decode_index(const struct __glXDispatchInfo *dispatch_info,
+		 unsigned opcode)
+{
+    int remaining_bits;
+    int next_remain;
+    const int_fast16_t * const tree = dispatch_info->dispatch_tree;
+    int_fast16_t index;
+
+
+    remaining_bits = dispatch_info->bits;
+    if (opcode >= (1U << remaining_bits)) {
+	return -1;
+    }
+    
+    index = 0;
+    for (/* empty */; remaining_bits > 0; remaining_bits = next_remain) {
+	unsigned mask;
+	unsigned child_index;
+
+
+	/* Calculate the slice of bits used by this node.
+	 * 
+	 * If remaining_bits = 8 and tree[index] = 3, the mask of just the
+	 * remaining bits is 0x00ff and the mask for the remaining bits after
+	 * this node is 0x001f.  By taking 0x00ff & ~0x001f, we get 0x00e0.
+	 * This masks the 3 bits that we would want for this node.
+	 */
+
+	next_remain = remaining_bits - tree[index];
+	mask = ((1 << remaining_bits) - 1) &
+	  ~((1 << next_remain) - 1);
+
+
+	/* Using the mask, calculate the index of the opcode in the node.
+	 * With that index, fetch the index of the next node.
+	 */
+
+	child_index = (opcode & mask) >> next_remain;
+	index = tree[index + 1 + child_index];
+
+
+	/* If the next node is an empty leaf, the opcode is for a non-existant
+	 * function.  We're done.
+	 *
+	 * If the next node is a non-empty leaf, look up the function pointer
+	 * and return it.
+	 */
+
+	if (index == EMPTY_LEAF) {
+	    return -1;
+	}
+	else if (IS_LEAF_INDEX(index)) {
+	    unsigned func_index;
+
+
+	    /* The value stored in the tree for a leaf node is the base of
+	     * the function pointers for that leaf node.  The offset for the
+	     * function for a particular opcode is the remaining bits in the
+	     * opcode.
+	     */
+
+	    func_index = -index;
+	    func_index += opcode & ((1 << next_remain) - 1);
+	    return func_index;
+	}
+    }
+
+    /* We should *never* get here!!!
+     */
+    return -1;
+}
+
+
+void *
+__glXGetProtocolDecodeFunction(const struct __glXDispatchInfo *dispatch_info,
+			       int opcode, int swapped_version)
+{
+    const int func_index = get_decode_index(dispatch_info, opcode);
+
+    return (func_index < 0) 
+	? NULL 
+	: dispatch_info->dispatch_functions[func_index][swapped_version];
+}
+
+
+int
+__glXGetProtocolSizeData(const struct __glXDispatchInfo *dispatch_info,
+			 int opcode, __GLXrenderSizeData *data)
+{
+    if (dispatch_info->size_table != NULL) {
+	const int func_index = get_decode_index(dispatch_info, opcode);
+
+	if (func_index >= 0) {
+	    const int var_offset = 
+		dispatch_info->size_table[func_index][1];
+
+	    data->bytes = dispatch_info->size_table[func_index][0];
+	    data->varsize = (var_offset != ~0)
+		? dispatch_info->size_table[func_index]
+		: NULL;
+
+	    return 0;
+	}
+    }
+
+    return -1;
+}
diff --git a/GL/glx/indirect_util.h b/GL/glx/indirect_util.h
index 3abe81f..b00727a 100644
--- a/GL/glx/indirect_util.h
+++ b/GL/glx/indirect_util.h
@@ -40,4 +40,14 @@ extern void __glXSendReplySwap( ClientPt
     size_t elements, size_t element_size, GLboolean always_array,
     CARD32 retval );
 
+struct __glXDispatchInfo;
+
+extern void *__glXGetProtocolDecodeFunction(
+    const struct __glXDispatchInfo *dispatch_info, int opcode,
+    int swapped_version);
+
+extern int __glXGetProtocolSizeData(
+    const struct __glXDispatchInfo *dispatch_info, int opcode,
+    __GLXrenderSizeData *data);
+
 #endif /* __GLX_INDIRECT_UTIL_H__ */
diff --git a/GL/glx/single2.c b/GL/glx/single2.c
index 3387af2..357cd31 100644
--- a/GL/glx/single2.c
+++ b/GL/glx/single2.c
@@ -392,3 +392,13 @@ int __glXDisp_GetString(__GLXclientState
 {
     return DoGetString(cl, pc, GL_FALSE);
 }
+
+int __glXDisp_GetProgramStringARB(__GLXclientState *cl, GLbyte *pc)
+{
+    return BadRequest;
+}
+
+int __glXDisp_GetProgramStringNV(__GLXclientState *cl, GLbyte *pc)
+{
+    return BadRequest;
+}
diff --git a/GL/glx/single2swap.c b/GL/glx/single2swap.c
index 41a42bb..6d5e5ce 100644
--- a/GL/glx/single2swap.c
+++ b/GL/glx/single2swap.c
@@ -270,3 +270,13 @@ int __glXDispSwap_GetString(__GLXclientS
 {
     return DoGetString(cl, pc, GL_TRUE);
 }
+
+int __glXDispSwap_GetProgramStringARB(__GLXclientState *cl, GLbyte *pc)
+{
+    return BadRequest;
+}
+
+int __glXDispSwap_GetProgramStringNV(__GLXclientState *cl, GLbyte *pc)
+{
+    return BadRequest;
+}
diff --git a/GL/glx/singlepix.c b/GL/glx/singlepix.c
index ae64db4..10a16b1 100644
--- a/GL/glx/singlepix.c
+++ b/GL/glx/singlepix.c
@@ -462,3 +462,8 @@ int __glXDisp_GetColorTable(__GLXclientS
 
     return Success;
 }
+
+int __glXDisp_GetCompressedTexImageARB(__GLXclientState *cl, GLbyte *pc)
+{
+    return BadRequest;
+}
diff --git a/GL/glx/singlepixswap.c b/GL/glx/singlepixswap.c
index 59d1a69..b22dc5f 100644
--- a/GL/glx/singlepixswap.c
+++ b/GL/glx/singlepixswap.c
@@ -517,3 +517,8 @@ int __glXDispSwap_GetColorTable(__GLXcli
 
     return Success;
 }
+
+int __glXDispSwap_GetCompressedTexImageARB(__GLXclientState *cl, GLbyte *pc)
+{
+    return BadRequest;
+}
diff --git a/GL/glx/xfont.c b/GL/glx/xfont.c
index 89ff95b..b24c77d 100644
--- a/GL/glx/xfont.c
+++ b/GL/glx/xfont.c
@@ -47,6 +47,7 @@
 #include "glapi.h"
 #include "glthread.h"
 #include "dispatch.h"
+#include "indirect_dispatch.h"
 #include <GL/gl.h>
 #include <pixmapstr.h>
 #include <windowstr.h>
@@ -156,7 +157,7 @@ MakeBitmapsFromFont(FontPtr pFont, int f
 
 /************************************************************************/
 
-int __glXUseXFont(__GLXclientState *cl, GLbyte *pc)
+int __glXDisp_UseXFont(__GLXclientState *cl, GLbyte *pc)
 {
     ClientPtr client = cl->client;
     xGLXUseXFontReq *req;
diff-tree bdec9680fa74dd23cf319d09af1940f8cf71a5b1 (from 9f2a108051aad9b024ab737b45fc12290a113e37)
Author: Adam Jackson <ajax at benzedrine.nwnk.net>
Date:   Wed Aug 23 14:43:23 2006 -0400

    Make sure Composite is never enabled for Xnest.

diff --git a/hw/xnest/Args.c b/hw/xnest/Args.c
index 0aa0ca4..5d0a0c0 100644
--- a/hw/xnest/Args.c
+++ b/hw/xnest/Args.c
@@ -58,6 +58,13 @@ void ddxInitGlobals(void)
 int
 ddxProcessArgument (int argc, char *argv[], int i)
 {
+
+#ifdef COMPOSITE
+    /* XXX terrible hack */
+    extern Bool noCompositeExtension;
+    noCompositeExtension = TRUE;
+#endif
+
   if (!strcmp(argv[i], "-display")) {
     if (++i < argc) {
       xnestDisplayName = argv[i];
diff-tree 9f2a108051aad9b024ab737b45fc12290a113e37 (from a1ac0440bba690368aa4226468ce571be1a09d95)
Author: Adam Jackson <ajax at benzedrine.nwnk.net>
Date:   Wed Aug 23 14:38:34 2006 -0400

    Make 'Xvfb -render' also disable Composite, lest we segfault on startup.

diff --git a/hw/vfb/InitOutput.c b/hw/vfb/InitOutput.c
index b8253f6..a2d8661 100644
--- a/hw/vfb/InitOutput.c
+++ b/hw/vfb/InitOutput.c
@@ -364,6 +364,9 @@ ddxProcessArgument(int argc, char *argv[
     if (strcmp (argv[i], "-render") == 0)	/* -render */
     {
 	Render = FALSE;
+#ifdef COMPOSITE
+	noCompositeExtension = TRUE;
+#endif
 	return 1;
     }
 
diff-tree 73e58adda96c1d1b5176d819107faa7697c3eb94 (from a815b9b990e068f02d9cbba2b17f2cc3a30a9310)
Author: Matthias Hopf <mhopf at suse.de>
Date:   Wed Aug 16 18:17:58 2006 +0200

    Fixed segfault w/ broken Xinerama configs.

diff --git a/hw/xfree86/common/xf86Cursor.c b/hw/xfree86/common/xf86Cursor.c
index 14e0fcd..61f0ce5 100644
--- a/hw/xfree86/common/xf86Cursor.c
+++ b/hw/xfree86/common/xf86Cursor.c
@@ -576,24 +576,40 @@ xf86InitOrigins(void)
 		/* force edge lists */
 		if(screen->left) {
 		    ref = screen->left->screennum;
+		    if (! xf86Screens[ref] || ! xf86Screens[ref]->pScreen) {
+			ErrorF("Referenced uninitialized screen in Layout!\n");
+			break;
+		    }
 		    pLayout->left = AddEdge(pLayout->left, 
 			0, xf86Screens[i]->pScreen->height,
 			xf86Screens[ref]->pScreen->width, 0, ref);
 		}
 		if(screen->right) {
 		    ref = screen->right->screennum;
+		    if (! xf86Screens[ref] || ! xf86Screens[ref]->pScreen) {
+			ErrorF("Referenced uninitialized screen in Layout!\n");
+			break;
+		    }
 		    pScreen = xf86Screens[i]->pScreen;
 		    pLayout->right = AddEdge(pLayout->right, 
 			0, pScreen->height, -pScreen->width, 0, ref);
 		}
 		if(screen->top) {
 		    ref = screen->top->screennum;
+		    if (! xf86Screens[ref] || ! xf86Screens[ref]->pScreen) {
+			ErrorF("Referenced uninitialized screen in Layout!\n");
+			break;
+		    }
 		    pLayout->up = AddEdge(pLayout->up, 
 			0, xf86Screens[i]->pScreen->width,
 			0, xf86Screens[ref]->pScreen->height, ref);
 		}
 		if(screen->bottom) {
 		    ref = screen->bottom->screennum;
+		    if (! xf86Screens[ref] || ! xf86Screens[ref]->pScreen) {
+			ErrorF("Referenced uninitialized screen in Layout!\n");
+			break;
+		    }
 		    pScreen = xf86Screens[i]->pScreen;
 		    pLayout->down = AddEdge(pLayout->down, 
 			0, pScreen->width, 0, -pScreen->height, ref);
@@ -609,6 +625,10 @@ xf86InitOrigins(void)
 		break;
 	    case PosRelative:
 		ref = screen->refscreen->screennum;
+		if (! xf86Screens[ref] || ! xf86Screens[ref]->pScreen) {
+		    ErrorF("Referenced uninitialized screen in Layout!\n");
+		    break;
+		}
 		if(screensLeft & (1 << ref)) break;
 		dixScreenOrigins[i].x = dixScreenOrigins[ref].x + screen->x;
 		dixScreenOrigins[i].y = dixScreenOrigins[ref].y + screen->y;
@@ -616,6 +636,10 @@ xf86InitOrigins(void)
 		break;
 	    case PosRightOf:
 		ref = screen->refscreen->screennum;
+		if (! xf86Screens[ref] || ! xf86Screens[ref]->pScreen) {
+		    ErrorF("Referenced uninitialized screen in Layout!\n");
+		    break;
+		}
 		if(screensLeft & (1 << ref)) break;
 		pScreen = xf86Screens[ref]->pScreen;
 		dixScreenOrigins[i].x = 
@@ -625,6 +649,10 @@ xf86InitOrigins(void)
 		break;
 	    case PosLeftOf:
 		ref = screen->refscreen->screennum;
+		if (! xf86Screens[ref] || ! xf86Screens[ref]->pScreen) {
+		    ErrorF("Referenced uninitialized screen in Layout!\n");
+		    break;
+		}
 		if(screensLeft & (1 << ref)) break;
 		pScreen = xf86Screens[i]->pScreen;
 		dixScreenOrigins[i].x = 
@@ -634,6 +662,10 @@ xf86InitOrigins(void)
 		break;
 	    case PosBelow:
 		ref = screen->refscreen->screennum;
+		if (! xf86Screens[ref] || ! xf86Screens[ref]->pScreen) {
+		    ErrorF("Referenced uninitialized screen in Layout!\n");
+		    break;
+		}
 		if(screensLeft & (1 << ref)) break;
 		pScreen = xf86Screens[ref]->pScreen;
 		dixScreenOrigins[i].x = dixScreenOrigins[ref].x;
@@ -643,6 +675,10 @@ xf86InitOrigins(void)
 		break;
 	    case PosAbove:
 		ref = screen->refscreen->screennum;
+		if (! xf86Screens[ref] || ! xf86Screens[ref]->pScreen) {
+		    ErrorF("Referenced uninitialized screen in Layout!\n");
+		    break;
+		}
 		if(screensLeft & (1 << ref)) break;
 		pScreen = xf86Screens[i]->pScreen;
 		dixScreenOrigins[i].x = dixScreenOrigins[ref].x;



More information about the xorg-commit mailing list