[Lima] [PATCH v2 0/8] Lima mesa driver

Qiang Yu yuq825 at gmail.com
Fri Mar 22 14:28:33 UTC 2019


Mesa Gallium3D driver for ARM Mali 400/450 GPUs.

Lima is still in development and not ready for daily usage,
but can run some simple tests like kmscube and glamrk2, and some
single full screen application like kodi-gbm.

Mesa related EGL/GLX_EXT_buffer_age and EGL_KHR_partial_update
changes are not in this patch series because the solution has
not been settle down yet.

All lima commits are squashed. For whole history of this
driver's development, see:
https://gitlab.freedesktop.org/lima/mesa/commits/lima-18.3
https://gitlab.freedesktop.org/lima/mesa/commits/lima-18.1

Kernel driver is ready to be merged:
https://patchwork.kernel.org/patch/10845911/

I've also created a merge request for review on gitlab:
https://gitlab.freedesktop.org/mesa/mesa/merge_requests/465

v2:
- remove drm_fourcc.h change dependency
- drop CAP to calculate min/max index
- other minor changes inside each patch's comment

Qiang Yu (6):
  u_math: add ushort_to_float/float_to_ushort
  nir: add load uniform lower to scalar
  u_dynarray: add util_dynarray_grow_cap
  gallium/u_vbuf: export u_vbuf_get_minmax_index
  drm-uapi: add lima_drm.h
  gallium: add lima driver

Rob Herring (2):
  kmsro: Add lima renderonly support
  kmsro: Add platform support for exynos and sun4i

 include/drm-uapi/lima_drm.h                   |  169 ++
 meson.build                                   |    7 +-
 meson_options.txt                             |    2 +-
 src/compiler/nir/nir_intrinsics.py            |    4 +-
 src/compiler/nir/nir_lower_io.c               |    2 +-
 src/compiler/nir/nir_lower_io_to_scalar.c     |   41 +-
 .../auxiliary/pipe-loader/pipe_loader_drm.c   |    5 +
 .../auxiliary/target-helpers/drm_helper.h     |   23 +
 .../target-helpers/drm_helper_public.h        |    3 +
 src/gallium/auxiliary/util/u_vbuf.c           |    7 +-
 src/gallium/auxiliary/util/u_vbuf.h           |    3 +
 src/gallium/drivers/lima/ir/gp/codegen.c      |  619 +++++++
 src/gallium/drivers/lima/ir/gp/codegen.h      |  166 ++
 src/gallium/drivers/lima/ir/gp/disasm.c       |  568 ++++++
 src/gallium/drivers/lima/ir/gp/gpir.h         |  392 ++++
 src/gallium/drivers/lima/ir/gp/instr.c        |  488 +++++
 src/gallium/drivers/lima/ir/gp/lower.c        |  529 ++++++
 src/gallium/drivers/lima/ir/gp/nir.c          |  420 +++++
 src/gallium/drivers/lima/ir/gp/node.c         |  492 +++++
 .../drivers/lima/ir/gp/physical_regalloc.c    |  135 ++
 .../drivers/lima/ir/gp/reduce_scheduler.c     |  220 +++
 src/gallium/drivers/lima/ir/gp/scheduler.c    |  809 ++++++++
 .../drivers/lima/ir/gp/value_regalloc.c       |  170 ++
 src/gallium/drivers/lima/ir/lima_ir.h         |   63 +
 src/gallium/drivers/lima/ir/pp/codegen.c      |  669 +++++++
 src/gallium/drivers/lima/ir/pp/codegen.h      |  359 ++++
 src/gallium/drivers/lima/ir/pp/disasm.c       |  776 ++++++++
 src/gallium/drivers/lima/ir/pp/instr.c        |  311 ++++
 src/gallium/drivers/lima/ir/pp/lower.c        |  483 +++++
 src/gallium/drivers/lima/ir/pp/nir.c          |  497 +++++
 src/gallium/drivers/lima/ir/pp/node.c         |  432 +++++
 .../drivers/lima/ir/pp/node_to_instr.c        |  401 ++++
 src/gallium/drivers/lima/ir/pp/ppir.h         |  515 ++++++
 src/gallium/drivers/lima/ir/pp/regalloc.c     |  757 ++++++++
 src/gallium/drivers/lima/ir/pp/scheduler.c    |  197 ++
 src/gallium/drivers/lima/lima_bo.c            |  337 ++++
 src/gallium/drivers/lima/lima_bo.h            |   66 +
 src/gallium/drivers/lima/lima_context.c       |  262 +++
 src/gallium/drivers/lima/lima_context.h       |  294 +++
 src/gallium/drivers/lima/lima_draw.c          | 1646 +++++++++++++++++
 src/gallium/drivers/lima/lima_fence.c         |  120 ++
 src/gallium/drivers/lima/lima_fence.h         |   36 +
 src/gallium/drivers/lima/lima_program.c       |  311 ++++
 src/gallium/drivers/lima/lima_program.h       |   35 +
 src/gallium/drivers/lima/lima_query.c         |   96 +
 src/gallium/drivers/lima/lima_resource.c      |  599 ++++++
 src/gallium/drivers/lima/lima_resource.h      |   86 +
 src/gallium/drivers/lima/lima_screen.c        |  544 ++++++
 src/gallium/drivers/lima/lima_screen.h        |   93 +
 src/gallium/drivers/lima/lima_state.c         |  516 ++++++
 src/gallium/drivers/lima/lima_submit.c        |  184 ++
 src/gallium/drivers/lima/lima_submit.h        |   43 +
 src/gallium/drivers/lima/lima_texture.c       |  278 +++
 src/gallium/drivers/lima/lima_texture.h       |   35 +
 src/gallium/drivers/lima/lima_tiling.c        |  184 ++
 src/gallium/drivers/lima/lima_tiling.h        |   44 +
 src/gallium/drivers/lima/lima_util.c          |   80 +
 src/gallium/drivers/lima/lima_util.h          |   37 +
 src/gallium/drivers/lima/meson.build          |   87 +
 src/gallium/meson.build                       |    6 +
 src/gallium/targets/dri/meson.build           |    7 +-
 src/gallium/targets/dri/target.c              |    5 +
 .../winsys/kmsro/drm/kmsro_drm_winsys.c       |   11 +
 src/gallium/winsys/kmsro/drm/meson.build      |    3 +
 src/gallium/winsys/lima/drm/lima_drm_public.h |   35 +
 src/gallium/winsys/lima/drm/lima_drm_winsys.c |  124 ++
 src/gallium/winsys/lima/drm/meson.build       |   29 +
 src/util/u_dynarray.h                         |   23 +-
 src/util/u_math.h                             |   31 +
 69 files changed, 17000 insertions(+), 21 deletions(-)
 create mode 100644 include/drm-uapi/lima_drm.h
 create mode 100644 src/gallium/drivers/lima/ir/gp/codegen.c
 create mode 100644 src/gallium/drivers/lima/ir/gp/codegen.h
 create mode 100644 src/gallium/drivers/lima/ir/gp/disasm.c
 create mode 100644 src/gallium/drivers/lima/ir/gp/gpir.h
 create mode 100644 src/gallium/drivers/lima/ir/gp/instr.c
 create mode 100644 src/gallium/drivers/lima/ir/gp/lower.c
 create mode 100644 src/gallium/drivers/lima/ir/gp/nir.c
 create mode 100644 src/gallium/drivers/lima/ir/gp/node.c
 create mode 100644 src/gallium/drivers/lima/ir/gp/physical_regalloc.c
 create mode 100644 src/gallium/drivers/lima/ir/gp/reduce_scheduler.c
 create mode 100644 src/gallium/drivers/lima/ir/gp/scheduler.c
 create mode 100644 src/gallium/drivers/lima/ir/gp/value_regalloc.c
 create mode 100644 src/gallium/drivers/lima/ir/lima_ir.h
 create mode 100644 src/gallium/drivers/lima/ir/pp/codegen.c
 create mode 100644 src/gallium/drivers/lima/ir/pp/codegen.h
 create mode 100644 src/gallium/drivers/lima/ir/pp/disasm.c
 create mode 100644 src/gallium/drivers/lima/ir/pp/instr.c
 create mode 100644 src/gallium/drivers/lima/ir/pp/lower.c
 create mode 100644 src/gallium/drivers/lima/ir/pp/nir.c
 create mode 100644 src/gallium/drivers/lima/ir/pp/node.c
 create mode 100644 src/gallium/drivers/lima/ir/pp/node_to_instr.c
 create mode 100644 src/gallium/drivers/lima/ir/pp/ppir.h
 create mode 100644 src/gallium/drivers/lima/ir/pp/regalloc.c
 create mode 100644 src/gallium/drivers/lima/ir/pp/scheduler.c
 create mode 100644 src/gallium/drivers/lima/lima_bo.c
 create mode 100644 src/gallium/drivers/lima/lima_bo.h
 create mode 100644 src/gallium/drivers/lima/lima_context.c
 create mode 100644 src/gallium/drivers/lima/lima_context.h
 create mode 100644 src/gallium/drivers/lima/lima_draw.c
 create mode 100644 src/gallium/drivers/lima/lima_fence.c
 create mode 100644 src/gallium/drivers/lima/lima_fence.h
 create mode 100644 src/gallium/drivers/lima/lima_program.c
 create mode 100644 src/gallium/drivers/lima/lima_program.h
 create mode 100644 src/gallium/drivers/lima/lima_query.c
 create mode 100644 src/gallium/drivers/lima/lima_resource.c
 create mode 100644 src/gallium/drivers/lima/lima_resource.h
 create mode 100644 src/gallium/drivers/lima/lima_screen.c
 create mode 100644 src/gallium/drivers/lima/lima_screen.h
 create mode 100644 src/gallium/drivers/lima/lima_state.c
 create mode 100644 src/gallium/drivers/lima/lima_submit.c
 create mode 100644 src/gallium/drivers/lima/lima_submit.h
 create mode 100644 src/gallium/drivers/lima/lima_texture.c
 create mode 100644 src/gallium/drivers/lima/lima_texture.h
 create mode 100644 src/gallium/drivers/lima/lima_tiling.c
 create mode 100644 src/gallium/drivers/lima/lima_tiling.h
 create mode 100644 src/gallium/drivers/lima/lima_util.c
 create mode 100644 src/gallium/drivers/lima/lima_util.h
 create mode 100644 src/gallium/drivers/lima/meson.build
 create mode 100644 src/gallium/winsys/lima/drm/lima_drm_public.h
 create mode 100644 src/gallium/winsys/lima/drm/lima_drm_winsys.c
 create mode 100644 src/gallium/winsys/lima/drm/meson.build

-- 
2.17.1



More information about the lima mailing list