mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-06 08:50:09 +01:00
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:
parent
bbfcd473f9
commit
19173dfa40
4 changed files with 0 additions and 12 deletions
|
|
@ -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));
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue