summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* mesa/dlist: fixes and improvements for material cachingKeith Whitwell2009-06-301-8/+16
| | | | | | | | | | | 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.
* progs/trivial: add dlist-mat-tri.cKeith Whitwell2009-06-302-0/+183
|
* progs/trivial: add test case for short-circuiting material changesKeith Whitwell2009-06-302-0/+175
| | | | | Similar to dlist-tri-flat-tri, but using glMaterial calls, which have the extra property of being legal within Begin/End calls.
* mesa/dlist: don't cache state which may not be replayed on CallListKeith Whitwell2009-06-301-1/+5
| | | | | | | | | 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.
* progs/trivial: add dlist-flat-tri.cKeith Whitwell2009-06-302-0/+172
| | | | | | | | | State-change functions which precede the first call to glEnd() in a compiled list are vulnerable to not being executed when that list is called. In particular this can happen if a list is invoked from within a begin/end pair, as in this example.
* mesa/dlist: invalidate cached dlist compile state after CallListKeith Whitwell2009-06-301-16/+24
| | | | | | When compiling a display list containing a CallList, it is necessary to invalidate any assumption about the GL state after the recursive call completes.
* progs/trivial: add dlist-recursive-callKeith Whitwell2009-06-302-0/+191
| | | | | | | | | | When one display list calls another display list, it is possible that the calling display list makes state-changes or other actions which invalidate any attempt at caching or state-change elimination in the calling list. This test exercises one such case, where the called list consists of just a single glShadeModel() call.
* dlist-tri-flat-tri: make tri render differently if flatshade not enabledKeith Whitwell2009-06-301-1/+3
| | | | | When testing flat-shading, it helps to specify per-vertex colors so that you can distinguish between flat & smooth shading.
* Merge branch 'mesa_7_5_branch' into dlist-statechange-shortcircuitKeith Whitwell2009-06-3015-272/+345
|\ | | | | | | Need this to pick up fixes for per-vertex materials.
| * progs/trivial: add test case for lighting plus per-vertex materialsKeith Whitwell2009-06-302-0/+150
| | | | | | | | Exercise material-within-begin/end case.
| * progs/isosurf: add materials mode for glVertex + TRISTRIPKeith Whitwell2009-06-301-5/+20
| |
| * mesa: remove whitespaceKeith Whitwell2009-06-301-108/+108
| |
| * mesa: remove dead constant pointsize code from ffvertex_prog.cKeith Whitwell2009-06-301-17/+0
| |
| * mesa: remove dead vertex fog code from ffvertex_prog.cKeith Whitwell2009-06-301-84/+3
| |
| * mesa: fix material inputs in ffvertex_prog.cKeith Whitwell2009-06-301-39/+15
| | | | | | | | | | | | Varying material inputs were not being picked up from the same slots where the VBO code is currently placing them (GENERIC0 and above). Most often they were just being ignored.
| * mesa: fix transform_points_3d_no_rot using undefined values in %xmm0Arthur HUILLET2009-06-302-0/+2
| | | | | | | | Signed-off-by: Arthur HUILLET <[email protected]>
| * glx: plug a leakKristof Ralovich2009-06-301-0/+2
| | | | | | | | | | | | | | | | | | Swrast was missing a free for the culmination of driConcatConfigs. Use free(), not _mesa_free() since we shouldn't be calling any Mesa functions from the GLX code. driConcatConfigs() should probably use regular malloc/free to be consistant but the Mesa functions just wrap the libc functions anyway.
| * glx: fix null pointer dereference segfault (bug 22546)Brian Paul2009-06-301-1/+1
| |
| * progs/util: make sure function pointers are initializedKeith Whitwell2009-06-301-1/+6
| | | | | | | | | | Call Init() from CompileShaderFile, was previously only called for the Text version of this function.
| * mesa: Set FLUSH_EXPLICIT_BIT flags when calling FlushMappedBufferRange.José Fonseca2009-06-302-9/+22
| | | | | | | | As prescribed by ARB_map_buffer_range.
| * util: Set PIPE_BUFFER_USAGE_FLUSH_EXPLICIT when calling ↵José Fonseca2009-06-301-1/+3
| | | | | | | | buffer_flush_mapped_range.
| * gallium: New PIPE_BUFFER_USAGE_FLUSH_EXPLICIT flag for ↵José Fonseca2009-06-303-7/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | buffer_flush_mapped_range. When a buffer was mapped for write and no explicit flush range was provided the existing semantics were that the whole buffer would be flushed, mostly for backwards compatability with non map-buffer-range aware code. However if the buffer was mapped/unmapped with nothing really written -- something that often happens with the vbo -- we were unnecessarily assuming that the whole buffer was written. The new PIPE_BUFFER_USAGE_FLUSH_EXPLICIT flag (based from ARB_map_buffer_range 's GL_MAP_FLUSH_EXPLICIT_BIT flag) allows to clearly distinguish the legacy usage from the nothing written usage.
| * intel: added null ptr checkBrian Paul2009-06-291-1/+1
| | | | | | | | This fixes a segfault seen with piglit's fdo20701 test.
| * progs/glsl: link with GLEW libraryBrian Paul2009-06-291-1/+1
| |
* | progs/trivial: test case for dlist statechange eliminationKeith Whitwell2009-06-302-0/+170
| | | | | | | | | | | | Creates a display list with redundant call to glShadeModel. View dlist contents with MESA_VERBOSE=list
* | mesa/dlist: restore missing SAVE_FLUSH_VERTICES in save_ShadeModelKeith Whitwell2009-06-301-0/+1
| | | | | | | | | | Reorganization of ShadeModel to avoid flushing vertices too often ended up never flushing vertices due to omitted line of code.
* | mesa/vbo: use _lookup_prim_by_nr for debuggingKeith Whitwell2009-06-304-4/+4
| | | | | | | | Switch over to specialized enum lookup for primitives
* | mesa: add debug printer for primitive nameKeith Whitwell2009-06-302-0/+28
| | | | | | | | | | | | Add a simple version of _mesa_lookup_enum_by_nr() which expects a primitive enum (GL_POINTS..GL_POLYGON). This avoids some annoying duplicates when looking up primitives, such as the GL_FALSE/GL_POINTS clash.
* | progs/glsl: link with GLEW libraryBrian Paul2009-06-301-1/+1
| | | | | | | | (cherry picked from commit b1f2f92d9b2d190d39fb1b5c919c59c9539a025a)
* | mesa/dlist: shortcircuit some redundant statechanges at compile timeKeith Whitwell2009-06-302-19/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | progs/util: make sure function pointers are initializedKeith Whitwell2009-06-291-1/+6
|/ | | | | Call Init() from CompileShaderFile, was previously only called for the Text version of this function.
* progs/glsl: compile with scons and glewKeith Whitwell2009-06-2927-1/+106
| | | | Get most of these working with scons.
* scons: Don't raise an exception when DXSDK is not found.José Fonseca2009-06-291-5/+3
| | | | | Unfortunately scons does not check if a tool exists before it invokes its generate function.
* scons: Disable optimizations only for gcc-4.2José Fonseca2009-06-281-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | gcc-4.2's optimizer has a strange bug where it looses code from inner loops in certain situations. For example, if the appearently innocent looking code below is compiled with gcc-4.2 -S -O1, the inner loop's code is missing from the outputed assembly. struct Size { unsigned width; }; struct Command { unsigned length; struct Size sizes[32]; }; extern void emit_command(void *command, unsigned length); void create_surface( struct Size size, unsigned faces, unsigned levels) { struct Command cmd; unsigned face; unsigned level; cmd.length = faces*levels*sizeof(cmd.sizes[0]); for(face = 0; face < faces; ++face) { for(level = 0; level < levels; ++level) { cmd.sizes[face*levels + level] = size; // This should generate a shrl statement, but the whole for body // disappears in gcc-4.2 -O1/-O2/-O3! size.width >>= 1; } } emit(&cmd, sizeof cmd.length + cmd.length); } Note that this is not specific to MinGW's gcc-4.2 crosscompiler (the version typically found in debian/ubuntu's mingw32 packages). gcc-4.2 on Linux also displays the same error. gcc-4.3 and above gets this correctly though. Updated MinGW debian packages with gcc-4.3 are available from http://people.freedesktop.org/~jrfonseca/debian/pool/main/m/
* scons: Use -Bsymbolic linker option.José Fonseca2009-06-281-0/+5
| | | | | | | | This prevents the error relocation R_X86_64_PC32 against symbol `_gl_DispatchTSD' can not be used when making a shared object; recompile with -fPIC when building on x86_64 architecture.
* docs: detect when too many varying vars are usedmesa_7_5_rc4Brian Paul2009-06-261-0/+1
|
* glsl: check number of varying variables against the limitBrian Paul2009-06-261-4/+9
| | | | | | Link fails if too many varying vars. (cherry picked from master, commit cc58fbcf2c5c88f406818db60910f537e03610d6)
* docs: fix typos, remove old text from relnotes fileBrian Paul2009-06-261-9/+2
|
* docs: bring over news updates from 7.4 branchBrian Paul2009-06-261-0/+15
|
* docs: bring in 7.4.3 and 7.4.4 release notes, newsBrian Paul2009-06-263-0/+149
|
* docs: increase max varying vars to 16Brian Paul2009-06-261-0/+1
|
* mesa: raise MAX_VARYING (number of shader varying vars) to 16Brian Paul2009-06-261-1/+1
| | | | | | 16 is the limit for now because of various 32-bit bitfields. (cherry picked from master, commit 4e762395ef7e8c332c16fd0c11025cfa52763a45)
* intel / DRI2: Additional flush of fake front-buffer to real front-bufferIan Romanick2009-06-261-0/+11
| | | | | | | | | | | To maintain correctness, the server will copy the real front-buffer to a newly allocated fake front-buffer in DRI2GetBuffersWithFormat. However, if the DRI2GetBuffersWithFormat is triggered by glViewport, this will copy stale data into the new buffer. Fix this by flushing the current fake front-buffer to the real front-buffer in intel_viewport. Fixes bug #22288.
* mesa: bump version to 7.5-rc4Brian Paul2009-06-262-2/+2
|
* docs: document for/continue bug fixBrian Paul2009-06-261-0/+1
|
* cell: PIPE_CAP_TGSI_CONT_SUPPORTED queryBrian Paul2009-06-261-0/+2
|
* softpipe: PIPE_CAP_TGSI_CONT_SUPPORTED queryBrian Paul2009-06-261-0/+2
|
* gallium: added PIPE_CAP_TGSI_CONT_SUPPORTEDBrian Paul2009-06-261-0/+1
|
* glsl: move/simplify error checking for 'return' statementsBrian Paul2009-06-261-22/+14
|
* glsl: overhaul 'return' statement handlingBrian Paul2009-06-263-215/+212
| | | | | | | A new node type (SLANG_OPER_RETURN_INLINED) is used to denote 'return' statements inside inlined functions which need special handling. All glean glsl1 tests pass for EmitContReturn=FALSE and TRUE.