Skip to content

v3d: fix indirect BO allocation for uniforms

Iago Toral requested to merge itoral/mesa:v3d_uniform_prefetch_fix into master

We were always ensuring a minimum size of 4 bytes for uniforms for the case where we don't have any, to account for hardware pre-fetching of the uniform stream, however, pre-fetching could also lead to to out of bounds reads when have read the last uniform in the stream, so we probably want to have the extra 4 bytes to prevent the kernel from observing invalid memory accesses when the uniform stream sits right at the end of a page.

This seems to fix MMU exceptions reported with a Linux 5.4 kernel.

Credit goes to Phil Elwell for identifying the problem and narrowing it down to memory accesses in the uniform stream.

Reported-by: Phil Elwell phil@raspberrypi.org Tested-by: Phil Elwell phil@raspberrypi.org

Merge request reports