Skip to content

asahi: Rework uniforms

Alyssa Rosenzweig requested to merge alyssa/mesa:asahi/redescriptor into main

For Vulkan, we want each descriptor set to have independent allocations of texture descriptors, so load_texture_base_agx doesn't work there. Instead, we'll need to force bindless in these cases and handle it in the driver. It turns out this is reasonable to do in GL as well, so we do that and drop the problematic intrinsic.

Similarly, UBOs are per descriptor-set in Vulkan, so we pull the UBO lowering into the GL driver and drop the problematic sysval (unused in AGXV).

After that, we shuffle around the uniforms and optimize how they're emitted. The goal here is to make it possible to express a shader in GL that accesses textures or UBOs (for example) from multiple stages at once. This will be used later on to merge shader stages, this is just laying the ground work for this. Along the way, we get some nice wins for drawoverhead scores from better dirty tracking.

Merge request reports