summaryrefslogtreecommitdiff
path: root/src/mesa/glapi
AgeCommit message (Collapse)Author
2009-08-24glapi: Fix a possible race in getting current context/dispatch.Chia-I Wu
There is a possbile race that _glapi_Context is reset by another thread after it is tested in GET_CURRENT_CONTEXT but before it is returned. We definitely do not want a lock here to solve the race. To have correct results even under a race, no other threads should reset _glapi_Context (or _glapi_Dispatch). This patch adds a new global variable _glapi_SingleThreaded. Since _glapi_Context or _glapi_Dispatch are no longer reset, _glapi_SingleThreaded is tested instead, before accessing them. DRI drivers compiled with this patch applied will not work with existing libGL.so because of the missing new symbol. If this turns out to be a real problem, this patch should be reverted. Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
2009-08-24glapi: Static mutex does not work on WIN32_THREADS.Chia-I Wu
This re-introduces the race in _glapi_check_multithread, but avoids a crash on windows. Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
2009-08-24glapi: Fix a race in accessing context/dispatch TSD.Chia-I Wu
If multiple threads set/get a TSD at roughly same time for the first time, glthread might (wrongly) initialize it more than once. This patch solves the race by initializing context/dispatch TSDs early. Acked-by: Ian Romanick <ian.d.romanick@intel.com> Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
2009-08-24glapi: Protect _glapi_check_multithread by a mutex.Chia-I Wu
Multiple threads might call _glapi_check_multithread at roughly the same time. It is possbile that all of them are wrongly regarded as firstCall if there is no mutex. This bug causes xeglthreads to crash sometimes. Acked-by: Ian Romanick <ian.d.romanick@intel.com> Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
2009-08-14Infrastructure for GL_ARB_seamless_cube_mapIan Romanick
2009-08-14Regenerate files for GL_APPLE_flush_buffer_rangeIan Romanick
2009-08-03typo fixRobert Ellison
somehow, this change was missed on the last checkin
2009-08-03mesa: fix up some GLAPI XMLRobert Ellison
- Added specifications for the extensions GL_APPLE_flush_buffer_range and GL_APPLE_texture_range - EXT_framebuffer_object.xml strangely held specifications for both the GL_EXT_framebuffer_object extension and the GL_EXT_texture_array extension. Split out the GL_EXT_texture_array data into its own file.
2009-07-27glapi: remove XTHREADS supportRALOVICH, Kristóf
2009-07-03Merge branch 'mesa_7_5_branch'Jakob Bornecrantz
Conflicts: src/mesa/main/dlist.c src/mesa/vbo/vbo_save_api.c
2009-07-02glapi: ensure _mesa_lookup_prim_by_nr() is not clobbered on regenerationKeith Whitwell
Propogate changes to enums.c back up to the python source.
2009-06-19mesa: regenerated files related to GL_ARB_vertex_array_objectBrian Paul
2009-06-19glapi: add new information for GL_ARB_vertex_array_objectBrian Paul
2009-06-19Merge branch 'ext-provoking-vertex'Brian Paul
Conflicts: docs/relnotes-7.6.html progs/tests/Makefile src/gallium/drivers/softpipe/sp_prim_vbuf.c src/glx/x11/indirect.c src/mesa/glapi/Makefile src/mesa/glapi/dispatch.h src/mesa/glapi/glapioffsets.h src/mesa/glapi/glapitable.h src/mesa/glapi/glapitemp.h src/mesa/glapi/glprocs.h src/mesa/main/dlist.c src/mesa/main/enums.c src/mesa/sparc/glapi_sparc.S src/mesa/x86-64/glapi_x86-64.S src/mesa/x86/glapi_x86.S
2009-06-08mesa: regenerated files for GL_ARB_map_buffer_rangeBrian Paul
2009-06-08glapi: hook in ARB_map_buffer_range.xmlBrian Paul
2009-06-08glapi: spec/xml file for GL_ARB_map_buffer_rangeBrian Paul
2009-06-03Fix compiling indirect.c when GLX_DIRECT_RENDERING is not definedIan Romanick
DO NOT HAND-EDIT GLX PROTOCOL FILES. Seriously. How can you miss the giant comment at the top of the file?
2009-06-02glapi: regenerated files for GL_ARB_copy_bufferBrian Paul
2009-06-02glapi: include ARB_copy_buffer.xmlBrian Paul
2009-06-02glapi: GL_ARB_copy_buffer xml infoBrian Paul
2009-05-28mesa: GL API changes for GL_EXT_provoking_vertexBrian Paul
This creates the new glProvokingVertexEXT() entrypoint.
2009-04-20mesa: Correct the gl_dispatch_stub_xxx prototypes.José Fonseca
2009-03-28glapi: remove a couple accidental GL_ prefixesRoland Scheidegger
2009-03-28mesa: add new signed rgba texture formatRoland Scheidegger
This is a (partial) backport of the signed texture format support in OGL 3.1. Since it wasn't promoted from an existing extension roll our own.
2009-03-17mesa: update/fix doxygen commentsVinson Lee
2009-03-12regenerate glapiRoland Scheidegger
2009-03-12mesa: add support for ATI_envmap_bumpmapRoland Scheidegger
add new entrypoints, new texture format, etc translate in texenvprogram.c for drivers using the mesa-generated tex env fragment program also handled in swrast, but not tested (cannot work due to negative texel results not handled correctly)
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-02-26Fix "cast to pointer from integer of different size"Tomas Carnecky
The script generates code like: pixels = (const GLvoid *) (ptr_is_null != 0) ? NULL : (pc + 80); which causes the above mentioned warning. Add parenthesis around the whole expression to fix it. Signed-off-by: Tomas Carnecky <tom@dbservice.com>
2009-02-23mesa: fixes for building on HaikuTomas Wilhelmsson
2009-02-23mesa: Fix windows build.José Fonseca
2009-02-22mesa: move a bunch of compiler-related stuff into new compiler.h headerBrian Paul
This trims down and cleans up imports.h and glheader.h quite a bit.
2009-02-21glapi: update find_entry() for mangled namesBrian Paul
2009-02-09mesa: merge gallium-0.2 into gallium-master-mergeBrian Paul
Merge commit 'origin/gallium-0.2' into gallium-master-merge Conflicts: Makefile docs/relnotes-7.4.html docs/relnotes.html src/mesa/drivers/dri/i965/brw_wm.h src/mesa/main/imports.c src/mesa/main/mtypes.h src/mesa/main/texcompress.c src/mesa/main/texenvprogram.c src/mesa/main/version.h src/mesa/vbo/vbo_exec_api.c src/mesa/vbo/vbo_save_draw.c
2009-01-22mesa: add ARB_framebuffer_object.xml to API_XMLBrian Paul
2009-01-22mesa: regenerated GL API filesBrian Paul
2009-01-22glapi: include ARB_framebuffer_object.xmlBrian Paul
2009-01-22glapi: XML spec for GL_ARB_framebuffer_objectBrian Paul
2009-01-14Merge commit 'origin/master' into gallium-0.2Alan Hourihane
Conflicts: docs/install.html docs/relnotes-7.3.html src/mesa/shader/slang/slang_codegen.c src/mesa/shader/slang/slang_compile.c src/mesa/shader/slang/slang_emit.c src/mesa/shader/slang/slang_preprocess.c src/mesa/shader/slang/slang_preprocess.h
2009-01-11__builtin_expect is a gcc 3.x feature. define it out for gcc 2.95.Matthieu Herrb
Patch suggested by miod@. Thanks.
2008-12-15Merge commit 'origin/master' into gallium-0.2Alan Hourihane
2008-12-14GLX: Include glapi.h before glapitable.hIan Romanick
A previous commit (2dbc515a669be123a019aeb4aa5aae6b1679f6a9) change some of the interdependencies between these two header files. Now glapi.h must be included before glapitable.h.
2008-12-14Return 0 as the request size when the pixels parameter is NULLNeil Roberts
img_null_flag was being ignored when calculating the size of a request so a BadLength error gets thrown for glTexImage3D when the pixels parameter is NULL. See bug #11003
2008-12-14GLX: Fix protocol for glTexSubImage#DIan Romanick
The TexSubImage commands do not have the "NULL image" flag that was introduced with glTexImage3D. However, there is a CARD32 pad element where that flag would be. Removing the img_null_flag causes the flag to be removed from the protocol. This changes the protocol and breaks everything. In order to prevent needing to hand-code all of the TexSubImage functions, a new attribute was added to the param element. This new attribute, called "padding," is a boolean flag that selects whether or not the parameter is a real parameter (default / false) or is protocol padding (true) that does not appear in the function's parameter list. This change resulted in a number of changes to other Python scripts. In almost all cases parameters with the is_padding flag set should not be emitted. This patch only changes the the XML, the DTD, and the generator scripts. It does NOT include the resulting changes to the generated code. Generated code in the X server is also changed by the script / XML changes in this patch. Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
2008-11-11Merge commit 'origin/master' into gallium-0.2Brian Paul
Conflicts: src/mesa/shader/prog_execute.c src/mesa/shader/slang/library/slang_vertex_builtin_gc.h
2008-11-10mesa: restore glapi/ prefix on #includeBrian Paul
2008-11-10mesa: fix some misc breakage caused by editing auto-generated files rather ↵Brian Paul
than the python generators Specifically: #include "glapitable.h" in src/mesa/main/glapi/dispatch.h Call _mesa_bsearch() in src/mesa/main/enums.c.
2008-11-10GLX: fix out-of-bounds memory issue in indirect glAreTexturesResident()Brian Paul
See bug 18445. When getting array results, __glXReadReply() always reads a multiple of four bytes. This can cause writing to invalid memory when 'n' is not a multiple of four. Special-case the glAreTexturesResident() functions now. To fix the bug, we use a temporary buffer that's a multiple of four bytes in length. NOTE: this commit also reverts part of commit 919ec22ecf72aa163e1b97d8c7381002131ed32c (glx/x11: Added some #ifdef GLX_DIRECT_RENDERING protection) which directly edited the indirect.c file rather than the python generator! I'm not repairing that issue at this time.
2008-10-10Merge commit 'origin/master' into gallium-0.2Keith Whitwell
Conflicts: src/mesa/glapi/descrip.mms src/mesa/shader/grammar/descrip.mms