diff options
Diffstat (limited to 'lib/mesa/src/broadcom')
-rw-r--r-- | lib/mesa/src/broadcom/Makefile.am | 13 | ||||
-rw-r--r-- | lib/mesa/src/broadcom/Makefile.genxml.am | 18 | ||||
-rw-r--r-- | lib/mesa/src/broadcom/Makefile.in | 219 | ||||
-rw-r--r-- | lib/mesa/src/broadcom/Makefile.sources | 18 | ||||
-rw-r--r-- | lib/mesa/src/broadcom/Makefile.vc5.am | 20 | ||||
-rw-r--r-- | lib/mesa/src/broadcom/cle/gen_pack_header.py | 151 | ||||
-rw-r--r-- | lib/mesa/src/broadcom/cle/v3d_packet_helpers.h | 21 | ||||
-rw-r--r-- | lib/mesa/src/broadcom/cle/v3d_packet_v21.xml | 49 | ||||
-rw-r--r-- | lib/mesa/src/broadcom/cle/v3d_packet_v21_pack.h | 45 | ||||
-rw-r--r-- | lib/mesa/src/broadcom/common/v3d_device_info.h | 7 |
10 files changed, 404 insertions, 157 deletions
diff --git a/lib/mesa/src/broadcom/Makefile.am b/lib/mesa/src/broadcom/Makefile.am index 01b485e7d..4cd75bbcc 100644 --- a/lib/mesa/src/broadcom/Makefile.am +++ b/lib/mesa/src/broadcom/Makefile.am @@ -24,7 +24,9 @@ AM_CPPFLAGS = \ -I$(top_srcdir)/include \ -I$(top_builddir)/src \ -I$(top_srcdir)/src \ + -I$(top_builddir)/src/compiler/nir \ -I$(top_srcdir)/src/broadcom/ \ + -I$(top_srcdir)/src/broadcom/cle \ -I$(top_srcdir)/src/broadcom/include \ -I$(top_srcdir)/src/gallium/auxiliary \ -I$(top_srcdir)/src/gallium/include \ @@ -46,13 +48,18 @@ check_PROGRAMS = TESTS = BUILT_SOURCES = CLEANFILES = -EXTRA_DIST = $(BROADCOM_FILES) +EXTRA_DIST = \ + $(BROADCOM_FILES) \ + meson.build \ + cle/meson.build \ + compiler/meson.build \ + qpu/meson.build MKDIR_GEN = $(AM_V_at)$(MKDIR_P) $(@D) -PYTHON_GEN = $(AM_V_GEN)$(PYTHON2) $(PYTHON_FLAGS) +PYTHON_GEN = $(AM_V_GEN)$(PYTHON) $(PYTHON_FLAGS) include Makefile.genxml.am include Makefile.cle.am -include Makefile.vc5.am +include Makefile.v3d.am CLEANFILES += $(BUILT_SOURCES) diff --git a/lib/mesa/src/broadcom/Makefile.genxml.am b/lib/mesa/src/broadcom/Makefile.genxml.am index 6cfabaebc..35421722d 100644 --- a/lib/mesa/src/broadcom/Makefile.genxml.am +++ b/lib/mesa/src/broadcom/Makefile.genxml.am @@ -28,14 +28,28 @@ SUFFIXES = _pack.h .xml $(BROADCOM_GENXML_GENERATED_FILES): cle/gen_pack_header.py -.xml_pack.h: +if REGEN_SOURCES +cle/v3d_packet_v21_pack.h: $(srcdir)/cle/v3d_packet_v21.xml $(srcdir)/cle/gen_pack_header.py $(MKDIR_GEN) - $(PYTHON_GEN) $(srcdir)/cle/gen_pack_header.py $< > $@ || ($(RM) $@; false) + $(PYTHON_GEN) $(srcdir)/cle/gen_pack_header.py $< 21 > $@ || ($(RM) $@; false) + +cle/v3d_packet_v33_pack.h: $(srcdir)/cle/v3d_packet_v33.xml $(srcdir)/cle/gen_pack_header.py + $(MKDIR_GEN) + $(PYTHON_GEN) $(srcdir)/cle/gen_pack_header.py $< 33 > $@ || ($(RM) $@; false) + +cle/v3d_packet_v41_pack.h: $(srcdir)/cle/v3d_packet_v33.xml $(srcdir)/cle/gen_pack_header.py + $(MKDIR_GEN) + $(PYTHON_GEN) $(srcdir)/cle/gen_pack_header.py $< 41 > $@ || ($(RM) $@; false) + +cle/v3d_packet_v42_pack.h: $(srcdir)/cle/v3d_packet_v33.xml $(srcdir)/cle/gen_pack_header.py + $(MKDIR_GEN) + $(PYTHON_GEN) $(srcdir)/cle/gen_pack_header.py $< 42 > $@ || ($(RM) $@; false) GEN_ZIPPED = $(srcdir)/../intel/genxml/gen_zipped_file.py cle/v3d_xml.h: $(GEN_ZIPPED) $(BROADCOM_GENXML_XML_FILES) $(MKDIR_GEN) $(PYTHON_GEN) $(GEN_ZIPPED) $(BROADCOM_GENXML_XML_FILES:%=$(srcdir)/%) > $@ || ($(RM) $@; false) +endif EXTRA_DIST += \ cle/gen_pack_header.py \ diff --git a/lib/mesa/src/broadcom/Makefile.in b/lib/mesa/src/broadcom/Makefile.in index b78dd8c5e..931549298 100644 --- a/lib/mesa/src/broadcom/Makefile.in +++ b/lib/mesa/src/broadcom/Makefile.in @@ -100,10 +100,10 @@ target_triplet = @target@ DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.cle.am $(srcdir)/Makefile.genxml.am \ $(srcdir)/Makefile.in $(srcdir)/Makefile.sources \ - $(srcdir)/Makefile.vc5.am $(top_srcdir)/bin/depcomp + $(srcdir)/Makefile.v3d.am $(top_srcdir)/bin/depcomp noinst_PROGRAMS = check_PROGRAMS = qpu/tests/qpu_disasm$(EXEEXT) -@USE_VC5_SIMULATOR_TRUE@am__append_1 = $(VC5_SIMULATOR_CFLAGS) +@USE_V3D_SIMULATOR_TRUE@am__append_1 = $(V3D_SIMULATOR_CFLAGS) subdir = src/broadcom ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_check_compile_flag.m4 \ @@ -165,14 +165,17 @@ cle_libbroadcom_cle_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(cle_libbroadcom_cle_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ libbroadcom_la_LIBADD = -am__objects_2 = common/v3d_debug.lo clif/clif_dump.lo \ +am__objects_2 = clif/clif_dump.lo common/v3d_debug.lo \ compiler/nir_to_vir.lo compiler/vir.lo compiler/vir_dump.lo \ compiler/vir_live_variables.lo compiler/vir_lower_uniforms.lo \ compiler/vir_opt_copy_propagate.lo \ compiler/vir_opt_dead_code.lo \ + compiler/vir_opt_small_immediates.lo \ compiler/vir_register_allocate.lo compiler/vir_to_qpu.lo \ compiler/qpu_schedule.lo compiler/qpu_validate.lo \ - compiler/v3d_nir_lower_io.lo qpu/qpu_disasm.lo \ + compiler/v3d33_tex.lo compiler/v3d33_vpm_setup.lo \ + compiler/v3d40_tex.lo compiler/v3d_nir_lower_io.lo \ + compiler/v3d_nir_lower_txf_ms.lo qpu/qpu_disasm.lo \ qpu/qpu_instr.lo qpu/qpu_pack.lo am_libbroadcom_la_OBJECTS = $(am__objects_2) libbroadcom_la_OBJECTS = $(am_libbroadcom_la_OBJECTS) @@ -180,6 +183,30 @@ libbroadcom_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_CFLAGS) $(CFLAGS) $(libbroadcom_la_LDFLAGS) $(LDFLAGS) -o \ $@ +libbroadcom_v33_la_LIBADD = +am__objects_3 = clif/libbroadcom_v33_la-v3dx_dump.lo +am_libbroadcom_v33_la_OBJECTS = $(am__objects_3) +libbroadcom_v33_la_OBJECTS = $(am_libbroadcom_v33_la_OBJECTS) +libbroadcom_v33_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(libbroadcom_v33_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ +libbroadcom_v41_la_LIBADD = +am__objects_4 = clif/libbroadcom_v41_la-v3dx_dump.lo +am_libbroadcom_v41_la_OBJECTS = $(am__objects_4) +libbroadcom_v41_la_OBJECTS = $(am_libbroadcom_v41_la_OBJECTS) +libbroadcom_v41_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(libbroadcom_v41_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ +libbroadcom_v42_la_LIBADD = +am__objects_5 = clif/libbroadcom_v42_la-v3dx_dump.lo +am_libbroadcom_v42_la_OBJECTS = $(am__objects_5) +libbroadcom_v42_la_OBJECTS = $(am_libbroadcom_v42_la_OBJECTS) +libbroadcom_v42_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(libbroadcom_v42_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ PROGRAMS = $(noinst_PROGRAMS) qpu_tests_qpu_disasm_SOURCES = qpu/tests/qpu_disasm.c qpu_tests_qpu_disasm_OBJECTS = qpu/tests/qpu_disasm.$(OBJEXT) @@ -222,9 +249,12 @@ am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(cle_libbroadcom_cle_la_SOURCES) $(libbroadcom_la_SOURCES) \ - qpu/tests/qpu_disasm.c + $(libbroadcom_v33_la_SOURCES) $(libbroadcom_v41_la_SOURCES) \ + $(libbroadcom_v42_la_SOURCES) qpu/tests/qpu_disasm.c DIST_SOURCES = $(cle_libbroadcom_cle_la_SOURCES) \ - $(libbroadcom_la_SOURCES) qpu/tests/qpu_disasm.c + $(libbroadcom_la_SOURCES) $(libbroadcom_v33_la_SOURCES) \ + $(libbroadcom_v41_la_SOURCES) $(libbroadcom_v42_la_SOURCES) \ + qpu/tests/qpu_disasm.c am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -251,6 +281,8 @@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ +BACKTRACE_CFLAGS = @BACKTRACE_CFLAGS@ +BACKTRACE_LIBS = @BACKTRACE_LIBS@ BSYMBOLIC = @BSYMBOLIC@ CC = @CC@ CCAS = @CCAS@ @@ -264,6 +296,7 @@ CLOVER_STD_OVERRIDE = @CLOVER_STD_OVERRIDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ +CXX11_CXXFLAGS = @CXX11_CXXFLAGS@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ @@ -297,8 +330,6 @@ EXEEXT = @EXEEXT@ EXPAT_CFLAGS = @EXPAT_CFLAGS@ EXPAT_LIBS = @EXPAT_LIBS@ FGREP = @FGREP@ -FREEDRENO_CFLAGS = @FREEDRENO_CFLAGS@ -FREEDRENO_LIBS = @FREEDRENO_LIBS@ GALLIUM_PIPE_LOADER_DEFINES = @GALLIUM_PIPE_LOADER_DEFINES@ GBM_PC_LIB_PRIV = @GBM_PC_LIB_PRIV@ GBM_PC_REQ_PRIV = @GBM_PC_REQ_PRIV@ @@ -317,8 +348,8 @@ GL_LIB_DEPS = @GL_LIB_DEPS@ GL_PC_CFLAGS = @GL_PC_CFLAGS@ GL_PC_LIB_PRIV = @GL_PC_LIB_PRIV@ GL_PC_REQ_PRIV = @GL_PC_REQ_PRIV@ +GL_PKGCONF_LIB = @GL_PKGCONF_LIB@ GREP = @GREP@ -HAVE_XF86VIDMODE = @HAVE_XF86VIDMODE@ I915_CFLAGS = @I915_CFLAGS@ I915_LIBS = @I915_LIBS@ INDENT = @INDENT@ @@ -330,6 +361,7 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ +LD_BUILD_ID = @LD_BUILD_ID@ LD_NO_UNDEFINED = @LD_NO_UNDEFINED@ LEX = @LEX@ LEXLIB = @LEXLIB@ @@ -367,7 +399,7 @@ MSVC2013_COMPAT_CFLAGS = @MSVC2013_COMPAT_CFLAGS@ MSVC2013_COMPAT_CXXFLAGS = @MSVC2013_COMPAT_CXXFLAGS@ NINE_MAJOR = @NINE_MAJOR@ NINE_MINOR = @NINE_MINOR@ -NINE_TINY = @NINE_TINY@ +NINE_PATCH = @NINE_PATCH@ NINE_VERSION = @NINE_VERSION@ NM = @NM@ NMEDIT = @NMEDIT@ @@ -380,6 +412,9 @@ OBJEXT = @OBJEXT@ OMX_BELLAGIO_CFLAGS = @OMX_BELLAGIO_CFLAGS@ OMX_BELLAGIO_LIBS = @OMX_BELLAGIO_LIBS@ OMX_BELLAGIO_LIB_INSTALL_DIR = @OMX_BELLAGIO_LIB_INSTALL_DIR@ +OMX_TIZONIA_CFLAGS = @OMX_TIZONIA_CFLAGS@ +OMX_TIZONIA_LIBS = @OMX_TIZONIA_LIBS@ +OMX_TIZONIA_LIB_INSTALL_DIR = @OMX_TIZONIA_LIB_INSTALL_DIR@ OPENCL_LIBNAME = @OPENCL_LIBNAME@ OPENCL_VERSION = @OPENCL_VERSION@ OSMESA_LIB = @OSMESA_LIB@ @@ -407,11 +442,16 @@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PWR8_CFLAGS = @PWR8_CFLAGS@ -PYTHON2 = @PYTHON2@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ RADEON_CFLAGS = @RADEON_CFLAGS@ RADEON_LIBS = @RADEON_LIBS@ RANLIB = @RANLIB@ RM = @RM@ +SCANNER_ARG = @SCANNER_ARG@ SED = @SED@ SELINUX_CFLAGS = @SELINUX_CFLAGS@ SELINUX_LIBS = @SELINUX_LIBS@ @@ -423,9 +463,10 @@ SSE41_CFLAGS = @SSE41_CFLAGS@ STRIP = @STRIP@ SWR_AVX2_CXXFLAGS = @SWR_AVX2_CXXFLAGS@ SWR_AVX_CXXFLAGS = @SWR_AVX_CXXFLAGS@ -SWR_CXX11_CXXFLAGS = @SWR_CXX11_CXXFLAGS@ SWR_KNL_CXXFLAGS = @SWR_KNL_CXXFLAGS@ SWR_SKX_CXXFLAGS = @SWR_SKX_CXXFLAGS@ +V3D_SIMULATOR_CFLAGS = @V3D_SIMULATOR_CFLAGS@ +V3D_SIMULATOR_LIBS = @V3D_SIMULATOR_LIBS@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ VALGRIND_LIBS = @VALGRIND_LIBS@ VA_CFLAGS = @VA_CFLAGS@ @@ -433,8 +474,8 @@ VA_LIBS = @VA_LIBS@ VA_LIB_INSTALL_DIR = @VA_LIB_INSTALL_DIR@ VA_MAJOR = @VA_MAJOR@ VA_MINOR = @VA_MINOR@ -VC5_SIMULATOR_CFLAGS = @VC5_SIMULATOR_CFLAGS@ -VC5_SIMULATOR_LIBS = @VC5_SIMULATOR_LIBS@ +VC4_CFLAGS = @VC4_CFLAGS@ +VC4_LIBS = @VC4_LIBS@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VDPAU_LIB_INSTALL_DIR = @VDPAU_LIB_INSTALL_DIR@ @@ -448,7 +489,11 @@ VL_LIBS = @VL_LIBS@ VULKAN_ICD_INSTALL_DIR = @VULKAN_ICD_INSTALL_DIR@ WAYLAND_CLIENT_CFLAGS = @WAYLAND_CLIENT_CFLAGS@ WAYLAND_CLIENT_LIBS = @WAYLAND_CLIENT_LIBS@ +WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@ +WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@ +WAYLAND_PROTOCOLS_CFLAGS = @WAYLAND_PROTOCOLS_CFLAGS@ WAYLAND_PROTOCOLS_DATADIR = @WAYLAND_PROTOCOLS_DATADIR@ +WAYLAND_PROTOCOLS_LIBS = @WAYLAND_PROTOCOLS_LIBS@ WAYLAND_SCANNER = @WAYLAND_SCANNER@ WAYLAND_SCANNER_CFLAGS = @WAYLAND_SCANNER_CFLAGS@ WAYLAND_SCANNER_LIBS = @WAYLAND_SCANNER_LIBS@ @@ -458,16 +503,20 @@ WNO_OVERRIDE_INIT = @WNO_OVERRIDE_INIT@ X11_INCLUDES = @X11_INCLUDES@ XA_MAJOR = @XA_MAJOR@ XA_MINOR = @XA_MINOR@ -XA_TINY = @XA_TINY@ +XA_PATCH = @XA_PATCH@ XA_VERSION = @XA_VERSION@ XCB_DRI2_CFLAGS = @XCB_DRI2_CFLAGS@ XCB_DRI2_LIBS = @XCB_DRI2_LIBS@ XCB_DRI3_CFLAGS = @XCB_DRI3_CFLAGS@ XCB_DRI3_LIBS = @XCB_DRI3_LIBS@ -XF86VIDMODE_CFLAGS = @XF86VIDMODE_CFLAGS@ -XF86VIDMODE_LIBS = @XF86VIDMODE_LIBS@ +XCB_DRI3_MODIFIERS_CFLAGS = @XCB_DRI3_MODIFIERS_CFLAGS@ +XCB_DRI3_MODIFIERS_LIBS = @XCB_DRI3_MODIFIERS_LIBS@ +XCB_RANDR_CFLAGS = @XCB_RANDR_CFLAGS@ +XCB_RANDR_LIBS = @XCB_RANDR_LIBS@ XLIBGL_CFLAGS = @XLIBGL_CFLAGS@ XLIBGL_LIBS = @XLIBGL_LIBS@ +XLIB_RANDR_CFLAGS = @XLIB_RANDR_CFLAGS@ +XLIB_RANDR_LIBS = @XLIB_RANDR_LIBS@ XVMC_CFLAGS = @XVMC_CFLAGS@ XVMC_LIBS = @XVMC_LIBS@ XVMC_LIB_INSTALL_DIR = @XVMC_LIB_INSTALL_DIR@ @@ -522,9 +571,13 @@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -541,7 +594,9 @@ AM_CPPFLAGS = \ -I$(top_srcdir)/include \ -I$(top_builddir)/src \ -I$(top_srcdir)/src \ + -I$(top_builddir)/src/compiler/nir \ -I$(top_srcdir)/src/broadcom/ \ + -I$(top_srcdir)/src/broadcom/cle \ -I$(top_srcdir)/src/broadcom/include \ -I$(top_srcdir)/src/gallium/auxiliary \ -I$(top_srcdir)/src/gallium/include \ @@ -552,6 +607,8 @@ AM_CFLAGS = $(EXPAT_CFLAGS) $(am__append_1) BROADCOM_GENXML_GENERATED_FILES = \ cle/v3d_packet_v21_pack.h \ cle/v3d_packet_v33_pack.h \ + cle/v3d_packet_v41_pack.h \ + cle/v3d_packet_v42_pack.h \ cle/v3d_xml.h \ $() @@ -562,11 +619,14 @@ BROADCOM_GENXML_XML_FILES = \ BROADCOM_FILES = \ cle/v3d_packet_helpers.h \ - common/v3d_debug.c \ - common/v3d_debug.h \ + cle/v3dx_pack.h\ clif/clif_dump.c \ clif/clif_dump.h \ + clif/clif_private.h \ + common/v3d_debug.c \ + common/v3d_debug.h \ common/v3d_device_info.h \ + common/v3d_macros.h \ compiler/nir_to_vir.c \ compiler/vir.c \ compiler/vir_dump.c \ @@ -574,12 +634,17 @@ BROADCOM_FILES = \ compiler/vir_lower_uniforms.c \ compiler/vir_opt_copy_propagate.c \ compiler/vir_opt_dead_code.c \ + compiler/vir_opt_small_immediates.c \ compiler/vir_register_allocate.c \ compiler/vir_to_qpu.c \ compiler/qpu_schedule.c \ compiler/qpu_validate.c \ + compiler/v3d33_tex.c \ + compiler/v3d33_vpm_setup.c \ + compiler/v3d40_tex.c \ compiler/v3d_compiler.h \ compiler/v3d_nir_lower_io.c \ + compiler/v3d_nir_lower_txf_ms.c \ qpu/qpu_disasm.c \ qpu/qpu_disasm.h \ qpu/qpu_instr.c \ @@ -587,6 +652,10 @@ BROADCOM_FILES = \ qpu/qpu_pack.c \ $() +BROADCOM_PER_VERSION_SOURCES = \ + clif/v3dx_dump.c \ + $() + BROADCOM_DECODER_FILES = \ cle/v3d_decoder.c \ cle/v3d_decoder.h \ @@ -596,22 +665,31 @@ lib_LTLIBRARIES = check_LTLIBRARIES = noinst_DATA = noinst_HEADERS = -noinst_LTLIBRARIES = cle/libbroadcom_cle.la libbroadcom.la +noinst_LTLIBRARIES = cle/libbroadcom_cle.la libbroadcom.la \ + libbroadcom_v33.la libbroadcom_v41.la libbroadcom_v42.la TESTS = $(check_PROGRAMS) BUILT_SOURCES = $(BROADCOM_GENXML_GENERATED_FILES) CLEANFILES = $(BUILT_SOURCES) -EXTRA_DIST = $(BROADCOM_FILES) $(BROADCOM_GENXML_XML_FILES) \ +EXTRA_DIST = $(BROADCOM_FILES) meson.build cle/meson.build \ + compiler/meson.build qpu/meson.build \ + $(BROADCOM_GENXML_XML_FILES) \ $(BROADCOM_GENXML_GENERATED_FILES) cle/gen_pack_header.py $() MKDIR_GEN = $(AM_V_at)$(MKDIR_P) $(@D) -PYTHON_GEN = $(AM_V_GEN)$(PYTHON2) $(PYTHON_FLAGS) +PYTHON_GEN = $(AM_V_GEN)$(PYTHON) $(PYTHON_FLAGS) SUFFIXES = _pack.h .xml -GEN_ZIPPED = $(srcdir)/../intel/genxml/gen_zipped_file.py +@REGEN_SOURCES_TRUE@GEN_ZIPPED = $(srcdir)/../intel/genxml/gen_zipped_file.py cle_libbroadcom_cle_la_CFLAGS = \ -I$(top_builddir)/src/broadcom/cle \ $(AM_CFLAGS) cle_libbroadcom_cle_la_SOURCES = $(BROADCOM_DECODER_FILES) -@USE_VC5_SIMULATOR_TRUE@libbroadcom_la_LDFLAGS = $(VC5_SIMULATOR_LIBS) +@USE_V3D_SIMULATOR_TRUE@libbroadcom_la_LDFLAGS = $(V3D_SIMULATOR_LIBS) +libbroadcom_v33_la_SOURCES = $(BROADCOM_PER_VERSION_SOURCES) +libbroadcom_v33_la_CFLAGS = -DV3D_VERSION=33 +libbroadcom_v41_la_SOURCES = $(BROADCOM_PER_VERSION_SOURCES) +libbroadcom_v41_la_CFLAGS = -DV3D_VERSION=41 +libbroadcom_v42_la_SOURCES = $(BROADCOM_PER_VERSION_SOURCES) +libbroadcom_v42_la_CFLAGS = -DV3D_VERSION=42 libbroadcom_la_SOURCES = $(BROADCOM_FILES) LDADD = \ libbroadcom.la \ @@ -624,7 +702,7 @@ all: $(BUILT_SOURCES) .SUFFIXES: .SUFFIXES: _pack.h .xml .c .lo .o .obj -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/Makefile.sources $(srcdir)/Makefile.genxml.am $(srcdir)/Makefile.cle.am $(srcdir)/Makefile.vc5.am $(am__configure_deps) +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/Makefile.sources $(srcdir)/Makefile.genxml.am $(srcdir)/Makefile.cle.am $(srcdir)/Makefile.v3d.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ @@ -645,7 +723,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; -$(srcdir)/Makefile.sources $(srcdir)/Makefile.genxml.am $(srcdir)/Makefile.cle.am $(srcdir)/Makefile.vc5.am: +$(srcdir)/Makefile.sources $(srcdir)/Makefile.genxml.am $(srcdir)/Makefile.cle.am $(srcdir)/Makefile.v3d.am: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh @@ -721,6 +799,13 @@ cle/cle_libbroadcom_cle_la-v3d_decoder.lo: cle/$(am__dirstamp) \ cle/$(DEPDIR)/$(am__dirstamp) cle/libbroadcom_cle.la: $(cle_libbroadcom_cle_la_OBJECTS) $(cle_libbroadcom_cle_la_DEPENDENCIES) $(EXTRA_cle_libbroadcom_cle_la_DEPENDENCIES) cle/$(am__dirstamp) $(AM_V_CCLD)$(cle_libbroadcom_cle_la_LINK) $(cle_libbroadcom_cle_la_OBJECTS) $(cle_libbroadcom_cle_la_LIBADD) $(LIBS) +clif/$(am__dirstamp): + @$(MKDIR_P) clif + @: > clif/$(am__dirstamp) +clif/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) clif/$(DEPDIR) + @: > clif/$(DEPDIR)/$(am__dirstamp) +clif/clif_dump.lo: clif/$(am__dirstamp) clif/$(DEPDIR)/$(am__dirstamp) common/$(am__dirstamp): @$(MKDIR_P) common @: > common/$(am__dirstamp) @@ -729,13 +814,6 @@ common/$(DEPDIR)/$(am__dirstamp): @: > common/$(DEPDIR)/$(am__dirstamp) common/v3d_debug.lo: common/$(am__dirstamp) \ common/$(DEPDIR)/$(am__dirstamp) -clif/$(am__dirstamp): - @$(MKDIR_P) clif - @: > clif/$(am__dirstamp) -clif/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) clif/$(DEPDIR) - @: > clif/$(DEPDIR)/$(am__dirstamp) -clif/clif_dump.lo: clif/$(am__dirstamp) clif/$(DEPDIR)/$(am__dirstamp) compiler/$(am__dirstamp): @$(MKDIR_P) compiler @: > compiler/$(am__dirstamp) @@ -756,6 +834,8 @@ compiler/vir_opt_copy_propagate.lo: compiler/$(am__dirstamp) \ compiler/$(DEPDIR)/$(am__dirstamp) compiler/vir_opt_dead_code.lo: compiler/$(am__dirstamp) \ compiler/$(DEPDIR)/$(am__dirstamp) +compiler/vir_opt_small_immediates.lo: compiler/$(am__dirstamp) \ + compiler/$(DEPDIR)/$(am__dirstamp) compiler/vir_register_allocate.lo: compiler/$(am__dirstamp) \ compiler/$(DEPDIR)/$(am__dirstamp) compiler/vir_to_qpu.lo: compiler/$(am__dirstamp) \ @@ -764,8 +844,16 @@ compiler/qpu_schedule.lo: compiler/$(am__dirstamp) \ compiler/$(DEPDIR)/$(am__dirstamp) compiler/qpu_validate.lo: compiler/$(am__dirstamp) \ compiler/$(DEPDIR)/$(am__dirstamp) +compiler/v3d33_tex.lo: compiler/$(am__dirstamp) \ + compiler/$(DEPDIR)/$(am__dirstamp) +compiler/v3d33_vpm_setup.lo: compiler/$(am__dirstamp) \ + compiler/$(DEPDIR)/$(am__dirstamp) +compiler/v3d40_tex.lo: compiler/$(am__dirstamp) \ + compiler/$(DEPDIR)/$(am__dirstamp) compiler/v3d_nir_lower_io.lo: compiler/$(am__dirstamp) \ compiler/$(DEPDIR)/$(am__dirstamp) +compiler/v3d_nir_lower_txf_ms.lo: compiler/$(am__dirstamp) \ + compiler/$(DEPDIR)/$(am__dirstamp) qpu/$(am__dirstamp): @$(MKDIR_P) qpu @: > qpu/$(am__dirstamp) @@ -777,6 +865,18 @@ qpu/qpu_instr.lo: qpu/$(am__dirstamp) qpu/$(DEPDIR)/$(am__dirstamp) qpu/qpu_pack.lo: qpu/$(am__dirstamp) qpu/$(DEPDIR)/$(am__dirstamp) libbroadcom.la: $(libbroadcom_la_OBJECTS) $(libbroadcom_la_DEPENDENCIES) $(EXTRA_libbroadcom_la_DEPENDENCIES) $(AM_V_CCLD)$(libbroadcom_la_LINK) $(libbroadcom_la_OBJECTS) $(libbroadcom_la_LIBADD) $(LIBS) +clif/libbroadcom_v33_la-v3dx_dump.lo: clif/$(am__dirstamp) \ + clif/$(DEPDIR)/$(am__dirstamp) +libbroadcom_v33.la: $(libbroadcom_v33_la_OBJECTS) $(libbroadcom_v33_la_DEPENDENCIES) $(EXTRA_libbroadcom_v33_la_DEPENDENCIES) + $(AM_V_CCLD)$(libbroadcom_v33_la_LINK) $(libbroadcom_v33_la_OBJECTS) $(libbroadcom_v33_la_LIBADD) $(LIBS) +clif/libbroadcom_v41_la-v3dx_dump.lo: clif/$(am__dirstamp) \ + clif/$(DEPDIR)/$(am__dirstamp) +libbroadcom_v41.la: $(libbroadcom_v41_la_OBJECTS) $(libbroadcom_v41_la_DEPENDENCIES) $(EXTRA_libbroadcom_v41_la_DEPENDENCIES) + $(AM_V_CCLD)$(libbroadcom_v41_la_LINK) $(libbroadcom_v41_la_OBJECTS) $(libbroadcom_v41_la_LIBADD) $(LIBS) +clif/libbroadcom_v42_la-v3dx_dump.lo: clif/$(am__dirstamp) \ + clif/$(DEPDIR)/$(am__dirstamp) +libbroadcom_v42.la: $(libbroadcom_v42_la_OBJECTS) $(libbroadcom_v42_la_DEPENDENCIES) $(EXTRA_libbroadcom_v42_la_DEPENDENCIES) + $(AM_V_CCLD)$(libbroadcom_v42_la_LINK) $(libbroadcom_v42_la_OBJECTS) $(libbroadcom_v42_la_LIBADD) $(LIBS) clean-checkPROGRAMS: @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \ @@ -826,17 +926,25 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@cle/$(DEPDIR)/cle_libbroadcom_cle_la-v3d_decoder.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@clif/$(DEPDIR)/clif_dump.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@clif/$(DEPDIR)/libbroadcom_v33_la-v3dx_dump.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@clif/$(DEPDIR)/libbroadcom_v41_la-v3dx_dump.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@clif/$(DEPDIR)/libbroadcom_v42_la-v3dx_dump.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@common/$(DEPDIR)/v3d_debug.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@compiler/$(DEPDIR)/nir_to_vir.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@compiler/$(DEPDIR)/qpu_schedule.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@compiler/$(DEPDIR)/qpu_validate.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@compiler/$(DEPDIR)/v3d33_tex.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@compiler/$(DEPDIR)/v3d33_vpm_setup.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@compiler/$(DEPDIR)/v3d40_tex.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@compiler/$(DEPDIR)/v3d_nir_lower_io.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@compiler/$(DEPDIR)/v3d_nir_lower_txf_ms.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@compiler/$(DEPDIR)/vir.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@compiler/$(DEPDIR)/vir_dump.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@compiler/$(DEPDIR)/vir_live_variables.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@compiler/$(DEPDIR)/vir_lower_uniforms.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@compiler/$(DEPDIR)/vir_opt_copy_propagate.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@compiler/$(DEPDIR)/vir_opt_dead_code.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@compiler/$(DEPDIR)/vir_opt_small_immediates.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@compiler/$(DEPDIR)/vir_register_allocate.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@compiler/$(DEPDIR)/vir_to_qpu.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@qpu/$(DEPDIR)/qpu_disasm.Plo@am__quote@ @@ -875,6 +983,27 @@ cle/cle_libbroadcom_cle_la-v3d_decoder.lo: cle/v3d_decoder.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cle_libbroadcom_cle_la_CFLAGS) $(CFLAGS) -c -o cle/cle_libbroadcom_cle_la-v3d_decoder.lo `test -f 'cle/v3d_decoder.c' || echo '$(srcdir)/'`cle/v3d_decoder.c +clif/libbroadcom_v33_la-v3dx_dump.lo: clif/v3dx_dump.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libbroadcom_v33_la_CFLAGS) $(CFLAGS) -MT clif/libbroadcom_v33_la-v3dx_dump.lo -MD -MP -MF clif/$(DEPDIR)/libbroadcom_v33_la-v3dx_dump.Tpo -c -o clif/libbroadcom_v33_la-v3dx_dump.lo `test -f 'clif/v3dx_dump.c' || echo '$(srcdir)/'`clif/v3dx_dump.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) clif/$(DEPDIR)/libbroadcom_v33_la-v3dx_dump.Tpo clif/$(DEPDIR)/libbroadcom_v33_la-v3dx_dump.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='clif/v3dx_dump.c' object='clif/libbroadcom_v33_la-v3dx_dump.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libbroadcom_v33_la_CFLAGS) $(CFLAGS) -c -o clif/libbroadcom_v33_la-v3dx_dump.lo `test -f 'clif/v3dx_dump.c' || echo '$(srcdir)/'`clif/v3dx_dump.c + +clif/libbroadcom_v41_la-v3dx_dump.lo: clif/v3dx_dump.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libbroadcom_v41_la_CFLAGS) $(CFLAGS) -MT clif/libbroadcom_v41_la-v3dx_dump.lo -MD -MP -MF clif/$(DEPDIR)/libbroadcom_v41_la-v3dx_dump.Tpo -c -o clif/libbroadcom_v41_la-v3dx_dump.lo `test -f 'clif/v3dx_dump.c' || echo '$(srcdir)/'`clif/v3dx_dump.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) clif/$(DEPDIR)/libbroadcom_v41_la-v3dx_dump.Tpo clif/$(DEPDIR)/libbroadcom_v41_la-v3dx_dump.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='clif/v3dx_dump.c' object='clif/libbroadcom_v41_la-v3dx_dump.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libbroadcom_v41_la_CFLAGS) $(CFLAGS) -c -o clif/libbroadcom_v41_la-v3dx_dump.lo `test -f 'clif/v3dx_dump.c' || echo '$(srcdir)/'`clif/v3dx_dump.c + +clif/libbroadcom_v42_la-v3dx_dump.lo: clif/v3dx_dump.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libbroadcom_v42_la_CFLAGS) $(CFLAGS) -MT clif/libbroadcom_v42_la-v3dx_dump.lo -MD -MP -MF clif/$(DEPDIR)/libbroadcom_v42_la-v3dx_dump.Tpo -c -o clif/libbroadcom_v42_la-v3dx_dump.lo `test -f 'clif/v3dx_dump.c' || echo '$(srcdir)/'`clif/v3dx_dump.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) clif/$(DEPDIR)/libbroadcom_v42_la-v3dx_dump.Tpo clif/$(DEPDIR)/libbroadcom_v42_la-v3dx_dump.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='clif/v3dx_dump.c' object='clif/libbroadcom_v42_la-v3dx_dump.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libbroadcom_v42_la_CFLAGS) $(CFLAGS) -c -o clif/libbroadcom_v42_la-v3dx_dump.lo `test -f 'clif/v3dx_dump.c' || echo '$(srcdir)/'`clif/v3dx_dump.c + mostlyclean-libtool: -rm -f *.lo @@ -1224,12 +1353,24 @@ uninstall-am: uninstall-libLTLIBRARIES $(BROADCOM_GENXML_GENERATED_FILES): cle/gen_pack_header.py -.xml_pack.h: - $(MKDIR_GEN) - $(PYTHON_GEN) $(srcdir)/cle/gen_pack_header.py $< > $@ || ($(RM) $@; false) -cle/v3d_xml.h: $(GEN_ZIPPED) $(BROADCOM_GENXML_XML_FILES) - $(MKDIR_GEN) - $(PYTHON_GEN) $(GEN_ZIPPED) $(BROADCOM_GENXML_XML_FILES:%=$(srcdir)/%) > $@ || ($(RM) $@; false) +@REGEN_SOURCES_TRUE@cle/v3d_packet_v21_pack.h: $(srcdir)/cle/v3d_packet_v21.xml $(srcdir)/cle/gen_pack_header.py +@REGEN_SOURCES_TRUE@ $(MKDIR_GEN) +@REGEN_SOURCES_TRUE@ $(PYTHON_GEN) $(srcdir)/cle/gen_pack_header.py $< 21 > $@ || ($(RM) $@; false) + +@REGEN_SOURCES_TRUE@cle/v3d_packet_v33_pack.h: $(srcdir)/cle/v3d_packet_v33.xml $(srcdir)/cle/gen_pack_header.py +@REGEN_SOURCES_TRUE@ $(MKDIR_GEN) +@REGEN_SOURCES_TRUE@ $(PYTHON_GEN) $(srcdir)/cle/gen_pack_header.py $< 33 > $@ || ($(RM) $@; false) + +@REGEN_SOURCES_TRUE@cle/v3d_packet_v41_pack.h: $(srcdir)/cle/v3d_packet_v33.xml $(srcdir)/cle/gen_pack_header.py +@REGEN_SOURCES_TRUE@ $(MKDIR_GEN) +@REGEN_SOURCES_TRUE@ $(PYTHON_GEN) $(srcdir)/cle/gen_pack_header.py $< 41 > $@ || ($(RM) $@; false) + +@REGEN_SOURCES_TRUE@cle/v3d_packet_v42_pack.h: $(srcdir)/cle/v3d_packet_v33.xml $(srcdir)/cle/gen_pack_header.py +@REGEN_SOURCES_TRUE@ $(MKDIR_GEN) +@REGEN_SOURCES_TRUE@ $(PYTHON_GEN) $(srcdir)/cle/gen_pack_header.py $< 42 > $@ || ($(RM) $@; false) +@REGEN_SOURCES_TRUE@cle/v3d_xml.h: $(GEN_ZIPPED) $(BROADCOM_GENXML_XML_FILES) +@REGEN_SOURCES_TRUE@ $(MKDIR_GEN) +@REGEN_SOURCES_TRUE@ $(PYTHON_GEN) $(GEN_ZIPPED) $(BROADCOM_GENXML_XML_FILES:%=$(srcdir)/%) > $@ || ($(RM) $@; false) # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/lib/mesa/src/broadcom/Makefile.sources b/lib/mesa/src/broadcom/Makefile.sources index b60d2bcaa..5955acdef 100644 --- a/lib/mesa/src/broadcom/Makefile.sources +++ b/lib/mesa/src/broadcom/Makefile.sources @@ -1,6 +1,8 @@ BROADCOM_GENXML_GENERATED_FILES = \ cle/v3d_packet_v21_pack.h \ cle/v3d_packet_v33_pack.h \ + cle/v3d_packet_v41_pack.h \ + cle/v3d_packet_v42_pack.h \ cle/v3d_xml.h \ $() @@ -11,11 +13,14 @@ BROADCOM_GENXML_XML_FILES = \ BROADCOM_FILES = \ cle/v3d_packet_helpers.h \ - common/v3d_debug.c \ - common/v3d_debug.h \ + cle/v3dx_pack.h\ clif/clif_dump.c \ clif/clif_dump.h \ + clif/clif_private.h \ + common/v3d_debug.c \ + common/v3d_debug.h \ common/v3d_device_info.h \ + common/v3d_macros.h \ compiler/nir_to_vir.c \ compiler/vir.c \ compiler/vir_dump.c \ @@ -23,12 +28,17 @@ BROADCOM_FILES = \ compiler/vir_lower_uniforms.c \ compiler/vir_opt_copy_propagate.c \ compiler/vir_opt_dead_code.c \ + compiler/vir_opt_small_immediates.c \ compiler/vir_register_allocate.c \ compiler/vir_to_qpu.c \ compiler/qpu_schedule.c \ compiler/qpu_validate.c \ + compiler/v3d33_tex.c \ + compiler/v3d33_vpm_setup.c \ + compiler/v3d40_tex.c \ compiler/v3d_compiler.h \ compiler/v3d_nir_lower_io.c \ + compiler/v3d_nir_lower_txf_ms.c \ qpu/qpu_disasm.c \ qpu/qpu_disasm.h \ qpu/qpu_instr.c \ @@ -36,6 +46,10 @@ BROADCOM_FILES = \ qpu/qpu_pack.c \ $() +BROADCOM_PER_VERSION_SOURCES = \ + clif/v3dx_dump.c \ + $() + BROADCOM_DECODER_FILES = \ cle/v3d_decoder.c \ cle/v3d_decoder.h \ diff --git a/lib/mesa/src/broadcom/Makefile.vc5.am b/lib/mesa/src/broadcom/Makefile.vc5.am deleted file mode 100644 index 3e8e28bc9..000000000 --- a/lib/mesa/src/broadcom/Makefile.vc5.am +++ /dev/null @@ -1,20 +0,0 @@ -noinst_LTLIBRARIES += libbroadcom.la - -if USE_VC5_SIMULATOR -AM_CFLAGS += $(VC5_SIMULATOR_CFLAGS) -libbroadcom_la_LDFLAGS = $(VC5_SIMULATOR_LIBS) -endif - -libbroadcom_la_SOURCES = $(BROADCOM_FILES) - -check_PROGRAMS += \ - qpu/tests/qpu_disasm \ - $(NULL) - -LDADD = \ - libbroadcom.la \ - $(top_builddir)/src/compiler/nir/libnir.la \ - $(top_builddir)/src/util/libmesautil.la \ - $(NULL) - -TESTS += $(check_PROGRAMS) diff --git a/lib/mesa/src/broadcom/cle/gen_pack_header.py b/lib/mesa/src/broadcom/cle/gen_pack_header.py index badcc2c58..f79ee42df 100644 --- a/lib/mesa/src/broadcom/cle/gen_pack_header.py +++ b/lib/mesa/src/broadcom/cle/gen_pack_header.py @@ -43,7 +43,7 @@ pack_header = """%(license)s #ifndef %(guard)s #define %(guard)s -#include "v3d_packet_helpers.h" +#include "cle/v3d_packet_helpers.h" """ @@ -82,6 +82,11 @@ def safe_name(name): return name +def prefixed_upper_name(prefix, name): + if prefix: + name = prefix + "_" + name + return safe_name(name).upper() + def num_from_str(num_str): if num_str.lower().startswith('0x'): return int(num_str, base=16) @@ -111,6 +116,9 @@ class Field(object): self.end = self.start + int(attrs["size"]) - 1 self.type = attrs["type"] + if self.type == 'bool' and self.start != self.end: + print("#error Field {} has bool type but more than one bit of size".format(self.name)); + if "prefix" in attrs: self.prefix = safe_name(attrs["prefix"]).upper() else: @@ -121,6 +129,12 @@ class Field(object): else: self.default = None + if "minus_one" in attrs: + assert(attrs["minus_one"] == "true") + self.minus_one = True + else: + self.minus_one = False + ufixed_match = Field.ufixed_pattern.match(self.type) if ufixed_match: self.type = 'ufixed' @@ -138,6 +152,8 @@ class Field(object): type = 'bool' elif self.type == 'float': type = 'float' + elif self.type == 'f187': + type = 'float' elif self.type == 'ufixed': type = 'float' elif self.type == 'sfixed': @@ -158,18 +174,13 @@ class Field(object): return else: print("#error unhandled type: %s" % self.type) + type = "uint32_t" print(" %-36s %s%s;" % (type, self.name, dim)) - if len(self.values) > 0 and self.default == None: - if self.prefix: - prefix = self.prefix + "_" - else: - prefix = "" - for value in self.values: - print("#define %-40s %d" % ((prefix + value.name).replace("__", "_"), - value.value)) + name = prefixed_upper_name(self.prefix, value.name) + print("#define %-40s %d" % (name, value.value)) def overlaps(self, field): return self != field and max(self.start, field.start) <= min(self.end, field.end) @@ -183,6 +194,8 @@ class Group(object): self.count = count self.size = 0 self.fields = [] + self.min_ver = 0 + self.max_ver = 0 def emit_template_struct(self, dim): if self.count == 0: @@ -205,7 +218,7 @@ class Group(object): first_byte = field.start // 8 last_byte = field.end // 8 - for b in xrange(first_byte, last_byte + 1): + for b in range(first_byte, last_byte + 1): if not b in bytes: bytes[b] = self.Byte() @@ -225,6 +238,10 @@ class Group(object): relocs_emitted = set() memcpy_fields = set() + for field in self.fields: + if field.minus_one: + print(" assert(values->%s >= 1);" % field.name) + for index in range(self.length): # Handle MBZ bytes if not index in bytes: @@ -249,7 +266,7 @@ class Group(object): # uints/ints with no merged fields. if len(byte.fields) == 1: field = byte.fields[0] - if field.type in ["float", "uint", "int"] and field.start % 8 == 0 and field.end - field.start == 31: + if field.type in ["float", "uint", "int"] and field.start % 8 == 0 and field.end - field.start == 31 and not field.minus_one: if field in memcpy_fields: continue @@ -276,35 +293,44 @@ class Group(object): field_byte_start = (field.start // 8) * 8 start -= field_byte_start end -= field_byte_start + extra_shift = 0 + + value = "values->%s" % name + if field.minus_one: + value = "%s - 1" % value if field.type == "mbo": s = "__gen_mbo(%d, %d)" % \ (start, end) elif field.type == "address": + extra_shift = (31 - (end - start)) // 8 * 8 s = "__gen_address_offset(&values->%s)" % byte.address.name elif field.type == "uint": - s = "__gen_uint(values->%s, %d, %d)" % \ - (name, start, end) + s = "__gen_uint(%s, %d, %d)" % \ + (value, start, end) elif field.type in self.parser.enums: - s = "__gen_uint(values->%s, %d, %d)" % \ - (name, start, end) + s = "__gen_uint(%s, %d, %d)" % \ + (value, start, end) elif field.type == "int": - s = "__gen_sint(values->%s, %d, %d)" % \ - (name, start, end) + s = "__gen_sint(%s, %d, %d)" % \ + (value, start, end) elif field.type == "bool": - s = "__gen_uint(values->%s, %d, %d)" % \ - (name, start, end) + s = "__gen_uint(%s, %d, %d)" % \ + (value, start, end) elif field.type == "float": s = "#error %s float value mixed in with other fields" % name + elif field.type == "f187": + s = "__gen_uint(fui(%s) >> 16, %d, %d)" % \ + (value, start, end) elif field.type == "offset": - s = "__gen_offset(values->%s, %d, %d)" % \ - (name, start, end) + s = "__gen_offset(%s, %d, %d)" % \ + (value, start, end) elif field.type == 'ufixed': - s = "__gen_ufixed(values->%s, %d, %d, %d)" % \ - (name, start, end, field.fractional_size) + s = "__gen_ufixed(%s, %d, %d, %d)" % \ + (value, start, end, field.fractional_size) elif field.type == 'sfixed': - s = "__gen_sfixed(values->%s, %d, %d, %d)" % \ - (name, start, end, field.fractional_size) + s = "__gen_sfixed(%s, %d, %d, %d)" % \ + (value, start, end, field.fractional_size) elif field.type in self.parser.structs: s = "__gen_uint(v%d_%d, %d, %d)" % \ (index, field_index, start, end) @@ -314,8 +340,9 @@ class Group(object): s = None if not s == None: - if byte_start - field_byte_start != 0: - s = "%s >> %d" % (s, byte_start - field_byte_start) + shift = byte_start - field_byte_start + extra_shift + if shift: + s = "%s >> %d" % (s, shift) if field == byte.fields[-1]: print("%s %s;" % (prefix, s)) @@ -348,6 +375,8 @@ class Group(object): convert = "__gen_unpack_uint" elif field.type == "float": convert = "__gen_unpack_float" + elif field.type == "f187": + convert = "__gen_unpack_f187" elif field.type == "offset": convert = "__gen_unpack_offset" elif field.type == 'ufixed': @@ -357,19 +386,22 @@ class Group(object): args.append(str(field.fractional_size)) convert = "__gen_unpack_sfixed" else: - print("/* unhandled field %s, type %s */\n" % (name, field.type)) + print("/* unhandled field %s, type %s */\n" % (field.name, field.type)) s = None - print(" values->%s = %s(%s);" % \ - (field.name, convert, ', '.join(args))) + plusone = "" + if field.minus_one: + plusone = " + 1" + print(" values->%s = %s(%s)%s;" % \ + (field.name, convert, ', '.join(args), plusone)) class Value(object): def __init__(self, attrs): - self.name = safe_name(attrs["name"]).upper() + self.name = attrs["name"] self.value = int(attrs["value"]) class Parser(object): - def __init__(self): + def __init__(self, ver): self.parser = xml.parsers.expat.ParserCreate() self.parser.StartElementHandler = self.start_element self.parser.EndElementHandler = self.end_element @@ -380,6 +412,7 @@ class Parser(object): # Set of enum names we've seen. self.enums = set() self.registers = {} + self.ver = ver def gen_prefix(self, name): if name[0] == "_": @@ -390,10 +423,27 @@ class Parser(object): def gen_guard(self): return self.gen_prefix("PACK_H") + def attrs_version_valid(self, attrs): + if "min_ver" in attrs and self.ver < attrs["min_ver"]: + return False + + if "max_ver" in attrs and self.ver > attrs["max_ver"]: + return False + + return True + + def group_enabled(self): + if self.group.min_ver != 0 and self.ver < self.group.min_ver: + return False + + if self.group.max_ver != 0 and self.ver > self.group.max_ver: + return False + + return True + def start_element(self, name, attrs): if name == "vcxml": - self.platform = "V3D {}".format(attrs["gen"]) - self.ver = attrs["gen"].replace('.', '') + self.platform = "V3D {}.{}".format(self.ver[0], self.ver[1]) print(pack_header % {'license': license, 'platform': self.platform, 'guard': self.gen_guard()}) elif name in ("packet", "struct", "register"): default_field = None @@ -426,6 +476,11 @@ class Parser(object): field.values = [] self.group.fields.append(field) + if "min_ver" in attrs: + self.group.min_ver = attrs["min_ver"] + if "max_ver" in attrs: + self.group.max_ver = attrs["max_ver"] + elif name == "field": self.group.fields.append(Field(self, attrs)) self.values = [] @@ -433,12 +488,14 @@ class Parser(object): self.values = [] self.enum = safe_name(attrs["name"]) self.enums.add(attrs["name"]) + self.enum_enabled = self.attrs_version_valid(attrs) if "prefix" in attrs: - self.prefix = safe_name(attrs["prefix"]) + self.prefix = attrs["prefix"] else: self.prefix= None elif name == "value": - self.values.append(Value(attrs)) + if self.attrs_version_valid(attrs): + self.values.append(Value(attrs)) def end_element(self, name): if name == "packet": @@ -457,7 +514,8 @@ class Parser(object): elif name == "field": self.group.fields[-1].values = self.values elif name == "enum": - self.emit_enum() + if self.enum_enabled: + self.emit_enum() self.enum = None elif name == "vcxml": print('#endif /* %s */' % self.gen_guard()) @@ -502,6 +560,9 @@ class Parser(object): print('') def emit_packet(self): + if not self.group_enabled(): + return + name = self.packet assert(self.group.fields[0].name == "opcode") @@ -516,6 +577,9 @@ class Parser(object): print('') def emit_register(self): + if not self.group_enabled(): + return + name = self.register if not self.reg_num == None: print('#define %-33s 0x%04x' % @@ -526,6 +590,9 @@ class Parser(object): self.emit_unpack_function(self.register, self.group) def emit_struct(self): + if not self.group_enabled(): + return + name = self.struct self.emit_header(name) @@ -538,11 +605,11 @@ class Parser(object): def emit_enum(self): print('enum %s {' % self.gen_prefix(self.enum)) for value in self.values: + name = value.name if self.prefix: - name = self.prefix + "_" + value.name - else: - name = value.name - print(' % -36s = %6d,' % (name.upper(), value.value)) + name = self.prefix + "_" + name + name = safe_name(name).upper() + print(' % -36s = %6d,' % (name, value.value)) print('};\n') def parse(self, filename): @@ -556,5 +623,5 @@ if len(sys.argv) < 2: input_file = sys.argv[1] -p = Parser() +p = Parser(sys.argv[2]) p.parse(input_file) diff --git a/lib/mesa/src/broadcom/cle/v3d_packet_helpers.h b/lib/mesa/src/broadcom/cle/v3d_packet_helpers.h index c86cad852..c46089a0e 100644 --- a/lib/mesa/src/broadcom/cle/v3d_packet_helpers.h +++ b/lib/mesa/src/broadcom/cle/v3d_packet_helpers.h @@ -26,12 +26,15 @@ #include <stdbool.h> #include <assert.h> #include <math.h> +#include "util/u_math.h" #ifdef HAVE_VALGRIND #include <valgrind.h> #include <memcheck.h> #define VG(x) x +#ifndef NDEBUG #define __gen_validate_value(x) VALGRIND_CHECK_MEM_IS_DEFINED(&(x), sizeof(x)) +#endif #else #define VG(x) #endif @@ -64,7 +67,7 @@ __gen_uint(uint64_t v, uint32_t start, uint32_t end) { __gen_validate_value(v); -#if DEBUG +#ifndef NDEBUG const int width = end - start + 1; if (width < 64) { const uint64_t max = (1ull << width) - 1; @@ -82,7 +85,7 @@ __gen_sint(int64_t v, uint32_t start, uint32_t end) __gen_validate_value(v); -#if DEBUG +#ifndef NDEBUG if (width < 64) { const int64_t max = (1ll << (width - 1)) - 1; const int64_t min = -(1ll << (width - 1)); @@ -99,7 +102,7 @@ static inline uint64_t __gen_offset(uint64_t v, uint32_t start, uint32_t end) { __gen_validate_value(v); -#if DEBUG +#ifndef NDEBUG uint64_t mask = (~0ull >> (64 - (end - start + 1))) << start; assert((v & ~mask) == 0); @@ -122,7 +125,7 @@ __gen_sfixed(float v, uint32_t start, uint32_t end, uint32_t fract_bits) const float factor = (1 << fract_bits); -#if DEBUG +#ifndef NDEBUG const float max = ((1 << (end - start)) - 1) / factor; const float min = -(1 << (end - start)) / factor; assert(min <= v && v <= max); @@ -141,7 +144,7 @@ __gen_ufixed(float v, uint32_t start, uint32_t end, uint32_t fract_bits) const float factor = (1 << fract_bits); -#if DEBUG +#ifndef NDEBUG const float max = ((1 << (end - start + 1)) - 1) / factor; const float min = 0.0f; assert(min <= v && v <= max); @@ -203,3 +206,11 @@ __gen_unpack_float(const uint8_t *restrict cl, uint32_t start, uint32_t end) return f->f; } +static inline float +__gen_unpack_f187(const uint8_t *restrict cl, uint32_t start, uint32_t end) +{ + assert(end - start == 15); + uint32_t bits = __gen_unpack_uint(cl, start, end); + return uif(bits << 16); +} + diff --git a/lib/mesa/src/broadcom/cle/v3d_packet_v21.xml b/lib/mesa/src/broadcom/cle/v3d_packet_v21.xml index 3721815c2..df838a708 100644 --- a/lib/mesa/src/broadcom/cle/v3d_packet_v21.xml +++ b/lib/mesa/src/broadcom/cle/v3d_packet_v21.xml @@ -1,4 +1,26 @@ -<vcxml gen="2.1"> +<vcxml gen="2.1" min_ver="21" max_ver="21"> + + <enum name="Compare Function" prefix="V3D_COMPARE_FUNC"> + <value name="NEVER" value="0"/> + <value name="LESS" value="1"/> + <value name="EQUAL" value="2"/> + <value name="LEQUAL" value="3"/> + <value name="GREATER" value="4"/> + <value name="NOTEQUAL" value="5"/> + <value name="GEQUAL" value="6"/> + <value name="ALWAYS" value="7"/> + </enum> + + <enum name="Primitive" prefix="V3D_PRIM"> + <value name="POINTS" value="0"/> + <value name="LINES" value="1"/> + <value name="LINE_LOOP" value="2"/> + <value name="LINE_STRIP" value="3"/> + <value name="TRIANGLES" value="4"/> + <value name="TRIANGLE_STRIP" value="5"/> + <value name="TRIANGLE_FAN" value="6"/> + </enum> + <packet name="Halt" code="0"/> <packet name="NOP" code="1"/> <packet name="Flush" code="4" cl="B"/> @@ -109,29 +131,13 @@ <value name="8-bit" value="0"/> <value name="16-bit" value="1"/> </field> - <field name="Primitive mode" size="4" start="0" type="uint"> - <value name="points" value="0"/> - <value name="lines" value="1"/> - <value name="line loop" value="2"/> - <value name="line strip" value="3"/> - <value name="triangles" value="4"/> - <value name="triangles strip" value="5"/> - <value name="triangles fan" value="6"/> - </field> + <field name="Primitive mode" size="4" start="0" type="Primitive"/> </packet> <packet name="Vertex Array Primitives" code="33"> <field name="Index of First Vertex" size="32" start="40" type="uint"/> <field name="Length" size="32" start="8" type="uint"/> - <field name="Primitive mode" size="4" start="0" type="uint"> - <value name="points" value="0"/> - <value name="lines" value="1"/> - <value name="line loop" value="2"/> - <value name="line strip" value="3"/> - <value name="triangles" value="4"/> - <value name="triangles strip" value="5"/> - <value name="triangles fan" value="6"/> - </field> + <field name="Primitive mode" size="4" start="0" type="Primitive"/> </packet> <packet name="Primitive List Format" cl="R" code="56"> @@ -166,12 +172,11 @@ <field name="Early Z updates enable" size="1" start="17" type="bool"/> <field name="Early Z enable" size="1" start="16" type="bool"/> <field name="Z updates enable" size="1" start="15" type="bool"/> - <field name="Depth-Test Function" size="3" start="12" type="uint"/> - <!-- add values --> + <field name="Depth-Test Function" size="3" start="12" type="Compare Function"/> <field name="Coverage Read Mode" size="1" start="11" type="uint"/> <!-- add values --> <field name="Coverage Pipe Select" size="1" start="8" type="bool"/> - <field name="Rasteriser Oversample Mode" size="2" start="6" type="bool"/> + <field name="Rasteriser Oversample Mode" size="2" start="6" type="uint"/> <!-- add values --> <field name="Coverage Read Type" size="1" start="5" type="uint"/> <!-- add values --> diff --git a/lib/mesa/src/broadcom/cle/v3d_packet_v21_pack.h b/lib/mesa/src/broadcom/cle/v3d_packet_v21_pack.h index e28d9d954..c84ea27e2 100644 --- a/lib/mesa/src/broadcom/cle/v3d_packet_v21_pack.h +++ b/lib/mesa/src/broadcom/cle/v3d_packet_v21_pack.h @@ -9,8 +9,29 @@ #ifndef V3D21_PACK_H #define V3D21_PACK_H -#include "v3d_packet_helpers.h" +#include "cle/v3d_packet_helpers.h" + + +enum V3D21_Compare_Function { + V3D_COMPARE_FUNC_NEVER = 0, + V3D_COMPARE_FUNC_LESS = 1, + V3D_COMPARE_FUNC_EQUAL = 2, + V3D_COMPARE_FUNC_LEQUAL = 3, + V3D_COMPARE_FUNC_GREATER = 4, + V3D_COMPARE_FUNC_NOTEQUAL = 5, + V3D_COMPARE_FUNC_GEQUAL = 6, + V3D_COMPARE_FUNC_ALWAYS = 7, +}; +enum V3D21_Primitive { + V3D_PRIM_POINTS = 0, + V3D_PRIM_LINES = 1, + V3D_PRIM_LINE_LOOP = 2, + V3D_PRIM_LINE_STRIP = 3, + V3D_PRIM_TRIANGLES = 4, + V3D_PRIM_TRIANGLE_STRIP = 5, + V3D_PRIM_TRIANGLE_FAN = 6, +}; #define V3D21_HALT_opcode 0 #define V3D21_HALT_header \ @@ -626,14 +647,7 @@ struct V3D21_INDEXED_PRIMITIVE_LIST { uint32_t index_type; #define _8_BIT 0 #define _16_BIT 1 - uint32_t primitive_mode; -#define POINTS 0 -#define LINES 1 -#define LINE_LOOP 2 -#define LINE_STRIP 3 -#define TRIANGLES 4 -#define TRIANGLES_STRIP 5 -#define TRIANGLES_FAN 6 + enum V3D21_Primitive primitive_mode; }; static inline void @@ -677,14 +691,7 @@ struct V3D21_VERTEX_ARRAY_PRIMITIVES { uint32_t opcode; uint32_t index_of_first_vertex; uint32_t length; - uint32_t primitive_mode; -#define POINTS 0 -#define LINES 1 -#define LINE_LOOP 2 -#define LINE_STRIP 3 -#define TRIANGLES 4 -#define TRIANGLES_STRIP 5 -#define TRIANGLES_FAN 6 + enum V3D21_Primitive primitive_mode; }; static inline void @@ -868,10 +875,10 @@ struct V3D21_CONFIGURATION_BITS { bool early_z_updates_enable; bool early_z_enable; bool z_updates_enable; - uint32_t depth_test_function; + enum V3D21_Compare_Function depth_test_function; uint32_t coverage_read_mode; bool coverage_pipe_select; - bool rasteriser_oversample_mode; + uint32_t rasteriser_oversample_mode; uint32_t coverage_read_type; bool antialiased_points_and_lines; bool enable_depth_offset; diff --git a/lib/mesa/src/broadcom/common/v3d_device_info.h b/lib/mesa/src/broadcom/common/v3d_device_info.h index 5685c7a21..b0a2a0215 100644 --- a/lib/mesa/src/broadcom/common/v3d_device_info.h +++ b/lib/mesa/src/broadcom/common/v3d_device_info.h @@ -27,13 +27,14 @@ #include <stdint.h> /** - * Struct for tracking features of the V3D chip. This is where we'll store - * boolean flags for features in a specific version, but for now it's just the - * version + * Struct for tracking features of the V3D chip across driver and compiler. */ struct v3d_device_info { /** Simple V3D version: major * 10 + minor */ uint8_t ver; + + /** Size of the VPM, in bytes. */ + int vpm_size; }; #endif |