c5e473fbe25b20cb27aac44ff6e269701abd33a8 |
|
16-Apr-2012 |
Marek Olšák <maraeo@gmail.com> |
mesa: add gl_context::NewDriverState and use it for vertex arrays The vbo module recomputes its states if _NEW_ARRAY is set, so it shouldn't use the same flag to notify the driver. Since we've run out of bits in NewState and NewState is for core Mesa anyway, we need to find another way. This patch is the first to start decoupling the state flags meant only for core Mesa and those only for drivers. The idea is to have two flag sets: - gl_context::NewState - used by core Mesa only - gl_context::NewDriverState - used by drivers only (the flags are defined by the driver and opaque to core Mesa) It makes perfect sense to use NewState|=_NEW_ARRAY to notify the vbo module that the user changed vertex arrays, and the vbo module in turn sets a driver-specific flag to notify the driver that it should update its vertex array bindings. The driver decides which bits of NewDriverState should be set and stores them in gl_context::DriverFlags. Then, Core Mesa can do this: ctx->NewDriverState |= ctx->DriverFlags.NewArray; This patch implements this behavior and adapts st/mesa. DriverFlags.NewArray is set to ST_NEW_VERTEX_ARRAYS. Core Mesa only sets NewDriverState. It's the driver's responsibility to read it whenever it wants and reset it to 0. Reviewed-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/mesa/vbo/vbo_rebase.c
|
50f7e75f9e945cfbb2ae868cc961a2205a0b6e73 |
|
23-Apr-2012 |
Marek Olšák <maraeo@gmail.com> |
mesa: move gl_client_array*[] from vbo_draw_func into gl_context In the future we'd like to treat vertex arrays as a state and not as a parameter to the draw function. This is the first step towards that goal. Part of the goal is to avoid array re-validation for every draw call. This commit adds: const struct gl_client_array **gl_context::Array::_DrawArrays. The pointer is changed in: * vbo_draw_method * vbo_rebase_prims - unused by gallium * vbo_split_prims - unused by gallium * st_RasterPos Reviewed-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/mesa/vbo/vbo_rebase.c
|
14bb957b996dcc5392b8fa589bd3ffa5c55cb6b4 |
|
09-Dec-2011 |
Marek Olšák <maraeo@gmail.com> |
mesa: implement DrawTransformFeedback from ARB_transform_feedback2 It's like DrawArrays, but the count is taken from a transform feedback object. This removes DrawTransformFeedback from dd_function_table and adds the same function to GLvertexformat (with the function parameters matching GL). The vbo_draw_func callback has a new parameter "struct gl_transform_feedback_object *tfb_vertcount". The rest of the code just validates states and forwards the transform feedback object into vbo_draw_func.
/external/mesa3d/src/mesa/vbo/vbo_rebase.c
|
42769c2da5c986e38a1bd4ef7dbcb6623968ce88 |
|
27-Sep-2011 |
Eric Anholt <eric@anholt.net> |
Revert "vbo: Don't discount stride == 0 for testing all varyings in VBOs." This reverts commit d631c19db47181129811080bfa772b210d762d4d. The commit was broken, and ended up returning false all the time because nobody in the world binds every single possible vertex array. On further reflection, we don't want to discount stride == 0: This function is just used for deciding to calculate whether to compute the bonuds on the index, and there's no sense in computing index bounds when stride == 0. For the separate question of "how much data do I upload for this vertex element?", the i965 driver was fixed to upload the data. Fixes a regression of about 2x in 3DMMES, and most importantly, makes Hammerfight playable.
/external/mesa3d/src/mesa/vbo/vbo_rebase.c
|
28249bd260f4c52badf3eb61ade2744604b21bca |
|
22-Aug-2011 |
Ian Romanick <ian.d.romanick@intel.com> |
mesa: Eliminate dd_function_table::MapBuffer Replace all calls to dd_function_table::MapBuffer with appropriate calls to dd_function_table::MapBufferRange, then remove all the cruft. Signed-off-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Brian Paul <brianp@vmware.com> Acked-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Eric Anholt <eric@anholt.net>
/external/mesa3d/src/mesa/vbo/vbo_rebase.c
|
12d924c5ae14a1c6a05a3dcae29b77e7668e227d |
|
22-Aug-2011 |
Ian Romanick <ian.d.romanick@intel.com> |
mesa: Remove target parameter from dd_function_table::MapBuffer No driver used that parameter, and most drivers ended up with a bunch of unused-parameter warnings because it was there. Signed-off-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Brian Paul <brianp@vmware.com> Acked-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Eric Anholt <eric@anholt.net>
/external/mesa3d/src/mesa/vbo/vbo_rebase.c
|
56f0c00f125ee75caeadc1c9e8cab8a488635e5e |
|
22-Aug-2011 |
Ian Romanick <ian.d.romanick@intel.com> |
mesa: Remove target parameter from dd_function_table::UnmapBuffer No driver used that parameter, and most drivers ended up with a bunch of unused-parameter warnings because it was there. Signed-off-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Brian Paul <brianp@vmware.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Eric Anholt <eric@anholt.net>
/external/mesa3d/src/mesa/vbo/vbo_rebase.c
|
d631c19db47181129811080bfa772b210d762d4d |
|
17-Jun-2011 |
Eric Anholt <eric@anholt.net> |
vbo: Don't discount stride == 0 for testing all varyings in VBOs. In fixed function, stride == 0 (e.g. glColor4f() outside of the draw call) would get turned into uniform inputs, which is why it was ignored originally in this test. For shaders, drivers end up seeing a need to upload stride == 0 data, and get confused by needing to upload when vbo_all_varyings_in_vbos() returned true. In the 965 driver case, it wouldn't bother to compute the min/max index, and uploaded nothing if the min/max wasn't known. We've talked about removing the ff stride=0-into-uniforms code, so this check shouldn't be missed once that's gone. Fixes ARB_vertex_buffer_object/mixed-immediate-and-vbo Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=37934 Reviewed-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/mesa/vbo/vbo_rebase.c
|
8f28c05d07c7a1919c938d81b5f524aed2c60228 |
|
17-Jun-2011 |
Eric Anholt <eric@anholt.net> |
vbo: Don't bother checking for stride == 0 for "any varying in a VBO". We would still want to consider that data as being in a VBO even if we managed to produce this case, which as far as I know we can't. Reviewed-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/mesa/vbo/vbo_rebase.c
|
f9995b30756140724f41daf963fa06167912be7f |
|
12-Oct-2010 |
Kristian Høgsberg <krh@bitplanet.net> |
Drop GLcontext typedef and use struct gl_context instead
/external/mesa3d/src/mesa/vbo/vbo_rebase.c
|
43873b53c4d15f10f0321c770b1b8bd537cc226d |
|
12-Oct-2010 |
Eric Anholt <eric@anholt.net> |
i965: Don't rebase the index buffer to min 0 if any arrays are in VBOs. There was a check to only do the rebase if we didn't have everything in VBOs, but nexuiz apparently hands us a mix of VBOs and arrays, resulting in blocking on the GPU to do a rebase. Improves nexuiz 800x600, high-settings performance on my Ironlake 41% (+/- 1.3%), from 14.0fps to 19.7fps.
/external/mesa3d/src/mesa/vbo/vbo_rebase.c
|
298be2b028263b2c343a707662c6fbfa18293cb2 |
|
19-Feb-2010 |
Kristian Høgsberg <krh@bitplanet.net> |
Replace the _mesa_*printf() wrappers with the plain libc versions
/external/mesa3d/src/mesa/vbo/vbo_rebase.c
|
32f2fd1c5d6088692551c80352b7d6fa35b0cd09 |
|
19-Feb-2010 |
Kristian Høgsberg <krh@bitplanet.net> |
Replace _mesa_malloc, _mesa_calloc and _mesa_free with plain libc versions
/external/mesa3d/src/mesa/vbo/vbo_rebase.c
|
972e995b148c220d32f2bf8c0a17c138deec6506 |
|
22-Sep-2009 |
Brian Paul <brianp@vmware.com> |
vbo: disable the GL_ARB_draw_elements_base_vertex rebase path This was introduced with commit 92d7ed8a20d4a018ce5324e6537ae7b478b9e5bf. It causes rendering of stray polygons (with sw rendering at least) when running the OGL Distilled / Picking demo (click on an object). This needs additional debugging to fix/restore. Found one suspect thing: in _tnl_draw_prims() there's some mixed signed/ unsigned arithmetic/comparing at line 422 that may be incorrect.
/external/mesa3d/src/mesa/vbo/vbo_rebase.c
|
92d7ed8a20d4a018ce5324e6537ae7b478b9e5bf |
|
27-Aug-2009 |
Eric Anholt <eric@anholt.net> |
mesa: Add support for ARB_draw_elements_base_vertex.
/external/mesa3d/src/mesa/vbo/vbo_rebase.c
|
2708ddfb06a36d8568e2aa130bf1f7d551fcd309 |
|
11-Aug-2009 |
Eric Anholt <eric@anholt.net> |
vbo: Avoid extra validation of DrawElements. 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.
/external/mesa3d/src/mesa/vbo/vbo_rebase.c
|
4f6b704f9796775d8d9937c3cf75a2901b99b896 |
|
07-May-2009 |
Brian Paul <brianp@vmware.com> |
mesa: move the NullBufferObj from GLcontext to gl_shared_state Since shared array objects may point to the null/default buffer object, the null/default buffer object should be part of the shared state.
/external/mesa3d/src/mesa/vbo/vbo_rebase.c
|
c223c6b663cd5db39ba19c2be74b88cc3b8f53f3 |
|
04-Jul-2007 |
Brian <brian.paul@tungstengraphics.com> |
Be more consistant with paths in #includes. Eventually, eliminate a bunch of -I flags.
/external/mesa3d/src/mesa/vbo/vbo_rebase.c
|
893526b8a823fe1b88f2b46376155afb91c84016 |
|
30-Jan-2007 |
Keith Whitwell <keith@tungstengraphics.com> |
Use new rebase helper. Remove other rebase code.
/external/mesa3d/src/mesa/vbo/vbo_rebase.c
|
240641de0c8532009fd21be7d4b0b84e471e91e8 |
|
30-Jan-2007 |
Keith Whitwell <keith@tungstengraphics.com> |
Helper for rebasing draw requests where min_index != 0.
/external/mesa3d/src/mesa/vbo/vbo_rebase.c
|