From 19173dfa40741a6a3de9ebe19ebd728a31938eac Mon Sep 17 00:00:00 2001 From: Boris Brezillon Date: Wed, 18 Dec 2024 15:11:09 +0100 Subject: [PATCH] panvk: Don't lower load_base_vertex load_base_vertex is coming from SYSTEM_VALUE_BASE_VERTEX which should only exist in GL. In Vulkan, gl_BaseVertex is translated to SYSTEM_VALUE_FIRST_VERTEX, which is turned into load_first_vertex instructions. Signed-off-by: Boris Brezillon Reviewed-by: Chia-I Wu Reviewed-by: Lars-Ivar Hesselberg Simonsen Part-of: --- src/panfrost/vulkan/csf/panvk_vX_cmd_draw.c | 5 ----- src/panfrost/vulkan/jm/panvk_vX_cmd_draw.c | 3 --- src/panfrost/vulkan/panvk_shader.h | 1 - src/panfrost/vulkan/panvk_vX_shader.c | 3 --- 4 files changed, 12 deletions(-) diff --git a/src/panfrost/vulkan/csf/panvk_vX_cmd_draw.c b/src/panfrost/vulkan/csf/panvk_vX_cmd_draw.c index c1699958571..c9ec7651afa 100644 --- a/src/panfrost/vulkan/csf/panvk_vX_cmd_draw.c +++ b/src/panfrost/vulkan/csf/panvk_vX_cmd_draw.c @@ -308,10 +308,8 @@ prepare_sysvals(struct panvk_cmd_buffer *cmdbuf, } if (draw->vertex.base != sysvals->vs.first_vertex || - draw->vertex.base != sysvals->vs.base_vertex || draw->instance.base != sysvals->vs.base_instance) { sysvals->vs.first_vertex = draw->vertex.base; - sysvals->vs.base_vertex = draw->vertex.base; sysvals->vs.base_instance = draw->instance.base; gfx_state_set_dirty(cmdbuf, PUSH_UNIFORMS); } @@ -1934,9 +1932,6 @@ panvk_cmd_draw_indirect(struct panvk_cmd_buffer *cmdbuf, cs_store32(b, cs_sr_reg32(b, 36), fau_block_addr, SYSVALS_PUSH_CONST_BASE + offsetof(struct panvk_graphics_sysvals, vs.first_vertex)); - cs_store32(b, cs_sr_reg32(b, 36), fau_block_addr, - SYSVALS_PUSH_CONST_BASE + - offsetof(struct panvk_graphics_sysvals, vs.base_vertex)); cs_store32(b, cs_sr_reg32(b, 37), fau_block_addr, SYSVALS_PUSH_CONST_BASE + offsetof(struct panvk_graphics_sysvals, vs.base_instance)); diff --git a/src/panfrost/vulkan/jm/panvk_vX_cmd_draw.c b/src/panfrost/vulkan/jm/panvk_vX_cmd_draw.c index e3d2da86ad4..f22206b2efe 100644 --- a/src/panfrost/vulkan/jm/panvk_vX_cmd_draw.c +++ b/src/panfrost/vulkan/jm/panvk_vX_cmd_draw.c @@ -97,15 +97,12 @@ panvk_cmd_prepare_draw_sysvals(struct panvk_cmd_buffer *cmdbuf, struct panvk_graphics_sysvals *sysvals = &cmdbuf->state.gfx.sysvals; struct vk_color_blend_state *cb = &cmdbuf->vk.dynamic_graphics_state.cb; - unsigned base_vertex = draw->index_size ? draw->vertex_offset : 0; uint32_t noperspective_varyings = fs ? fs->info.varyings.noperspective : 0; if (sysvals->vs.first_vertex != draw->offset_start || - sysvals->vs.base_vertex != base_vertex || sysvals->vs.base_instance != draw->first_instance || sysvals->layer_id != draw->layer_id || sysvals->vs.noperspective_varyings != noperspective_varyings) { sysvals->vs.first_vertex = draw->offset_start; - sysvals->vs.base_vertex = base_vertex; sysvals->vs.base_instance = draw->first_instance; sysvals->vs.noperspective_varyings = noperspective_varyings; sysvals->layer_id = draw->layer_id; diff --git a/src/panfrost/vulkan/panvk_shader.h b/src/panfrost/vulkan/panvk_shader.h index ddc55b7cca7..fc9494487d2 100644 --- a/src/panfrost/vulkan/panvk_shader.h +++ b/src/panfrost/vulkan/panvk_shader.h @@ -64,7 +64,6 @@ struct panvk_graphics_sysvals { struct { uint32_t first_vertex; - uint32_t base_vertex; uint32_t base_instance; uint32_t noperspective_varyings; } vs; diff --git a/src/panfrost/vulkan/panvk_vX_shader.c b/src/panfrost/vulkan/panvk_vX_shader.c index 77bdf86176c..a6a321cf6b7 100644 --- a/src/panfrost/vulkan/panvk_vX_shader.c +++ b/src/panfrost/vulkan/panvk_vX_shader.c @@ -86,9 +86,6 @@ panvk_lower_sysvals(nir_builder *b, nir_instr *instr, void *data) case nir_intrinsic_load_first_vertex: val = load_sysval(b, graphics, bit_size, vs.first_vertex); break; - case nir_intrinsic_load_base_vertex: - val = load_sysval(b, graphics, bit_size, vs.base_vertex); - break; case nir_intrinsic_load_base_instance: val = load_sysval(b, graphics, bit_size, vs.base_instance); break;