From 6527cb742ee79dd537a034aeeed235166244aa9d Mon Sep 17 00:00:00 2001 From: Boris Brezillon Date: Mon, 2 Sep 2024 16:23:28 +0200 Subject: [PATCH] panvk: Don't open-code vk_index_type_to_bytes() While at it, store the index_size in bytes instead of bits. Suggested-by: Alyssa Rosenzweig Signed-off-by: Boris Brezillon Reviewed-by: Rebecca Mckeever Reviewed-by: Mary Guillemard Reviewed-by: Lars-Ivar Hesselberg Simonsen Reviewed-by: John Anthony Acked-by: Erik Faye-Lund Part-of: --- src/panfrost/vulkan/jm/panvk_vX_cmd_draw.c | 27 +++++----------------- 1 file changed, 6 insertions(+), 21 deletions(-) diff --git a/src/panfrost/vulkan/jm/panvk_vX_cmd_draw.c b/src/panfrost/vulkan/jm/panvk_vX_cmd_draw.c index b21a0dc5bed..6cf66bbbbe7 100644 --- a/src/panfrost/vulkan/jm/panvk_vX_cmd_draw.c +++ b/src/panfrost/vulkan/jm/panvk_vX_cmd_draw.c @@ -914,13 +914,13 @@ panvk_emit_tiler_primitive(struct panvk_cmd_buffer *cmdbuf, cfg.base_vertex_offset = draw->vertex_offset - draw->offset_start; switch (draw->index_size) { - case 32: + case 4: cfg.index_type = MALI_INDEX_TYPE_UINT32; break; - case 16: + case 2: cfg.index_type = MALI_INDEX_TYPE_UINT16; break; - case 8: + case 1: cfg.index_type = MALI_INDEX_TYPE_UINT8; break; default: @@ -1350,7 +1350,7 @@ panvk_index_minmax_search(struct panvk_cmd_buffer *cmdbuf, uint32_t start, /* TODO: Read full cacheline of data to mitigate the uncached * mapping slowness. */ - switch (cmdbuf->state.gfx.ib.index_size) { + switch (cmdbuf->state.gfx.ib.index_size * 8) { #define MINMAX_SEARCH_CASE(sz) \ case sz: { \ uint##sz##_t *indices = ptr; \ @@ -1406,7 +1406,7 @@ panvk_per_arch(CmdDrawIndexed)(VkCommandBuffer commandBuffer, .offset_start = min_vertex + vertexOffset, .indices = panvk_buffer_gpu_ptr(cmdbuf->state.gfx.ib.buffer, cmdbuf->state.gfx.ib.offset) + - (firstIndex * (cmdbuf->state.gfx.ib.index_size / 8)), + (firstIndex * cmdbuf->state.gfx.ib.index_size), }; panvk_cmd_draw(cmdbuf, &draw); @@ -1912,20 +1912,5 @@ panvk_per_arch(CmdBindIndexBuffer)(VkCommandBuffer commandBuffer, cmdbuf->state.gfx.ib.buffer = buf; cmdbuf->state.gfx.ib.offset = offset; - switch (indexType) { - case VK_INDEX_TYPE_UINT16: - cmdbuf->state.gfx.ib.index_size = 16; - break; - case VK_INDEX_TYPE_UINT32: - cmdbuf->state.gfx.ib.index_size = 32; - break; - case VK_INDEX_TYPE_NONE_KHR: - cmdbuf->state.gfx.ib.index_size = 0; - break; - case VK_INDEX_TYPE_UINT8_EXT: - cmdbuf->state.gfx.ib.index_size = 8; - break; - default: - unreachable("Invalid index type\n"); - } + cmdbuf->state.gfx.ib.index_size = vk_index_type_to_bytes(indexType); }