summaryrefslogtreecommitdiffstats
path: root/src/mesa/main/context.c
Commit message (Collapse)AuthorAgeFilesLines
* Fix program refcounting assertion failure during context tear-downBrian Paul2008-05-191-6/+8
| | | | | | | | When purging the program hash table, the refcount _should_ be one since the program is referenced by the hash table. Need to explicitly set to zero before calling delete(). Also, purge high-level shader hash tables before low-level program hash tables.
* implement full reference counting for vertex/fragment programsBrian2008-05-061-10/+16
| | | | | Use _mesa_reference_vert/fragprog() wherever we assign program pointers. Fixes a memory corruption bug found with glean/api2 test.
* drop stray includes of glapiGeorge Sapountzis2008-04-231-1/+0
|
* mesa: Free all shader program data before deleting allXiang, Haihao2008-03-311-0/+16
| | | | shader/shader program objects to avoid memory access error.
* Revert "mesa: separate shader program object from shader object." (bug#15244)Xiang, Haihao2008-03-311-16/+8
| | | | This reverts commit 3ffd11f71d021f672b9bc15b3c39c155a0e2fecb.
* delete default programs with ctx->Driver.DeleteProgram()Brian2008-03-221-2/+2
|
* init vertex weight attrib to (1,0,0,0)Markus Amsler2008-03-091-1/+1
|
* mesa: separate shader program object from shader object.Xiang, Haihao2008-02-281-8/+16
| | | | | | | | | Currently a callback delete_shader_cb is used for deleting shader and shader program objects. Mesa detaches all attached shaders in _mesa_free_shader_program_data when deleting shader program objects. However it is likely that these shaders have been freed in _mesa_free_shader, which will result in unexpected behaviour. This fix uses a single callback for shader program objects and deletes shader program objects before shader objects.
* check if fb->Delete is null (bugs 13507,14293)Brian2008-01-301-1/+6
|
* remove unneeded conditionalBrian2008-01-011-2/+3
|
* fix broken two-sided stencilBrian2007-11-301-1/+0
|
* In _mesa_make_current(), don't unbind FBOs from the old context.Brian2007-09-111-9/+0
| | | | | | This fixes the X server crash reported by KeithP on Aug 29. The old context's FBOs will be unreferenced during context destruction so there's no memleak with this change.
* For _mesa_share_state(), update the context's references to the new share ↵Brian2007-08-231-4/+32
| | | | group's objects (Shane Blackett)
* remove dead code left over after fixing GL_READ/DRAW_BUFFER state issuesBrian2007-08-181-14/+0
|
* Rework the GL_READ_BUFFER, GL_DRAW_BUFFER state repairs that Roland ↵Brian2007-08-161-0/+7
| | | | | | | | | previously did. Basically, in update_framebuffer() (which should be called after an FBO is bound with MakeCurrent or BindFramebuffer) we check if the FBO is a window-system FBO. If it is, update the FBO's GL_READ/DRAW_BUFFER state according to the context state. Old code still in place but disabled with #if 0 / #endif.
* Bring over the texobj refcounting changes from mesa_7_0_branchBrian2007-08-161-2/+3
|
* Fix a few more problems with freeing FBOs/textures during context destruction.Brian2007-08-141-27/+39
| | | | | | Free FBOs before textures since the later may be referenced by the former. Need to bind the context we're destroying if there isn't a current context so that ctx->DeleteTexture() etc can be used.
* free any render/framebuffers left in hash tables when freeing shared stateBrian2007-08-131-0/+23
|
* Implement mutex/locking around texture object reference counting.Brian2007-08-131-11/+3
| | | | | | Use new _mesa_reference_texobj() function for referencing/unreferencing textures. Add new assertions/tests to try to detect invalid usage of deleted textures.
* added some missing Default1D/2DArray texture codeBrian2007-08-131-0/+7
|
* fix mesa's handling of fbo's / window fb (again)Roland Scheidegger2007-07-191-9/+3
| | | | | | | | Make sure the relevant fields in window fbs get updated at appropriate time (those are NOT the same as fbos!!!), and fix up related code accordingly. This is a bit ugly, but there's a reason the issues section in EXT_fbo is a couple hundred pages long... Hopefully correct now.
* more fixes for mesa's fbo handling (fixes tests/fbotest1/2)Roland Scheidegger2007-07-191-0/+5
|
* fix bogus fb/drawable informationRoland Scheidegger2007-07-161-0/+11
| | | | | | | | | | the framebuffer objects attached to drawables can have invalidate state associated with them, since for the window framebuffer this is per-context state and not per-fbo state. Since drivers rely on that information (otherwise would need to check if currently the window-framebuffer is bound in a lot of places) fix it up in _mesa_make_current (ugly). (Brought over from i915tex_privbuffers, where it fixes xdemos/wincopy when switching to front buffer rendering.)
* Be more consistant with paths in #includes. Eventually, eliminate a bunch ↵Brian2007-07-041-7/+7
| | | | of -I flags.
* In generic_nop() call _mesa_warning() instead of _mesa_problem() since it's ↵Brian2007-06-111-1/+1
| | | | an app issue, not a mesa bug.
* disable depthBits test in check_compatible(), see bug 11161Brian2007-06-081-3/+6
|
* Initial implementation of MESA_texture_arrayIan Romanick2007-05-161-0/+11
| | | | | Shadow sampling from texture arrays is still not implemented. Everything else should be there, though.
* Rename occlude.[ch] to queryobj.[ch]Brian2007-04-211-1/+1
|
* s/GL_SHADER_PROGRAM/GL_SHADER_PROGRAM_MESA/ (a Mesa-specific token)Brian2007-04-181-1/+1
|
* Use generic program limits instead of NV-specific ones to init program ↵Brian2007-04-161-4/+4
| | | | | | | | | constants. Previously, this limited us to 12 temp regs for vertex programs. Many vertex shaders could exceed that. This forces us to stop using t_vb_arbprogram.c for now because of its particular register indexing scheme. Need to increase bits allocated for register indexing, etc.
* more _mesa_unreference_framebuffer() calls, remove dead codeBrian2007-04-141-24/+2
|
* Remove the never-used SI-style imports/exports code.Brian2007-04-041-267/+2
|
* Restore the UseTexEnvProgram logic.Brian2007-03-271-4/+6
| | | | | Was removed during glsl-compiler work. Still need to go back and revisit this because of the interaction with fragment shaders...
* Free shader-related context state: _mesa_free_shader_state()Brian2007-03-241-0/+1
|
* Merge branch 'origin' into glsl-compiler-1Brian2007-03-091-6/+17
|\ | | | | | | | | | | Conflicts: src/mesa/main/context.c
| * Fix/improve framebuffer object reference counting.Brian2007-03-061-12/+13
| | | | | | | | | | | | | | Use _mesa_reference_framebuffer() and _mesa_unreference_framebuffer() functions to be sure reference counting is done correctly. Additional assertions are done too. Note _mesa_dereference_framebuffer() renamed to "unreference" as that's more accurate.
| * Do proper framebuffer refcounting in _mesa_make_current().Brian2007-02-261-0/+14
| | | | | | | | | | | | Also, added DeletePending field to gl_framebuffer used when a window has been deleted, but there still may be rendering contexts attached to the gl_framebuffer object.
* | Merge branch 'origin' into glsl-compiler-1Brian2007-02-221-16/+4
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/mesa/main/state.c src/mesa/shader/program.c src/mesa/shader/program.h src/mesa/shader/programopt.c src/mesa/shader/slang/slang_execute.c src/mesa/sources src/mesa/swrast/s_arbshader.c src/mesa/swrast/s_context.c src/mesa/swrast/s_span.c src/mesa/swrast/s_zoom.c src/mesa/tnl/t_context.c src/mesa/tnl/t_save_api.c src/mesa/tnl/t_vb_arbprogram.c src/mesa/tnl/t_vp_build.c src/mesa/tnl/t_vtx_eval.c
| * Merge branch 'vbo-0.2'Keith Whitwell2007-02-021-3/+2
| |\ | | | | | | | | | | | | | | | | | | Conflicts: src/mesa/main/texcompress_s3tc.c src/mesa/tnl/t_array_api.c
| | * Merge branch 'master' of git+ssh://[email protected]/git/mesa/mesa ↵Keith Whitwell2007-01-161-1/+12
| | |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | into vbo-0.2 Conflicts: src/mesa/array_cache/sources src/mesa/drivers/dri/i965/brw_context.c src/mesa/drivers/dri/i965/brw_draw.c src/mesa/drivers/dri/i965/brw_fallback.c src/mesa/drivers/dri/i965/brw_vs_emit.c src/mesa/drivers/dri/i965/brw_vs_tnl.c src/mesa/drivers/dri/mach64/mach64_context.c src/mesa/main/extensions.c src/mesa/main/getstring.c src/mesa/tnl/sources src/mesa/tnl/t_save_api.c src/mesa/tnl/t_save_playback.c src/mesa/tnl/t_vtx_api.c src/mesa/tnl/t_vtx_exec.c src/mesa/vbo/vbo_attrib.h src/mesa/vbo/vbo_exec_api.c src/mesa/vbo/vbo_save_api.c src/mesa/vbo/vbo_save_draw.c
| | * | Don't special-case FOG attribute initialization.Keith Whitwell2007-01-151-1/+0
| | | | | | | | | | | | | | | | | | | | Initial fog value was being set to {0,0,0,0}. This results in vector size 4, but isn't necessary. The regular {0,0,0,1} works fine.
| | * | merge current trunk into vbo branchAlan Hourihane2006-11-021-0/+11
| | | |
| | * | Move edgeflag into the VERT_ATTRIB_SEVEN slot. This means that ourKeith Whitwell2006-10-301-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | NV_vertex_program implementation has slightly incorrect aliasing behaviour. I think this is reasonable given the simplification and the fact that the mainstream ARB_vp continues to have the correct behaviour.
| * | | Override Const.CheckArrayBounds for Xserver in XMesaCreateContext().George Sapountzis2007-01-261-7/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This leaves one last XFree86Server ifdef in Mesa core. --- Bug 9285: misc glcore, xmesa cleanups ACKed by Ian Romanick.
| * | | Drop old (pre-AIGLX) GLcore interface.George Sapountzis2007-01-261-6/+1
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | The old GLcore interface was replaced in Xorg 7.1 with the addition of AIGLX, it is only used by DDX's which are known not to work with the new DIX glx code. --- Bug 9285: misc glcore, xmesa cleanups ACKed by Ian Romanick.
* | | Minor clean-ups, reformatting, comment changes.Brian2006-12-201-23/+24
| | |
* | | Fix shader object reference counting and hash table deallocation.Brian2006-12-201-10/+16
| | |
* | | Clean-up and re-org of the main GLSL object types.Brian2006-12-191-3/+0
| | | | | | | | | | | | | | | | | | | | | Use the gl_shader struct as it should be. Renamed gl_linked_program to gl_shader_program. Store both shaders and programs in the same hash table and use the Type field to distinguish them.
* | | Overhaul of GLSL API functions, dispatching, etc.Brian2006-12-191-8/+9
| | |
* | | Lots of assorted changes for new GLSL compiler backend.Brian2006-12-151-10/+51
|/ / | | | | | | New datatypes, constants, variables.