Age | Commit message (Collapse) | Author |
|
I always build with -DGLX_USE_TLS, so I never hit these paths. glapi.h is
required in some places because _glapi_Dispatch is declared there, but
_glapi_tls_Dispatch is declared in glthread.h.
|
|
|
|
|
|
glDeleteTextures and glDeleteTexturesEXT were erroneously listed as
aliases of each other. For anything /except/ GLX protocol they are
aliases. This set of changes allows functions that are functionally
identical but have different GLX protocol to be listed as aliases.
When building with GLX_INDIRECT_RENDERING set, different static
functions are used. These functions determine whether the current
context is direct rendering or not. If the context is direct
rendering, the aliased function (e.g., glDeleteTextures in the case of
glDeleteTexturesEXT) is called. If the context is not direct
rendering, the correct GLX protocol is sent.
For a deeper explanation of what is changed, please see:
http://dri.freedesktop.org/wiki/PartiallyAliasedFunctions
|
|
To be included by X.org Makefile.am files so that lists of files don't need
to be hardcoded and frequently updated there.
|
|
|
|
|
|
|
|
Remove code in the Python scripts that keeps the indentation of the
generated code consistent for all cases. Instead, pass the generated code
through the indent command. Unix tools for the win!
|
|
an iterator to iterate over the categories in order, starting with "core"
versions, then ARB extensions, then numbered non-ARB extensions, and finally
unnumbered extensions.
Use the new iterator in a couple places to ensure that output that is
grouped by catgory is generated in a consistent order.
More changes to the scripts are coming. The generated files will be
committed one time after all the changes are in. Too bad we're not using
GIT, or this would be easy. :(
|
|
The new method client_supported_for_indirect is used to determine whether or
not the client-side library supports the function for indirect rendering.
The may or may not have associated protocol that needs to be generated
(e.g., glVertexPointer does not, but glVertex3fv does).
|
|
convention switch.
Updated the generated code to use the new XCB naming scheme.
|
|
Set the correct opcodes for GLX_EXT_texture_from_pixmap functions. Changes
to the glproto package and the core X server are also required.
|
|
|
|
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.
|
|
|
|
Nvidia no longer supports this extension, and they no longer export its
entry points from their libGL. There's no reason for us to keep dragging it
around either.
|
|
Make functions for the following extensions available only via
glXGetProcAddress. In cases where there are other aliases to the same
functions (e.g., between GL_EXT_histogram and GL_ARB_imaging), the alias
functions may still be statically exported.
- GL_ATI_blend_equation_separate
- GL_EXT_blend_equation_separate
- GL_EXT_convolution
- GL_EXT_color_sub_table
- GL_EXT_cull_vertex
- GL_EXT_depth_bounds_test
- GL_EXT_framebuffer_blit
- GL_EXT_histogram
- GL_EXT_multisample
- GL_EXT_stencil_two_side
- GL_EXT_timer_query
- GL_IBM_multimode_draw_arrays
- GL_INGR_blend_func_separate
- GL_NV_fence
- GL_SGI_color_table
- GL_SGIS_multisample
- GL_SGIS_pixel_texture
- GL_SGIS_point_parameters
- GL_SGIX_pixel_texture
|
|
the true static dispatch name (either the glFooBar name or the
gl_dispatch_stub_XXX name). static_name returns the name of the
static function for a specific alias of a GL function.
Adding (and using) these two functions corrects some problems in the
generated code related to functions with multiple aliases where some
of the aliases have true static dispatch functions and some don't. I
have verified that everything under progs, except xdemos/xdemo,
correctly link. I did this by doing 'make linux-dri-x86-64
PROGRAM_DIRS="demos redbook samples xdemos tests"'.
|
|
|
|
entry point generated. This allows us to do things like generate a
static entry point for glPointParameterfvARB but not for
glPointParameterfvSGIS.
|
|
glBlendEquationSeparateEXT. Add missing enum "get" information for
GL_EXT_texture_filter_anisotropic.
|
|
|
|
The functions for GL_EXT_paletted_texture that do not share GLX
protocol with GL_ARB_imaging are supposed to alias the similar
functions from GL_SGI_color_table. They didn't. This patch corrects
this problem and enables GLX protocol for both extensions.
Since this removes 3 entries from the dispatch table, this change
creates a lot of changes in the generated files.
|
|
tells the scripts to assign an available offset to the function. The
important changes are in src/mesa/glapi/gl_XML.py and
src/mesa/glapi/*.xml.
Since the DRI drivers only depend on functions required by the ABI
(e.g., GL 1.2 + ARB_multitexture) having fixed offsets, all functions
not in the ABI use "assign" mode. This has caused the offset of
basically every function outside the ABI to change. I have verified
that a libGL with this patch works with a DRI driver without the patch.
Futher, several function were removed from the dispatch tables
altogether. These are the functions for the following extensions:
GL_SGIS_texture_filter4
GL_SGIS_texture4D
GL_SGIS_detail_texture
GL_SGIS_sharpen_texture
GL_SGIX_sprite
GL_SGIX_instruments
GL_SGIX_framezoom
GL_SGIX_tag_sample_buffer
GL_SGIX_reference_plane
GL_SGIX_flush_raster
GL_SGIX_list_priority
GL_SGIX_fragment_lighting
GL_PGI_misc_hints
GL_EXT_index_material
GL_EXT_index_func
GL_3DFX_tbuffer
This removes 50 functions from the dispatch table.
|
|
generation of protocol tables for Render.
|
|
decode tables in the server.
|
|
|
|
x86. This means that the position of each dispatch function can be
calculated as (dispatch_offset * size_of_function) + glNewList. This
allows us to not store the function pointers in glprocs_table_t.
This same optimization has been done for quite some time on x86. We
could probably also do this for some cases of the SPARC dispatch as
well.
|
|
boolean attribute, which defaults to true, determines whether or not a
static dispatch function is available in libGL for applications to link
against.
Ideally, any new functions that are not part of the ABI should not have
directly accessable dispatch functions. This forces applications to use
glXGetProcAddress to access these functions. By doing this we can
gracefully remove functions from libGL without breaking the linkage of
applications.
Note that the static dispatch functions are still generated. However, they
are given names like gl_dispatch_stub_820 and are marked with the "hidden"
linker attribute.
All extension functions added since the previous Mesa release (6.5) have
been marked as 'static_dispatch="false"'.
|
|
either GL_ARB_vertex_program or GL_ARB_fragment_program should enable this
extension as well.
|
|
older libGL. The data in extension_helper.h erroneous instructed
drivers to expect all functions with establised offsets, even those
not in the ABI, to have a specific offset allocated. This is just
wrong. A function is either in the ABI and has a set offset or a
function is not in the ABI and has a re-map offset.
|
|
|
|
GL_EXT_framebuffer_blit. Enumerants in the XML schema get the GL_ prefix
added to them automatically. This resulted in things like
"GL_GL_TIME_ELAPSED_EXT" in enums.c.
|
|
|
|
and demos are also added.
Adding basic support to drivers should be as easy as just enabling the
extension, though thorough test would also be required.
|
|
of requesting executable stacks.
|
|
|
|
|
|
|
|
|
|
safety problem
|
|
is properly defined. Fixes long-standing, but unnoticed thread safety failure.
Also, updated comments.
|
|
|
|
whatever reason, a space is always inserted. That is not the desired
behavior.
|
|
target. The environment variable XORG_BASE must be set to point to the base
of the X.org server sources where the files are to be placed.
The 7.0.0 server release already contains files generated by these scripts.
The scripts should have been committed months ago. Sorry for the lag. :(
|
|
|
|
|
|
|
|
|