summaryrefslogtreecommitdiff
path: root/src/mesa/sparc
AgeCommit message (Collapse)Author
2009-02-27mesa: Fix and re-enable sparc normal asm.David Miller
Fix a bug reported in 2003 :-) The output vector has 4 entries, not 3. Unconditionally emit .register directives. Signed-off-by: David S. Miller <davem@davemloft.net>
2009-02-27mesa: Fix Sparc cliptest asm code and re-enable.David Miller
Stop using register %g7 since that is used by the "system" (ie. the pthread implementation makes use of it). Also, the projection vector can be NULL and we shouldn't try to access it at all in _mesa_sparc_cliptest_points4_np(). ioquake3 would crash due to this bug. Finally, unconditionally emit the register directives and re-enable in _mesa_init_all_sparc_transform_asm(). Signed-off-by: David S. Miller <davem@davemloft.net>
2009-02-26mesa: Resurrect SPARC asm code.David S. Miller
This rewrites the sparc GLAPI code so that it's PIC friendly and works with all of the TLS/PTHREADS/64-bit/32-bit combinations properly. As a result we can turn SPARC asm back on. Currently it's only enabled on Linux, as that's the only place where I can test this stuff out. For the moment the cliptest SPARC asm routines are disabled as they are non-working. The problem is that they use register %g7 as a temporary which is where the threading libraries store the thread pointer on SPARC. I will fix that code up in a future change as it's a pretty important routine to optimize. Like x86 we do the runtime patch as a pthread once-invoked initializer in init_glapi_relocs(). Unlike x86, however, our GLAPI stubs on SPARC are just two instruction sequences that branch to a trampoline and put the GLAPI offset into a register. The trampoline is what we run-time patch. The stubs thus all look like: glFoo: ba __glapi_sparc_foo_stub sethi GLAPI_OFFSET(glFOO) * PTR_SIZE, %g3 This actually makes generate_entrypoint() a lot simpler on SPARC. For this case in generate_entrypoint() we generate stubs using a 'call' instead of the 'ba' above to make sure it can reach. In order to get a proper tail call going here, in the unpatched case, we do several tricks. To get the current PC, for example, we save the return address register into a temporary, do a call, save the return address register written by the call to another temporary, then restore the original return address register value. This is to avoid having to allocate a stack frame. This is necessary for PIC address formation. This new GLAPI scheme lets us get rid of the ugly SPARC GLAPI hacks in __glXInitialize() and one_time_init(). Signed-off-by: David S. Miller <davem@davemloft.net>
2009-01-22mesa: regenerated GL API filesBrian Paul
2008-09-21Remove CVS keywords.Keith Whitwell
Cherry-picked from gallium-0.1 Conflicts: src/glu/sgi/libnurbs/interface/bezierEval.h src/glu/sgi/libnurbs/interface/bezierPatch.h src/glu/sgi/libnurbs/interface/bezierPatchMesh.h src/glu/sgi/libnurbs/internals/dataTransform.h src/glu/sgi/libnurbs/internals/displaymode.h src/glu/sgi/libnurbs/internals/sorter.h src/glu/sgi/libnurbs/nurbtess/definitions.h src/glu/sgi/libnurbs/nurbtess/directedLine.h src/glu/sgi/libnurbs/nurbtess/gridWrap.h src/glu/sgi/libnurbs/nurbtess/monoChain.h src/glu/sgi/libnurbs/nurbtess/monoPolyPart.h src/glu/sgi/libnurbs/nurbtess/monoTriangulation.h src/glu/sgi/libnurbs/nurbtess/partitionX.h src/glu/sgi/libnurbs/nurbtess/partitionY.h src/glu/sgi/libnurbs/nurbtess/polyDBG.h src/glu/sgi/libnurbs/nurbtess/polyUtil.h src/glu/sgi/libnurbs/nurbtess/primitiveStream.h src/glu/sgi/libnurbs/nurbtess/quicksort.h src/glu/sgi/libnurbs/nurbtess/rectBlock.h src/glu/sgi/libnurbs/nurbtess/sampleComp.h src/glu/sgi/libnurbs/nurbtess/sampleCompBot.h src/glu/sgi/libnurbs/nurbtess/sampleCompRight.h src/glu/sgi/libnurbs/nurbtess/sampleCompTop.h src/glu/sgi/libnurbs/nurbtess/sampleMonoPoly.h src/glu/sgi/libnurbs/nurbtess/sampledLine.h src/glu/sgi/libnurbs/nurbtess/searchTree.h src/glu/sgi/libnurbs/nurbtess/zlassert.h src/glu/sgi/libutil/error.c src/glu/sgi/libutil/glue.c src/glu/sgi/libutil/gluint.h src/glu/sgi/libutil/project.c src/glu/sgi/libutil/registry.c src/glx/x11/glxclient.h src/glx/x11/glxext.c src/mesa/drivers/dri/ffb/ffb_dd.h src/mesa/drivers/dri/ffb/ffb_points.h src/mesa/drivers/dri/gamma/gamma_context.h src/mesa/drivers/dri/gamma/gamma_macros.h src/mesa/drivers/dri/i810/i810context.h src/mesa/drivers/dri/r128/r128_dd.h src/mesa/drivers/dri/tdfx/tdfx_dd.h
2008-09-21mesa: Prefix main includes with dir to avoid conflicts.José Fonseca
Eliminate a couple of differences with gallium-0.2
2007-11-09recreate from changed gl_API.xmlRoland Scheidegger
2007-10-30Alias glStencilOpSeparateATI with glStencilOpSeparate.Brian
2007-10-30Finish up ATI_separate_stencilBrian
Add entrypoints to glapi XML file and regenerate files. Implement glStencilOpSeparateATI(). Consolidate some code in stencil.c
2007-06-28Add a few missing GL 2.0 entrypoints, regenerate related files.Brian
Specifically: glVertexAttrib4bv glVertexAttrib4iv glVertexAttrib4ubv glVertexAttrib4uiv glVertexAttrib4usv
2007-05-16Initial implementation of MESA_texture_arrayIan Romanick
Shadow sampling from texture arrays is still not implemented. Everything else should be there, though.
2007-01-27Bug 9628: no entry for GetVertexAttribPointervGeorge Sapountzis
This is because (in glX_API.xml) GetVertexAttribPointerv is aliased to GetVertexAttribPointervARB which is then aliased to GetVertexAttribPointervNV. Make GetVertexAttribPointerv alias GetVertexAttribPointervNV directly. Patch by Ian Romanick <idr@us.ibm.com> and regenerate.
2006-11-03Added OpenGL 2.1 entrypoints.Brian Paul
2006-11-02Update gl_API.xml with OpenGL 2.0 functions, regenerate derived files.Brian Paul
2006-10-16Fix build when DEBUG is defined but DEBUG_MATH is not.Ian Romanick
A couple places attempted to call _math_test_all_*_functions when DEBUG was defined. These routines only exist when DEBUG_MATH is defined.
2006-10-11Fix bug #4681.Ian Romanick
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
2006-10-04Changes to generated code caused by the previous commits.Ian Romanick
2006-08-29Deprecate GL_EXT_vertex_weighting.Ian Romanick
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.
2006-08-29More static dispatch function removal.Ian Romanick
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
2006-08-25Add a couple of the missing GL 2.0 functions. Enable GLX protocol forIan Romanick
glBlendEquationSeparateEXT. Add missing enum "get" information for GL_EXT_texture_filter_anisotropic.
2006-08-24GL_EXT_paletted_texture functions should alias GL_SGI_color_table functions.Ian Romanick
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.
2006-08-24Add a new offset mode to the GL API XML. This mode, called "assign,"Ian Romanick
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.
2006-08-22Add new attribute called static_dispatch to the <function> element. ThisIan Romanick
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"'.
2006-08-15Add support for GL_EXT_gpu_program_parameters. Any driver that enablesIan Romanick
either GL_ARB_vertex_program or GL_ARB_fragment_program should enable this extension as well.
2006-06-12Add support for GL_APPLE_vertex_array_object. Several test programsIan Romanick
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.
2006-04-07regenerate SPARC assembly dispatch (bug 6484)Brian Paul
2005-07-28Fix SPARC assembly for 64-bitIan Romanick
- The test for whether or not we're building for 64-bit is '#ifdef __arch64__'. This appears to be correct on both Linux and Solaris. - The test for Solaris is now '#if defined(SVR4) || defined(__SVR4) || defined(__svr4__)'. GCC 3.4.0 has all three defined on Solaris 9. - Enables assembly language clip routines. - Fixes to make GLSL code build on Solaris. - Update gl_SPARC_asm.py.
2004-11-22silence warning, minor clean-upBrian Paul
2004-11-22applied SPARC patch (freedesktop bug 1898)Brian Paul
2004-06-26Re-enable SPARC assembly on sunos5-gcc platform.Ian Romanick
2004-04-26bring over build fixes from stable branchAlan Hourihane
2004-01-27Added support for EXT_blend_equation_separate / ATI_blend_equation_separate.Ian Romanick
The internal driver interface was also changed to use BlendEquationSeparate instead of BlendEquation.
2003-12-01fix __sparc_v9__ test to exclude linux (bug 852204)Brian Paul
2003-11-24generate the OpenGL 1.5 entrypointsBrian Paul
2003-08-24regenerated for GL_IBM_multimode_draw_arraysBrian Paul
2003-08-22Added support for GL_IBM_multimode_draw_arrays.Ian Romanick
Added non-static entrypoints and the name string for GL_SUN_multi_draw_arrays (identical to GL_EXT_multi_draw_arrays). Made add_newer_entrypoints (in src/mesa/main/context.c) table driven. This reduced the size of context.o by about 3KB.
2003-06-13Implemented GL_ARB_occlusion_query (not 100% finalized).Brian Paul
2003-06-10Further makefile clean-up, concentrated on the x86 assembly files.Brian Paul
2003-04-21alias ARB/NV program functions where possibleBrian Paul
2003-03-29GL_ARB_vertex_buffer_object, GL_ARB_vertex_program, GL_NV_fragment_program ↵Brian Paul
entrypoints
2003-02-08disable normal xform code - see bug 673938Brian Paul
2002-11-07added glBlendFuncSeparate, glMultiDrawArrays, glMultiDrawElementsBrian Paul
2002-11-07added missing 1.4 glFogCoord functionsBrian Paul
2002-09-06fixed glSampleCoverage typoBrian Paul
2002-09-06added GL_EXT_stencil_two_side and GL_NV_fenceBrian Paul
2002-09-06added OpenGL 1.4 entrypointsBrian Paul
2002-07-12fix patching offsets (Sven Panne) (patch 544637)Brian Paul
2002-06-30Implemented GL_EXT_multi_draw_arrays: glMultiDrawArraysEXT() and ↵Brian Paul
glMultiDrawElementsEXT().
2002-05-29Added GL_NV_point_sprite functions: glPointParameteri[v]NV().Brian Paul
Removed dead ARB_window_pos functions (we alias the MESA_window_pos funcs).
2002-05-27updated vertex program dispatchBrian Paul