freedreno: a2xx: NIR backend

Graphics / Mesa 3D Graphics Library / Mesa - Jonathan Marek [marek.ca] - 22 January 2019 14:45 EST

This patch replaces the a2xx TGSI compiler with a NIR compiler.

It also adds several new features:-gl_FrontFacing, gl_FragCoord, gl_PointCoord, gl_PointSize-control flow (including loops)-texture related features (LOD/bias, cubemaps)-filling scalar ALU slot when possible

67610a0323 freedreno: a2xx: NIR backend
src/gallium/drivers/freedreno/Makefile.sources | 10 +-
src/gallium/drivers/freedreno/a2xx/fd2_compiler.c | 1119 --------------------
src/gallium/drivers/freedreno/a2xx/fd2_compiler.h | 36 -
src/gallium/drivers/freedreno/a2xx/fd2_draw.c | 2 +-
src/gallium/drivers/freedreno/a2xx/fd2_emit.c | 20 +-
src/gallium/drivers/freedreno/a2xx/fd2_gmem.c | 14 +-
src/gallium/drivers/freedreno/a2xx/fd2_program.c | 521 ++++-----
src/gallium/drivers/freedreno/a2xx/fd2_program.h | 46 +-
src/gallium/drivers/freedreno/a2xx/instr-a2xx.h | 19 +-
src/gallium/drivers/freedreno/a2xx/ir-a2xx.c | 809 --------------
src/gallium/drivers/freedreno/a2xx/ir-a2xx.h | 188 ----
src/gallium/drivers/freedreno/a2xx/ir2.c | 304 ++++++
src/gallium/drivers/freedreno/a2xx/ir2.h | 94 ++
src/gallium/drivers/freedreno/a2xx/ir2_assemble.c | 548 ++++++++++
src/gallium/drivers/freedreno/a2xx/ir2_nir.c | 1173 +++++++++++++++++++++
src/gallium/drivers/freedreno/a2xx/ir2_private.h | 392 +++++++
src/gallium/drivers/freedreno/a2xx/ir2_ra.c | 226 ++++
src/gallium/drivers/freedreno/freedreno_context.h | 8 -
src/gallium/drivers/freedreno/freedreno_program.c | 9 +-
src/gallium/drivers/freedreno/freedreno_screen.c | 14 +-
src/gallium/drivers/freedreno/meson.build | 10 +-
21 files changed, 3033 insertions(+), 2529 deletions(-)

Upstream: cgit.freedesktop.org


  • Share