freedreno/ir3: split out shader compiler from a3xx
authorRob Clark <robclark@freedesktop.org>
Fri, 25 Jul 2014 15:15:59 +0000 (11:15 -0400)
committerRob Clark <robclark@freedesktop.org>
Fri, 25 Jul 2014 17:29:28 +0000 (13:29 -0400)
commitdb193e5ad06e7a2fbcffb3bb5df85d212eb12291
tree58d1ec24c0af7b1acb1477eeaababe3d7eda6019
parent7d7e6ae9c3544ce1889aa9b8a34545c6f42017e7
freedreno/ir3: split out shader compiler from a3xx

Move the bits we want to share between generations from fd3_program to
ir3_shader.  So overall structure is:

  fdN_shader_stateobj -> ir3_shader -> ir3_shader_variant -> ir3
                                    |- ...
                                    \- ir3_shader_variant -> ir3

So the ir3_shader becomes the topmost generation neutral object, which
manages the set of variants each of which generates, compiles, and
assembles it's own ir.

There is a bit of additional renaming to s/fd3_compiler/ir3_compiler/,
etc.

Keep the split between the gallium level stateobj and the shader helper
object because it might be a good idea to pre-compute some generation
specific register values (ie. anything that is independent of linking).

Signed-off-by: Rob Clark <robclark@freedesktop.org>
25 files changed:
src/gallium/drivers/freedreno/Makefile.am
src/gallium/drivers/freedreno/Makefile.sources
src/gallium/drivers/freedreno/a3xx/fd3_draw.c
src/gallium/drivers/freedreno/a3xx/fd3_emit.c
src/gallium/drivers/freedreno/a3xx/fd3_emit.h
src/gallium/drivers/freedreno/a3xx/fd3_gmem.c
src/gallium/drivers/freedreno/a3xx/fd3_program.c
src/gallium/drivers/freedreno/a3xx/fd3_program.h
src/gallium/drivers/freedreno/a3xx/fd3_util.h
src/gallium/drivers/freedreno/ir3/disasm-a3xx.c [moved from src/gallium/drivers/freedreno/a3xx/disasm-a3xx.c with 100% similarity]
src/gallium/drivers/freedreno/ir3/instr-a3xx.h [moved from src/gallium/drivers/freedreno/a3xx/instr-a3xx.h with 100% similarity]
src/gallium/drivers/freedreno/ir3/ir3.c [moved from src/gallium/drivers/freedreno/a3xx/ir3.c with 100% similarity]
src/gallium/drivers/freedreno/ir3/ir3.h [moved from src/gallium/drivers/freedreno/a3xx/ir3.h with 100% similarity]
src/gallium/drivers/freedreno/ir3/ir3_compiler.c [moved from src/gallium/drivers/freedreno/a3xx/fd3_compiler.c with 95% similarity]
src/gallium/drivers/freedreno/ir3/ir3_compiler.h [moved from src/gallium/drivers/freedreno/a3xx/fd3_compiler.h with 86% similarity]
src/gallium/drivers/freedreno/ir3/ir3_compiler_old.c [moved from src/gallium/drivers/freedreno/a3xx/fd3_compiler_old.c with 93% similarity]
src/gallium/drivers/freedreno/ir3/ir3_cp.c [moved from src/gallium/drivers/freedreno/a3xx/ir3_cp.c with 100% similarity]
src/gallium/drivers/freedreno/ir3/ir3_depth.c [moved from src/gallium/drivers/freedreno/a3xx/ir3_depth.c with 100% similarity]
src/gallium/drivers/freedreno/ir3/ir3_dump.c [moved from src/gallium/drivers/freedreno/a3xx/ir3_dump.c with 100% similarity]
src/gallium/drivers/freedreno/ir3/ir3_flatten.c [moved from src/gallium/drivers/freedreno/a3xx/ir3_flatten.c with 100% similarity]
src/gallium/drivers/freedreno/ir3/ir3_ra.c [moved from src/gallium/drivers/freedreno/a3xx/ir3_ra.c with 100% similarity]
src/gallium/drivers/freedreno/ir3/ir3_sched.c [moved from src/gallium/drivers/freedreno/a3xx/ir3_sched.c with 100% similarity]
src/gallium/drivers/freedreno/ir3/ir3_shader.c [new file with mode: 0644]
src/gallium/drivers/freedreno/ir3/ir3_shader.h [new file with mode: 0644]
src/gallium/drivers/freedreno/ir3/ir3_visitor.h [moved from src/gallium/drivers/freedreno/a3xx/ir3_visitor.h with 100% similarity]