[Mesa-dev] [PATCH 0/9] Lima mesa driver

Rob Clark robdclark at gmail.com
Sun Mar 17 14:20:20 UTC 2019


Any chance you could submit a gitlab MR?  Replying with comments
inline to the driver patch is a bit more than gmail can handle..

but quick comments:

In lima_pack_pp_frame_reg() maybe the swizzle field in 'struct
util_format_description' is a better way to determine swap_channels?
Not sure how many formats mali can render two, but I hope it is
eventually more than two..  Maybe eventually you just want a formats
table mapping pipe_format, to corresponding hw state for tex/fb/vbo.
(Have a look at fd[3456]_format.c.. maybe a similar idea is useful to
you?)

Alyssa's drm_find_modifier() helper can make is_modifier_ok() go away.

re: lima_screen_parse_env(), you might find
DEBUG_GET_ONCE_FLAGS_OPTION() / struct debug_named_value useful?

And for framebuffer (render target), pipe_surface's
u.tex.level/first_layer aren't necessarily zero.  Maybe I'm
overlooking it, but I don't see where you're adding the offset within
the resource to the requested layer/level.  (I guess you'd hit that
during mipmap generation, at least if relying on u_blitter for mipmap
gen)


BR,
-R


On Fri, Mar 15, 2019 at 9:30 PM Qiang Yu <yuq825 at gmail.com> wrote:
>
> 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/
>
> This patch series also depends on a kernel patch which is
> under review now:
> https://patchwork.kernel.org/patch/10852619/
>
> Erico Nunes (1):
>   gallium: add a cap to force compute minmax indices
>
> Qiang Yu (6):
>   gallium/u_math: add ushort_to_float/float_to_ushort
>   nir: add load uniform lower to scalar
>   u_dynarray: add util_dynarray_enlarge
>   drm-uapi: drm_fourcc.h add ARM GPU modifier
>   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/drm_fourcc.h                 |   31 +-
>  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_screen.c         |    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         |   65 +
>  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       |  291 +++
>  src/gallium/drivers/lima/lima_draw.c          | 1636 +++++++++++++++++
>  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      |  610 ++++++
>  src/gallium/drivers/lima/lima_resource.h      |   86 +
>  src/gallium/drivers/lima/lima_screen.c        |  554 ++++++
>  src/gallium/drivers/lima/lima_screen.h        |   88 +
>  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/include/pipe/p_defines.h          |    1 +
>  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/mesa/state_tracker/st_draw.c              |    5 +-
>  src/util/u_dynarray.h                         |   19 +-
>  src/util/u_math.h                             |   31 +
>  71 files changed, 17035 insertions(+), 17 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
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list