Mesa (master): freedreno: gallium driver for adreno

Rob Clark robclark at kemper.freedesktop.org
Mon Mar 11 18:59:29 PDT 2013


Module: Mesa
Branch: master
Commit: 6173cc19c45d92ef0b7bc6aa008aa89bb29abbda
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=6173cc19c45d92ef0b7bc6aa008aa89bb29abbda

Author: Rob Clark <robclark at freedesktop.org>
Date:   Sat Oct 27 11:07:34 2012 -0500

freedreno: gallium driver for adreno

Currently works on a220.  Others in the a2xx family look pretty similar
and should be pretty straightforward to support with the same driver.

The a3xx has a new shader ISA, and while many registers appear similar,
the register addresses have been completely shuffled around.  I am not
sure yet whether it is best to support with the same driver, but
different compiler, or whether it should be split into a different
driver.

v1: original
v2: build file updates from review comments, and remove GPL licensed
    header files from msm kernel
v3: smarter temp/pred register assignment, fix clear and depth/stencil
    format issues, resource_transfer fixes, scissor fixes

Signed-off-by: Rob Clark <robdclark at gmail.com>

---

 configure.ac                                       |   14 +-
 src/gallium/drivers/freedreno/Makefile.am          |   32 +
 src/gallium/drivers/freedreno/disasm.c             |  632 +++++++++++
 src/gallium/drivers/freedreno/disasm.h             |   40 +
 src/gallium/drivers/freedreno/freedreno_a2xx_reg.h | 1172 +++++++++++++++++++
 src/gallium/drivers/freedreno/freedreno_blend.c    |  175 +++
 src/gallium/drivers/freedreno/freedreno_blend.h    |   44 +
 src/gallium/drivers/freedreno/freedreno_clear.c    |  224 ++++
 src/gallium/drivers/freedreno/freedreno_clear.h    |   37 +
 src/gallium/drivers/freedreno/freedreno_compiler.c | 1186 ++++++++++++++++++++
 src/gallium/drivers/freedreno/freedreno_compiler.h |   38 +
 src/gallium/drivers/freedreno/freedreno_context.c  |  205 ++++
 src/gallium/drivers/freedreno/freedreno_context.h  |  184 +++
 src/gallium/drivers/freedreno/freedreno_fence.c    |   52 +
 src/gallium/drivers/freedreno/freedreno_fence.h    |   65 ++
 src/gallium/drivers/freedreno/freedreno_gmem.c     |  491 ++++++++
 src/gallium/drivers/freedreno/freedreno_gmem.h     |   37 +
 src/gallium/drivers/freedreno/freedreno_pm4.h      |   86 ++
 src/gallium/drivers/freedreno/freedreno_program.c  |  506 +++++++++
 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 |  248 ++++
 src/gallium/drivers/freedreno/freedreno_resource.h |   51 +
 src/gallium/drivers/freedreno/freedreno_screen.c   |  471 ++++++++
 src/gallium/drivers/freedreno/freedreno_screen.h   |   70 ++
 src/gallium/drivers/freedreno/freedreno_state.c    |  641 +++++++++++
 src/gallium/drivers/freedreno/freedreno_state.h    |   53 +
 src/gallium/drivers/freedreno/freedreno_surface.c  |   73 ++
 src/gallium/drivers/freedreno/freedreno_surface.h  |   54 +
 src/gallium/drivers/freedreno/freedreno_texture.c  |  286 +++++
 src/gallium/drivers/freedreno/freedreno_texture.h  |   61 +
 src/gallium/drivers/freedreno/freedreno_util.c     |  351 ++++++
 src/gallium/drivers/freedreno/freedreno_util.h     |  124 ++
 src/gallium/drivers/freedreno/freedreno_vbo.c      |  232 ++++
 src/gallium/drivers/freedreno/freedreno_vbo.h      |   42 +
 src/gallium/drivers/freedreno/freedreno_zsa.c      |  144 +++
 src/gallium/drivers/freedreno/freedreno_zsa.h      |   60 +
 src/gallium/drivers/freedreno/instr.h              |  386 +++++++
 src/gallium/drivers/freedreno/ir.c                 |  701 ++++++++++++
 src/gallium/drivers/freedreno/ir.h                 |  243 ++++
 src/gallium/targets/dri-freedreno/Makefile.am      |   71 ++
 src/gallium/targets/dri-freedreno/target.c         |   20 +
 src/gallium/targets/egl-static/Makefile.am         |    9 +
 src/gallium/targets/egl-static/egl_pipe.c          |   22 +
 src/gallium/winsys/freedreno/drm/.gitignore        |    1 +
 src/gallium/winsys/freedreno/drm/Makefile.am       |   32 +
 .../winsys/freedreno/drm/freedreno_drm_public.h    |    9 +
 .../winsys/freedreno/drm/freedreno_drm_winsys.c    |   18 +
 49 files changed, 9973 insertions(+), 1 deletions(-)

Diff:   http://cgit.freedesktop.org/mesa/mesa/diff/?id=6173cc19c45d92ef0b7bc6aa008aa89bb29abbda


More information about the mesa-commit mailing list