From 01185dcd6098a129100120096e063b3384b29b96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Mon, 19 Dec 2022 01:17:13 -0500 Subject: [PATCH] util: fix util_is_vbo_upload_ratio_too_large 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 Part-of: (cherry picked from commit 4f6e7858762a38fd7f2e4ab568fc018b4b155f86) --- .pick_status.json | 2 +- src/util/u_math.h | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index f250990628e..e4df42dcaaa 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -1948,7 +1948,7 @@ "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" }, diff --git a/src/util/u_math.h b/src/util/u_math.h index 21037cb3a46..78790f30ba0 100644 --- a/src/util/u_math.h +++ b/src/util/u_math.h @@ -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;