summaryrefslogtreecommitdiff
path: root/src/mesa/vbo
AgeCommit message (Collapse)Author
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-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-06-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). (cherry picked from commit 4a95185c9f30c2de7a03bb1a0653f51b53b1111d)
2009-06-22vbo: 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. (cherry picked from commit dda82137d28aba846dda73da230871c115e30aaf)
2009-06-11vbo: fix assertion, #define IMM_BUFFER_NAMEBrian Paul
This was sometimes seen when Glean exited upon test failure when using Gallium.
2009-06-08mesa/vbo: drop all references to vbo on destroyKeith Whitwell
We were adding references to the input arrays, but failing to drop them on destruction. This could lead to a 64kb buffer being leaked each context destruction.
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-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-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.
2008-09-23added vbo_use_buffer_objects() to specify that immediate mode data should be ↵Brian
put into bufferobjects
2008-09-23vbo: seed initial max_element value with a more likely candidateKeith Whitwell
(cherry picked from commit 026e7731e549e0777c010348460fd48b3d75a843)
2008-09-23mesa: s/GL_POLYGON+1/PRIM_OUTSIDE_BEGIN_END/Brian Paul
(cherry picked from commit 8a369b909a6648ae7a5a0c2dcb972a2f96f99a80)
2008-09-23mesa: Apply MSVC portability fixes from Alan Hourihane.José Fonseca
2008-09-21mesa: point size arraysBrian Paul
2008-09-21mesa: refactor: move #define FEATURE flags into new mfeatures.h fileKeith Whitwell
Also, check the FEATURE flags in many places. (cherry picked from commit 40d1a40f294f1ed2dacfad6f5498322fc08cc2d1) Conflicts: src/mesa/main/config.h src/mesa/main/context.c src/mesa/main/texobj.c src/mesa/main/texstate.c src/mesa/main/texstore.c
2008-09-21mesa: remove dead fileKeith Whitwell