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

Qiang Yu yuq825 at gmail.com
Mon Mar 18 14:38:12 UTC 2019


On Sun, Mar 17, 2019 at 10:20 PM Rob Clark <robdclark at gmail.com> wrote:
>
> Any chance you could submit a gitlab MR?  Replying with comments
> inline to the driver patch is a bit more than gmail can handle..

OK, I've created one:
https://gitlab.freedesktop.org/mesa/mesa/merge_requests/465

>
> 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?)

In fact we haven't do more investigate on other formats, have a table
is better, but we can fill in it for only a few formats now.

>
> 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)

lima does not support mipmap generation yet, will add that when we
implement the mipmap generation.

Thanks,
Qiang
>
>
> 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