mesa: Move buffers-unmapped earlier in check_valid_to_render().
authorKenneth Graunke <kenneth@whitecape.org>
Thu, 15 Sep 2016 09:10:24 +0000 (02:10 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Sat, 17 Sep 2016 02:42:56 +0000 (19:42 -0700)
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@whitecape.org>
Reviewed-by: Mathias Fröhlich <Mathias.Froehlich@web.de>
src/mesa/main/api_validate.c

index b35751e..6cb626a 100644 (file)
@@ -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;
 }