Skip to content

panfrost: Fix uniform_count on Midgard

Alyssa Rosenzweig requested to merge alyssa/mesa:fix into master

The compiler ABI specifies push uniforms at a 4-byte granularity (like Bifrost), but Midgard require a 16-byte granularity. As such if the number of pushed words is not a multiple of 4, there is a buffer overrun at shader load time. Ordinarily this is inaccessible so the garbage is ignored.

However, there was a great deal of confusion around the uniform_cutoff variable. In some cases (such a full glmark2 run on a 64-bit processor), the push uniforms would be at the end of a BO and the overrun would cause a page fault.

Remove uniform_cutoff entirely and work with count directly to avoid faulting, and round the count up to be defensive.

Closes: #4289 (closed) Fixes: ed810eb0 ("panfrost: Don't truncate uniform_count") Signed-off-by: Alyssa Rosenzweig alyssa.rosenzweig@collabora.com

Merge request reports