summaryrefslogtreecommitdiffstats
path: root/src/mesa/main/arrayobj.c
Commit message (Collapse)AuthorAgeFilesLines
* mesa: make _mesa_reference_array_object() an inline functionBrian Paul2012-06-271-5/+6
| | | | As we do for texture objects, buffer objects, etc.
* mesa: move gl_array_attrib::NewState to gl_array_object::NewArraysBrian Paul2012-04-201-1/+0
| | | | | | | | The field wasn't actually used before and it's not used now either. But this is a more logical place for it and will hopefully allow doing smarter draw/array validation (per array object) in the future. Reviewed-by: Mathias Fröhlich <[email protected]>
* mesa: Set the gl_array_object::ARBsemantics flag at the right timeIan Romanick2012-02-021-1/+5
| | | | | | | | | | | | | With 0963990 the flag was only set when Bind created the object. In all cases where ::ARBsemantics could be true, this path never happened. Instead, add a _Used flag to track whether a VAO has ever been bound. On the first Bind, set the _Used flag, and set the ARBsemantics flag to the correct value. NOTE: This is a candidate for release branches. Signed-off-by: Ian Romanick <[email protected]> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=45423
* mesa: Rename gl_array_object::VBOonly to ::ARBsemanticsIan Romanick2012-01-241-5/+11
| | | | | | | | | | | | | | There are more differences between Apple and ARB than just requiring that all arrays be stored in VBOs. Additional uses will be added in following commits. Also, set the flag at Bind time instead of Gen time. The ARB_vao spec specifies that behavior. NOTE: This is a candidate for release branches. Signed-off-by: Ian Romanick <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* mesa: Fix and speedup gl_array_object::_MaxElement computation.Mathias Fröhlich2012-01-201-14/+27
| | | | | | | | | | Use a bitmask approach to compute gl_array_object::_MaxElement. To make this work correctly depending on the shader type actually used, make use of the newly introduced typed bitmask getters. With this change I gain about 5% draw time on some osgviewer examples. Signed-off-by: Mathias Fröhlich <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* mesa: remove _mesa_ffs(), implement ffs() for non-GNU platformsBrian Paul2012-01-121-1/+1
| | | | | | | | | | | Call ffs() and ffsll() everywhere. Define our own ffs(), ffsll() functions when the platform doesn't have them. v2: remove #ifdef _WIN32, __IBMC__, __IBMCPP_ tests inside ffs() implementation. The #else clause was recursive. Reviewed-by: Kenneth Graunke <[email protected]> Tested-by: Alexander von Gluck <[email protected]>
* mesa: Remove remaining FEATURE_ARB_vertex_buffer_object guards.Mathias Fröhlich2011-12-281-4/+0
| | | | | | | | | Since commit 82b9661894315362f857192439bdcbc9db090387 and 34eae1c72a9b3a8eb0634cda52fca0208cd2f40d vbo support is mandatory for all drivers. So, remove the remaining FEATURE_ARB_vertex_buffer_object guards. Signed-off-by: Mathias Froehlich <[email protected]>
* mesa: Use VERT_ATTRIB_* indexed array in gl_array_object.Mathias Fröhlich2011-11-291-55/+39
| | | | | | | | | | | | Replace the distinct struct gl_client_array members in gl_array_object by an array of gl_client_arrays indexed by VERT_ATTRIB_*. Renumber the vertex attributes slightly to keep the old semantics of the distinct array members. Make use of the upper 32 bits in VERT_BIT_*. Update all occurances of the distinct struct members with the array equivalents. Signed-off-by: Mathias Froehlich <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* mesa: Replace _NEW_ARRAY_* bits with VERT_BIT_*Mathias Fröhlich2011-11-291-1/+1
| | | | | | | | Consolidate the two distinct set of flags to use VERT_BIT_*. Signed-off-by: Mathias Froehlich <[email protected]> Reviewed-by: Brian Paul <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* mesa: move ElementArrayBufferObj to gl_array_objectYuanhan Liu2011-11-291-0/+4
| | | | | | | | | | | | | | | According opengl spec 4.2.pdf table 6.12 (Vertex Array Object State) at page 515, the element buffer object is listed in vertex array object. So, move the ElementArrayBufferObj inside gl_array_object to make element buffer object per-vao. This would fix most of(3 left) intel oglc vao test fail NOTE: this is a candidate for the 7.11 branch. Signed-off-by: Yuanhan Liu <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* mesa: Set the "Integer" field of gl_client_array properly.Paul Berry2011-11-021-0/+1
| | | | | | | | | | | This patch ensures that gl_client_array::Integer is properly set to GL_TRUE for vertex attributes specified using glVertexAttribIPointer, and to GL_FALSE for vertex attributes specified using glVertexAttribPointer, so that the vertex attributes can be interpreted properly by driver back-ends. Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* mesa: s/INLINE/inline/Brian Paul2011-10-011-1/+1
| | | | | | | INLINE is still seen in some files (some generated files, etc) but this is a good start. Acked-by: Kenneth Graunke <[email protected]>
* mesa: only update array _MaxElement if array is enabledBrian Paul2011-05-181-2/+3
| | | | Fixes failed assertion when calling _mesa_print_arrays() debug function.
* mesa: Update _ElementSize.Brian Paul2011-04-071-0/+2
|
* mesa: consolidate code in _mesa_update_array_max_element()Brian Paul2011-04-061-32/+2
|
* mesa: 80-column wrappingBrian Paul2011-03-191-1/+2
|
* mesa: Initial size for secondary color array is 3Ian Romanick2011-01-311-1/+1
| | | | See table 6.7 on page 347 of the OpenGL 3.0 specification.
* mesa: Directly include mfeatures.h in files that perform feature tests.Vinson Lee2011-01-071-0/+1
|
* mesa: Include mtypes.h in files that use gl_context struct.Vinson Lee2011-01-051-0/+1
| | | | | | Directly include mtypes.h if a file uses a gl_context struct. This allows future removal of headers that are not strictly necessary but indirectly include mtypes.h for a file.
* Drop GLcontext typedef and use struct gl_context insteadKristian Høgsberg2010-10-131-12/+12
|
* mesa: Move src/mesa/glapi/dispatch.h to mesa.Chia-I Wu2010-02-251-1/+1
| | | | | | glapi/dispatch.h is a core Mesa header file. Move the header file to main/ to make this clear. It also becomes clear after this change that IN_DRI_DRIVER is only used in core Mesa to enable the remap table.
* Replace the _mesa_*printf() wrappers with the plain libc versionsKristian Høgsberg2010-02-191-5/+5
|
* Replace _mesa_malloc, _mesa_calloc and _mesa_free with plain libc versionsKristian Høgsberg2010-02-191-1/+1
|
* mesa: Enable true refcounting for NullBufferObj.Michal Krol2010-02-091-0/+4
| | | | | | | | This object can be shared with another context, so we cannot just delete it when the owning context is being destroyed. Ensuring that buffer objects are properly refcounted guarantees NullBufferObj is destroyed when all references to it are removed.
* mesa: implement _mesa_GenVertexArrays() for GL_ARB_vertex_array_objectBrian Paul2009-06-191-4/+29
| | | | | | This also involves adding a gl_array_object::VBOonly field. For the ARB extension, all arrays in the object must reside in a VBO. This flag keeps track of that requirement.
* mesa: implement _mesa_BindVertexArray()Brian Paul2009-06-191-12/+43
|
* mesa: move vertex array objects from shared state to per-contextBrian Paul2009-06-191-21/+8
| | | | | The ARB version requires VAOs to be per-context while the Apple extension was ambiguous.
* mesa: use Elements() macro to limit loops instead of constantsBrian Paul2009-05-221-5/+5
|
* mesa: added gl_array_object::Weight array fieldBrian Paul2009-05-211-0/+3
| | | | | | | 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.
* mesa: check FEATURE_point_size_array for PointSize arrayBrian Paul2009-05-211-0/+2
|
* mesa: new _mesa_update_array_object_max_element() functionBrian Paul2009-05-211-1/+77
| | | | This will replace the code in state.c
* mesa: make the array object save/remove functions staticBrian Paul2009-05-071-7/+7
|
* mesa: clean-up vertex array object VBO unbinding and delete/refcountingBrian Paul2009-05-071-31/+33
| | | | | Don't really delete vertex array objects until the refcount hits zero. At that time, unbind any pointers to VBOs.
* mesa: reference counting for gl_array_objectBrian Paul2009-05-071-4/+63
| | | | | Every kind of object that can be shared by multiple contexts should be refcounted.
* mesa: move the NullBufferObj from GLcontext to gl_shared_stateBrian Paul2009-05-071-2/+3
| | | | | Since shared array objects may point to the null/default buffer object, the null/default buffer object should be part of the shared state.
* mesa: improve array initialization code, and set the new array->Format field.Brian Paul2009-01-231-75/+33
|
* mesa: increase max texture image units and GLSL samplers to 16Brian Paul2008-12-311-3/+3
| | | | | | | | | | | | | | | | The max texture coord units is still 8. All the fixed-function paths are still limited to 8 too. But GLSL shaders can use more samplers now. Note that some texcoord-related data structures are declared to be 16 elements in size rather than 8. This just simplifies the code in a few places; the extra elements aren't accessible to the user. These changes haven't been extensively tested yet, but sanity checking has been done. It should be possible to increase the max image units/samplers to 32 without doing anything special. Beyond that we'll need longer bitfields in a few places.
* mesa: point size arraysBrian Paul2008-09-211-0/+9
|
* mesa: replace MALLOC w/ CALLOC to fix valgrind warningBrian Paul2008-09-051-1/+1
|
* mesa: improved gl_buffer_object reference countingBrian Paul2008-09-041-11/+20
| | | | | Use new _mesa_reference_buffer_object() function wherever possible. Fixes buffer object/display list crash reported in ParaView.
* Be more consistant with paths in #includes. Eventually, eliminate a bunch ↵Brian2007-07-041-1/+1
| | | | of -I flags.
* better handling of current attributes. Trivial dlist and varray tests workKeith Whitwell2006-10-301-9/+0
|
* minor clean-upsBrian Paul2006-06-151-9/+4
|
* s/buffer/arrays/Brian Paul2006-06-121-7/+5
|
* Add support for GL_APPLE_vertex_array_object. Several test programsIan Romanick2006-06-121-0/+426
and demos are also added. Adding basic support to drivers should be as easy as just enabling the extension, though thorough test would also be required.