[Mesa-dev] [PATCH] vc4: Introduce XML-based packet header generation like Intel's.
Rob Herring
robh at kernel.org
Thu Jun 29 19:52:23 UTC 2017
On Wed, Jun 28, 2017 at 1:18 PM, Eric Anholt <eric at anholt.net> wrote:
> I really liked this idea, as it should help with management of packet
> parsing tools like the CL dump. The python script is forked off of theirs
> because our packets are byte-based instead of dwords, and the changes to
> do so while avoiding performance regressions due to unaligned accesses
> were quite invasive.
> ---
>
> I'm hoping for an ack from Jason or Kenneth on the genxml script fork
> to the new location, and an Android test from Rob. Full branch using
> the XML stuff is at vc4-xml of my Mesa tree.
>
> Android.mk | 1 +
> configure.ac | 1 +
> src/Makefile.am | 4 +
> src/broadcom/.gitignore | 1 +
> .../Android.genxml.mk} | 43 +-
> src/{intel => broadcom}/Android.mk | 5 -
> src/{amd => broadcom}/Makefile.am | 22 +-
> .../Makefile.genxml.am} | 18 +-
> src/broadcom/Makefile.sources | 12 +
> src/broadcom/cle/gen_pack_header.py | 547 +++++++++++++++++++++
> src/broadcom/cle/v3d_packet_helpers.h | 189 +++++++
> src/broadcom/cle/v3d_packet_v21.xml | 220 +++++++++
> src/gallium/drivers/vc4/Android.mk | 5 +-
> 13 files changed, 1035 insertions(+), 33 deletions(-)
> create mode 100644 src/broadcom/.gitignore
> copy src/{mesa/Android.libmesa_git_sha1.mk => broadcom/Android.genxml.mk} (60%)
> copy src/{intel => broadcom}/Android.mk (86%)
> copy src/{amd => broadcom}/Makefile.am (75%)
> copy src/{intel/Makefile.common.am => broadcom/Makefile.genxml.am} (74%)
> create mode 100644 src/broadcom/Makefile.sources
> create mode 100644 src/broadcom/cle/gen_pack_header.py
> create mode 100644 src/broadcom/cle/v3d_packet_helpers.h
> create mode 100644 src/broadcom/cle/v3d_packet_v21.xml
>
> diff --git a/Android.mk b/Android.mk
> index 418570e607bb..9203c87a4e35 100644
> --- a/Android.mk
> +++ b/Android.mk
> @@ -112,6 +112,7 @@ SUBDIRS := \
> src/util \
> src/egl \
> src/amd \
> + src/broadcom \
> src/intel \
> src/mesa/drivers/dri \
> src/vulkan
> diff --git a/configure.ac b/configure.ac
> index c9dc51bc0d86..cb5d6683afe6 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -2734,6 +2734,7 @@ AC_CONFIG_FILES([Makefile
> src/Makefile
> src/amd/Makefile
> src/amd/vulkan/Makefile
> + src/broadcom/Makefile
> src/compiler/Makefile
> src/egl/Makefile
> src/egl/main/egl.pc
> diff --git a/src/Makefile.am b/src/Makefile.am
> index df912c442af1..1f18cb65699a 100644
> --- a/src/Makefile.am
> +++ b/src/Makefile.am
> @@ -93,6 +93,10 @@ if HAVE_INTEL_DRIVERS
> SUBDIRS += intel
> endif
>
> +if HAVE_GALLIUM_VC4
> +SUBDIRS += broadcom
> +endif
> +
> if NEED_OPENGL_COMMON
> SUBDIRS += mesa
> endif
> diff --git a/src/broadcom/.gitignore b/src/broadcom/.gitignore
> new file mode 100644
> index 000000000000..fcc603f0cf01
> --- /dev/null
> +++ b/src/broadcom/.gitignore
> @@ -0,0 +1 @@
> +cle/*_pack.h
> diff --git a/src/mesa/Android.libmesa_git_sha1.mk b/src/broadcom/Android.genxml.mk
> similarity index 60%
> copy from src/mesa/Android.libmesa_git_sha1.mk
> copy to src/broadcom/Android.genxml.mk
This is a strange diff.
> index 0fd176bf7d5d..461efd61085f 100644
> --- a/src/mesa/Android.libmesa_git_sha1.mk
> +++ b/src/broadcom/Android.genxml.mk
> @@ -1,6 +1,5 @@
> -# Mesa 3-D graphics library
> -#
> -# Copyright (C) 2017 Mauro Rossi <issor.oruam at gmail.com>
> +# Copyright © 2016 Intel Corporation
> +# Copyright © 2016 Mauro Rossi <issor.oruam at gmail.com>
> #
> # Permission is hereby granted, free of charge, to any person obtaining a
> # copy of this software and associated documentation files (the "Software"),
> @@ -19,18 +18,18 @@
> # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
> # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
> # DEALINGS IN THE SOFTWARE.
> +#
>
> -# ----------------------------------------------------------------------
> -# libmesa_git_sha1
> -# ----------------------------------------------------------------------
> -
> -LOCAL_PATH := $(call my-dir)
> +# ---------------------------------------
> +# Build libmesa_genxml
> +# ---------------------------------------
>
> include $(CLEAR_VARS)
>
> -LOCAL_MODULE := libmesa_git_sha1
> +LOCAL_MODULE := libmesa_broadcom_genxml
>
> LOCAL_MODULE_CLASS := STATIC_LIBRARIES
> +
> intermediates := $(call local-generated-sources-dir)
>
> # dummy.c source file is generated to meet the build system's rules.
> @@ -41,19 +40,23 @@ $(intermediates)/dummy.c:
> @echo "Gen Dummy: $(PRIVATE_MODULE) <= $(notdir $(@))"
> $(hide) touch $@
>
> -LOCAL_GENERATED_SOURCES += $(addprefix $(intermediates)/, git_sha1.h)
> +# This is the list of auto-generated files headers
> +LOCAL_GENERATED_SOURCES += $(addprefix $(intermediates)/, $(BROADCOM_GENXML_GENERATED_FILES))
>
> -$(intermediates)/git_sha1.h: $(wildcard $(MESA_TOP)/.git/logs/HEAD)
> +define header-gen
> @mkdir -p $(dir $@)
> - @echo "GIT-SHA1: $(PRIVATE_MODULE) <= git"
> - $(hide) touch $@
> - $(hide) if which git > /dev/null; then \
> - git --git-dir $(MESA_TOP)/.git log -n 1 --oneline | \
> - sed 's/^\([^ ]*\) .*/#define MESA_GIT_SHA1 "git-\1"/' \
> - > $@; \
> - fi
> -
> -LOCAL_EXPORT_C_INCLUDE_DIRS := $(intermediates)
> + @echo "Gen Header: $(PRIVATE_MODULE) <= $(notdir $(@))"
> + $(hide) $(PRIVATE_SCRIPT) $(PRIVATE_SCRIPT_FLAGS) $(PRIVATE_XML) > $@
> +endef
> +
> +$(intermediates)/genxml/v3d_packet_v21_pack.h: PRIVATE_SCRIPT := $(MESA_PYTHON2) $(LOCAL_PATH)/cle/gen_pack_header.py
> +$(intermediates)/genxml/v3d_packet_v21_pack.h: PRIVATE_XML := $(LOCAL_PATH)/cle/v3d_packet_v21.xml
> +$(intermediates)/genxml/v3d_packet_v21_pack.h: $(LOCAL_PATH)/cle/v3d_packet_v21.xml $(LOCAL_PATH)/cle/gen_pack_header.py
As Emil pointed out: s/genxml/cle/
With that, it builds fine on Android at least.
Tested-by: Rob Herring <robh at kernel.org>
Rob
More information about the mesa-dev
mailing list