summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKristian Høgsberg <krh@redhat.com>2006-03-17 00:35:18 +0000
committerKristian Høgsberg <krh@redhat.com>2006-03-17 00:35:18 +0000
commit2c11cde3367fcd22740b577a4364b1e41cf3e1d2 (patch)
tree6feb9b0c3cba3c7408b83ff67960fa815040d60d
parent14aafc258cd774cf937f9798a888c2d3c97ccacf (diff)
More patches from David Reveman:
Add GL_ARB_texture_non_power_of_two, GL_EXT_framebuffer_object and GL_NV_texture_env_combine4 extensions. Add __GLXcontext destructor and flush context cache there and on loseCurrent. Chain back to new __GLXcontext destructor. (__glXMesaContextForceCurrent): Set render table on forceCurrent. (init_screen_visuals): Index pVis array correctly. (GlxGetMesaProvider): Add this. Hook up FBO marshalling.
-rw-r--r--ChangeLog22
-rw-r--r--GL/glx/g_disptab_EXT.c208
-rw-r--r--GL/glx/g_disptab_EXT.h2
-rw-r--r--GL/glx/glxcmds.c23
-rw-r--r--GL/glx/glxcmdsswap.c14
-rw-r--r--GL/glx/glxdri.c1
-rw-r--r--GL/glx/glxscreens.c3
-rw-r--r--GL/glx/rensizetab.c104
-rw-r--r--GL/mesa/X/xf86glx.c11
9 files changed, 386 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 3217f02c2..bf6da0a4e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,25 @@
+2006-03-16 Kristian Høgsberg <krh@redhat.com>
+
+ More patches from David Reveman:
+
+ * GL/glx/glxscreens.c: Add GL_ARB_texture_non_power_of_two,
+ GL_EXT_framebuffer_object and GL_NV_texture_env_combine4
+ extensions.
+
+ * GL/glx/glxcmds.c (__glXContextDestroy, DoMakeCurrent)
+ (__glXdirectContextDestroy): Add __GLXcontext destructor and flush
+ context cache there and on loseCurrent.
+
+ * GL/mesa/X/xf86glx.c (__glXMesaContextDestroy): Chain back to new
+ __GLXcontext destructor.
+ (__glXMesaContextForceCurrent): Set render table on forceCurrent.
+ (init_screen_visuals): Index pVis array correctly.
+ (GlxGetMesaProvider): Add this.
+
+ * GL/glx/glxcmds.c:
+ * GL/glx/g_disptab_EXT.h:
+ * GL/glx/g_disptab_EXT.c: Hook up FBO marshalling.
+
2006-03-16 Eric Anholt <anholt@FreeBSD.org>
* exa/exa.c: (exaGetPixmapSize), (exaDestroyPixmap), (exaLog2),
diff --git a/GL/glx/g_disptab_EXT.c b/GL/glx/g_disptab_EXT.c
index 9582498b9..255f3832c 100644
--- a/GL/glx/g_disptab_EXT.c
+++ b/GL/glx/g_disptab_EXT.c
@@ -2234,6 +2234,110 @@ __GLXdispatchRenderProcPtr __glXRenderTable_EXT[__GLX_MAX_RENDER_OPCODE_EXT - __
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
#endif
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+
+ __glXDisp_BindRenderbufferEXT, /* 4316 */
+ __glXDisp_DeleteRenderbuffersEXT, /* 4317 */
+ __glXDisp_RenderbufferStorageEXT, /* 4318 */
+ __glXDisp_BindFramebufferEXT, /* 4319 */
+ __glXDisp_DeleteFramebuffersEXT, /* 4320 */
+ __glXDisp_FramebufferTexture1DEXT, /* 4321 */
+ __glXDisp_FramebufferTexture2DEXT, /* 4322 */
+ __glXDisp_FramebufferTexture3DEXT, /* 4323 */
+ __glXDisp_FramebufferRenderbufferEXT, /* 4324 */
+ __glXDisp_GenerateMipmapEXT /* 4325 */
};
__GLXdispatchVendorPrivProcPtr __glXVendorPrivTable_EXT[__GLX_MAX_VENDPRIV_OPCODE_EXT - __GLX_MIN_VENDPRIV_OPCODE_EXT + 1] = {
__glXDisp_AreTexturesResidentEXT, /* 11 */
@@ -4439,6 +4543,110 @@ __GLXdispatchRenderProcPtr __glXSwapRenderTable_EXT[__GLX_MAX_RENDER_OPCODE_EXT
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
#endif
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+
+ __glXDispSwap_BindRenderbufferEXT, /* 4316 */
+ __glXDispSwap_DeleteRenderbuffersEXT, /* 4317 */
+ __glXDispSwap_RenderbufferStorageEXT, /* 4318 */
+ __glXDispSwap_BindFramebufferEXT, /* 4319 */
+ __glXDispSwap_DeleteFramebuffersEXT, /* 4320 */
+ __glXDispSwap_FramebufferTexture1DEXT, /* 4321 */
+ __glXDispSwap_FramebufferTexture2DEXT, /* 4322 */
+ __glXDispSwap_FramebufferTexture3DEXT, /* 4323 */
+ __glXDispSwap_FramebufferRenderbufferEXT, /* 4324 */
+ __glXDispSwap_GenerateMipmapEXT /* 4325 */
};
__GLXdispatchVendorPrivProcPtr __glXSwapVendorPrivTable_EXT[__GLX_MAX_VENDPRIV_OPCODE_EXT - __GLX_MIN_VENDPRIV_OPCODE_EXT + 1] = {
__glXDispSwap_AreTexturesResidentEXT, /* 11 */
diff --git a/GL/glx/g_disptab_EXT.h b/GL/glx/g_disptab_EXT.h
index 3f7c93618..b5ecc6995 100644
--- a/GL/glx/g_disptab_EXT.h
+++ b/GL/glx/g_disptab_EXT.h
@@ -36,7 +36,7 @@
*/
#define __GLX_MIN_RENDER_OPCODE_EXT 2053
-#define __GLX_MAX_RENDER_OPCODE_EXT 4222
+#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)
diff --git a/GL/glx/glxcmds.c b/GL/glx/glxcmds.c
index ddbf06388..dd1d9494d 100644
--- a/GL/glx/glxcmds.c
+++ b/GL/glx/glxcmds.c
@@ -89,8 +89,16 @@ static int __glxHyperpipeConfigSGIX(__GLXclientState *cl, GLbyte *pc);
/************************************************************************/
+void
+__glXContextDestroy(__GLXcontext *context)
+{
+ __glXFlushContextCache();
+}
+
+
static void __glXdirectContextDestroy(__GLXcontext *context)
{
+ __glXContextDestroy(context);
__glXFree(context);
}
@@ -632,6 +640,7 @@ int DoMakeCurrent( __GLXclientState *cl,
if (!(*prevglxc->loseCurrent)(prevglxc)) {
return __glXBadContext;
}
+ __glXFlushContextCache();
__glXDeassociateContext(prevglxc);
}
@@ -2208,6 +2217,20 @@ int __glXVendorPrivateWithReply(__GLXclientState *cl, GLbyte *pc)
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;
}
diff --git a/GL/glx/glxcmdsswap.c b/GL/glx/glxcmdsswap.c
index a52026f88..2953c9577 100644
--- a/GL/glx/glxcmdsswap.c
+++ b/GL/glx/glxcmdsswap.c
@@ -939,6 +939,20 @@ int __glXSwapVendorPrivateWithReply(__GLXclientState *cl, GLbyte *pc)
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;
}
diff --git a/GL/glx/glxdri.c b/GL/glx/glxdri.c
index d757463bd..9cbb51873 100644
--- a/GL/glx/glxdri.c
+++ b/GL/glx/glxdri.c
@@ -227,6 +227,7 @@ __glXDRIcontextDestroy(__GLXcontext *baseContext)
context->driContext.destroyContext(NULL,
context->base.pScreen->myNum,
context->driContext.private);
+ __glXContextDestroy(context);
__glXFree(context);
}
diff --git a/GL/glx/glxscreens.c b/GL/glx/glxscreens.c
index aa727a981..33bb0fe09 100644
--- a/GL/glx/glxscreens.c
+++ b/GL/glx/glxscreens.c
@@ -64,6 +64,7 @@ static const char GLServerExtensions[] =
"GL_ARB_texture_mirrored_repeat "
"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 "
@@ -96,6 +97,7 @@ static const char GLServerExtensions[] =
"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_texture_env_combine3 "
@@ -107,6 +109,7 @@ static const char GLServerExtensions[] =
"GL_NV_point_sprite "
"GL_NV_texgen_reflection "
"GL_NV_texture_rectangle "
+ "GL_NV_texture_env_combine4 "
"GL_SGIS_generate_mipmap "
"GL_SGIS_texture_border_clamp "
"GL_SGIS_texture_edge_clamp "
diff --git a/GL/glx/rensizetab.c b/GL/glx/rensizetab.c
index 25d1474f7..c9bd1a73b 100644
--- a/GL/glx/rensizetab.c
+++ b/GL/glx/rensizetab.c
@@ -2446,4 +2446,108 @@ __GLXrenderSizeData __glXRenderSizeTable_EXT[__GLX_MAX_RENDER_OPCODE_EXT - __GLX
/* 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 --git a/GL/mesa/X/xf86glx.c b/GL/mesa/X/xf86glx.c
index 34b667088..0444acc80 100644
--- a/GL/mesa/X/xf86glx.c
+++ b/GL/mesa/X/xf86glx.c
@@ -196,6 +196,7 @@ __glXMesaContextDestroy(__GLXcontext *baseContext)
__GLXMESAcontext *context = (__GLXMESAcontext *) baseContext;
XMesaDestroyContext(context->xmesa);
+ __glXContextDestroy(context);
xfree(context);
}
@@ -237,6 +238,8 @@ __glXMesaContextForceCurrent(__GLXcontext *baseContext)
{
__GLXMESAcontext *context = (__GLXMESAcontext *) baseContext;
+ GlxSetRenderTables (context->xmesa->mesa.CurrentDispatch);
+
return XMesaForceCurrent(context->xmesa);
}
@@ -359,7 +362,7 @@ static void init_screen_visuals(__GLXMESAscreen *screen)
/* Create the XMesa visual */
pXMesaVisual[i] =
XMesaCreateVisual(pScreen,
- pVis,
+ &pVis[j],
modes->rgbMode,
(modes->alphaBits > 0),
modes->doubleBufferMode,
@@ -437,3 +440,9 @@ GlxGetMesaProvider (void)
{
return &__glXMesaProvider;
}
+
+__GLXprovider *
+GlxGetMesaProvider (void)
+{
+ return &__glXMesaProvider;
+}