v3d: handle QUNIFORM_GET_UBO_SIZE

This uniform will be used when creating context with robust buffer
access.

Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Reviewed-by: Jose Maria Casanova Crespo <jmcasanova@igalia.com>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35965>
This commit is contained in:
Juan A. Suarez Romero
2025-07-04 16:29:16 +02:00
parent 2d47bec557
commit 7c5ef9de02
+8
View File
@@ -336,6 +336,13 @@ v3d_write_uniforms(struct v3d_context *v3d, struct v3d_job *job,
break;
}
case QUNIFORM_GET_UBO_SIZE: {
uint32_t unit = v3d_unit_data_get_unit(data);
cl_aligned_u32(&uniforms,
cb->cb[unit].buffer_size);
break;
}
case QUNIFORM_SSBO_OFFSET: {
struct pipe_shader_buffer *sb =
&v3d->ssbo[stage].sb[data];
@@ -432,6 +439,7 @@ v3d_set_shader_uniform_dirty_flags(struct v3d_compiled_shader *shader)
break;
case QUNIFORM_UNIFORM:
case QUNIFORM_UBO_ADDR:
case QUNIFORM_GET_UBO_SIZE:
dirty |= V3D_DIRTY_CONSTBUF;
break;