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 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev