summaryrefslogtreecommitdiff
path: root/src/mesa/vbo/vbo_exec_array.c
AgeCommit message (Collapse)Author
2010-01-29vbo: fix missing state validation bugsBrian Paul
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)
2010-01-29mesa: Warn when indices are out of bounds, but do not skip the draw in debug ↵Brian Paul
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)
2010-01-27mesa: fix int/uint comparison warningsBrian Paul
Reported by Karl Schultz.
2010-01-26vbo: if 'end' is out of bounds, clamp itBrian Paul
If we determine that the 'end' parameter to glDrawElements() is out of bounds, clamp it to the max legal index value.
2010-01-26vbo: clamp DrawElements start/end to max possible valuesBrian Paul
Some apps are sloppy with their start/end values. Clamp them to max possible values to prevent problems later.
2010-01-12vbo: Remove unnecessary header from vbo_exec_array.c.Vinson Lee
2009-11-17mesa: fix assorted compiler warningsBrian Paul
2009-10-14vbo: clean-ups, reformattingBrian Paul
2009-10-14mesa: added MESA_VERBOSE option 'draw' to debug glDrawArrays/Elements, etc.Brian Paul
2009-09-24Merge branch 'mesa_7_6_branch'Brian Paul
Conflicts: src/mesa/vbo/vbo_exec_array.c
2009-09-24vbo: limit number of warnings to 10Brian Paul
Otherwise some apps will emit tons of warnings.
2009-09-21vbo: added comment about max array indexBrian Paul
2009-09-21vbo: restore some lost warning outputBrian Paul
2009-09-21mesa: refine the error checking vbo_exec_DrawRangeElements()Brian Paul
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.
2009-09-21mesa: refine the error checking vbo_exec_DrawRangeElements()Brian Paul
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.
2009-09-08mesa: Add support for ARB_draw_elements_base_vertex.Eric Anholt
2009-09-01mesa: Make MultiDrawElements submit multiple primitives at once.Eric Anholt
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 <ian.d.romanick@intel.com>
2009-08-14vbo: call _mesa_valid_to_render()Brian Paul
2009-08-12vbo: use _mesa_is_bufferobj()Brian Paul
2009-08-12vbo: fix incorrect pointerBrian Paul
2009-08-12vbo: Avoid extra validation of DrawElements.Eric Anholt
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.
2009-06-09vbo: more glDrawElements debug code (disabled)Brian Paul
2009-06-03vbo: minor reformattingBrian Paul
2009-06-03vbo: move/refactor debug codeBrian Paul
2009-06-03vbo: added debug code to check array data validity (disabled)Brian Paul
2009-06-03vbo: tweak out-of-bounds VBO access error messageBrian Paul
Subtract 1 from _MaxElement to be clearer.
2009-05-22mesa: fix warning message in vbo_exec_DrawRangeElements()Brian Paul
2009-05-22mesa: use Elements() for loop limitBrian Paul
2009-05-22mesa: rename MAX_VERTEX_ATTRIBS to MAX_VERTEX_GENERIC_ATTRIBSBrian Paul
Be clearer that this is the number of generic vertex program/shader attributes, not counting the legacy attributes (pos, normal, color, etc).
2009-05-21vbo: fix build breakage...oopsBrian Paul
2009-05-21vbo: comments, whitespace clean-upsBrian Paul
2009-05-21Merge branch 'mesa_7_5_branch'Brian Paul
2009-05-21vbo: fix incorrect loop limit in bind_array_obj()Brian Paul
The generic_array[] is 16 elements in size, but the loop was doing 32 iterations. The out of bounds array write was clobbering the following inputs[] array but as luck would have it, that didn't matter.
2009-05-21mesa: use MAX_ values instead of literalsBrian Paul
2009-05-21mesa: added gl_array_object::Weight array fieldBrian Paul
We don't really implement vertex weights but in the VBO code this fixes and odd case for the legacy_array[] setup. Before, the vbo->draw_prims() call was always indicating that the vertex weight array was present/enabled when it really wasn't.
2009-05-21mesa: move gl_array_attrib::_MaxElement to gl_array_object::_MaxElementBrian Paul
This value is per array object.
2009-05-21vbo: s/8/MAX_TEXTURE_COORD_UNITS/Brian Paul
2009-05-07vbo: in glDraw[Range]Element() code, check for out of bounds indexesBrian Paul
No-op the bad drawing command rather than go out of bounds and render garbage. Print a warning to alert the developer to the bad drawing call.
2009-03-07vbo: make bind_array_obj() code a little more conciseBrian Paul
2009-03-02mesa: save some useful VBO debug/dump code (disabled)Brian Paul
2008-10-07mesa: replace GLuint with GLbitfield to be clearer about usageBrian Paul
Also, fix up some comments to be doxygen style.
2008-10-03mesa: avoid generating constant vertex attributes in fixedfunc programsKeith Whitwell
Keep track of enabled/active vertex attributes. Keep track of potential vertex program outputs. When generating fragment program, replace references to fragment attributes which are effectively non-varying and non-computed passthrough attributes with references to the new CURRENT_ATTRIB tracked state value. Only downside is slight ugliness in VBO code where we need to validate state twice in succession.
2008-08-26vbo: seed initial max_element value with a more likely candidateKeith Whitwell
2008-06-25mesa: point size arraysBrian Paul
2008-06-05mesa: added _mesa_DrawArrays, DrawElements, DrawRangeElements() wrappers for ↵Brian Paul
VBO funcs
2008-05-31mesa: Apply MSVC portability fixes from Alan Hourihane.José Fonseca
2008-04-11mesa: Fix glBegin-time test for invalid programs/shaders.Brian Paul
Cherry-picked from master.
2007-07-04Be more consistant with paths in #includes. Eventually, eliminate a bunch ↵Brian
of -I flags.
2007-02-14fix typo preventing generic arrays from working with ARB_vp (bug #9952)Roland Scheidegger
2007-02-09 array overflow fixZou Nan hai