mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-31 18:30:09 +01:00
panfrost: Clamp uniform buffer size
Issue (57) for the ARB_uniform_buffer_object spec states:
"The uniform buffer could be larger than the amount of uniform
block(s) data inside it."
This means we need to clamp the uniform buffer size in case it is
bigger than what hardware supports.
Fixes the OpenGL 3.3 renderer of GZDoom.
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6835>
This commit is contained in:
parent
939ddf3f67
commit
2aa48bb5a8
1 changed files with 5 additions and 1 deletions
|
|
@ -905,8 +905,12 @@ panfrost_emit_const_buf(struct panfrost_batch *batch,
|
|||
continue;
|
||||
}
|
||||
|
||||
/* Issue (57) for the ARB_uniform_buffer_object spec says that
|
||||
* the buffer can be larger than the uniform data inside it,
|
||||
* so clamp ubo size to what hardware supports. */
|
||||
|
||||
pan_pack(ubo_ptr + ubo, UNIFORM_BUFFER, cfg) {
|
||||
cfg.entries = DIV_ROUND_UP(usz, 16);
|
||||
cfg.entries = MIN2(DIV_ROUND_UP(usz, 16), 1 << 12);
|
||||
cfg.pointer = panfrost_map_constant_buffer_gpu(batch,
|
||||
stage, buf, ubo);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue