summaryrefslogtreecommitdiffstats
path: root/src/mesa/vbo
Commit message (Collapse)AuthorAgeFilesLines
* vbo: fix missing state validation bugsBrian Paul2010-01-291-14/+14
| | | | | | | | | | | | | | | Commit 2708ddfb06a36d8568e2aa130bf1f7d551fcd309 caused a few regressions. We need to check/validate state after calling bind_arrays() because it might set the _NEW_ARRAYS flag if the varying VP inputs change. The symptom of this problem was some attribute arrays being ignored (or interpreted as constant-valued) in glDrawRangeElements or glMultiDrawElements. A follow-on patch will add some additional asserts to try to catch this kind of thing in the future. (cherry picked from commit 3cba779e16935f7c3a0bfd8af48bd5e015068e96)
* mesa: Warn when indices are out of bounds, but do not skip the draw in debug ↵Brian Paul2010-01-291-3/+1
| | | | | | | | | | | | builds. The driver (or preferably the hardware) should handle out of bounds indices. If there are problems then it's better to detect those in the debug builds. (cherry picked from commit e3257912e006120f6ab611e77005eed1a464030a)
* mesa: fix int/uint comparison warningsBrian Paul2010-01-272-6/+8
| | | | Reported by Karl Schultz.
* vbo: if 'end' is out of bounds, clamp itBrian Paul2010-01-261-0/+4
| | | | | If we determine that the 'end' parameter to glDrawElements() is out of bounds, clamp it to the max legal index value.
* vbo: clamp DrawElements start/end to max possible valuesBrian Paul2010-01-261-0/+10
| | | | | Some apps are sloppy with their start/end values. Clamp them to max possible values to prevent problems later.
* vbo: Remove unnecessary headers from vbo_exec.c.Vinson Lee2010-01-121-3/+0
|
* vbo: Remove unnecessary header from vbo_exec_array.c.Vinson Lee2010-01-121-1/+0
|
* vbo: Remove unnecessary header from vbo_exec_draw.c.Vinson Lee2010-01-121-1/+0
|
* vbo: Remove unnecessary headers from vbo_save.c.Vinson Lee2010-01-121-2/+0
|
* vbo: Remove unnecessary header from vbo_save_loopback.c.Vinson Lee2010-01-111-1/+0
|
* vbo: Remove unnecessary header from vbo_split_copy.c.Vinson Lee2010-01-111-3/+0
|
* Merge branch 'mesa_7_6_branch' into mesa_7_7_branchBrian Paul2009-12-111-12/+21
|\
| * vbo: fix array index out of bounds error, and fix evaluator prioritiesBrian Paul2009-12-081-12/+21
| | | | | | | | | | | | | | Fixes bug 25525. Plus, the GL_NV_vertex_program evaluators alias and override the convential evaluator maps, so set their state after the conventional maps.
* | vbo: make flush recursion check code per-contextBrian Paul2009-12-012-5/+10
| | | | | | | | This fixes invalid failed assertions when running multi-threaded apps.
* | vbo: added recursion check in vbo_exec_FlushVertices()Brian Paul2009-11-191-1/+17
| |
* | mesa: fix assorted compiler warningsBrian Paul2009-11-171-1/+1
| |
* | Merge branch 'mesa_7_6_branch'Brian Paul2009-11-043-1/+11
|\| | | | | | | | | | | Conflicts: src/mesa/drivers/windows/gdi/mesa.def
| * vbo: fix out-of-bounds array accessBrian Paul2009-11-043-1/+11
| | | | | | | | | | | | | | | | | | | | | | | | The exec->vtx.inputs[] array was being written past its end. This was clobbering the following vbo_exec_context::eval state. Probably not noticed since evaluators and immediate mode rendering don't happen at the same time. Fixed the loop in vbo_exec_vtx_init(). Changed the size of the vbo_exec_context::vtx.arrays[] array. Added a bunch of debug-build assertions. Issue found by Vinson Lee.
* | mesa: fix up vbo commentsBrian Paul2009-10-221-8/+14
| |
* | vbo: clean-ups, reformattingBrian Paul2009-10-141-25/+24
| |
* | mesa: added MESA_VERBOSE option 'draw' to debug glDrawArrays/Elements, etc.Brian Paul2009-10-141-0/+29
| |
* | mesa: rename display list functionsBrian Paul2009-10-071-6/+6
| | | | | | | | | | _mesa_alloc_instruction() sounded like it was related to vertex/fragment program instructions, but it wasn't.
* | mesa/main: New feature FEATURE_beginend.Chia-I Wu2009-09-303-1/+117
| | | | | | | | | | This feature corresponds to the Begin/End paradigm. Disabling this feature also eliminates the use of GLvertexformat completely.
* | mesa/main: Make FEATURE_dlist follow feature conventions.Chia-I Wu2009-09-302-8/+2
| | | | | | | | | | As shown in mfeatures.h, this allows users of dlist.h to work without knowing if the feature is available.
* | mesa/main: Make FEATURE_evaluators follow feature conventions.Chia-I Wu2009-09-302-17/+13
| | | | | | | | | | As shown in mfeatures.h, this allows users of eval.h to work without knowing if the feature is available.
* | mesa/main: New feature FEATURE_arrayelt.Chia-I Wu2009-09-302-2/+4
| | | | | | | | This allows the removal of AEcontext.
* | Merge branch 'mesa_7_6_branch'Brian Paul2009-09-241-19/+25
|\| | | | | | | | | | | Conflicts: src/mesa/vbo/vbo_exec_array.c
| * vbo: limit number of warnings to 10Brian Paul2009-09-241-18/+25
| | | | | | | | Otherwise some apps will emit tons of warnings.
| * mesa: refine the error checking vbo_exec_DrawRangeElements()Brian Paul2009-09-211-4/+31
| | | | | | | | | | | | | | | | | | | | If the 'end' index is out of bounds issue a warning as before. But instead of just no-op'ing the draw call, examine the actual array indices to see if they're OK. If the max array index is out of bounds, issue another warning and no-op the draw call. Otherwise, draw normally. This is a debug build-only feature since it could impact performance. This "fixes" the missing torus in the OGL Distilled / Picking demo.
* | vbo: added comment about max array indexBrian Paul2009-09-211-0/+6
| |
* | vbo: restore some lost warning outputBrian Paul2009-09-211-4/+5
| |
* | vbo: disable the GL_ARB_draw_elements_base_vertex rebase pathBrian Paul2009-09-211-1/+4
| | | | | | | | | | | | | | | | | | | | | | This was introduced with commit 92d7ed8a20d4a018ce5324e6537ae7b478b9e5bf. It causes rendering of stray polygons (with sw rendering at least) when running the OGL Distilled / Picking demo (click on an object). This needs additional debugging to fix/restore. Found one suspect thing: in _tnl_draw_prims() there's some mixed signed/ unsigned arithmetic/comparing at line 422 that may be incorrect.
* | mesa: refine the error checking vbo_exec_DrawRangeElements()Brian Paul2009-09-211-6/+33
| | | | | | | | | | | | | | | | | | | | If the 'end' index is out of bounds issue a warning as before. But instead of just no-op'ing the draw call, examine the actual array indices to see if they're OK. If the max array index is out of bounds, issue another warning and no-op the draw call. Otherwise, draw normally. This is a debug build-only feature since it could impact performance. This "fixes" the missing torus in the OGL Distilled / Picking demo.
* | mesa: Add support for ARB_draw_elements_base_vertex.Eric Anholt2009-09-086-43/+200
|/
* mesa: Make MultiDrawElements submit multiple primitives at once.Eric Anholt2009-09-012-0/+162
| | | | | | | | | Previously, MultiDrawElements just called DrawElements a bunch of times. By sending several primitives down the pipeline at once, we avoid a bunch of validation. On my GL demo, this improves fps by 2.5% (+/- .41%) and reduces CPU usage by 70.5% (+/- 2.9%) (n=3). Reviewed by: Ian Romanick <[email protected]>
* vbo: Fix array pointer calculation for MapBufferRange-mapped vertex data.Eric Anholt2009-08-281-1/+3
| | | | | We would end up with the offset from the start of the mapping rather than the offset from the start of the buffer.
* Merge branch 'mesa_7_5_branch'Brian Paul2009-08-261-0/+1
|\
| * vbo: fix divide by zero exceptionBrian Paul2009-08-241-1/+1
| | | | | | | | Fixes bug 23489.
* | vbo: fix divide by zero exceptionBrian Paul2009-08-241-1/+1
| | | | | | | | Fixes bug 23489.
* | vbo: call _mesa_valid_to_render()Brian Paul2009-08-141-4/+2
| |
* | vbo: call _mesa_valid_to_render()Brian Paul2009-08-141-20/+1
| |
* | vbo: use _mesa_is_bufferobj()Brian Paul2009-08-124-18/+21
| |
* | vbo: fix incorrect pointerBrian Paul2009-08-121-1/+1
| |
* | vbo: Avoid extra validation of DrawElements.Eric Anholt2009-08-127-75/+94
| | | | | | | | | | | | | | | | | | | | | | | | | | This saves mapping the index buffer to get a bounds on the indices that drivers just drop on the floor in the VBO case (cache win), saves a bonus walk of the indices in the CheckArrayBounds case, and other miscellaneous validation. On intel it's a particularly a large win (50-100% in my app) because even though we let the indices stay in both CPU and GPU caches, we still end up waiting for the GPU to be done with the buffer before reading from it. Drivers that want the min/max_index fields must now check index_bounds_valid and use vbo_get_minmax_index before using them.
* | vbo: Fix build on windows.Michal Krol2009-07-301-1/+1
| |
* | Merge branch 'mesa_7_5_branch'Brian Paul2009-07-131-0/+5
|\|
| * vbo: fix vbo/dlist memory leakBrian Paul2009-07-101-0/+5
| | | | | | | | Based on a patch by [email protected]
* | mesa/vbo: always recalculate min_index and max_index when splitting verticesMaciej Cencora2009-07-081-26/+10
| |
* | Merge branch 'mesa_7_5_branch'Jakob Bornecrantz2009-07-034-24/+38
|\| | | | | | | | | | | Conflicts: src/mesa/main/dlist.c src/mesa/vbo/vbo_save_api.c
| * mesa/vbo: fix compile and replay of nodes ending in a FALLBACKKeith Whitwell2009-06-301-13/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.