glthread: don't unroll draws using user VBOs with GLES
authorMarek Olšák <marek.olsak@amd.com>
Sat, 6 Jan 2024 22:57:26 +0000 (17:57 -0500)
committerEric Engestrom <eric@engestrom.ch>
Tue, 9 Jan 2024 19:37:45 +0000 (19:37 +0000)
The unrolling uses glBegin, which is unsupported by GLES and the GL
dispatch fails.

Fixes: 50d791ca73e52c6 - glthread: add a vertex upload path that unrolls indices for glDrawElements

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26916>
(cherry picked from commit 56b4d199a05ef8f9d73ad3215b27238231a477fb)

.pick_status.json
src/mesa/main/glthread_draw.c

index 2393eb9..17bc59d 100644 (file)
         "description": "glthread: don't unroll draws using user VBOs with GLES",
         "nominated": true,
         "nomination_type": 1,
-        "resolution": 0,
+        "resolution": 1,
         "main_sha": null,
         "because_sha": "50d791ca73e52c678cee8a84e607ff810d834689",
         "notes": null
index b747493..e1d0611 100644 (file)
@@ -813,7 +813,8 @@ should_convert_to_begin_end(struct gl_context *ctx, unsigned count,
     * Others prevent syncing, such as disallowing buffer objects because we
     * can't map them without syncing.
     */
-   return util_is_vbo_upload_ratio_too_large(count, num_upload_vertices) &&
+   return ctx->API == API_OPENGL_COMPAT &&
+          util_is_vbo_upload_ratio_too_large(count, num_upload_vertices) &&
           instance_count == 1 &&                /* no instancing */
           vao->CurrentElementBufferName == 0 && /* only user indices */
           !ctx->GLThread._PrimitiveRestart &&   /* no primitive restart */