Skip to content

freedreno/a6xx: Switch to bindless IBO descriptors and enable SSBO/image for all shader stages

Rob Clark requested to merge robclark/mesa:fd/bindless into main

On top of !20575 (merged) (first 5 patches) barrier re-work, which is needed to pass KHR-GLES31.core.shader_image_load_store.basic-allTargets-loadStoreVS

This switches gallium over to use bindless descriptor sets for IBOs:

  • Since we have 5 descriptor sets, each shader stage can have it's own, which makes IBO state (mostly) independent of program state, so we can enable SSBO/image support for all shader stages
  • The same descriptors can be used by IBO related instructions, as well as isam, so this simplifies promoting ldib to the faster isam, and gets rid of a bunch tex stage munging slowpath at draw time
  • Moves descriptor used for fb-read to FS descriptor set, which makes TEX state completely independent of PROG state, and the cost of making FS IBO state dependent on PROG state, but only in the corner case that fb-read is used.
  • This MR also starts moving compute shaders over to CP_SET_DRAW_STATE.. not that this really helps from a performance standpoint, but it better re-uses state building between compute and 3d.

Merge request reports