[Mesa-dev] [PATCH 0/3] freedreno: adreno a3xx support
Rob Clark
robdclark at gmail.com
Wed Jun 5 12:16:18 PDT 2013
From: Rob Clark <robclark at 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
More information about the mesa-dev
mailing list