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 <boris.brezillon@collabora.com>
Reviewed-by: Chia-I Wu <olvaffe@gmail.com>
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32415>
This commit is contained in:
Boris Brezillon 2024-12-18 15:11:09 +01:00 committed by Marge Bot
parent bbfcd473f9
commit 19173dfa40
4 changed files with 0 additions and 12 deletions

View file

@ -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));

View file

@ -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;

View file

@ -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;

View file

@ -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;