[Mesa-dev] [PATCH 0/2] Initial Panfrost driver

Alyssa Rosenzweig alyssa at rosenzweig.io
Wed Jan 30 05:43:42 UTC 2019


Panfrost is a community-led, free software driver for Mali Midgard and
Bifrost GPUs. This patchset contains the initial changes for upstreaming
the driver. On the command stream side, for now only a stub and winsys
integration is included; the full driver is pending on kernel changes.
As for shaders, the complete Midgard toolchain is included (assembler,
disassembler, compiler), which provides immediate utility via the
standalone interface.

Panfrost is _not_ ready for general use yet; please do not misinterpret
this upstreaming as anything more than what's necessary to ease
rebasing. These patches **do not include the actual command stream
driver**, accounting for several thousand lines of code, which as always
can be found at https://gitlab.freedesktop.org/panfrost/mesa. As our
kernel driver matures, this code will be submitted as well.

Alyssa Rosenzweig (2):
  panfrost: Initial stub for Panfrost driver
  panfrost: Implement Midgard shader toolchain

 meson.build                                   |    7 +-
 meson_options.txt                             |    2 +-
 .../auxiliary/pipe-loader/pipe_loader_drm.c   |    5 +
 .../auxiliary/target-helpers/drm_helper.h     |   23 +
 .../target-helpers/drm_helper_public.h        |    3 +
 src/gallium/drivers/panfrost/.editorconfig    |    3 +
 .../drivers/panfrost/include/meson.build      |    0
 .../drivers/panfrost/include/panfrost-job.h   | 1481 +++++++
 .../drivers/panfrost/include/panfrost-misc.h  |   47 +
 src/gallium/drivers/panfrost/meson.build      |   92 +
 .../drivers/panfrost/midgard/assemble.py      |  643 +++
 .../drivers/panfrost/midgard/cmdline.c        |  145 +
 .../drivers/panfrost/midgard/cppwrap.cpp      |    9 +
 .../drivers/panfrost/midgard/disassemble.c    |  986 +++++
 .../drivers/panfrost/midgard/disassemble.h    |    2 +
 .../drivers/panfrost/midgard/helpers.h        |  236 ++
 .../drivers/panfrost/midgard/midgard-parse.h  |   70 +
 .../drivers/panfrost/midgard/midgard.h        |  473 +++
 .../panfrost/midgard/midgard_compile.c        | 3621 +++++++++++++++++
 .../panfrost/midgard/midgard_compile.h        |   80 +
 .../drivers/panfrost/midgard/midgard_nir.h    |    5 +
 .../panfrost/midgard/midgard_nir_algebraic.py |   71 +
 src/gallium/drivers/panfrost/pan_allocate.h   |  123 +
 src/gallium/drivers/panfrost/pan_context.h    |  362 ++
 src/gallium/drivers/panfrost/pan_public.h     |   41 +
 src/gallium/drivers/panfrost/pan_resource.h   |   85 +
 src/gallium/drivers/panfrost/pan_screen.c     |  702 ++++
 src/gallium/drivers/panfrost/pan_screen.h     |   88 +
 src/gallium/meson.build                       |    6 +
 src/gallium/targets/dri/meson.build           |    5 +-
 src/gallium/targets/dri/target.c              |   10 +
 .../winsys/kmsro/drm/kmsro_drm_winsys.c       |   25 +
 src/gallium/winsys/kmsro/drm/meson.build      |    3 +
 src/gallium/winsys/panfrost/drm/Android.mk    |   33 +
 src/gallium/winsys/panfrost/drm/Makefile.am   |   33 +
 .../winsys/panfrost/drm/Makefile.sources      |    3 +
 src/gallium/winsys/panfrost/drm/meson.build   |   29 +
 .../winsys/panfrost/drm/panfrost_drm_public.h |   36 +
 .../winsys/panfrost/drm/panfrost_drm_winsys.c |   42 +
 39 files changed, 9625 insertions(+), 5 deletions(-)
 create mode 100644 src/gallium/drivers/panfrost/.editorconfig
 create mode 100644 src/gallium/drivers/panfrost/include/meson.build
 create mode 100644 src/gallium/drivers/panfrost/include/panfrost-job.h
 create mode 100644 src/gallium/drivers/panfrost/include/panfrost-misc.h
 create mode 100644 src/gallium/drivers/panfrost/meson.build
 create mode 100644 src/gallium/drivers/panfrost/midgard/assemble.py
 create mode 100644 src/gallium/drivers/panfrost/midgard/cmdline.c
 create mode 100644 src/gallium/drivers/panfrost/midgard/cppwrap.cpp
 create mode 100644 src/gallium/drivers/panfrost/midgard/disassemble.c
 create mode 100644 src/gallium/drivers/panfrost/midgard/disassemble.h
 create mode 100644 src/gallium/drivers/panfrost/midgard/helpers.h
 create mode 100644 src/gallium/drivers/panfrost/midgard/midgard-parse.h
 create mode 100644 src/gallium/drivers/panfrost/midgard/midgard.h
 create mode 100644 src/gallium/drivers/panfrost/midgard/midgard_compile.c
 create mode 100644 src/gallium/drivers/panfrost/midgard/midgard_compile.h
 create mode 100644 src/gallium/drivers/panfrost/midgard/midgard_nir.h
 create mode 100644 src/gallium/drivers/panfrost/midgard/midgard_nir_algebraic.py
 create mode 100644 src/gallium/drivers/panfrost/pan_allocate.h
 create mode 100644 src/gallium/drivers/panfrost/pan_context.h
 create mode 100644 src/gallium/drivers/panfrost/pan_public.h
 create mode 100644 src/gallium/drivers/panfrost/pan_resource.h
 create mode 100644 src/gallium/drivers/panfrost/pan_screen.c
 create mode 100644 src/gallium/drivers/panfrost/pan_screen.h
 create mode 100644 src/gallium/winsys/panfrost/drm/Android.mk
 create mode 100644 src/gallium/winsys/panfrost/drm/Makefile.am
 create mode 100644 src/gallium/winsys/panfrost/drm/Makefile.sources
 create mode 100644 src/gallium/winsys/panfrost/drm/meson.build
 create mode 100644 src/gallium/winsys/panfrost/drm/panfrost_drm_public.h
 create mode 100644 src/gallium/winsys/panfrost/drm/panfrost_drm_winsys.c

-- 
2.20.1



More information about the mesa-dev mailing list