Skip to content

radeonsi: support aco compile for monolithic ps

Qiang Yu requested to merge yuq825/mesa:topic/radeonsi-aco into main

ACO compile can be enabled with AMD_DEBUG=useaco. Currently only monolithic PS is supported. It would be a huge change to switch all shaders to ACO at once, so my plan is enable one by one for easier review and debug.

Compared to LLVM, ACO PS version has no regression on piglit tests except:

  • spec@!opengl 1.0@gl-1.0-spot-light which need to be fixed after !22520 (merged)
  • tests with big local array, this needs scrach buffer support, but currently ACO does not support it for radeonsi due to not support dynamic symbol relocation
  • tests need to be fixed in ACO

ACO still miss some functionality which will limit radeonsi to implement some functionality and shader with it, but we can address them later:

  • dynamical symbol resolution:
    • needed by scratch buffer for large array and reg spill
    • needed by NGG LDS address symbols
  • part mode shader for LS/HS and ES/GS combined shader stage, but I'm told that VK_EXT_shader_object will help this

Depends on:

Edited by Qiang Yu

Merge request reports