[Mesa-dev] [PATCH 3/3] mesa: Move buffers-unmapped earlier in check_valid_to_render().

Kenneth Graunke kenneth at whitecape.org
Thu Sep 15 09:10:24 UTC 2016


This needs to be above the switch on API, as that can return true
(valid to render) before this error check even had a chance to run.

Fixes ESEXT-CTS.draw_elements_base_vertex_tests.invalid_mapped_bos,
which worked before commit 72f1566f90c434c7752d8405193eec68d6743246.

Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
Cc: Mathias Fröhlich <Mathias.Froehlich at web.de>
---
 src/mesa/main/api_validate.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/src/mesa/main/api_validate.c b/src/mesa/main/api_validate.c
index b35751e..6cb626a 100644
--- a/src/mesa/main/api_validate.c
+++ b/src/mesa/main/api_validate.c
@@ -45,6 +45,12 @@ check_valid_to_render(struct gl_context *ctx, const char *function)
       return false;
    }
 
+   if (!_mesa_all_buffers_are_unmapped(ctx->Array.VAO)) {
+      _mesa_error(ctx, GL_INVALID_OPERATION,
+                  "%s(vertex buffers are mapped)", function);
+      return false;
+   }
+
    switch (ctx->API) {
    case API_OPENGLES2:
       /* For ES2, we can draw if we have a vertex program/shader). */
@@ -119,12 +125,6 @@ check_valid_to_render(struct gl_context *ctx, const char *function)
       unreachable("Invalid API value in check_valid_to_render()");
    }
 
-   if (!_mesa_all_buffers_are_unmapped(ctx->Array.VAO)) {
-      _mesa_error(ctx, GL_INVALID_OPERATION,
-                  "%s(vertex buffers are mapped)", function);
-      return false;
-   }
-
    return true;
 }
 
-- 
2.9.3



More information about the mesa-dev mailing list