summaryrefslogtreecommitdiff
path: root/src/mesa/pipe/draw/draw_vertex_cache.c
AgeCommit message (Collapse)Author
2008-01-25gallium: replace loop w/ memset in draw_vertex_cache_invalidate()Brian
2008-01-25gallium: better flush logic in draw moduleBrian
This is the other half of Keith's draw/flush patch. There are now 5 flush flags to control what's flushed (post-xform vertex cache, prim cache, vbuf, etc). The gears slow-down in this part of the patch was due to the cull stage not getting invoked. It was unconditional before, but is now gated by 'need_det'. But it also needs to be gated by draw->rasterizer->cull_mode. Gears uses back-face culling.
2008-01-23gallium: overhaul usage of vertex_info in draw module.Brian
Remove all dependencies on vertex_info, except for draw_vbuf. Drawing stages now strictly operate on post-transformed vertices and don't know anything about hw vertices. Use vertex program output info for two-side/flat/etc stages. Temporarily disable vbuf module in softpipe driver.
2007-11-08Reorganize user-space vertex fields in draw_context into 'user' group.Brian
This sub-struct collects the incoming user-provided data/pointers in one place. Ex: draw->mapped_vbuffer becomes draw->user.vbuffer, etc.
2007-11-07Use a consistent number to identify undefined vertices.José Fonseca
2007-10-25set vcache.referenced bit alwayskeithw
2007-10-23Fix vertex cache bug that allows multiple vertices to fall into the same slot.Brian
Need to set the slot's bit in draw->vcache.referenced even when there was a cache hit since flushing the primitive buffer will have cleared the bitfield but not the cache's vertex indexes. Fixes a bug found when drawing long triangle fans but could be hit by other prim types as well. An alternate fix would be to call draw_vertex_cache_invalidate() from draw_vertex_cache_unreference().
2007-10-23In get_vertex(), slot was computed using & 31. Replace with % VCACHE_SIZE.Brian
Also, assert that index is not too large before indexing array.
2007-09-27Make flushing more lazy in the draw module.Keith Whitwell
2007-09-25First attempt at building vertex buffers post-clip.Keith Whitwell
Build a buffer of contigous vertices and indices at the backend of our software transformation/clipping path. This will become the mechanism for emitting buffers of vertices to rasterization hardware. This is similar to but not the same as the post-transform vertex cache. In particular, these vertices are subject to clipping, culling, poly offset, etc. The vertices emitted will all be used by hardware. TODOs include the actual transformation to hardware vertex formats, moving this out of softpipe to somewhere more useful and allowing >1 primitive to share the generated VB.
2007-08-27Split out vertex shader/cache/fetch functionality from draw_prim.cKeith Whitwell