util: fix util_is_vbo_upload_ratio_too_large
authorMarek Olšák <marek.olsak@amd.com>
Mon, 19 Dec 2022 06:17:13 +0000 (01:17 -0500)
committerEric Engestrom <eric@engestrom.ch>
Thu, 26 Jan 2023 15:40:34 +0000 (15:40 +0000)
It was wrong. For example, if the draw vertex count was 10 and the upload
vertex count was 150, u_vbuf wouldn't unroll the draw and would instead
memcpy 150 vertices. This fixes that case.

Fixes: 068a3bf0d7c - util: move and adjust the vertex upload heuristic equation from u_vbuf

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

.pick_status.json
src/util/u_math.h

index f250990..e4df42d 100644 (file)
         "description": "util: fix util_is_vbo_upload_ratio_too_large",
         "nominated": true,
         "nomination_type": 1,
-        "resolution": 0,
+        "resolution": 1,
         "main_sha": null,
         "because_sha": "068a3bf0d7cda0301b3dfc2e258698c6848ca706"
     },
index 21037cb..78790f3 100644 (file)
@@ -785,9 +785,9 @@ static inline bool
 util_is_vbo_upload_ratio_too_large(unsigned draw_vertex_count,
                                    unsigned upload_vertex_count)
 {
-   if (draw_vertex_count > 1024)
+   if (upload_vertex_count > 256)
       return upload_vertex_count > draw_vertex_count * 4;
-   else if (draw_vertex_count > 32)
+   else if (upload_vertex_count > 64)
       return upload_vertex_count > draw_vertex_count * 8;
    else
       return upload_vertex_count > draw_vertex_count * 16;