summaryrefslogtreecommitdiff
path: root/src/mesa/vbo/vbo_exec_draw.c
AgeCommit message (Collapse)Author
2009-11-04Merge branch 'mesa_7_6_branch'Brian Paul
Conflicts: src/mesa/drivers/windows/gdi/mesa.def
2009-11-04vbo: fix out-of-bounds array accessBrian Paul
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.
2009-09-30mesa/main: New feature FEATURE_beginend.Chia-I Wu
This feature corresponds to the Begin/End paradigm. Disabling this feature also eliminates the use of GLvertexformat completely.
2009-08-28vbo: Fix array pointer calculation for MapBufferRange-mapped vertex data.Eric Anholt
We would end up with the offset from the start of the mapping rather than the offset from the start of the buffer.
2009-08-26Merge branch 'mesa_7_5_branch'Brian Paul
2009-08-24vbo: fix divide by zero exceptionBrian Paul
Fixes bug 23489.
2009-08-24vbo: fix divide by zero exceptionBrian Paul
Fixes bug 23489.
2009-08-12vbo: use _mesa_is_bufferobj()Brian 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-07-03Merge branch 'mesa_7_5_branch'Jakob Bornecrantz
Conflicts: src/mesa/main/dlist.c src/mesa/vbo/vbo_save_api.c
2009-07-02vbo: If MapBufferRange fails, try MapBuffer instead.Corbin Simpson
Fixes segfaults with radeon winsys. (Probably libdrm_radeon doing something that it shouldn't.)
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-30Merge branch 'mesa_7_5_branch'Brian Paul
Conflicts: src/mesa/vbo/vbo_exec_draw.c
2009-06-30mesa: Set FLUSH_EXPLICIT_BIT flags when calling FlushMappedBufferRange.José Fonseca
As prescribed by ARB_map_buffer_range.
2009-06-30mesa/vbo: use _lookup_prim_by_nr for debuggingKeith Whitwell
Switch over to specialized enum lookup for primitives
2009-05-22vbo: asst. reformatting, clean-upsBrian Paul
2009-05-22vbo: fix crash in vbo_exec_bind_arrays()Brian Paul
When a vertex shader uses generic vertex attribute 0, but not gl_Vertex, we need to set attribute[16] to point to attribute[0]. We were setting the attribute size, but not the pointer. Fixes crash in glsl/multitex.c when using the VertCoord attribute instead of gl_Vertex.
2009-03-07mesa: s/int/GLsizeiptr/ to silence warning with 64-bit buildBrian Paul
2009-03-04mesa: Follow ARB_map_buffer_range more stricly.José Fonseca
Namelly, FlushMappedBufferRange takes a subrange relative to the original range.
2009-03-04Merge commit 'origin/master' into gallium-map-rangeJosé Fonseca
2009-03-04vbo: second attempt - avoid getting buffer_ptr and buffer_map out of syncKeith Whitwell
2009-03-04Revert "vbo: avoid getting buffer_ptr and buffer_map out of sync"Keith Whitwell
This fixed a minor bug but broke everything else. This reverts commit 579ef8ab1984d895867f547afa60b3bec4c4599a.
2009-03-04vbo: avoid getting buffer_ptr and buffer_map out of syncKeith Whitwell
2009-03-04mesa: Implement and use FlushMappedBufferRange.José Fonseca
2009-03-03mesa: Massage the interface to more closely resemble ARB_map_buffer_rangeJosé Fonseca
2009-03-03Merge commit 'origin/gallium-0.1'Keith Whitwell
Conflicts: scons/gallium.py src/gallium/auxiliary/pipebuffer/pb_buffer_fenced.c src/gallium/include/pipe/p_defines.h src/mesa/vbo/vbo_exec_api.c src/mesa/vbo/vbo_exec_draw.c
2009-03-03vbo: use MapBufferRange where availableKeith Whitwell
Previously would have to allocate a new VBO after firing a draw command as subsequent call to Map() on old VBO might block if the driver had submitted the commands to hardware.
2009-02-09mesa: merge gallium-0.2 into gallium-master-mergeBrian Paul
Merge commit 'origin/gallium-0.2' into gallium-master-merge Conflicts: Makefile docs/relnotes-7.4.html docs/relnotes.html src/mesa/drivers/dri/i965/brw_wm.h src/mesa/main/imports.c src/mesa/main/mtypes.h src/mesa/main/texcompress.c src/mesa/main/texenvprogram.c src/mesa/main/version.h src/mesa/vbo/vbo_exec_api.c src/mesa/vbo/vbo_save_draw.c
2009-02-02mesa: fix GLSL issue preventing use of all 16 generic vertex attributesBrian Paul
Only 15 actually worked before since we always reserved generic[0] as an alias for vertex position. The case of vertex attribute 0 is tricky. The spec says that there is no aliasing between generic vertex attributes 0..MAX_VERTEX_ATTRIBS-1 and the conventional attributes. But it also says that calls to glVertexAttrib(0, v) are equivalent to glVertex(v). The distinction seems to be in glVertex-mode versus vertex array mode. So update the VBO code so that if the shader uses generic[0] but not gl_Vertex, route the attribute data set with glVertex() to go to shader input generic[0]. No change needed for the glDrawArrays/Elements() path. This is a potentially risky change so regressions are possible. All the usual tests seem OK though.
2009-01-23mesa: set the new array->Format field in VBO codeBrian Paul
Should help to solve failed assertion in i965 driver (see bug 19708)
2008-10-10Merge commit 'origin/gallium-0.1' into gallium-0.2Keith Whitwell
Conflicts: src/gallium/auxiliary/gallivm/instructionssoa.cpp src/gallium/auxiliary/gallivm/soabuiltins.c src/gallium/auxiliary/rtasm/rtasm_x86sse.c src/gallium/auxiliary/rtasm/rtasm_x86sse.h src/mesa/main/texenvprogram.c src/mesa/shader/arbprogparse.c src/mesa/shader/prog_statevars.c src/mesa/state_tracker/st_draw.c src/mesa/vbo/vbo_exec_draw.c
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-09-25mesa: fix some VBO buffer object issuesBrian Paul
The VBO module may use a real VBO or a malloc'd buffer for vertex storage. Be careful not to accidentally replace the later with the former when drawing. Check if using a real VBO at destroy time to prevent a double-free.
2008-09-23vbo: unmap and remap immediate vbo before/after each draw.Keith Whitwell
Also use BufferData(NULL) to get fresh storage and avoid synchronous operation where we would have to flush and wait for the fence after each draw because of the map. This will chew through a whole load of buffer space on small draws, so it isn't a proper solution. Need to support a no-fence or append mapping mode to do this right, or use user buffers.
2008-09-23added vbo_use_buffer_objects() to specify that immediate mode data should be ↵Brian
put into bufferobjects
2008-09-23mesa: s/GL_POLYGON+1/PRIM_OUTSIDE_BEGIN_END/Brian Paul
(cherry picked from commit 8a369b909a6648ae7a5a0c2dcb972a2f96f99a80)
2008-09-04mesa: improved gl_buffer_object reference countingBrian Paul
Use new _mesa_reference_buffer_object() function wherever possible. Fixes buffer object/display list crash reported in ParaView.
2008-09-04mesa: improved gl_buffer_object reference countingBrian Paul
Use new _mesa_reference_buffer_object() function wherever possible. Fixes buffer object/display list crash reported in ParaView.
2008-06-18mesa: s/GL_POLYGON+1/PRIM_OUTSIDE_BEGIN_END/Brian Paul
2008-05-16fix an attr/src mix-up when setting-up/binding vertex arraysBrian Paul
This fixes problems with incorrect material coefficients when glMaterial is called per-vertex.
2008-05-16fix an attr/src mix-up when setting-up/binding vertex arraysBrian Paul
This fixes problems with incorrect material coefficients when glMaterial is called per-vertex.
2007-12-18vbo: unmap and remap immediate vbo before/after each draw.Keith Whitwell
Also use BufferData(NULL) to get fresh storage and avoid synchronous operation where we would have to flush and wait for the fence after each draw because of the map. This will chew through a whole load of buffer space on small draws, so it isn't a proper solution. Need to support a no-fence or append mapping mode to do this right, or use user buffers.
2007-08-17added vbo_use_buffer_objects() to specify that immediate mode data should be ↵Brian
put into bufferobjects
2007-07-04Be more consistant with paths in #includes. Eventually, eliminate a bunch ↵Brian
of -I flags.
2007-02-26Fix #10071 - wrong max_index in vbo draw_prims. (Papadakos Panagiotis)Aapo Tahkola
2007-01-25re-fix bug 9062 in vbo codeRoland Scheidegger
2006-10-30Move edgeflag into the VERT_ATTRIB_SEVEN slot. This means that ourKeith Whitwell
NV_vertex_program implementation has slightly incorrect aliasing behaviour. I think this is reasonable given the simplification and the fact that the mainstream ARB_vp continues to have the correct behaviour.
2006-10-30better handling of current attributes. Trivial dlist and varray tests workKeith Whitwell
2006-10-29Checkpoint of new vbo-building code. Currently builds regular arraysKeith Whitwell
rather than VBO's - VBOs are easy but need to look closer at the driver interface. The trivial/tri demo works.