[PATCH v2 0/3] gallium driver for Vivante GPUs

Christian Gmeiner christian.gmeiner at gmail.com
Fri Dec 23 22:04:48 UTC 2016


As the original patchstack is now about 300 patches, I have choosen to
squash the patches together into three different parts.

- renderonly library
  A lightweight library to add basic infrastructure for renderonly
  GPUs. With this library it is possible to run wayland or and other
  kms egl apps.

- etnaviv gallium driver
  glxgears renders so its time to get this driver mainline.

- imx gallium driver
  Special dump driver for the imx-drm kms driver.

The renderonly library approach is a temporary workaround until 'gbm2'
is ready. I am aware that not everybody is happy about it but it helps
to increase the possible use cases like wayland and kms egl apps. Also
keep in mind that this library was only made for the embedded use case
and will not work with hybrid GPUs etc. If there are fundamental problems
with this library I will drop it and etnaviv will only work under X
(with armada-ddx from unstable-devel branch).

Some (older) results from piglit and deqp can be found here:
 https://christian-gmeiner.info/piglit
 https://christian-gmeiner.info/deqp

All individual patches can be found here:
 https://github.com/etnaviv/mesa/tree/for_mainline_v2

The squased one can be found here:
 https://github.com/etnaviv/mesa/tree/for_mainline_v2_squashed

As this work is a collaborative effort of Lucas Stack, Philipp Zabel,
Rob Herring, Russell King, Wladimir J. van der Laan and myself the
etnaviv gallium patch has a fictive author, but our signoff.

Changes from V1 -> V2:
 - reworked renderonly library
 - added missing build integration

Happy Christmas!
Christian

PS: Patch 2 will not make it to ml as it is too big - please look it up
at github!

Christian Gmeiner (2):
  gallium: add renderonly library
  imx: gallium driver for imx-drm scanout driver

The etnaviv authors (1):
  etnaviv: gallium driver for Vivante GPUs

 configure.ac                                       |   21 +
 src/gallium/Automake.inc                           |    5 +
 src/gallium/Makefile.am                            |    8 +
 src/gallium/auxiliary/Makefile.am                  |   10 +
 src/gallium/auxiliary/Makefile.sources             |    4 +
 .../auxiliary/pipe-loader/pipe_loader_drm.c        |   10 +
 src/gallium/auxiliary/renderonly/renderonly.c      |  175 ++
 src/gallium/auxiliary/renderonly/renderonly.h      |  109 +
 src/gallium/auxiliary/target-helpers/drm_helper.h  |   46 +
 .../auxiliary/target-helpers/drm_helper_public.h   |    6 +
 src/gallium/drivers/etnaviv/.gitignore             |    1 +
 src/gallium/drivers/etnaviv/Automake.inc           |   11 +
 src/gallium/drivers/etnaviv/Makefile.am            |   44 +
 src/gallium/drivers/etnaviv/Makefile.sources       |   26 +
 src/gallium/drivers/etnaviv/etnaviv_asm.c          |  107 +
 src/gallium/drivers/etnaviv/etnaviv_asm.h          |  133 +
 src/gallium/drivers/etnaviv/etnaviv_blend.c        |  109 +
 src/gallium/drivers/etnaviv/etnaviv_blend.h        |   52 +
 src/gallium/drivers/etnaviv/etnaviv_clear_blit.c   |  640 +++++
 src/gallium/drivers/etnaviv/etnaviv_clear_blit.h   |   48 +
 src/gallium/drivers/etnaviv/etnaviv_compiler.c     | 2564 ++++++++++++++++++++
 src/gallium/drivers/etnaviv/etnaviv_compiler.h     |  120 +
 .../drivers/etnaviv/etnaviv_compiler_cmdline.c     |  146 ++
 src/gallium/drivers/etnaviv/etnaviv_context.c      |  323 +++
 src/gallium/drivers/etnaviv/etnaviv_context.h      |  194 ++
 src/gallium/drivers/etnaviv/etnaviv_debug.h        |   79 +
 src/gallium/drivers/etnaviv/etnaviv_disasm.c       |  612 +++++
 src/gallium/drivers/etnaviv/etnaviv_disasm.h       |   40 +
 src/gallium/drivers/etnaviv/etnaviv_emit.c         |  770 ++++++
 src/gallium/drivers/etnaviv/etnaviv_emit.h         |  123 +
 src/gallium/drivers/etnaviv/etnaviv_fence.c        |   87 +
 src/gallium/drivers/etnaviv/etnaviv_fence.h        |   39 +
 src/gallium/drivers/etnaviv/etnaviv_format.c       |  268 ++
 src/gallium/drivers/etnaviv/etnaviv_format.h       |   47 +
 src/gallium/drivers/etnaviv/etnaviv_internal.h     |  259 ++
 src/gallium/drivers/etnaviv/etnaviv_query.c        |  120 +
 src/gallium/drivers/etnaviv/etnaviv_query.h        |   64 +
 src/gallium/drivers/etnaviv/etnaviv_query_sw.c     |  123 +
 src/gallium/drivers/etnaviv/etnaviv_query_sw.h     |   47 +
 src/gallium/drivers/etnaviv/etnaviv_rasterizer.c   |   81 +
 src/gallium/drivers/etnaviv/etnaviv_rasterizer.h   |   57 +
 src/gallium/drivers/etnaviv/etnaviv_resource.c     |  438 ++++
 src/gallium/drivers/etnaviv/etnaviv_resource.h     |  148 ++
 src/gallium/drivers/etnaviv/etnaviv_rs.c           |  127 +
 src/gallium/drivers/etnaviv/etnaviv_rs.h           |   86 +
 src/gallium/drivers/etnaviv/etnaviv_screen.c       |  812 +++++++
 src/gallium/drivers/etnaviv/etnaviv_screen.h       |   95 +
 src/gallium/drivers/etnaviv/etnaviv_shader.c       |  285 +++
 src/gallium/drivers/etnaviv/etnaviv_shader.h       |   45 +
 src/gallium/drivers/etnaviv/etnaviv_state.c        |  664 +++++
 src/gallium/drivers/etnaviv/etnaviv_state.h        |   52 +
 src/gallium/drivers/etnaviv/etnaviv_surface.c      |  152 ++
 src/gallium/drivers/etnaviv/etnaviv_surface.h      |   55 +
 src/gallium/drivers/etnaviv/etnaviv_texture.c      |  338 +++
 src/gallium/drivers/etnaviv/etnaviv_texture.h      |   75 +
 src/gallium/drivers/etnaviv/etnaviv_tiling.c       |   96 +
 src/gallium/drivers/etnaviv/etnaviv_tiling.h       |   56 +
 src/gallium/drivers/etnaviv/etnaviv_transfer.c     |  355 +++
 src/gallium/drivers/etnaviv/etnaviv_transfer.h     |   35 +
 src/gallium/drivers/etnaviv/etnaviv_translate.h    |  516 ++++
 src/gallium/drivers/etnaviv/etnaviv_uniforms.c     |  118 +
 src/gallium/drivers/etnaviv/etnaviv_uniforms.h     |   45 +
 src/gallium/drivers/etnaviv/etnaviv_util.h         |  108 +
 src/gallium/drivers/etnaviv/etnaviv_zsa.c          |  123 +
 src/gallium/drivers/etnaviv/etnaviv_zsa.h          |   52 +
 src/gallium/drivers/etnaviv/hw/cmdstream.xml.h     |  270 +++
 src/gallium/drivers/etnaviv/hw/common.xml.h        |  320 +++
 src/gallium/drivers/etnaviv/hw/isa.xml.h           |  239 ++
 src/gallium/drivers/etnaviv/hw/state.xml.h         |  397 +++
 src/gallium/drivers/etnaviv/hw/state_3d.xml.h      | 1231 ++++++++++
 src/gallium/drivers/imx/Automake.inc               |    9 +
 src/gallium/drivers/imx/Makefile.am                |    9 +
 src/gallium/targets/dri/Makefile.am                |    3 +
 src/gallium/targets/dri/target.c                   |   19 +
 src/gallium/winsys/etnaviv/drm/Makefile.am         |   32 +
 .../winsys/etnaviv/drm/etnaviv_drm_public.h        |   39 +
 .../winsys/etnaviv/drm/etnaviv_drm_winsys.c        |  161 ++
 src/gallium/winsys/imx/drm/Makefile.am             |   34 +
 src/gallium/winsys/imx/drm/Makefile.sources        |    3 +
 src/gallium/winsys/imx/drm/imx_drm_public.h        |   34 +
 src/gallium/winsys/imx/drm/imx_drm_winsys.c        |   50 +
 81 files changed, 15454 insertions(+)
 create mode 100644 src/gallium/auxiliary/renderonly/renderonly.c
 create mode 100644 src/gallium/auxiliary/renderonly/renderonly.h
 create mode 100644 src/gallium/drivers/etnaviv/.gitignore
 create mode 100644 src/gallium/drivers/etnaviv/Automake.inc
 create mode 100644 src/gallium/drivers/etnaviv/Makefile.am
 create mode 100644 src/gallium/drivers/etnaviv/Makefile.sources
 create mode 100644 src/gallium/drivers/etnaviv/etnaviv_asm.c
 create mode 100644 src/gallium/drivers/etnaviv/etnaviv_asm.h
 create mode 100644 src/gallium/drivers/etnaviv/etnaviv_blend.c
 create mode 100644 src/gallium/drivers/etnaviv/etnaviv_blend.h
 create mode 100644 src/gallium/drivers/etnaviv/etnaviv_clear_blit.c
 create mode 100644 src/gallium/drivers/etnaviv/etnaviv_clear_blit.h
 create mode 100644 src/gallium/drivers/etnaviv/etnaviv_compiler.c
 create mode 100644 src/gallium/drivers/etnaviv/etnaviv_compiler.h
 create mode 100644 src/gallium/drivers/etnaviv/etnaviv_compiler_cmdline.c
 create mode 100644 src/gallium/drivers/etnaviv/etnaviv_context.c
 create mode 100644 src/gallium/drivers/etnaviv/etnaviv_context.h
 create mode 100644 src/gallium/drivers/etnaviv/etnaviv_debug.h
 create mode 100644 src/gallium/drivers/etnaviv/etnaviv_disasm.c
 create mode 100644 src/gallium/drivers/etnaviv/etnaviv_disasm.h
 create mode 100644 src/gallium/drivers/etnaviv/etnaviv_emit.c
 create mode 100644 src/gallium/drivers/etnaviv/etnaviv_emit.h
 create mode 100644 src/gallium/drivers/etnaviv/etnaviv_fence.c
 create mode 100644 src/gallium/drivers/etnaviv/etnaviv_fence.h
 create mode 100644 src/gallium/drivers/etnaviv/etnaviv_format.c
 create mode 100644 src/gallium/drivers/etnaviv/etnaviv_format.h
 create mode 100644 src/gallium/drivers/etnaviv/etnaviv_internal.h
 create mode 100644 src/gallium/drivers/etnaviv/etnaviv_query.c
 create mode 100644 src/gallium/drivers/etnaviv/etnaviv_query.h
 create mode 100644 src/gallium/drivers/etnaviv/etnaviv_query_sw.c
 create mode 100644 src/gallium/drivers/etnaviv/etnaviv_query_sw.h
 create mode 100644 src/gallium/drivers/etnaviv/etnaviv_rasterizer.c
 create mode 100644 src/gallium/drivers/etnaviv/etnaviv_rasterizer.h
 create mode 100644 src/gallium/drivers/etnaviv/etnaviv_resource.c
 create mode 100644 src/gallium/drivers/etnaviv/etnaviv_resource.h
 create mode 100644 src/gallium/drivers/etnaviv/etnaviv_rs.c
 create mode 100644 src/gallium/drivers/etnaviv/etnaviv_rs.h
 create mode 100644 src/gallium/drivers/etnaviv/etnaviv_screen.c
 create mode 100644 src/gallium/drivers/etnaviv/etnaviv_screen.h
 create mode 100644 src/gallium/drivers/etnaviv/etnaviv_shader.c
 create mode 100644 src/gallium/drivers/etnaviv/etnaviv_shader.h
 create mode 100644 src/gallium/drivers/etnaviv/etnaviv_state.c
 create mode 100644 src/gallium/drivers/etnaviv/etnaviv_state.h
 create mode 100644 src/gallium/drivers/etnaviv/etnaviv_surface.c
 create mode 100644 src/gallium/drivers/etnaviv/etnaviv_surface.h
 create mode 100644 src/gallium/drivers/etnaviv/etnaviv_texture.c
 create mode 100644 src/gallium/drivers/etnaviv/etnaviv_texture.h
 create mode 100644 src/gallium/drivers/etnaviv/etnaviv_tiling.c
 create mode 100644 src/gallium/drivers/etnaviv/etnaviv_tiling.h
 create mode 100644 src/gallium/drivers/etnaviv/etnaviv_transfer.c
 create mode 100644 src/gallium/drivers/etnaviv/etnaviv_transfer.h
 create mode 100644 src/gallium/drivers/etnaviv/etnaviv_translate.h
 create mode 100644 src/gallium/drivers/etnaviv/etnaviv_uniforms.c
 create mode 100644 src/gallium/drivers/etnaviv/etnaviv_uniforms.h
 create mode 100644 src/gallium/drivers/etnaviv/etnaviv_util.h
 create mode 100644 src/gallium/drivers/etnaviv/etnaviv_zsa.c
 create mode 100644 src/gallium/drivers/etnaviv/etnaviv_zsa.h
 create mode 100644 src/gallium/drivers/etnaviv/hw/cmdstream.xml.h
 create mode 100644 src/gallium/drivers/etnaviv/hw/common.xml.h
 create mode 100644 src/gallium/drivers/etnaviv/hw/isa.xml.h
 create mode 100644 src/gallium/drivers/etnaviv/hw/state.xml.h
 create mode 100644 src/gallium/drivers/etnaviv/hw/state_3d.xml.h
 create mode 100644 src/gallium/drivers/imx/Automake.inc
 create mode 100644 src/gallium/drivers/imx/Makefile.am
 create mode 100644 src/gallium/winsys/etnaviv/drm/Makefile.am
 create mode 100644 src/gallium/winsys/etnaviv/drm/etnaviv_drm_public.h
 create mode 100644 src/gallium/winsys/etnaviv/drm/etnaviv_drm_winsys.c
 create mode 100644 src/gallium/winsys/imx/drm/Makefile.am
 create mode 100644 src/gallium/winsys/imx/drm/Makefile.sources
 create mode 100644 src/gallium/winsys/imx/drm/imx_drm_public.h
 create mode 100644 src/gallium/winsys/imx/drm/imx_drm_winsys.c

-- 
2.9.3



More information about the etnaviv mailing list