ac: Add a shared interface between radv, radeonsi, LLVM and ACO
authorConnor Abbott <cwabbott0@gmail.com>
Tue, 29 Oct 2019 16:40:30 +0000 (17:40 +0100)
committerConnor Abbott <cwabbott0@gmail.com>
Mon, 25 Nov 2019 13:12:46 +0000 (14:12 +0100)
commit9885af3bdf42cb22baf83aa9598be763a5fc2825
tree6c9ff304e4bf6e1fb67711d513bda74aa0180ef9
parent43da33c1695132ee094aac80991852c4954bf758
ac: Add a shared interface between radv, radeonsi, LLVM and ACO

ac_shader_args will be similar to ac_shader_abi, except for being free
from LLVM-specific concepts and therefore capable of being shared
between LLVM and ACO. This will help us accomplish a few different
things:

- Decouple setting up SGPR and VGPR arguments from translating to LLVM,
so that we can reference these arguments in NIR lowering passes, which
will let us lower e.g. descriptor sets in NIR.

- Stop using radv-specific structures for things like determining the
chip generation in ACO.

In the end, we should replace ac_shader_abi with this structure +
driver-specific lowering passes.

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
src/amd/common/ac_shader_args.c [new file with mode: 0644]
src/amd/common/ac_shader_args.h [new file with mode: 0644]
src/amd/common/meson.build
src/amd/llvm/ac_llvm_build.c
src/amd/llvm/ac_llvm_build.h
src/amd/llvm/ac_shader_abi.h