[Lima] [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 lima
mailing list