As the driver EnterVT function generally re-enables the hardware and
prepares it for rendering, it must be called before any gl functions are
called which could touch the hardware.
(cherry picked from commit f24391dbfd)
Non-linux GNU systems such as Hurd will define __GLIBC__ or __GNU__
rather than __linux__. This must be tested for in order to get byteswap.h
included. See commit 594d180fe4 (24 Dec
2006) and other related patches (fixed in upstream HEAD then, why was
the patch not brought across to the 1.3 branch?).
The logic for freeing GL contexts introduced by "Fix AIGLX VT switching." is
inverted. As it is now, GL context destruction is deferred for glxDRIEnterVT().
(cherry picked from f17e3c34df commit)
There were two sets of bugs in the vertex program (ARB and NV)
protocol. First, several of the ARB functions were missing the
'doubles_in_order="true"' annotation. Second, after the ARB decided
that glVertexAttrib*ARB functions must not alias fixed-function state
for GLSL, Nvidia re-assigned GLX protocol opcodes for
glVertexAttrib*NV (circa Septeber 2004). For some reason gl_API.xml
was never updated to reflect this, and the updated version of the
GL_NV_vertex_program spec never made into the registry.
This is just a server-side regeneration from gl_API.xml version 1.68.
GLX protocol isn't supported for GLX_SGI_swap_control or
GLX_SGI_video_sync. Remove them from the list of available extensions
until they are supported.
Re-generate from gl_API.xml 1.65. This provides the missing bits for
GL_EXT_texture_filter_anisotropic and GL_EXT_blend_equation_separate.
Enable those extensions.
Implement glGetProgramStringARB and glGetProgramStringNV. With these
functions implemented, GL_ARB_{vertex,fragment}_program,
GL_NV_{vertex,fragment}_program, and related extensions can be enabled.
Fill in __glXDisp_GetCompressedTexImageARB and
__glXDispSwap_GetCompressedTexImageARB to finish support for
GL_ARB_texture_compression. With this extension (and the related
compression extensions), the server-side GLX supports all of the
protocol for GL 1.4. w00t!
The bad news is that this has received only minimal testing, and Mesa
does not contain any good tests for GL_ARB_texture_compression.
gl_API.xml 1.63 corrects some problems with GLX protocol for
GL_EXT_paletted_texture and GL_SGI_color_table. Regenerate from that
file, and enable those extensions and GL_EXT_shared_texture_palette.
__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!
__glXDRIleaveServer() and _enterServer() used to call DRIDoBlockHandler
(resp DRIDoWakeupHandler) directly. They are now calling DRIBlockHandler
(resp DRIWakeupHandler) to account for driver specific block/wakeup
hooks.