Skip to content

panfrost: Use load_push_constant for internal shaders

Alyssa Rosenzweig requested to merge alyssa/mesa:panfrost/internal-push into main

Internal shaders (indirect draw, indirect dispatch, clear, fill, and copy) need uniform arguments passed. For performance, we want push constants for the arguments. Currently these shaders use the GL path -- creating a UBO, using UBO to push and UBO reordering optimizations to choose a push constant layout, binding the UBO just in case, and reordering the push constants before upload to match what the compiler picked. This is very complicated. It's simpler (and faster) to use push constants directly.

This is a stepping stone to proper push constant support in PanVK, which can't support the existing UBO-to-push pass efficiently (or correctly). After this series, that pass is used only for GL shaders.

Merge request reports