Module: Mesa Branch: main Commit: e7c5a8b3f8fd850879802be638d045a286d73445 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=e7c5a8b3f8fd850879802be638d045a286d73445
Author: Giancarlo Devich <[email protected]> Date: Mon Feb 27 11:03:42 2023 -0800 d3d12: Don't loop in update_draw_indirect_with_sysvals Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21567> --- src/gallium/drivers/d3d12/d3d12_draw.cpp | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/src/gallium/drivers/d3d12/d3d12_draw.cpp b/src/gallium/drivers/d3d12/d3d12_draw.cpp index 77d514801e1..a1910621f3f 100644 --- a/src/gallium/drivers/d3d12/d3d12_draw.cpp +++ b/src/gallium/drivers/d3d12/d3d12_draw.cpp @@ -759,17 +759,13 @@ update_draw_indirect_with_sysvals(struct d3d12_context *ctx, ctx->gfx_stages[PIPE_SHADER_VERTEX] == nullptr) return false; - unsigned sysvals[] = { - SYSTEM_VALUE_VERTEX_ID_ZERO_BASE, - SYSTEM_VALUE_BASE_VERTEX, - SYSTEM_VALUE_FIRST_VERTEX, - SYSTEM_VALUE_BASE_INSTANCE, - SYSTEM_VALUE_DRAW_ID, - }; - bool any = false; - for (unsigned sysval : sysvals) { - any |= (BITSET_TEST(ctx->gfx_stages[PIPE_SHADER_VERTEX]->initial->info.system_values_read, sysval)); - } + auto sys_values_read = ctx->gfx_stages[PIPE_SHADER_VERTEX]->initial->info.system_values_read; + bool any = BITSET_TEST(sys_values_read, SYSTEM_VALUE_VERTEX_ID_ZERO_BASE) || + BITSET_TEST(sys_values_read, SYSTEM_VALUE_BASE_VERTEX) || + BITSET_TEST(sys_values_read, SYSTEM_VALUE_FIRST_VERTEX) || + BITSET_TEST(sys_values_read, SYSTEM_VALUE_BASE_INSTANCE) || + BITSET_TEST(sys_values_read, SYSTEM_VALUE_DRAW_ID); + if (!any) return false;
