summaryrefslogtreecommitdiff
path: root/src/mesa/main/dlist.c
AgeCommit message (Collapse)Author
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.
2006-11-02Rename _mesa_IsProgram() to _mesa_IsProgramARB() to avoid collision with theBrian Paul
OpenGL 2.0 function of the same name.
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-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-17change #ifdef to #ifBrian Paul
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-30Added _mesa_delete_list() to delete a display list, but don't remove fromBrian Paul
hash table. Make _mesa_destroy_list() static.
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-25Put color index attribute into the 6th attribute slot.Brian Paul
Update a lot of loops, conditionals to use the _TNL_FIRST/LAST_* values instead of specific vertex attributes. Remove the EdgeFlagv function from the GLvertexformat struct.
2006-04-21pass color index as float, not intBrian Paul
2006-04-11More GLSL code:Michal Krol
- use macros to access and modify render inputs bit-field; - un-alias generic vertex attributes for ARB vertex calls; - use MAX_VERTEX_PROGRAM_ATTRIBS (NV code) or MAX_VERTEX_ATTRIBS (ARB code) in place of VERT_ATTRIB_MAX; - define VERT_ATTRIB_GENERIC0..15 for un-aliased vertex attributes for ARB_vertex_shader; - fix generic attribute index range check in arbprogparse.c; - interface GLSL varyings between vertex and fragment shader; - use 64-bit optimised bitset (bitset.h) for render inputs;
2006-03-01No need for _mesa_save_error() to be public.Brian Paul
glVertexAttrib() w/ bad index should generate GL_INVALID_VALUE, not GL_INVALID_ENUM. Misc clean-ups.