[PATCH 0/3] gallium driver for Vivante GPUs

Christian Gmeiner christian.gmeiner at gmail.com
Wed Nov 30 07:26:10 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_v1

The squased one can be found here:
 https://github.com/etnaviv/mesa/tree/for_mainline_v1_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.

Happy reviewing!

Christian

PS: I hope I got all Signed-off's right - if not I am quite sorry and
will fix it in v2 or before pushing.
PPS: As not everybody is happy about the renderonly library and as I
am the only author I did not used the fictive author for the other
two patches.

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      |  199 ++
 src/gallium/auxiliary/renderonly/renderonly.h      |   81 +
 src/gallium/auxiliary/target-helpers/drm_helper.h  |   45 +
 .../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       |  804 ++++++
 src/gallium/drivers/etnaviv/etnaviv_screen.h       |   94 +
 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_2d.xml.h      | 1497 ++++++++++++
 src/gallium/drivers/etnaviv/hw/state_3d.xml.h      | 1231 ++++++++++
 src/gallium/drivers/etnaviv/hw/state_hi.xml.h      |  465 ++++
 src/gallium/drivers/etnaviv/hw/state_vg.xml.h      |  205 ++
 src/gallium/drivers/imx/Automake.inc               |    9 +
 src/gallium/drivers/imx/Makefile.am                |    9 +
 src/gallium/winsys/etnaviv/drm/Makefile.am         |   32 +
 .../winsys/etnaviv/drm/etnaviv_drm_public.h        |   42 +
 .../winsys/etnaviv/drm/etnaviv_drm_winsys.c        |  184 ++
 src/gallium/winsys/imx/drm/Makefile.am             |   33 +
 src/gallium/winsys/imx/drm/Makefile.sources        |    3 +
 src/gallium/winsys/imx/drm/imx_drm_public.h        |   31 +
 src/gallium/winsys/imx/drm/imx_drm_winsys.c        |   41 +
 82 files changed, 17598 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_2d.xml.h
 create mode 100644 src/gallium/drivers/etnaviv/hw/state_3d.xml.h
 create mode 100644 src/gallium/drivers/etnaviv/hw/state_hi.xml.h
 create mode 100644 src/gallium/drivers/etnaviv/hw/state_vg.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.7.4



More information about the dri-devel mailing list