radv: Use NIR based NGG lowering with the LLVM backend.
Depends on:
- !17581 (merged) for fixing up primitive ID exports (these cause crashes with LLVM)
The goal is to reuse the same NIR based lowering that I made for ACO in !10740 (merged) for RADV's LLVM backend. Previous work in merge requests !12570 (merged) and !12693 (merged) have already added most of the required stuff to ac_nir_to_llvm
and !12695 (merged) removed support for NGG streamout which was the only missing feature from ac_nir_lower_ngg
, therefore we can now just switch to using ac_nir_lower_ngg
with no loss of functionality.
NGG streamout support will be added later to ac_nir_lower_ngg
.
Benefits:
- Code can be shared between ACO and the LLVM backend, therefore reducing code duplication.
Caveats:
- NGG culling with LLVM is disabled because it doesn't work properly yet due to a bug with
overwrite_vs/tes_args