From b7b0c51f1fd54c666e9520e1166e24216cc72211 Mon Sep 17 00:00:00 2001
From: Mathias Fröhlich <mathias.froehlich@web.de>
Date: Sun, 14 Aug 2016 14:03:58 +0200
Subject: mesa: Move _mesa_all_buffers_are_unmapped to arrayobj.c.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Move the function to check if all vao buffers are
unmapped into the vao implementation file.
Rename the function to _mesa_all_buffers_are_unmapped.

Signed-off-by: Mathias Fröhlich <Mathias.Froehlich@web.de>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
---
 src/mesa/main/arrayobj.c      | 28 ++++++++++++++++++++++++++++
 src/mesa/main/arrayobj.h      |  4 ++++
 src/mesa/vbo/vbo_exec_array.c | 36 +-----------------------------------
 3 files changed, 33 insertions(+), 35 deletions(-)

(limited to 'src/mesa')

diff --git a/src/mesa/main/arrayobj.c b/src/mesa/main/arrayobj.c
index becf32f5cda..2d3b69cd8de 100644
--- a/src/mesa/main/arrayobj.c
+++ b/src/mesa/main/arrayobj.c
@@ -393,6 +393,34 @@ _mesa_all_varyings_in_vbos(const struct gl_vertex_array_object *vao)
    return true;
 }
 
+bool
+_mesa_all_buffers_are_unmapped(const struct gl_vertex_array_object *vao)
+{
+   /* Walk the enabled arrays that have a vbo attached */
+   GLbitfield64 mask = vao->_Enabled & vao->VertexAttribBufferMask;
+
+   while (mask) {
+      const int i = ffsll(mask) - 1;
+      const struct gl_vertex_attrib_array *attrib_array =
+         &vao->VertexAttrib[i];
+      const struct gl_vertex_buffer_binding *buffer_binding =
+         &vao->VertexBinding[attrib_array->VertexBinding];
+
+      /* Only enabled arrays shall appear in the _Enabled bitmask */
+      assert(attrib_array->Enabled);
+      /* We have already masked with vao->VertexAttribBufferMask  */
+      assert(_mesa_is_bufferobj(buffer_binding->BufferObj));
+
+      /* Bail out once we find the first disallowed mapping */
+      if (_mesa_check_disallowed_mapping(buffer_binding->BufferObj))
+         return false;
+
+      /* We have handled everything that is bound to this buffer_binding. */
+      mask &= ~buffer_binding->_BoundArrays;
+   }
+
+   return true;
+}
 
 /**********************************************************************/
 /* API Functions                                                      */
diff --git a/src/mesa/main/arrayobj.h b/src/mesa/main/arrayobj.h
index d30c85c7cc5..830502e23a9 100644
--- a/src/mesa/main/arrayobj.h
+++ b/src/mesa/main/arrayobj.h
@@ -85,6 +85,10 @@ _mesa_update_vao_client_arrays(struct gl_context *ctx,
 extern bool
 _mesa_all_varyings_in_vbos(const struct gl_vertex_array_object *vao);
 
+/* Returns true if all vbos are unmapped */
+extern bool
+_mesa_all_buffers_are_unmapped(const struct gl_vertex_array_object *vao);
+
 /*
  * API functions
  */
diff --git a/src/mesa/vbo/vbo_exec_array.c b/src/mesa/vbo/vbo_exec_array.c
index 87898370217..e1aa3ace32a 100644
--- a/src/mesa/vbo/vbo_exec_array.c
+++ b/src/mesa/vbo/vbo_exec_array.c
@@ -42,40 +42,6 @@
 #include "vbo_context.h"
 
 
-/**
- * All vertex buffers should be in an unmapped state when we're about
- * to draw.
- */
-static bool
-check_input_buffers_are_unmapped(const struct gl_vertex_array_object *vao)
-{
-   /* Walk the enabled arrays that have a vbo attached */
-   GLbitfield64 mask = vao->_Enabled & vao->VertexAttribBufferMask;
-
-   while (mask) {
-      int i = ffsll(mask) - 1;
-      const struct gl_vertex_attrib_array *attrib_array =
-         &vao->VertexAttrib[i];
-      const struct gl_vertex_buffer_binding *buffer_binding =
-         &vao->VertexBinding[attrib_array->VertexBinding];
-
-      /* Only enabled arrays shall appear in the _Enabled bitmask */
-      assert(attrib_array->Enabled);
-      /* We have already masked with vao->VertexAttribBufferMask  */
-      assert(_mesa_is_bufferobj(buffer_binding->BufferObj));
-
-      /* Bail out once we find the first disallowed mapping */
-      if (_mesa_check_disallowed_mapping(buffer_binding->BufferObj))
-         return false;
-
-      /* We have handled everything that is bound to this buffer_binding. */
-      mask &= ~buffer_binding->_BoundArrays;
-   }
-
-   return true;
-}
-
-
 /**
  * Check that element 'j' of the array has reasonable data.
  * Map VBO if needed.
@@ -430,7 +396,7 @@ vbo_bind_arrays(struct gl_context *ctx)
       }
    }
 
-   if (!check_input_buffers_are_unmapped(ctx->Array.VAO)) {
+   if (!_mesa_all_buffers_are_unmapped(ctx->Array.VAO)) {
       _mesa_error(ctx, GL_INVALID_OPERATION,
                   "draw call (vertex buffers are mapped)");
       return false;
-- 
cgit v1.2.3