From: Rob Clark <robcl...@freedesktop.org> Currently, es2gears, ioquake, xonotic, compiz, gnome-shell, all 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/commits/master git://github.com/freedreno/mesa.git master The first patch is mostly just shuffling things around. The second patch is what actually adds a3xx support. The third adds support for a rendering mode that bypasses the GMEM/tile buffer which greatly speeds up XA and dma/blit sort of operations. Rob Clark (3): freedreno: prepare for a3xx freedreno: add a3xx support freedreno: gmem bypass configure.ac | 2 + src/gallium/drivers/freedreno/Makefile.am | 21 +- src/gallium/drivers/freedreno/a2xx.xml.h | 1473 ---------------- src/gallium/drivers/freedreno/a2xx/Makefile.am | 27 + 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 | 408 +++++ 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 | 27 + src/gallium/drivers/freedreno/a3xx/a3xx.xml.h | 1838 ++++++++++++++++++++ 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 | 1240 +++++++++++++ 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 | 236 +++ src/gallium/drivers/freedreno/a3xx/fd3_draw.h | 38 + src/gallium/drivers/freedreno/a3xx/fd3_emit.c | 581 +++++++ src/gallium/drivers/freedreno/a3xx/fd3_emit.h | 89 + src/gallium/drivers/freedreno/a3xx/fd3_gmem.c | 539 ++++++ src/gallium/drivers/freedreno/a3xx/fd3_gmem.h | 36 + src/gallium/drivers/freedreno/a3xx/fd3_program.c | 642 +++++++ src/gallium/drivers/freedreno/a3xx/fd3_program.h | 116 ++ .../drivers/freedreno/a3xx/fd3_rasterizer.c | 92 + .../drivers/freedreno/a3xx/fd3_rasterizer.h | 56 + src/gallium/drivers/freedreno/a3xx/fd3_screen.c | 105 ++ 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 | 348 ++++ src/gallium/drivers/freedreno/a3xx/fd3_util.h | 56 + src/gallium/drivers/freedreno/a3xx/fd3_zsa.c | 98 ++ src/gallium/drivers/freedreno/a3xx/fd3_zsa.h | 56 + src/gallium/drivers/freedreno/a3xx/instr-a3xx.h | 532 ++++++ src/gallium/drivers/freedreno/a3xx/ir-a3xx.c | 527 ++++++ 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 | 98 +- 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 | 86 +- src/gallium/drivers/freedreno/freedreno_context.h | 70 +- src/gallium/drivers/freedreno/freedreno_draw.c | 235 +++ src/gallium/drivers/freedreno/freedreno_draw.h | 43 + src/gallium/drivers/freedreno/freedreno_gmem.c | 386 +--- 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 | 73 +- src/gallium/drivers/freedreno/freedreno_screen.c | 125 +- src/gallium/drivers/freedreno/freedreno_screen.h | 1 + src/gallium/drivers/freedreno/freedreno_state.c | 470 +---- src/gallium/drivers/freedreno/freedreno_state.h | 32 +- src/gallium/drivers/freedreno/freedreno_texture.c | 129 +- src/gallium/drivers/freedreno/freedreno_texture.h | 25 - src/gallium/drivers/freedreno/freedreno_util.c | 389 ++--- 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, 17595 insertions(+), 7713 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