summaryrefslogtreecommitdiff
path: root/src/mesa/main/dlist.c
AgeCommit message (Collapse)Author
2009-08-14Merge branch 'mesa_7_5_branch'Brian Paul
2009-08-13mesa: fix some invalid memory readsBrian Paul
We were passing the address of a float to functions that would deref the pointer as an array.
2009-08-13mesa: fix warnings about locals hiding function paramsBrian Paul
2009-08-13mesa: add missing PBO mapping code in unpack_image()Brian Paul
2009-08-13main: fix some potential memory leaksBrian Paul
Allocate dlist images after error checking. Record GL_OUT_OF_MEMORY when we can't make a copy of an image.
2009-08-12mesa: use _mesa_is_bufferobj()Brian Paul
2009-07-03Merge branch 'mesa_7_5_branch'Jakob Bornecrantz
Conflicts: src/mesa/main/dlist.c src/mesa/vbo/vbo_save_api.c
2009-06-30mesa/dlist: fixes and improvements for material cachingKeith Whitwell
Only short-circuit material call if *all* statechanges from this call are cached. Some material calls (eg with FRONT_AND_BACK) change more than one piece of state -- need to check all of them before returning. Also, Material calls are legal inside begin/end pairs, so don't need to be as careful about begin/end state as with regular statechanges (like ShadeModel) when caching. Take advantage of this and do better caching.
2009-06-30mesa/dlist: don't cache state which may not be replayed on CallListKeith Whitwell
Statechanges which occur before the first End in a display list may not be replayed when the list is called, in particular if it is called from within a begin/end pair. Recognize vulnerable statechanges and do not use them to fill in the state cache.
2009-06-30mesa/dlist: invalidate cached dlist compile state after CallListKeith Whitwell
When compiling a display list containing a CallList, it is necessary to invalidate any assumption about the GL state after the recursive call completes.
2009-06-30mesa/dlist: restore missing SAVE_FLUSH_VERTICES in save_ShadeModelKeith Whitwell
Reorganization of ShadeModel to avoid flushing vertices too often ended up never flushing vertices due to omitted line of code.
2009-06-30mesa/dlist: shortcircuit some redundant statechanges at compile timeKeith Whitwell
Currently, state-changes in mesa display lists are more or less a verbatim recording of the GL calls made during compilation. This change introduces a minor optimization to recognize and eliminate cases where the application emits redundant state changes, eg: glShadeModel( GL_FLAT ); glBegin( prim ) ... glEnd() glShadeModel( GL_FLAT ); glBegin( prim ) ... glEnd() The big win is when we can eliminate all the statechanges between two primitive blocks and combine them into a single VBO node. This commit implements state-change elimination for Material and ShadeModel only. This is enough to make a start on debugging, etc.
2009-06-22mesa: s/MAX_VERTEX_PROGRAM_ATTRIBS/MAX_NV_VERTEX_PROGRAM_INPUTS/ in NV funcsBrian Paul
(cherry picked from commit 4dc426c01627a240bd5b148c1804c45b0d5ecd6c)
2009-06-22mesa: rename MAX_VERTEX_ATTRIBS to MAX_VERTEX_GENERIC_ATTRIBSBrian Paul
Be clearer that this is the number of generic vertex program/shader attributes, not counting the legacy attributes (pos, normal, color, etc). (cherry picked from commit 4a95185c9f30c2de7a03bb1a0653f51b53b1111d)
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: implement GL_ARB_map_buffer_rangeBrian Paul
Only enabled for software drivers at this point. Note that the gl_buffer_object::Access enum field has been replaced by a gl_buffer_object::AccessFlags bitfield. The new field is a mask of the GL_MAP_x_BIT flags which is a superset of the old GL_READ_ONLY, GL_WRITE_ONLY and GL_READ_WRITE modes. When we query GL_BUFFER_ACCESS_ARB we translate the bitfield into the conventional enum values.
2009-06-02mesa: plug in new _mesa_CopyBufferSubData() functionsBrian Paul
2009-05-28mesa: exec/dlist functions for glProvokingVertexEXT()Brian Paul
2009-05-22mesa: use Elements() for loop limitBrian Paul
2009-05-22mesa: remove MAX_VERTEX_PROGRAM_ATTRIBSBrian Paul
Use MAX_VERTEX_GENERIC_ATTRIBS instead. No need for two #defines for the same quantity.
2009-05-22mesa: rename MAX_VERTEX_ATTRIBS to MAX_VERTEX_GENERIC_ATTRIBSBrian Paul
Be clearer that this is the number of generic vertex program/shader attributes, not counting the legacy attributes (pos, normal, color, etc).
2009-05-22mesa: s/MAX_VERTEX_PROGRAM_ATTRIBS/MAX_NV_VERTEX_PROGRAM_INPUTS/ in NV funcsBrian Paul
2009-04-01mesa: fix a recursive display list problemBrian Paul
This fixes an issue when compiling glCallList() into another display list when the mode is GL_COMPILE_AND_EXECUTE. Before, the call to glCallList() called _mesa_save_CallList() which called neutral_CallList() which then called _mesa_save_CallList() again. In the end, the parent display list contained two calls to the child display list instead of one. Let's be on the lookout for regressions caused by this change for a while before we cherry-pick this elsewhere.
2009-03-17mesa: update/fix doxygen commentsVinson Lee
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-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-12mesa: don't include m_xform.h where not neededBrian Paul
2009-01-31mesa: more display list cleanupsBrian
Remove some unneeded fields. Rename some function parameters.
2009-01-31mesa: display list clean-upsBrian
Rename some structs and fields to be more consistant with the rest of mesa.
2008-12-01mesa: fix conditional in save_Lightfv(), bug 18838Brian
2008-10-10mesa: remove unneeded includesBrian Paul
2008-09-23mesa: Apply MSVC portability fixes from Alan Hourihane.José Fonseca
2008-09-21mesa: fix errors in prev commitBrian Paul
2008-09-21mesa: revamp glBlendFunc loopbackBrian Paul
2008-09-21mesa: refactor: move _mesa_resizebuffers(), _mesa_ResizeBuffersMESA() to ↵Brian Paul
framebuffer.c (cherry picked from commit 9091015a9782ad15e58540a8fd61df83ea2bfe31)
2008-09-15mesa: get another class of degenerate dlists workingKeith Whitwell
Primitive begin in one dlist, end in another.
2008-05-06Add support for ATI_separate_stencil in display lists.Michal Wajdeczko
2008-05-01fix conversion of GLfloat display list IDsBrian Paul
Use floor() to convert to int (per Mark Kildard and the SI). Also, change translate_id() to return a signed integer since we may be offsetting from GL_LIST_BASE.
2008-03-25implement glGet/BindAttribLocationARB() for display listsBrian
More such shader functions are needed...
2007-11-09alias ProgramEnvParameter4xyARB and ProgramParameter4xyNV (bug #12935)Roland Scheidegger
these should be the same functions (as per spec).
2007-08-24remove CallDepth++/-- accidentally removed in prev commitBrian
2007-08-23remove unneeded CallStack arrayBrian
2007-07-30remove old comment, minor formatting fixesBrian
2007-07-30Fix an error related to glPolygonStipple.Xiang, Haihao
As glPixelStore(GL_UNPACK) affect the bits into a stipple pattern, hence 128 bytes used to store the pattern in a display list aren't enough sometimes.
2007-07-04Be more consistant with paths in #includes. Eventually, eliminate a bunch ↵Brian
of -I flags.
2007-05-21remove some whitespaceBrian
2007-04-21Rename occlude.[ch] to queryobj.[ch]Brian
2007-02-02Merge branch 'vbo-0.2'Keith Whitwell
Conflicts: src/mesa/main/texcompress_s3tc.c src/mesa/tnl/t_array_api.c
2007-01-23fixes for C++ warnings/errorsBrian
2007-01-16Don't special-case index, edgeflag.Keith Whitwell
Remove display list opcodes for INDEX and EDGEFLAG, handle them through the regular ATTRIB mechanism now that Mesa understands them to just be regular attribs.