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