mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 13:58:04 +02:00
mesa: Replace _ae_{,un}map_vbos with _mesa_vao_{,un}map_arrays
Due to the use of bitmaps, the _mesa_vao_{,un}map_arrays functions
should provide comparable runtime efficienty to the currently used
_ae_{,un}map_vbos functions. So use this functions and enable
further cleanup.
Reviewed-by: Brian Paul <brianp@vmware.com>
Signed-off-by: Mathias Fröhlich <Mathias.Froehlich@web.de>
This commit is contained in:
parent
b43fae364f
commit
b89ae55a70
2 changed files with 11 additions and 13 deletions
|
|
@ -1792,7 +1792,7 @@ _ae_ArrayElement(GLint elt)
|
|||
GET_CURRENT_CONTEXT(ctx);
|
||||
const AEcontext *actx = AE_CONTEXT(ctx);
|
||||
const struct _glapi_table * const disp = GET_DISPATCH();
|
||||
GLboolean do_map;
|
||||
struct gl_vertex_array_object *vao;
|
||||
|
||||
/* If PrimitiveRestart is enabled and the index is the RestartIndex
|
||||
* then we call PrimitiveRestartNV and return.
|
||||
|
|
@ -1807,16 +1807,12 @@ _ae_ArrayElement(GLint elt)
|
|||
_ae_update_state(ctx);
|
||||
}
|
||||
|
||||
/* Determine if we need to map/unmap VBOs */
|
||||
do_map = actx->nr_vbos && !actx->mapped_vbos;
|
||||
|
||||
if (do_map)
|
||||
_ae_map_vbos(ctx);
|
||||
vao = ctx->Array.VAO;
|
||||
_mesa_vao_map_arrays(ctx, vao, GL_MAP_READ_BIT);
|
||||
|
||||
_mesa_array_element(ctx, (struct _glapi_table *)disp, elt);
|
||||
|
||||
if (do_map)
|
||||
_ae_unmap_vbos(ctx);
|
||||
_mesa_vao_unmap_arrays(ctx, vao);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1307,6 +1307,7 @@ static void GLAPIENTRY
|
|||
_save_OBE_DrawArrays(GLenum mode, GLint start, GLsizei count)
|
||||
{
|
||||
GET_CURRENT_CONTEXT(ctx);
|
||||
struct gl_vertex_array_object *vao = ctx->Array.VAO;
|
||||
struct vbo_save_context *save = &vbo_context(ctx)->save;
|
||||
GLint i;
|
||||
|
||||
|
|
@ -1325,7 +1326,7 @@ _save_OBE_DrawArrays(GLenum mode, GLint start, GLsizei count)
|
|||
/* Make sure to process any VBO binding changes */
|
||||
_mesa_update_state(ctx);
|
||||
|
||||
_ae_map_vbos(ctx);
|
||||
_mesa_vao_map_arrays(ctx, vao, GL_MAP_READ_BIT);
|
||||
|
||||
vbo_save_NotifyBegin(ctx, mode, true);
|
||||
|
||||
|
|
@ -1333,7 +1334,7 @@ _save_OBE_DrawArrays(GLenum mode, GLint start, GLsizei count)
|
|||
_mesa_array_element(ctx, GET_DISPATCH(), start + i);
|
||||
CALL_End(GET_DISPATCH(), ());
|
||||
|
||||
_ae_unmap_vbos(ctx);
|
||||
_mesa_vao_unmap_arrays(ctx, vao);
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -1395,7 +1396,8 @@ _save_OBE_DrawElementsBaseVertex(GLenum mode, GLsizei count, GLenum type,
|
|||
{
|
||||
GET_CURRENT_CONTEXT(ctx);
|
||||
struct vbo_save_context *save = &vbo_context(ctx)->save;
|
||||
struct gl_buffer_object *indexbuf = ctx->Array.VAO->IndexBufferObj;
|
||||
struct gl_vertex_array_object *vao = ctx->Array.VAO;
|
||||
struct gl_buffer_object *indexbuf = vao->IndexBufferObj;
|
||||
GLint i;
|
||||
|
||||
if (!_mesa_is_valid_prim_mode(ctx, mode)) {
|
||||
|
|
@ -1419,7 +1421,7 @@ _save_OBE_DrawElementsBaseVertex(GLenum mode, GLsizei count, GLenum type,
|
|||
/* Make sure to process any VBO binding changes */
|
||||
_mesa_update_state(ctx);
|
||||
|
||||
_ae_map_vbos(ctx);
|
||||
_mesa_vao_map(ctx, vao, GL_MAP_READ_BIT);
|
||||
|
||||
if (_mesa_is_bufferobj(indexbuf))
|
||||
indices =
|
||||
|
|
@ -1447,7 +1449,7 @@ _save_OBE_DrawElementsBaseVertex(GLenum mode, GLsizei count, GLenum type,
|
|||
|
||||
CALL_End(GET_DISPATCH(), ());
|
||||
|
||||
_ae_unmap_vbos(ctx);
|
||||
_mesa_vao_unmap(ctx, vao);
|
||||
}
|
||||
|
||||
static void GLAPIENTRY
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue