From: Rob Clark <robcl...@freedesktop.org> Currently, es2gears, ioquake, xonotic, compiz, etc. work. The shader compiler is quite sub-optimal, but despite that most things seem to be ~2-3x faster compared (and at higher resolution) with the a320 on my nexus4 compared to a220 on my HP touchpad.
Since the patches will probably bounce due to size, you can find them on my github tree: https://github.com/freedreno/mesa/tree/a3xx-rfc git://github.com/freedreno/mesa.git a3xx-rfc The first patch is mostly just shuffling things around. The second patch is what actually adds a3xx support. Rob Clark (2): RFC: freedreno: prepare for a3xx RFC: freedreno: add a3xx support configure.ac | 2 + src/gallium/drivers/freedreno/Makefile.am | 20 +- src/gallium/drivers/freedreno/a2xx.xml.h | 1473 ---------------- src/gallium/drivers/freedreno/a2xx/Makefile.am | 28 + src/gallium/drivers/freedreno/a2xx/a2xx.xml.h | 1465 ++++++++++++++++ src/gallium/drivers/freedreno/a2xx/disasm-a2xx.c | 632 +++++++ src/gallium/drivers/freedreno/a2xx/fd2_blend.c | 86 + src/gallium/drivers/freedreno/a2xx/fd2_blend.h | 51 + src/gallium/drivers/freedreno/a2xx/fd2_compiler.c | 1191 +++++++++++++ src/gallium/drivers/freedreno/a2xx/fd2_compiler.h | 38 + src/gallium/drivers/freedreno/a2xx/fd2_context.c | 101 ++ src/gallium/drivers/freedreno/a2xx/fd2_context.h | 52 + src/gallium/drivers/freedreno/a2xx/fd2_draw.c | 294 ++++ src/gallium/drivers/freedreno/a2xx/fd2_draw.h | 38 + src/gallium/drivers/freedreno/a2xx/fd2_emit.c | 443 +++++ src/gallium/drivers/freedreno/a2xx/fd2_emit.h | 48 + src/gallium/drivers/freedreno/a2xx/fd2_gmem.c | 393 +++++ src/gallium/drivers/freedreno/a2xx/fd2_gmem.h | 36 + src/gallium/drivers/freedreno/a2xx/fd2_program.c | 506 ++++++ src/gallium/drivers/freedreno/a2xx/fd2_program.h | 82 + .../drivers/freedreno/a2xx/fd2_rasterizer.c | 113 ++ .../drivers/freedreno/a2xx/fd2_rasterizer.h | 55 + src/gallium/drivers/freedreno/a2xx/fd2_screen.c | 109 ++ src/gallium/drivers/freedreno/a2xx/fd2_screen.h | 36 + src/gallium/drivers/freedreno/a2xx/fd2_texture.c | 158 ++ src/gallium/drivers/freedreno/a2xx/fd2_texture.h | 69 + src/gallium/drivers/freedreno/a2xx/fd2_util.c | 322 ++++ src/gallium/drivers/freedreno/a2xx/fd2_util.h | 47 + src/gallium/drivers/freedreno/a2xx/fd2_zsa.c | 96 ++ src/gallium/drivers/freedreno/a2xx/fd2_zsa.h | 56 + src/gallium/drivers/freedreno/a2xx/instr-a2xx.h | 389 +++++ src/gallium/drivers/freedreno/a2xx/ir-a2xx.c | 635 +++++++ src/gallium/drivers/freedreno/a2xx/ir-a2xx.h | 180 ++ src/gallium/drivers/freedreno/a3xx/Makefile.am | 28 + src/gallium/drivers/freedreno/a3xx/a3xx.xml.h | 1761 ++++++++++++++++++++ src/gallium/drivers/freedreno/a3xx/disasm-a3xx.c | 946 +++++++++++ src/gallium/drivers/freedreno/a3xx/fd3_blend.c | 87 + src/gallium/drivers/freedreno/a3xx/fd3_blend.h | 52 + src/gallium/drivers/freedreno/a3xx/fd3_compiler.c | 998 +++++++++++ src/gallium/drivers/freedreno/a3xx/fd3_compiler.h | 38 + src/gallium/drivers/freedreno/a3xx/fd3_context.c | 118 ++ src/gallium/drivers/freedreno/a3xx/fd3_context.h | 68 + src/gallium/drivers/freedreno/a3xx/fd3_draw.c | 229 +++ src/gallium/drivers/freedreno/a3xx/fd3_draw.h | 38 + src/gallium/drivers/freedreno/a3xx/fd3_emit.c | 582 +++++++ src/gallium/drivers/freedreno/a3xx/fd3_emit.h | 62 + src/gallium/drivers/freedreno/a3xx/fd3_gmem.c | 395 +++++ src/gallium/drivers/freedreno/a3xx/fd3_gmem.h | 36 + src/gallium/drivers/freedreno/a3xx/fd3_program.c | 637 +++++++ src/gallium/drivers/freedreno/a3xx/fd3_program.h | 111 ++ .../drivers/freedreno/a3xx/fd3_rasterizer.c | 92 + .../drivers/freedreno/a3xx/fd3_rasterizer.h | 56 + src/gallium/drivers/freedreno/a3xx/fd3_screen.c | 103 ++ src/gallium/drivers/freedreno/a3xx/fd3_screen.h | 36 + src/gallium/drivers/freedreno/a3xx/fd3_texture.c | 140 ++ src/gallium/drivers/freedreno/a3xx/fd3_texture.h | 68 + src/gallium/drivers/freedreno/a3xx/fd3_util.c | 292 ++++ src/gallium/drivers/freedreno/a3xx/fd3_util.h | 54 + src/gallium/drivers/freedreno/a3xx/fd3_zsa.c | 100 ++ src/gallium/drivers/freedreno/a3xx/fd3_zsa.h | 56 + src/gallium/drivers/freedreno/a3xx/instr-a3xx.h | 523 ++++++ src/gallium/drivers/freedreno/a3xx/ir-a3xx.c | 525 ++++++ src/gallium/drivers/freedreno/a3xx/ir-a3xx.h | 190 +++ src/gallium/drivers/freedreno/adreno_common.xml.h | 11 +- src/gallium/drivers/freedreno/adreno_pm4.xml.h | 97 +- src/gallium/drivers/freedreno/disasm.c | 632 ------- src/gallium/drivers/freedreno/disasm.h | 5 +- src/gallium/drivers/freedreno/freedreno_blend.c | 175 -- src/gallium/drivers/freedreno/freedreno_blend.h | 44 - src/gallium/drivers/freedreno/freedreno_clear.c | 251 --- src/gallium/drivers/freedreno/freedreno_clear.h | 37 - src/gallium/drivers/freedreno/freedreno_compiler.c | 1195 ------------- src/gallium/drivers/freedreno/freedreno_compiler.h | 38 - src/gallium/drivers/freedreno/freedreno_context.c | 81 +- src/gallium/drivers/freedreno/freedreno_context.h | 49 +- src/gallium/drivers/freedreno/freedreno_draw.c | 212 +++ src/gallium/drivers/freedreno/freedreno_draw.h | 43 + src/gallium/drivers/freedreno/freedreno_gmem.c | 323 +--- src/gallium/drivers/freedreno/freedreno_program.c | 504 ------ src/gallium/drivers/freedreno/freedreno_program.h | 82 - .../drivers/freedreno/freedreno_rasterizer.c | 151 -- .../drivers/freedreno/freedreno_rasterizer.h | 48 - src/gallium/drivers/freedreno/freedreno_resource.c | 7 +- src/gallium/drivers/freedreno/freedreno_screen.c | 125 +- src/gallium/drivers/freedreno/freedreno_screen.h | 1 + src/gallium/drivers/freedreno/freedreno_state.c | 462 +---- src/gallium/drivers/freedreno/freedreno_state.h | 24 +- src/gallium/drivers/freedreno/freedreno_texture.c | 129 +- src/gallium/drivers/freedreno/freedreno_texture.h | 25 - src/gallium/drivers/freedreno/freedreno_util.c | 387 ++--- src/gallium/drivers/freedreno/freedreno_util.h | 31 +- src/gallium/drivers/freedreno/freedreno_vbo.c | 239 --- src/gallium/drivers/freedreno/freedreno_vbo.h | 42 - src/gallium/drivers/freedreno/freedreno_zsa.c | 144 -- src/gallium/drivers/freedreno/freedreno_zsa.h | 59 - src/gallium/drivers/freedreno/instr-a2xx.h | 389 ----- src/gallium/drivers/freedreno/ir-a2xx.c | 635 ------- src/gallium/drivers/freedreno/ir-a2xx.h | 180 -- 98 files changed, 16853 insertions(+), 7669 deletions(-) delete mode 100644 src/gallium/drivers/freedreno/a2xx.xml.h create mode 100644 src/gallium/drivers/freedreno/a2xx/Makefile.am create mode 100644 src/gallium/drivers/freedreno/a2xx/a2xx.xml.h create mode 100644 src/gallium/drivers/freedreno/a2xx/disasm-a2xx.c create mode 100644 src/gallium/drivers/freedreno/a2xx/fd2_blend.c create mode 100644 src/gallium/drivers/freedreno/a2xx/fd2_blend.h create mode 100644 src/gallium/drivers/freedreno/a2xx/fd2_compiler.c create mode 100644 src/gallium/drivers/freedreno/a2xx/fd2_compiler.h create mode 100644 src/gallium/drivers/freedreno/a2xx/fd2_context.c create mode 100644 src/gallium/drivers/freedreno/a2xx/fd2_context.h create mode 100644 src/gallium/drivers/freedreno/a2xx/fd2_draw.c create mode 100644 src/gallium/drivers/freedreno/a2xx/fd2_draw.h create mode 100644 src/gallium/drivers/freedreno/a2xx/fd2_emit.c create mode 100644 src/gallium/drivers/freedreno/a2xx/fd2_emit.h create mode 100644 src/gallium/drivers/freedreno/a2xx/fd2_gmem.c create mode 100644 src/gallium/drivers/freedreno/a2xx/fd2_gmem.h create mode 100644 src/gallium/drivers/freedreno/a2xx/fd2_program.c create mode 100644 src/gallium/drivers/freedreno/a2xx/fd2_program.h create mode 100644 src/gallium/drivers/freedreno/a2xx/fd2_rasterizer.c create mode 100644 src/gallium/drivers/freedreno/a2xx/fd2_rasterizer.h create mode 100644 src/gallium/drivers/freedreno/a2xx/fd2_screen.c create mode 100644 src/gallium/drivers/freedreno/a2xx/fd2_screen.h create mode 100644 src/gallium/drivers/freedreno/a2xx/fd2_texture.c create mode 100644 src/gallium/drivers/freedreno/a2xx/fd2_texture.h create mode 100644 src/gallium/drivers/freedreno/a2xx/fd2_util.c create mode 100644 src/gallium/drivers/freedreno/a2xx/fd2_util.h create mode 100644 src/gallium/drivers/freedreno/a2xx/fd2_zsa.c create mode 100644 src/gallium/drivers/freedreno/a2xx/fd2_zsa.h create mode 100644 src/gallium/drivers/freedreno/a2xx/instr-a2xx.h create mode 100644 src/gallium/drivers/freedreno/a2xx/ir-a2xx.c create mode 100644 src/gallium/drivers/freedreno/a2xx/ir-a2xx.h create mode 100644 src/gallium/drivers/freedreno/a3xx/Makefile.am create mode 100644 src/gallium/drivers/freedreno/a3xx/a3xx.xml.h create mode 100644 src/gallium/drivers/freedreno/a3xx/disasm-a3xx.c create mode 100644 src/gallium/drivers/freedreno/a3xx/fd3_blend.c create mode 100644 src/gallium/drivers/freedreno/a3xx/fd3_blend.h create mode 100644 src/gallium/drivers/freedreno/a3xx/fd3_compiler.c create mode 100644 src/gallium/drivers/freedreno/a3xx/fd3_compiler.h create mode 100644 src/gallium/drivers/freedreno/a3xx/fd3_context.c create mode 100644 src/gallium/drivers/freedreno/a3xx/fd3_context.h create mode 100644 src/gallium/drivers/freedreno/a3xx/fd3_draw.c create mode 100644 src/gallium/drivers/freedreno/a3xx/fd3_draw.h create mode 100644 src/gallium/drivers/freedreno/a3xx/fd3_emit.c create mode 100644 src/gallium/drivers/freedreno/a3xx/fd3_emit.h create mode 100644 src/gallium/drivers/freedreno/a3xx/fd3_gmem.c create mode 100644 src/gallium/drivers/freedreno/a3xx/fd3_gmem.h create mode 100644 src/gallium/drivers/freedreno/a3xx/fd3_program.c create mode 100644 src/gallium/drivers/freedreno/a3xx/fd3_program.h create mode 100644 src/gallium/drivers/freedreno/a3xx/fd3_rasterizer.c create mode 100644 src/gallium/drivers/freedreno/a3xx/fd3_rasterizer.h create mode 100644 src/gallium/drivers/freedreno/a3xx/fd3_screen.c create mode 100644 src/gallium/drivers/freedreno/a3xx/fd3_screen.h create mode 100644 src/gallium/drivers/freedreno/a3xx/fd3_texture.c create mode 100644 src/gallium/drivers/freedreno/a3xx/fd3_texture.h create mode 100644 src/gallium/drivers/freedreno/a3xx/fd3_util.c create mode 100644 src/gallium/drivers/freedreno/a3xx/fd3_util.h create mode 100644 src/gallium/drivers/freedreno/a3xx/fd3_zsa.c create mode 100644 src/gallium/drivers/freedreno/a3xx/fd3_zsa.h create mode 100644 src/gallium/drivers/freedreno/a3xx/instr-a3xx.h create mode 100644 src/gallium/drivers/freedreno/a3xx/ir-a3xx.c create mode 100644 src/gallium/drivers/freedreno/a3xx/ir-a3xx.h delete mode 100644 src/gallium/drivers/freedreno/disasm.c delete mode 100644 src/gallium/drivers/freedreno/freedreno_blend.c delete mode 100644 src/gallium/drivers/freedreno/freedreno_blend.h delete mode 100644 src/gallium/drivers/freedreno/freedreno_clear.c delete mode 100644 src/gallium/drivers/freedreno/freedreno_clear.h delete mode 100644 src/gallium/drivers/freedreno/freedreno_compiler.c delete mode 100644 src/gallium/drivers/freedreno/freedreno_compiler.h create mode 100644 src/gallium/drivers/freedreno/freedreno_draw.c create mode 100644 src/gallium/drivers/freedreno/freedreno_draw.h delete mode 100644 src/gallium/drivers/freedreno/freedreno_program.c delete mode 100644 src/gallium/drivers/freedreno/freedreno_program.h delete mode 100644 src/gallium/drivers/freedreno/freedreno_rasterizer.c delete mode 100644 src/gallium/drivers/freedreno/freedreno_rasterizer.h delete mode 100644 src/gallium/drivers/freedreno/freedreno_vbo.c delete mode 100644 src/gallium/drivers/freedreno/freedreno_vbo.h delete mode 100644 src/gallium/drivers/freedreno/freedreno_zsa.c delete mode 100644 src/gallium/drivers/freedreno/freedreno_zsa.h delete mode 100644 src/gallium/drivers/freedreno/instr-a2xx.h delete mode 100644 src/gallium/drivers/freedreno/ir-a2xx.c delete mode 100644 src/gallium/drivers/freedreno/ir-a2xx.h -- 1.8.1.4 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev