asahi: plumb get_ubo_size

for robustness lowering.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963>
This commit is contained in:
Alyssa Rosenzweig 2024-01-06 09:27:17 -04:00
parent 21aaba5b83
commit f6d5832b6c
3 changed files with 5 additions and 0 deletions

View file

@ -149,6 +149,9 @@ lower_intrinsic(nir_builder *b, nir_intrinsic_instr *intr,
case nir_intrinsic_load_ssbo_address:
return load_sysval_indirect(b, 1, 64, stage_table(b), &s->ssbo_base,
intr->src[0].ssa);
case nir_intrinsic_get_ubo_size:
return load_sysval_indirect(b, 1, 32, stage_table(b), &s->ubo_size,
intr->src[0].ssa);
case nir_intrinsic_get_ssbo_size:
return load_sysval_indirect(b, 1, 32, stage_table(b), &s->ssbo_size,
intr->src[0].ssa);

View file

@ -145,6 +145,7 @@ struct PACKED agx_stage_uniforms {
/* Uniform buffer objects */
uint64_t ubo_base[PIPE_MAX_CONSTANT_BUFFERS];
uint32_t ubo_size[PIPE_MAX_CONSTANT_BUFFERS];
/* Shader storage buffer objects */
uint64_t ssbo_base[PIPE_MAX_SHADER_BUFFERS];

View file

@ -103,6 +103,7 @@ agx_upload_stage_uniforms(struct agx_batch *batch, uint64_t textures,
u_foreach_bit(cb, st->cb_mask) {
uniforms.ubo_base[cb] = agx_const_buffer_ptr(batch, &st->cb[cb]);
uniforms.ubo_size[cb] = st->cb[cb].buffer_size;
}
u_foreach_bit(cb, st->ssbo_mask) {