summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2009-06-30i965: comments and a new assertionBrian Paul
2009-06-30mesa/vbo: fix compile and replay of nodes ending in a FALLBACKKeith Whitwell
Where vbo save nodes are terminated with a call to DO_FALLBACK(), as in the case of a recursive CallList which is itself within a Begin/End pair, there two problems: 1) The display list node's primitive information was incorrect, stating the cut-off prim had zero vertices 2) On replay, we would get confused by a primitive that started in a node, but was terminated by individual opcodes. This change fixes the first problem by correctly terminating the last primitive on fallback, and the second by forcing the display list to use the Loopback path, converting all nodes into immediate-mode rendering. The loopback fix is a performance hit, but avoiding this would require a fairly large rework of this code.
2009-06-30i915: Fix assertion failure on remapping a non-BO-backed VBO.Eric Anholt
Failure to set the obj->Pointer back to null tripped up the assertion. Bug #22428.
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-30Merge branch 'mesa_7_5_branch' into dlist-statechange-shortcircuitKeith Whitwell
Need this to pick up fixes for per-vertex materials.
2009-06-30mesa: remove whitespaceKeith Whitwell
2009-06-30mesa: remove dead constant pointsize code from ffvertex_prog.cKeith Whitwell
2009-06-30mesa: remove dead vertex fog code from ffvertex_prog.cKeith Whitwell
2009-06-30mesa: fix material inputs in ffvertex_prog.cKeith Whitwell
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.
2009-06-30Merge branch 'mesa_7_5_branch'Brian Paul
Conflicts: src/mesa/vbo/vbo_exec_draw.c
2009-06-30gallium: remove the pipe_sampler_state::shadow_ambient fieldBrian Paul
This was only present for the sake of GL_ARB_shadow_ambient which we never implemented in Gallium. If we someday want GL_ARB_shadow_ambient we can implement it in the state tracker by adding a MAD after the relevant TEX instructions.
2009-06-30mesa: fix transform_points_3d_no_rot using undefined values in %xmm0Arthur HUILLET
Signed-off-by: Arthur HUILLET <arthur.huillet@free.fr>
2009-06-30glx: plug a leakKristof Ralovich
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.
2009-06-30glx: fix null pointer dereference segfault (bug 22546)Brian Paul
2009-06-30mesa: Set FLUSH_EXPLICIT_BIT flags when calling FlushMappedBufferRange.José Fonseca
As prescribed by ARB_map_buffer_range.
2009-06-30util: Set PIPE_BUFFER_USAGE_FLUSH_EXPLICIT when calling ↵José Fonseca
buffer_flush_mapped_range.
2009-06-30gallium: New PIPE_BUFFER_USAGE_FLUSH_EXPLICIT flag for ↵José Fonseca
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.
2009-06-30st/gl: Add stubs for CompressedTexSubImage[1D|3D]Jakob Bornecrantz
2009-06-30st/gl: Add support for glCompressedTexSubImageJakob Bornecrantz
2009-07-01util: Increase OutputDebugStringA to 4k.José Fonseca
According to http://unixwiz.net/techtips/outputdebugstring.html that's how big the buffer is. The 512bytes limitation is in kernel mode.
2009-07-01mesa: Unbind depth/stencil surface from pipe_framebuffer when none is attached.José Fonseca
2009-07-01st/wgl: dummy implementation of wgl swapinterval extensionKeith Whitwell
Required as some applications retrieve and call these functions regardless of the fact that we don't advertise the extension and further more the results of wglGetProcAddress are NULL.
2009-07-01gallium: fix the front face semanticsZack Rusin
mesa allocates both frontface and pointcoord registers within the fog coordinate register, by using swizzling. to make it cleaner and easier for drivers we want each of them in its own register. so when doing compilation from the mesa IR to tgsi allocate new registers for both and add new semantics to the respective declarations.
2009-07-01wgl: Optimize wglGetProcAddress.José Fonseca
Do linear search only if prefix matches.
2009-06-30i915: Fix assertion failure on remapping a non-BO-backed VBO.Eric Anholt
Failure to set the obj->Pointer back to null tripped up the assertion. Bug #22428. (cherry picked from commit 57a06d3a48c9af1067ec05e3ad96c58f4b9b99be)
2009-06-30mesa/vbo: fix compile and replay of nodes ending in a FALLBACKKeith Whitwell
Where vbo save nodes are terminated with a call to DO_FALLBACK(), as in the case of a recursive CallList which is itself within a Begin/End pair, there two problems: 1) The display list node's primitive information was incorrect, stating the cut-off prim had zero vertices 2) On replay, we would get confused by a primitive that started in a node, but was terminated by individual opcodes. This change fixes the first problem by correctly terminating the last primitive on fallback, and the second by forcing the display list to use the Loopback path, converting all nodes into immediate-mode rendering. The loopback fix is a performance hit, but avoiding this would require a fairly large rework of this code.
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/vbo: use _lookup_prim_by_nr for debuggingKeith Whitwell
Switch over to specialized enum lookup for primitives
2009-06-30mesa: add debug printer for primitive nameKeith Whitwell
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.
2009-06-30identity: Create a drm_api wrapperJakob Bornecrantz
2009-06-30drm/st: Return drm_api struct from a functionJakob Bornecrantz
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-29softpipe: use shadow_compare4() to compare texcoord to four texture samplesBrian Paul
2009-06-29softpipe: pass sampler state to shadow_compare()Brian Paul
2009-06-29nouveau: Expect right params to tex_transfer_destroy().Younes Manton
Never crashed on x86, ptx is in the same stack slot in either case. Thanks to Bob Gleitsmann for catching this.
2009-06-29nouveau: Turn off debug cannon.Younes Manton
2009-06-29intel: Enable EXT_gpu_program_parameters.Eric Anholt
There doesn't appear to be any driver impact for enabling this, and tests/prog_parameter passes.
2009-06-29Merge branch 'mesa_7_5_branch'Brian Paul
2009-06-29gallium/draw: sketch out some missing pointcoord codeBrian Paul
The gl_PointCoord attribute is currently expected to be in the fog coord register's z/w components. This was never totally fleshed out though. This is just some placeholder code.
2009-06-29st/mesa: enable GL_ARB_framebuffer_objectBrian Paul
All gallium drivers should be able to support mixed-size color/depth/stencil buffers. If not, we'll need a new PIPE_CAP_ query.
2009-06-29mesa: check for ARB_framebuffer_object for GL_TEXTURE_STENCIL_SIZE_EXT queryBrian Paul
2009-06-29mesa: alphabetize linesBrian Paul
2009-06-29intel: added null ptr checkBrian Paul
This fixes a segfault seen with piglit's fdo20701 test.
2009-06-29Revert "intel: Remove unneded pthread mutex in LOCK_HARDWARE."Eric Anholt
This reverts commit de447afff26706e3bf8bdcd5cfb8b1daf49b4b21 but puts the lock under DRI1-only. From keithw: > It's there because the DRI1 code doesn't actually achieve the mutexing > which it looks as if it should. For multi-threaded applications it was > always possible to get two threads inside locked regions -- I have no > idea how, but it certainly was and presumably still is possible.
2009-06-29intel: Move note_unlock() implementation to the one place it's needed.Eric Anholt
2009-06-29intel: Remove unneded pthread mutex in LOCK_HARDWARE.Eric Anholt
This would cause LOCK_HARDWARE to mutex all contexts in this process on both DRI1 and DRI2. On DRI1, LOCK_HARDWARE already does it for all processes on the system. On DRI2, LOCK_HARDWARE doesn't, but there shouldn't be any state outside the context that needs any additional protection. Notably, the bufmgr is protected by its own mutex and not LOCK_HARDWARE. This code was originally introduced with the i915tex code dump, so it's not clear what it was there for.
2009-06-29intel: Make LOCK_HARDWARE recursive to avoid hand-rolling recursiveness.Eric Anholt
2009-06-26glsl: check number of varying variables against the limitBrian Paul
Link fails if too many varying vars. (cherry picked from master, commit cc58fbcf2c5c88f406818db60910f537e03610d6)