| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
When compiling a display list containing a CallList, it is necessary to
invalidate any assumption about the GL state after the recursive call
completes.
|
|\
| |
| |
| | |
Need this to pick up fixes for per-vertex materials.
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| | |
Signed-off-by: Arthur HUILLET <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| | |
|
| |
| |
| |
| | |
As prescribed by ARB_map_buffer_range.
|
| |
| |
| |
| | |
buffer_flush_mapped_range.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| | |
This fixes a segfault seen with piglit's fdo20701 test.
|
| |
| |
| |
| |
| | |
Reorganization of ShadeModel to avoid flushing vertices too often
ended up never flushing vertices due to omitted line of code.
|
| |
| |
| |
| | |
Switch over to specialized enum lookup for primitives
|
| |
| |
| |
| |
| |
| | |
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.
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
Link fails if too many varying vars.
(cherry picked from master, commit cc58fbcf2c5c88f406818db60910f537e03610d6)
|
|
|
|
|
|
| |
16 is the limit for now because of various 32-bit bitfields.
(cherry picked from master, commit 4e762395ef7e8c332c16fd0c11025cfa52763a45)
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Fixes glean "function with early return (3)" case (when EmitContReturn=FALSE).
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
This is no longer needed since we added the new
_slang_loop_contains_continue_or_break() function/test.
|
|
|
|
| |
The glean "function with early return (1)" test passes now.
|
| |
|
| |
|
|
|
|
| |
Needed for "remove early returns" transformation.
|
|
|
|
| |
This will need more testing, but no regressions seen so far.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|