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.
Get rid of almost all uses of these definitions. They're still defined for
delinquent out-of-tree drivers, and also for the Mesa build. As well as
for miinitext.c. But largely gone.
Also refactors __glXSwapBuffers to use GetDrawableOrPixmap for
getting the __GLXdrawable. This patch paves the way for GLXWindows
with XIDs different from the X Windows they are created for, a
prerequisite for glXCreateWindow().
Also drop glxerror.h (__glXError is now declared in glxserver.h)
and global.c (last remaining globals are in glxext.c now).
With this change we now support all GLX 1.3 error codes.
- Only update when pixmap content actually change;
- Only update the regions that acutally changed.
This is a worthwhile optimization, but it doesn't completely remove
the bottleneck, as mesa still uploads then entire texture whenever
it changes.
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.
Add getter for Mesa provider.
Export this for Xgl.
Move resource tracking out of drawable constructor to allow wrapping.
Use corrent reply size #define.
Add this function. (DoGetDrawableAttributes): Fix array length.
Port all changes from the (monolithic) accelerated_indirect-0-0-1 branch to
the modular trunk. This will break the Darwin and cygwin builds. Other
than the changes to symlink-mesa.sh and the various Makefile.am files,
to code is identical to what's in the branch.
Reviewed by: airlied, krh
replaces all calls to the old functions with calls to __glXImageSize
with the new parameter list.
I have also added 'target' as a parameter. This is a stepping stone to the
code in patch #2410. Basically, if the texture target is one of
GL_PROXY_*, the image size is always zero. This gathers all the checks
for that into a single place. I have *not* modified the existing
callers to take this into account. They still do their own checks for
GL_PROXY_*. However, when the generated versions of those functions are
added to the tree, they *will* rely on that.
The code growth is mainly due to the new 40 line comment before
__glXImageSize.
I have tested this with a few of the texture using demos and tests from
Mesa, including tunnel, texdown, and drawpix.
Reviewed by: Adam Jackson, Eric Anholt, and Brian Paul.
__gl*_size functions to be used. The result was that, on x86, the code
would be compiled with FASTCALL semantics, but the callers would not.
This should fix GLX protocol errors that people are seeing. There
doesn't appear to be a bugzilla associated with this problem.
includes. This matches the way drivers are built in the Mesa tree and
fixes a build problem in the Savage driver.
Convert uses of __glPointParameterfvARB_size to
__glPointParameterfvEXT_size and uses of __glPointParameteriv_size to
__glPointParameterivNV_size. This eliminates the need to hand-edit
indirect_size.c after it is generated.
Olli Helenius)
- Fix some distcheck problems for non-solaris systems
- Change server version number from the Xorg rev to an independent one
- _POSIX_SOURCE and _XOPEN_SOURCE defined to the right values
number of tag/date pairs was specified. This was incorrect. The correct
value is the number of values (one for the tag and one for the value).
Xorg bug: #3210
Add XSERV_t, TRANS_SERVER, TRANS_REOPEN to quash warnings.
Add #include <dix-config.h> or <xorg-config.h>, as appropriate, to all
source files in the xserver/xorg tree, predicated on defines of
HAVE_{DIX,XORG}_CONFIG_H. Change all Xfont includes to
<X11/fonts/foo.h>.
Make sure the pixmap is a valid new resource
Make sure the context is a legal new resource.
Handle null attrib_list.
Handle null attrib_list; copy attrib_list to data; actually allocate the
new GLXDrawable.
Harold L. Hunt II, Alexander Gottwald).
Fix crash when using X core font in zh_CN.UTF-8 locale (Bug #368, Yu Shao,
David Dawes).
Fix glXMakeCurrent(Dpy, None, NULL) crash (Bug #719, Adam Jackson).
HP-PA build fix (Bug #828, Guy Martin, Paul Anderson).
Fix SDK build for GATOS and Wacom driver (Bug #829, Bryan Stine).
Fix attempt to read video ROM before enabling it (Bug #843, Ivan
Kokshaysky, Mike A. Harris).
Fix detection of primary adapter (Bug #843, Ivan Kokshaysky, Mike A.
Harris).
Clarify xset man page description of how to use the keyboard repeat rate
settings (Bug #846, Mike A. Harris).
Fix problem where print-screen key would get remapped to sys-req in certain
keymaps, which broke GNOME printscreen functionality (Bug #847, Owen
Taylor).
Fix several render problems:
- MMIO mode support
- Hang on IGP chips
- VT switching hang
- 3D render corruption (Bug #922, Hui Yu).