summaryrefslogtreecommitdiff
path: root/src/mesa/vbo
AgeCommit message (Collapse)Author
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-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-21vbo: return VP_NONE from get_program_mode() if running fixed-func vertex programBrian Paul
If we're running a vertex program to emulated fixed-function, we still need to treat vertex arrays/attributes as if we're in fixed-function mode. This should probably be back-ported to Mesa 7.5 after a bit more testing.
2009-05-21vbo: move vp_mode enum to vbo_exec.h, use enum instead of GLuintBrian Paul
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-07mesa: move the NullBufferObj from GLcontext to gl_shared_stateBrian Paul
Since shared array objects may point to the null/default buffer object, the null/default buffer object should be part of the shared state.
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-05-07mesa: use _mesa_sizeof_type() in vbo split codeBrian Paul
2009-05-07mesa: vbo code reformatting, clean-up, commentsBrian Paul
2009-05-07mesa: in vbo split code, map buffers read-only, not write-onlyBrian Paul
And use GL_ELEMENT_ARRAY_BUFFER where appropriate.
2009-04-16vbo: cache last dlist vertex in malloced memoryKeith Whitwell
Avoids repeated mapping of the VBO buffer on display list replay. We need access to the final vertex in order to update the GL current attrib values.
2009-03-15vbo: Silence integer-to-pointer warnings.Michal Krol
2009-03-09vbo: yet tighter still usage of FLUSH_NEED_CURRENTKeith Whitwell
Previous change broke redbook/polys and probably others. I'm fairly sure that drivers like r300 don't need to touch ctx->Driver.NeedVertices, but this code is incredibly fragile and I'm not confident about removing it from there. Hopefully this gets things working again.
2009-03-09vbo: stricter checks on Driver.NeedFlushKeith Whitwell
This variable is being used in the r300 driver to trigger a flush under circumstances unrelated to the use in the vbo module. Tighten up the checks in vbo so as to avoid conflict with r300. Reported by Maciej Cencora <m.cencora@gmail.com>
2009-03-07mesa: s/int/GLsizeiptr/ to silence warning with 64-bit buildBrian Paul
2009-03-07vbo: make bind_array_obj() code a little more conciseBrian 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-04Merge commit 'origin/master' into gallium-map-rangeJosé Fonseca
2009-03-04vbo: use FLUSH_UPDATE_CURRENT flag to indicate whether the vbo module is activeKeith Whitwell
Add asserts for expected values on wakeup and flush. Remove cases where this flag is set or cleared except when waking up and flushing vbo module.
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: missing line from previous commitKeith Whitwell
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-03-03mesa: Add BeginVertices driver callKeith Whitwell
Provides notification to the VBO modules prior to the first immediate call. Pairs with FlushVertices()
2009-03-02mesa: save some useful VBO debug/dump code (disabled)Brian Paul
2009-02-11mesa: get rid of _math_init()Brian Paul
Only VBO uses the evaluator code so call _math_init_eval() there. Only TNL uses the transform/translate code so call _math_init_transformation() and _math_init_translate9) there. This is a step toward resolving some symbol collisions between Mesa's and gallium's x86 codegen. Have VBO and TNL modules call _math_init_transformation()
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-31mesa: display list clean-upsBrian
Rename some structs and fields to be more consistant with the rest of mesa.
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-07mesa: update state after binding vertex list in dlist pathKeith Whitwell
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-10-03mesa: add new internal state for tracking current vertex attribsKeith Whitwell
2008-09-26Merge commit 'origin/master' into HEADKeith Whitwell
Conflicts: src/mesa/vbo/vbo.h src/mesa/vbo/vbo_exec_api.c src/mesa/vbo/vbo_exec_draw.c
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.