[Mesa-dev] i965/radeonsi use STD430 packing of UBOs by default

Timothy Arceri tarceri at itsqueeze.com
Sun Aug 20 22:52:23 UTC 2017

On 21/08/17 03:25, Marek Olšák wrote:
> On Thu, Aug 17, 2017 at 1:02 PM, Timothy Arceri <tarceri at itsqueeze.com> wrote:
>> Shared (the default) and packed layouts are decided by the implementation.
>> Currently we just pack them using the std140 layout. This change makes it so
>> we use the slightly more compact std430 layout on i965 and radeonsi.
>> I doubt this will help many games, but it still seems worth implementing.
>> I could only find shaders for a single game in my shader-db collection
>> where STD140 layout wasn't explicitly defined for UBOs, and even there
>> it was using vec4s so there would be no improvement.
> Why having a separate codepath that only 2 drivers will use If it
> doesn't improve any app?

I didn't say it doesn't improve any apps, presumably something uses the 
shared and packed layout provided by the spec. I just didn't seen it in 
my quick search of my shader-db collection.

Ignoring how many apps use it, it's not much of a separate path it 
mostly just reuses the existing paths for SSBOs. Also if we can get SNB 
fixed up and add support to the remaining Gallium drivers that support 
ubos than we can drop the old paths entirely.

For radeonsi once I get LOAD working with my uniform packing series that 
would just leave immediates using the fetch_constant() code path.

> Marek

More information about the mesa-dev mailing list