freedreno/ir3: add NIR compiler
authorRob Clark <robclark@freedesktop.org>
Thu, 12 Mar 2015 21:18:33 +0000 (17:18 -0400)
committerRob Clark <robclark@freedesktop.org>
Sun, 5 Apr 2015 20:36:40 +0000 (16:36 -0400)
commit8b0b81339b9c3806981ee2ec7c08501bbd8bb7a3
treeeae4eef9cb4804ad345ea16f72b89159620837f9
parent700d949ea162a5036ffc3056adaa8eb3fecc9c2e
freedreno/ir3: add NIR compiler

The NIR compiler frontend is an alternative to the TGSI f/e, producing
the same ir3 IR and using the same backend passes for scheduling, etc.

It is not enabled by default yet, as there are still some regressions.
To enable, use 'FD_MESA_DEBUG=nir'.  It is enough to use with, for
example, xonotic or supertuxkart.

With the NIR f/e, scalarizing and a number of other lowering steps
happen in NIR, so we don't have to do them in ir3.  Which simplifies the
f/e and allows the lowered instructions to pass through other
optimization stages.

Signed-off-by: Rob Clark <robclark@freedesktop.org>
src/gallium/drivers/freedreno/Makefile.sources
src/gallium/drivers/freedreno/freedreno_screen.c
src/gallium/drivers/freedreno/freedreno_util.h
src/gallium/drivers/freedreno/ir3/ir3_cmdline.c
src/gallium/drivers/freedreno/ir3/ir3_compiler.h
src/gallium/drivers/freedreno/ir3/ir3_compiler_nir.c [new file with mode: 0644]
src/gallium/drivers/freedreno/ir3/ir3_shader.c