libports: add mesa/lima driver

This commit introduces the Mesa3D lima driver for Mali 400 series
GPUs.

Issue #4559.
This commit is contained in:
Josef Söntgen
2022-07-07 17:35:21 +02:00
committed by Christian Helmuth
parent d2c26fd504
commit da25b288ee
19 changed files with 1408 additions and 11 deletions

View File

@@ -232,6 +232,7 @@ SRC_C += compiler/glsl/glcpp/pp.c \
compiler/nir/nir_lower_drawpixels.c \
compiler/nir/nir_lower_flatshade.c \
compiler/nir/nir_lower_flrp.c \
compiler/nir/nir_lower_fragcoord_wtrans.c \
compiler/nir/nir_lower_frexp.c \
compiler/nir/nir_lower_global_vars_to_local.c \
compiler/nir/nir_lower_goto_ifs.c \
@@ -253,6 +254,7 @@ SRC_C += compiler/glsl/glcpp/pp.c \
compiler/nir/nir_lower_patch_vertices.c \
compiler/nir/nir_lower_phis_to_scalar.c \
compiler/nir/nir_lower_pntc_ytransform.c \
compiler/nir/nir_lower_point_size.c \
compiler/nir/nir_lower_point_size_mov.c \
compiler/nir/nir_lower_regs_to_ssa.c \
compiler/nir/nir_lower_returns.c \
@@ -268,6 +270,7 @@ SRC_C += compiler/glsl/glcpp/pp.c \
compiler/nir/nir_lower_variable_initializers.c \
compiler/nir/nir_lower_vars_to_ssa.c \
compiler/nir/nir_lower_vec_to_movs.c \
compiler/nir/nir_lower_viewport_transform.c \
compiler/nir/nir_lower_wpos_ytransform.c \
compiler/nir/nir_metadata.c \
compiler/nir/nir_move_vec_src_uses_to_dest.c \
@@ -448,6 +451,7 @@ SRC_C += compiler/glsl/glcpp/pp.c \
gallium/auxiliary/util/u_sampler.c \
gallium/auxiliary/util/u_screen.c \
gallium/auxiliary/util/u_simple_shaders.c \
gallium/auxiliary/util/u_split_draw.c \
gallium/auxiliary/util/u_surface.c \
gallium/auxiliary/util/u_tests.c \
gallium/auxiliary/util/u_texture.c \

View File

@@ -3,5 +3,6 @@ include $(REP_DIR)/lib/mk/libdrm.inc
LIBS += vfs_gpu
include $(call select_from_repositories,lib/import/import-libdrm.mk)
include $(call select_from_repositories,lib/import/import-mesa_api.mk)
SRC_CC := ioctl_dispatch.cc ioctl_etnaviv.cc
SRC_CC := ioctl_dispatch.cc ioctl_etnaviv.cc ioctl_lima.cc

View File

@@ -0,0 +1,64 @@
LIBS = libc libdrm
include $(REP_DIR)/lib/mk/mesa-common.inc
INC_DIR += $(MESA_SRC_DIR)/src/compiler/nir \
$(MESA_SRC_DIR)/src/gallium/auxiliary \
$(MESA_SRC_DIR)/src/gallium/drivers \
$(MESA_SRC_DIR)/src/gallium/drivers/lima \
$(MESA_SRC_DIR)/src/panfrost/shared \
$(MESA_SRC_DIR)/src/util \
$(MESA_GEN_DIR)/src/compiler/nir \
$(MESA_PORT_DIR)/include/drm-uapi
REP_INC_DIR += include/drm-uapi
SRC_C := \
gallium/drivers/lima/lima_draw.c \
gallium/drivers/lima/lima_job.c \
gallium/drivers/lima/lima_context.c \
gallium/drivers/lima/ir/pp/node_to_instr.c \
gallium/drivers/lima/ir/pp/liveness.c \
gallium/drivers/lima/ir/pp/codegen.c \
gallium/drivers/lima/ir/pp/nir.c \
gallium/drivers/lima/ir/pp/disasm.c \
gallium/drivers/lima/ir/pp/regalloc.c \
gallium/drivers/lima/ir/pp/node.c \
gallium/drivers/lima/ir/pp/instr.c \
gallium/drivers/lima/ir/pp/lower.c \
gallium/drivers/lima/ir/pp/scheduler.c \
gallium/drivers/lima/ir/gp/codegen.c \
gallium/drivers/lima/ir/gp/nir.c \
gallium/drivers/lima/ir/gp/disasm.c \
gallium/drivers/lima/ir/gp/regalloc.c \
gallium/drivers/lima/ir/gp/optimize.c \
gallium/drivers/lima/ir/gp/node.c \
gallium/drivers/lima/ir/gp/reduce_scheduler.c \
gallium/drivers/lima/ir/gp/instr.c \
gallium/drivers/lima/ir/gp/lower.c \
gallium/drivers/lima/ir/gp/scheduler.c \
gallium/drivers/lima/ir/lima_nir_split_load_input.c \
gallium/drivers/lima/ir/lima_nir_duplicate_consts.c \
gallium/drivers/lima/ir/lima_nir_duplicate_intrinsic.c \
gallium/drivers/lima/ir/lima_nir_lower_uniform_to_scalar.c \
gallium/drivers/lima/lima_bo.c \
gallium/drivers/lima/lima_context.c \
gallium/drivers/lima/lima_draw.c \
gallium/drivers/lima/lima_fence.c \
gallium/drivers/lima/lima_format.c \
gallium/drivers/lima/lima_job.c \
gallium/drivers/lima/lima_parser.c \
gallium/drivers/lima/lima_program.c \
gallium/drivers/lima/lima_query.c \
gallium/drivers/lima/lima_resource.c \
gallium/drivers/lima/lima_screen.c \
gallium/drivers/lima/lima_state.c \
gallium/drivers/lima/lima_texture.c \
gallium/drivers/lima/lima_util.c \
gallium/drivers/lima/lima_nir_algebraic.c \
gallium/winsys/lima/drm/lima_drm_winsys.c \
panfrost/shared/pan_minmax_cache.c \
panfrost/shared/pan_tiling.c
vpath %.c $(MESA_SRC_DIR)/src
vpath %.c $(MESA_SRC_DIR)/../../../generated/src

View File

@@ -1,10 +1,13 @@
SHARED_LIB := yes
LIBS += libdrm
LIBS += etnaviv
CC_OPT += -DHAVE_UINT128
CC_OPT += -DGALLIUM_ETNAVIV \
-DHAVE_UINT128
LIBS += etnaviv
CC_OPT += -DGALLIUM_ETNAVIV
LIBS += lima
CC_OPT += -DGALLIUM_LIMA
include $(REP_DIR)/lib/mk/mesa.inc

View File

@@ -0,0 +1,19 @@
SHARED_LIB := yes
LIBS := libc egl
include $(REP_DIR)/lib/mk/mesa-common.inc
SRC_CC := drm_init.cc
SRC_C := platform_lima.c
CC_OPT += -DHAVE_GENODE_PLATFORM
INC_DIR += $(MESA_SRC_DIR)/src/egl/drivers/dri2 \
$(MESA_SRC_DIR)/src/egl/main \
$(MESA_SRC_DIR)/src/mapi \
$(MESA_SRC_DIR)/src/mesa
vpath %.c $(LIB_DIR)/lima
vpath %.cc $(LIB_DIR)/lima
CC_CXX_WARN_STRICT :=