diff options
author | Jonathan Gray <jsg@cvs.openbsd.org> | 2020-01-22 02:49:53 +0000 |
---|---|---|
committer | Jonathan Gray <jsg@cvs.openbsd.org> | 2020-01-22 02:49:53 +0000 |
commit | d264279e28002d81821c883795911844a4c01a2c (patch) | |
tree | b0481616eda55b543a0dc1487d096c3239885c41 /lib/mesa/src/broadcom | |
parent | fdcc03929065b5bf5dd93553db219ea3e05c8c34 (diff) |
Merge Mesa 19.2.8
Diffstat (limited to 'lib/mesa/src/broadcom')
-rw-r--r-- | lib/mesa/src/broadcom/Makefile.am | 66 | ||||
-rw-r--r-- | lib/mesa/src/broadcom/Makefile.cle.am | 6 | ||||
-rw-r--r-- | lib/mesa/src/broadcom/Makefile.genxml.am | 56 | ||||
-rw-r--r-- | lib/mesa/src/broadcom/Makefile.in | 1385 | ||||
-rw-r--r-- | lib/mesa/src/broadcom/Makefile.sources | 3 | ||||
-rw-r--r-- | lib/mesa/src/broadcom/Makefile.v3d.am | 32 | ||||
-rw-r--r-- | lib/mesa/src/broadcom/cle/gen_pack_header.py | 2 | ||||
-rw-r--r-- | lib/mesa/src/broadcom/cle/v3d_packet_helpers.h | 4 | ||||
-rw-r--r-- | lib/mesa/src/broadcom/cle/v3d_packet_v21_pack.h | 1700 | ||||
-rw-r--r-- | lib/mesa/src/broadcom/cle/v3d_packet_v33_pack.h | 3733 | ||||
-rw-r--r-- | lib/mesa/src/broadcom/cle/v3d_packet_v41_pack.h | 4399 | ||||
-rw-r--r-- | lib/mesa/src/broadcom/cle/v3d_packet_v42_pack.h | 4403 | ||||
-rw-r--r-- | lib/mesa/src/broadcom/cle/v3d_xml.h | 719 | ||||
-rw-r--r-- | lib/mesa/src/broadcom/common/v3d_device_info.h | 9 | ||||
-rw-r--r-- | lib/mesa/src/broadcom/compiler/vir_lower_uniforms.c | 209 |
15 files changed, 16 insertions, 16710 deletions
diff --git a/lib/mesa/src/broadcom/Makefile.am b/lib/mesa/src/broadcom/Makefile.am deleted file mode 100644 index 061afe67b..000000000 --- a/lib/mesa/src/broadcom/Makefile.am +++ /dev/null @@ -1,66 +0,0 @@ -# Copyright © 2016 Broadcom -# Copyright © 2016 Intel Corporation -# -# Permission is hereby granted, free of charge, to any person obtaining a -# copy of this software and associated documentation files (the "Software"), -# to deal in the Software without restriction, including without limitation -# the rights to use, copy, modify, merge, publish, distribute, sublicense, -# and/or sell copies of the Software, and to permit persons to whom the -# Software is furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice (including the next -# paragraph) shall be included in all copies or substantial portions of the -# Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# 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. - -AM_CPPFLAGS = \ - -I$(top_srcdir)/include \ - -I$(top_builddir)/src \ - -I$(top_srcdir)/src \ - -I$(top_builddir)/src/compiler/nir \ - -I$(top_srcdir)/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 \ - $(VALGRIND_CFLAGS) \ - $(DEFINES) - -AM_CFLAGS = \ - $(EXPAT_CFLAGS) - -include Makefile.sources - -lib_LTLIBRARIES = -check_LTLIBRARIES = -noinst_DATA = -noinst_HEADERS = -noinst_LTLIBRARIES = -noinst_PROGRAMS = -check_PROGRAMS = -TESTS = -BUILT_SOURCES = -CLEANFILES = -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)$(PYTHON) $(PYTHON_FLAGS) - -include Makefile.genxml.am -include Makefile.cle.am -include Makefile.v3d.am - -CLEANFILES += $(BUILT_SOURCES) diff --git a/lib/mesa/src/broadcom/Makefile.cle.am b/lib/mesa/src/broadcom/Makefile.cle.am deleted file mode 100644 index 1c262d039..000000000 --- a/lib/mesa/src/broadcom/Makefile.cle.am +++ /dev/null @@ -1,6 +0,0 @@ -noinst_LTLIBRARIES += cle/libbroadcom_cle.la - -cle_libbroadcom_cle_la_CFLAGS = \ - -I$(top_builddir)/src/broadcom/cle \ - $(AM_CFLAGS) -cle_libbroadcom_cle_la_SOURCES = $(BROADCOM_DECODER_FILES) diff --git a/lib/mesa/src/broadcom/Makefile.genxml.am b/lib/mesa/src/broadcom/Makefile.genxml.am deleted file mode 100644 index 35421722d..000000000 --- a/lib/mesa/src/broadcom/Makefile.genxml.am +++ /dev/null @@ -1,56 +0,0 @@ -# Copyright © 2016 Intel Corporation -# -# Permission is hereby granted, free of charge, to any person obtaining a -# copy of this software and associated documentation files (the "Software"), -# to deal in the Software without restriction, including without limitation -# the rights to use, copy, modify, merge, publish, distribute, sublicense, -# and/or sell copies of the Software, and to permit persons to whom the -# Software is furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice (including the next -# paragraph) shall be included in all copies or substantial portions of the -# Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# 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. - -BUILT_SOURCES += $(BROADCOM_GENXML_GENERATED_FILES) - -EXTRA_DIST += $(BROADCOM_GENXML_XML_FILES) -EXTRA_DIST += $(BROADCOM_GENXML_GENERATED_FILES) - -SUFFIXES = _pack.h .xml - -$(BROADCOM_GENXML_GENERATED_FILES): cle/gen_pack_header.py - -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 $< 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 deleted file mode 100644 index 079f17296..000000000 --- a/lib/mesa/src/broadcom/Makefile.in +++ /dev/null @@ -1,1385 +0,0 @@ -# Makefile.in generated by automake 1.12.6 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2012 Free Software Foundation, Inc. - -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# Copyright © 2016 Broadcom -# Copyright © 2016 Intel Corporation -# -# Permission is hereby granted, free of charge, to any person obtaining a -# copy of this software and associated documentation files (the "Software"), -# to deal in the Software without restriction, including without limitation -# the rights to use, copy, modify, merge, publish, distribute, sublicense, -# and/or sell copies of the Software, and to permit persons to whom the -# Software is furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice (including the next -# paragraph) shall be included in all copies or substantial portions of the -# Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# 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. - -# Copyright © 2016 Intel Corporation -# -# Permission is hereby granted, free of charge, to any person obtaining a -# copy of this software and associated documentation files (the "Software"), -# to deal in the Software without restriction, including without limitation -# the rights to use, copy, modify, merge, publish, distribute, sublicense, -# and/or sell copies of the Software, and to permit persons to whom the -# Software is furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice (including the next -# paragraph) shall be included in all copies or substantial portions of the -# Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# 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. - - - - -VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ - esac; \ - test $$am__dry = yes; \ - } -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -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.v3d.am $(top_srcdir)/bin/depcomp -noinst_PROGRAMS = -check_PROGRAMS = qpu/tests/qpu_disasm$(EXEEXT) -@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 \ - $(top_srcdir)/m4/ax_check_gnu_make.m4 \ - $(top_srcdir)/m4/ax_check_python_mako_module.m4 \ - $(top_srcdir)/m4/ax_gcc_builtin.m4 \ - $(top_srcdir)/m4/ax_gcc_func_attribute.m4 \ - $(top_srcdir)/m4/ax_prog_bison.m4 \ - $(top_srcdir)/m4/ax_prog_flex.m4 \ - $(top_srcdir)/m4/ax_pthread.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/VERSION $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__installdirs = "$(DESTDIR)$(libdir)" -LTLIBRARIES = $(lib_LTLIBRARIES) $(noinst_LTLIBRARIES) -cle_libbroadcom_cle_la_LIBADD = -am__dirstamp = $(am__leading_dot)dirstamp -am__objects_1 = cle/cle_libbroadcom_cle_la-v3d_decoder.lo -am_cle_libbroadcom_cle_la_OBJECTS = $(am__objects_1) -cle_libbroadcom_cle_la_OBJECTS = $(am_cle_libbroadcom_cle_la_OBJECTS) -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -cle_libbroadcom_cle_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ - $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ - $(cle_libbroadcom_cle_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ -libbroadcom_la_LIBADD = -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/v3d33_tex.lo compiler/v3d33_vpm_setup.lo \ - compiler/v3d40_tex.lo \ - compiler/v3d_nir_lower_image_load_store.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) -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) -qpu_tests_qpu_disasm_LDADD = $(LDADD) -qpu_tests_qpu_disasm_DEPENDENCIES = libbroadcom.la \ - $(top_builddir)/src/compiler/nir/libnir.la \ - $(top_builddir)/src/util/libmesautil.la -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -depcomp = $(SHELL) $(top_srcdir)/bin/depcomp -am__depfiles_maybe = depfiles -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -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) \ - $(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) $(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;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -DATA = $(noinst_DATA) -HEADERS = $(noinst_HEADERS) -ETAGS = etags -CTAGS = ctags -am__tty_colors_dummy = \ - mgn= red= grn= lgn= blu= brg= std=; \ - am__color_tests=no -am__tty_colors = $(am__tty_colors_dummy) -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMDGPU_CFLAGS = @AMDGPU_CFLAGS@ -AMDGPU_LIBS = @AMDGPU_LIBS@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -ANDROID_CFLAGS = @ANDROID_CFLAGS@ -ANDROID_LIBS = @ANDROID_LIBS@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BACKTRACE_CFLAGS = @BACKTRACE_CFLAGS@ -BACKTRACE_LIBS = @BACKTRACE_LIBS@ -BSYMBOLIC = @BSYMBOLIC@ -CC = @CC@ -CCAS = @CCAS@ -CCASDEPMODE = @CCASDEPMODE@ -CCASFLAGS = @CCASFLAGS@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CLANG_RESOURCE_DIR = @CLANG_RESOURCE_DIR@ -CLOCK_LIB = @CLOCK_LIB@ -CLOVER_STD_OVERRIDE = @CLOVER_STD_OVERRIDE@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CXX = @CXX@ -CXX11_CXXFLAGS = @CXX11_CXXFLAGS@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -D3D_DRIVER_INSTALL_DIR = @D3D_DRIVER_INSTALL_DIR@ -DEFINES = @DEFINES@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DLOPEN_LIBS = @DLOPEN_LIBS@ -DRI2PROTO_CFLAGS = @DRI2PROTO_CFLAGS@ -DRI2PROTO_LIBS = @DRI2PROTO_LIBS@ -DRIGL_CFLAGS = @DRIGL_CFLAGS@ -DRIGL_LIBS = @DRIGL_LIBS@ -DRI_DRIVER_INSTALL_DIR = @DRI_DRIVER_INSTALL_DIR@ -DRI_DRIVER_SEARCH_DIR = @DRI_DRIVER_SEARCH_DIR@ -DRI_LIB_DEPS = @DRI_LIB_DEPS@ -DRI_PC_REQ_PRIV = @DRI_PC_REQ_PRIV@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGL_CFLAGS = @EGL_CFLAGS@ -EGL_LIB_DEPS = @EGL_LIB_DEPS@ -EGL_NATIVE_PLATFORM = @EGL_NATIVE_PLATFORM@ -EGREP = @EGREP@ -ETNAVIV_CFLAGS = @ETNAVIV_CFLAGS@ -ETNAVIV_LIBS = @ETNAVIV_LIBS@ -EXEEXT = @EXEEXT@ -EXPAT_CFLAGS = @EXPAT_CFLAGS@ -EXPAT_LIBS = @EXPAT_LIBS@ -FGREP = @FGREP@ -GALLIUM_PIPE_LOADER_DEFINES = @GALLIUM_PIPE_LOADER_DEFINES@ -GBM_PC_LIB_PRIV = @GBM_PC_LIB_PRIV@ -GBM_PC_REQ_PRIV = @GBM_PC_REQ_PRIV@ -GC_SECTIONS = @GC_SECTIONS@ -GLESv1_CM_LIB_DEPS = @GLESv1_CM_LIB_DEPS@ -GLESv1_CM_PC_LIB_PRIV = @GLESv1_CM_PC_LIB_PRIV@ -GLESv2_LIB_DEPS = @GLESv2_LIB_DEPS@ -GLESv2_PC_LIB_PRIV = @GLESv2_PC_LIB_PRIV@ -GLPROTO_CFLAGS = @GLPROTO_CFLAGS@ -GLPROTO_LIBS = @GLPROTO_LIBS@ -GLVND_CFLAGS = @GLVND_CFLAGS@ -GLVND_LIBS = @GLVND_LIBS@ -GLX_TLS = @GLX_TLS@ -GL_LIB = @GL_LIB@ -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@ -I915_CFLAGS = @I915_CFLAGS@ -I915_LIBS = @I915_LIBS@ -INDENT = @INDENT@ -INDENT_FLAGS = @INDENT_FLAGS@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -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@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBATOMIC_LIBS = @LIBATOMIC_LIBS@ -LIBCLC_INCLUDEDIR = @LIBCLC_INCLUDEDIR@ -LIBCLC_LIBEXECDIR = @LIBCLC_LIBEXECDIR@ -LIBDRM_CFLAGS = @LIBDRM_CFLAGS@ -LIBDRM_LIBS = @LIBDRM_LIBS@ -LIBELF_CFLAGS = @LIBELF_CFLAGS@ -LIBELF_LIBS = @LIBELF_LIBS@ -LIBGLVND_DATADIR = @LIBGLVND_DATADIR@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBSENSORS_LIBS = @LIBSENSORS_LIBS@ -LIBTOOL = @LIBTOOL@ -LIBUNWIND_CFLAGS = @LIBUNWIND_CFLAGS@ -LIBUNWIND_LIBS = @LIBUNWIND_LIBS@ -LIB_DIR = @LIB_DIR@ -LIB_EXT = @LIB_EXT@ -LIPO = @LIPO@ -LLVM_CFLAGS = @LLVM_CFLAGS@ -LLVM_CONFIG = @LLVM_CONFIG@ -LLVM_CXXFLAGS = @LLVM_CXXFLAGS@ -LLVM_INCLUDEDIR = @LLVM_INCLUDEDIR@ -LLVM_LDFLAGS = @LLVM_LDFLAGS@ -LLVM_LIBS = @LLVM_LIBS@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MKDIR_P = @MKDIR_P@ -MSVC2013_COMPAT_CFLAGS = @MSVC2013_COMPAT_CFLAGS@ -MSVC2013_COMPAT_CXXFLAGS = @MSVC2013_COMPAT_CXXFLAGS@ -NINE_MAJOR = @NINE_MAJOR@ -NINE_MINOR = @NINE_MINOR@ -NINE_PATCH = @NINE_PATCH@ -NINE_VERSION = @NINE_VERSION@ -NM = @NM@ -NMEDIT = @NMEDIT@ -NOUVEAU_CFLAGS = @NOUVEAU_CFLAGS@ -NOUVEAU_LIBS = @NOUVEAU_LIBS@ -NVVIEUX_CFLAGS = @NVVIEUX_CFLAGS@ -NVVIEUX_LIBS = @NVVIEUX_LIBS@ -OBJDUMP = @OBJDUMP@ -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@ -OSMESA_LIB_DEPS = @OSMESA_LIB_DEPS@ -OSMESA_PC_LIB_PRIV = @OSMESA_PC_LIB_PRIV@ -OSMESA_PC_REQ = @OSMESA_PC_REQ@ -OSMESA_VERSION = @OSMESA_VERSION@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POSIX_SHELL = @POSIX_SHELL@ -PTHREADSTUBS_CFLAGS = @PTHREADSTUBS_CFLAGS@ -PTHREADSTUBS_LIBS = @PTHREADSTUBS_LIBS@ -PTHREAD_CC = @PTHREAD_CC@ -PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ -PTHREAD_LIBS = @PTHREAD_LIBS@ -PWR8_CFLAGS = @PWR8_CFLAGS@ -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@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -SIMPENROSE_CFLAGS = @SIMPENROSE_CFLAGS@ -SIMPENROSE_LIBS = @SIMPENROSE_LIBS@ -SSE41_CFLAGS = @SSE41_CFLAGS@ -STRIP = @STRIP@ -SWR_AVX2_CXXFLAGS = @SWR_AVX2_CXXFLAGS@ -SWR_AVX_CXXFLAGS = @SWR_AVX_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@ -VA_LIBS = @VA_LIBS@ -VA_LIB_INSTALL_DIR = @VA_LIB_INSTALL_DIR@ -VA_MAJOR = @VA_MAJOR@ -VA_MINOR = @VA_MINOR@ -VC4_CFLAGS = @VC4_CFLAGS@ -VC4_LIBS = @VC4_LIBS@ -VDPAU_CFLAGS = @VDPAU_CFLAGS@ -VDPAU_LIBS = @VDPAU_LIBS@ -VDPAU_LIB_INSTALL_DIR = @VDPAU_LIB_INSTALL_DIR@ -VDPAU_MAJOR = @VDPAU_MAJOR@ -VDPAU_MINOR = @VDPAU_MINOR@ -VERSION = @VERSION@ -VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@ -VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@ -VL_CFLAGS = @VL_CFLAGS@ -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@ -WAYLAND_SERVER_CFLAGS = @WAYLAND_SERVER_CFLAGS@ -WAYLAND_SERVER_LIBS = @WAYLAND_SERVER_LIBS@ -WNO_OVERRIDE_INIT = @WNO_OVERRIDE_INIT@ -X11_INCLUDES = @X11_INCLUDES@ -XA_MAJOR = @XA_MAJOR@ -XA_MINOR = @XA_MINOR@ -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@ -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@ -XVMC_MAJOR = @XVMC_MAJOR@ -XVMC_MINOR = @XVMC_MINOR@ -YACC = @YACC@ -YFLAGS = @YFLAGS@ -ZLIB_CFLAGS = @ZLIB_CFLAGS@ -ZLIB_LIBS = @ZLIB_LIBS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -acv_mako_found = @acv_mako_found@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -ax_pthread_config = @ax_pthread_config@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -ifGNUmake = @ifGNUmake@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -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@ -sysconfdir = @sysconfdir@ -target = @target@ -target_alias = @target_alias@ -target_cpu = @target_cpu@ -target_os = @target_os@ -target_vendor = @target_vendor@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -AM_CPPFLAGS = \ - -I$(top_srcdir)/include \ - -I$(top_builddir)/src \ - -I$(top_srcdir)/src \ - -I$(top_builddir)/src/compiler/nir \ - -I$(top_srcdir)/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 \ - $(VALGRIND_CFLAGS) \ - $(DEFINES) - -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 \ - $() - -BROADCOM_GENXML_XML_FILES = \ - cle/v3d_packet_v21.xml \ - cle/v3d_packet_v33.xml \ - $() - -BROADCOM_FILES = \ - cle/v3d_packet_helpers.h \ - cle/v3dx_pack.h\ - clif/clif_dump.c \ - clif/clif_dump.h \ - clif/clif_private.h \ - common/v3d_cpu_tiling.h \ - common/v3d_debug.c \ - common/v3d_debug.h \ - common/v3d_device_info.h \ - common/v3d_limits.h \ - common/v3d_macros.h \ - compiler/nir_to_vir.c \ - compiler/vir.c \ - compiler/vir_dump.c \ - compiler/vir_live_variables.c \ - 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_image_load_store.c \ - 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 \ - qpu/qpu_instr.h \ - qpu/qpu_pack.c \ - $() - -BROADCOM_PER_VERSION_SOURCES = \ - clif/v3dx_dump.c \ - $() - -BROADCOM_DECODER_FILES = \ - cle/v3d_decoder.c \ - cle/v3d_decoder.h \ - $() - -lib_LTLIBRARIES = -check_LTLIBRARIES = -noinst_DATA = -noinst_HEADERS = -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) 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)$(PYTHON) $(PYTHON_FLAGS) -SUFFIXES = _pack.h .xml -@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_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 \ - $(top_builddir)/src/compiler/nir/libnir.la \ - $(top_builddir)/src/util/libmesautil.la \ - $(NULL) - -all: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) all-am - -.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.v3d.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/broadcom/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign src/broadcom/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - 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.v3d.am: - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -clean-checkLTLIBRARIES: - -test -z "$(check_LTLIBRARIES)" || rm -f $(check_LTLIBRARIES) - @list='$(check_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } -install-libLTLIBRARIES: $(lib_LTLIBRARIES) - @$(NORMAL_INSTALL) - @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ - list2=; for p in $$list; do \ - if test -f $$p; then \ - list2="$$list2 $$p"; \ - else :; fi; \ - done; \ - test -z "$$list2" || { \ - echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ - } - -uninstall-libLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ - done - -clean-libLTLIBRARIES: - -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) - @list='$(lib_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } - -clean-noinstLTLIBRARIES: - -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) - @list='$(noinst_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } -cle/$(am__dirstamp): - @$(MKDIR_P) cle - @: > cle/$(am__dirstamp) -cle/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) cle/$(DEPDIR) - @: > cle/$(DEPDIR)/$(am__dirstamp) -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) -common/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) common/$(DEPDIR) - @: > common/$(DEPDIR)/$(am__dirstamp) -common/v3d_debug.lo: common/$(am__dirstamp) \ - common/$(DEPDIR)/$(am__dirstamp) -compiler/$(am__dirstamp): - @$(MKDIR_P) compiler - @: > compiler/$(am__dirstamp) -compiler/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) compiler/$(DEPDIR) - @: > compiler/$(DEPDIR)/$(am__dirstamp) -compiler/nir_to_vir.lo: compiler/$(am__dirstamp) \ - compiler/$(DEPDIR)/$(am__dirstamp) -compiler/vir.lo: compiler/$(am__dirstamp) \ - compiler/$(DEPDIR)/$(am__dirstamp) -compiler/vir_dump.lo: compiler/$(am__dirstamp) \ - compiler/$(DEPDIR)/$(am__dirstamp) -compiler/vir_live_variables.lo: compiler/$(am__dirstamp) \ - compiler/$(DEPDIR)/$(am__dirstamp) -compiler/vir_lower_uniforms.lo: compiler/$(am__dirstamp) \ - compiler/$(DEPDIR)/$(am__dirstamp) -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) \ - compiler/$(DEPDIR)/$(am__dirstamp) -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_image_load_store.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) -qpu/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) qpu/$(DEPDIR) - @: > qpu/$(DEPDIR)/$(am__dirstamp) -qpu/qpu_disasm.lo: qpu/$(am__dirstamp) qpu/$(DEPDIR)/$(am__dirstamp) -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; \ - echo " rm -f" $$list; \ - rm -f $$list || exit $$?; \ - test -n "$(EXEEXT)" || exit 0; \ - list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f" $$list; \ - rm -f $$list - -clean-noinstPROGRAMS: - @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ - echo " rm -f" $$list; \ - rm -f $$list || exit $$?; \ - test -n "$(EXEEXT)" || exit 0; \ - list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f" $$list; \ - rm -f $$list -qpu/tests/$(am__dirstamp): - @$(MKDIR_P) qpu/tests - @: > qpu/tests/$(am__dirstamp) -qpu/tests/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) qpu/tests/$(DEPDIR) - @: > qpu/tests/$(DEPDIR)/$(am__dirstamp) -qpu/tests/qpu_disasm.$(OBJEXT): qpu/tests/$(am__dirstamp) \ - qpu/tests/$(DEPDIR)/$(am__dirstamp) -qpu/tests/qpu_disasm$(EXEEXT): $(qpu_tests_qpu_disasm_OBJECTS) $(qpu_tests_qpu_disasm_DEPENDENCIES) $(EXTRA_qpu_tests_qpu_disasm_DEPENDENCIES) qpu/tests/$(am__dirstamp) - @rm -f qpu/tests/qpu_disasm$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(qpu_tests_qpu_disasm_OBJECTS) $(qpu_tests_qpu_disasm_LDADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -rm -f cle/*.$(OBJEXT) - -rm -f cle/*.lo - -rm -f clif/*.$(OBJEXT) - -rm -f clif/*.lo - -rm -f common/*.$(OBJEXT) - -rm -f common/*.lo - -rm -f compiler/*.$(OBJEXT) - -rm -f compiler/*.lo - -rm -f qpu/*.$(OBJEXT) - -rm -f qpu/*.lo - -rm -f qpu/tests/*.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@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_image_load_store.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@ -@AMDEP_TRUE@@am__include@ @am__quote@qpu/$(DEPDIR)/qpu_instr.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@qpu/$(DEPDIR)/qpu_pack.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@qpu/tests/$(DEPDIR)/qpu_disasm.Po@am__quote@ - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ -@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ -@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ -@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ -@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -cle/cle_libbroadcom_cle_la-v3d_decoder.lo: cle/v3d_decoder.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) $(cle_libbroadcom_cle_la_CFLAGS) $(CFLAGS) -MT cle/cle_libbroadcom_cle_la-v3d_decoder.lo -MD -MP -MF cle/$(DEPDIR)/cle_libbroadcom_cle_la-v3d_decoder.Tpo -c -o cle/cle_libbroadcom_cle_la-v3d_decoder.lo `test -f 'cle/v3d_decoder.c' || echo '$(srcdir)/'`cle/v3d_decoder.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) cle/$(DEPDIR)/cle_libbroadcom_cle_la-v3d_decoder.Tpo cle/$(DEPDIR)/cle_libbroadcom_cle_la-v3d_decoder.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cle/v3d_decoder.c' object='cle/cle_libbroadcom_cle_la-v3d_decoder.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) $(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 - -clean-libtool: - -rm -rf .libs _libs - -rm -rf cle/.libs cle/_libs - -rm -rf clif/.libs clif/_libs - -rm -rf common/.libs common/_libs - -rm -rf compiler/.libs compiler/_libs - -rm -rf qpu/.libs qpu/_libs - -rm -rf qpu/tests/.libs qpu/tests/_libs - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - set x; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" - -cscopelist: $(HEADERS) $(SOURCES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -check-TESTS: $(TESTS) - @failed=0; all=0; xfail=0; xpass=0; skip=0; \ - srcdir=$(srcdir); export srcdir; \ - list=' $(TESTS) '; \ - $(am__tty_colors); \ - if test -n "$$list"; then \ - for tst in $$list; do \ - if test -f ./$$tst; then dir=./; \ - elif test -f $$tst; then dir=; \ - else dir="$(srcdir)/"; fi; \ - if $(TESTS_ENVIRONMENT) $${dir}$$tst $(AM_TESTS_FD_REDIRECT); then \ - all=`expr $$all + 1`; \ - case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$tst[\ \ ]*) \ - xpass=`expr $$xpass + 1`; \ - failed=`expr $$failed + 1`; \ - col=$$red; res=XPASS; \ - ;; \ - *) \ - col=$$grn; res=PASS; \ - ;; \ - esac; \ - elif test $$? -ne 77; then \ - all=`expr $$all + 1`; \ - case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$tst[\ \ ]*) \ - xfail=`expr $$xfail + 1`; \ - col=$$lgn; res=XFAIL; \ - ;; \ - *) \ - failed=`expr $$failed + 1`; \ - col=$$red; res=FAIL; \ - ;; \ - esac; \ - else \ - skip=`expr $$skip + 1`; \ - col=$$blu; res=SKIP; \ - fi; \ - echo "$${col}$$res$${std}: $$tst"; \ - done; \ - if test "$$all" -eq 1; then \ - tests="test"; \ - All=""; \ - else \ - tests="tests"; \ - All="All "; \ - fi; \ - if test "$$failed" -eq 0; then \ - if test "$$xfail" -eq 0; then \ - banner="$$All$$all $$tests passed"; \ - else \ - if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ - banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ - fi; \ - else \ - if test "$$xpass" -eq 0; then \ - banner="$$failed of $$all $$tests failed"; \ - else \ - if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ - banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ - fi; \ - fi; \ - dashes="$$banner"; \ - skipped=""; \ - if test "$$skip" -ne 0; then \ - if test "$$skip" -eq 1; then \ - skipped="($$skip test was not run)"; \ - else \ - skipped="($$skip tests were not run)"; \ - fi; \ - test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ - dashes="$$skipped"; \ - fi; \ - report=""; \ - if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ - report="Please report to $(PACKAGE_BUGREPORT)"; \ - test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ - dashes="$$report"; \ - fi; \ - dashes=`echo "$$dashes" | sed s/./=/g`; \ - if test "$$failed" -eq 0; then \ - col="$$grn"; \ - else \ - col="$$red"; \ - fi; \ - echo "$${col}$$dashes$${std}"; \ - echo "$${col}$$banner$${std}"; \ - test -z "$$skipped" || echo "$${col}$$skipped$${std}"; \ - test -z "$$report" || echo "$${col}$$report$${std}"; \ - echo "$${col}$$dashes$${std}"; \ - test "$$failed" -eq 0; \ - else :; fi - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am - $(MAKE) $(AM_MAKEFLAGS) $(check_LTLIBRARIES) $(check_PROGRAMS) - $(MAKE) $(AM_MAKEFLAGS) check-TESTS -check: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) check-am -all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(DATA) $(HEADERS) -installdirs: - for dir in "$(DESTDIR)$(libdir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -rm -f cle/$(DEPDIR)/$(am__dirstamp) - -rm -f cle/$(am__dirstamp) - -rm -f clif/$(DEPDIR)/$(am__dirstamp) - -rm -f clif/$(am__dirstamp) - -rm -f common/$(DEPDIR)/$(am__dirstamp) - -rm -f common/$(am__dirstamp) - -rm -f compiler/$(DEPDIR)/$(am__dirstamp) - -rm -f compiler/$(am__dirstamp) - -rm -f qpu/$(DEPDIR)/$(am__dirstamp) - -rm -f qpu/$(am__dirstamp) - -rm -f qpu/tests/$(DEPDIR)/$(am__dirstamp) - -rm -f qpu/tests/$(am__dirstamp) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) -clean: clean-am - -clean-am: clean-checkLTLIBRARIES clean-checkPROGRAMS clean-generic \ - clean-libLTLIBRARIES clean-libtool clean-noinstLTLIBRARIES \ - clean-noinstPROGRAMS mostlyclean-am - -distclean: distclean-am - -rm -rf cle/$(DEPDIR) clif/$(DEPDIR) common/$(DEPDIR) compiler/$(DEPDIR) qpu/$(DEPDIR) qpu/tests/$(DEPDIR) - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: install-libLTLIBRARIES - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -rf cle/$(DEPDIR) clif/$(DEPDIR) common/$(DEPDIR) compiler/$(DEPDIR) qpu/$(DEPDIR) qpu/tests/$(DEPDIR) - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-libLTLIBRARIES - -.MAKE: all check check-am install install-am install-strip - -.PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \ - clean-checkLTLIBRARIES clean-checkPROGRAMS clean-generic \ - clean-libLTLIBRARIES clean-libtool clean-noinstLTLIBRARIES \ - clean-noinstPROGRAMS cscopelist ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am \ - install-libLTLIBRARIES install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-libLTLIBRARIES - - -$(BROADCOM_GENXML_GENERATED_FILES): cle/gen_pack_header.py - -@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. -.NOEXPORT: diff --git a/lib/mesa/src/broadcom/Makefile.sources b/lib/mesa/src/broadcom/Makefile.sources index 6cec9b81c..e759b5454 100644 --- a/lib/mesa/src/broadcom/Makefile.sources +++ b/lib/mesa/src/broadcom/Makefile.sources @@ -27,9 +27,9 @@ BROADCOM_FILES = \ compiler/vir.c \ compiler/vir_dump.c \ compiler/vir_live_variables.c \ - compiler/vir_lower_uniforms.c \ compiler/vir_opt_copy_propagate.c \ compiler/vir_opt_dead_code.c \ + compiler/vir_opt_redundant_flags.c \ compiler/vir_opt_small_immediates.c \ compiler/vir_register_allocate.c \ compiler/vir_to_qpu.c \ @@ -41,6 +41,7 @@ BROADCOM_FILES = \ compiler/v3d_compiler.h \ compiler/v3d_nir_lower_image_load_store.c \ compiler/v3d_nir_lower_io.c \ + compiler/v3d_nir_lower_scratch.c \ compiler/v3d_nir_lower_txf_ms.c \ qpu/qpu_disasm.c \ qpu/qpu_disasm.h \ diff --git a/lib/mesa/src/broadcom/Makefile.v3d.am b/lib/mesa/src/broadcom/Makefile.v3d.am deleted file mode 100644 index 97ef2d745..000000000 --- a/lib/mesa/src/broadcom/Makefile.v3d.am +++ /dev/null @@ -1,32 +0,0 @@ -noinst_LTLIBRARIES += libbroadcom.la -noinst_LTLIBRARIES += libbroadcom_v33.la -noinst_LTLIBRARIES += libbroadcom_v41.la -noinst_LTLIBRARIES += libbroadcom_v42.la - -if USE_V3D_SIMULATOR -AM_CFLAGS += $(V3D_SIMULATOR_CFLAGS) -libbroadcom_la_LDFLAGS = $(V3D_SIMULATOR_LIBS) -endif - -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) - -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 f79ee42df..8c2feebca 100644 --- a/lib/mesa/src/broadcom/cle/gen_pack_header.py +++ b/lib/mesa/src/broadcom/cle/gen_pack_header.py @@ -30,7 +30,7 @@ import re import sys import copy -license = """/* Generated code, see packets.xml and gen_packet_header.py */ +license = """/* Generated code, see v3d_packet_v21.xml, v3d_packet_v33.xml and gen_pack_header.py */ """ pack_header = """%(license)s diff --git a/lib/mesa/src/broadcom/cle/v3d_packet_helpers.h b/lib/mesa/src/broadcom/cle/v3d_packet_helpers.h index c46089a0e..841df89b3 100644 --- a/lib/mesa/src/broadcom/cle/v3d_packet_helpers.h +++ b/lib/mesa/src/broadcom/cle/v3d_packet_helpers.h @@ -21,6 +21,9 @@ * IN THE SOFTWARE. */ +#ifndef MESA_V3D_PACKET_HELPERS_H +#define MESA_V3D_PACKET_HELPERS_H + #include <stdio.h> #include <stdint.h> #include <stdbool.h> @@ -214,3 +217,4 @@ __gen_unpack_f187(const uint8_t *restrict cl, uint32_t start, uint32_t end) return uif(bits << 16); } +#endif diff --git a/lib/mesa/src/broadcom/cle/v3d_packet_v21_pack.h b/lib/mesa/src/broadcom/cle/v3d_packet_v21_pack.h deleted file mode 100644 index c84ea27e2..000000000 --- a/lib/mesa/src/broadcom/cle/v3d_packet_v21_pack.h +++ /dev/null @@ -1,1700 +0,0 @@ -/* Generated code, see packets.xml and gen_packet_header.py */ - - -/* Packets, enums and structures for V3D 2.1. - * - * This file has been generated, do not hand edit. - */ - -#ifndef V3D21_PACK_H -#define V3D21_PACK_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 \ - .opcode = 0 - -struct V3D21_HALT { - uint32_t opcode; -}; - -static inline void -V3D21_HALT_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D21_HALT * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D21_HALT_length 1 -#ifdef __gen_unpack_address -static inline void -V3D21_HALT_unpack(const uint8_t * restrict cl, - struct V3D21_HALT * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D21_NOP_opcode 1 -#define V3D21_NOP_header \ - .opcode = 1 - -struct V3D21_NOP { - uint32_t opcode; -}; - -static inline void -V3D21_NOP_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D21_NOP * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D21_NOP_length 1 -#ifdef __gen_unpack_address -static inline void -V3D21_NOP_unpack(const uint8_t * restrict cl, - struct V3D21_NOP * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D21_FLUSH_opcode 4 -#define V3D21_FLUSH_header \ - .opcode = 4 - -struct V3D21_FLUSH { - uint32_t opcode; -}; - -static inline void -V3D21_FLUSH_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D21_FLUSH * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D21_FLUSH_length 1 -#ifdef __gen_unpack_address -static inline void -V3D21_FLUSH_unpack(const uint8_t * restrict cl, - struct V3D21_FLUSH * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D21_FLUSH_ALL_STATE_opcode 5 -#define V3D21_FLUSH_ALL_STATE_header \ - .opcode = 5 - -struct V3D21_FLUSH_ALL_STATE { - uint32_t opcode; -}; - -static inline void -V3D21_FLUSH_ALL_STATE_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D21_FLUSH_ALL_STATE * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D21_FLUSH_ALL_STATE_length 1 -#ifdef __gen_unpack_address -static inline void -V3D21_FLUSH_ALL_STATE_unpack(const uint8_t * restrict cl, - struct V3D21_FLUSH_ALL_STATE * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D21_START_TILE_BINNING_opcode 6 -#define V3D21_START_TILE_BINNING_header \ - .opcode = 6 - -struct V3D21_START_TILE_BINNING { - uint32_t opcode; -}; - -static inline void -V3D21_START_TILE_BINNING_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D21_START_TILE_BINNING * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D21_START_TILE_BINNING_length 1 -#ifdef __gen_unpack_address -static inline void -V3D21_START_TILE_BINNING_unpack(const uint8_t * restrict cl, - struct V3D21_START_TILE_BINNING * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D21_INCREMENT_SEMAPHORE_opcode 7 -#define V3D21_INCREMENT_SEMAPHORE_header \ - .opcode = 7 - -struct V3D21_INCREMENT_SEMAPHORE { - uint32_t opcode; -}; - -static inline void -V3D21_INCREMENT_SEMAPHORE_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D21_INCREMENT_SEMAPHORE * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D21_INCREMENT_SEMAPHORE_length 1 -#ifdef __gen_unpack_address -static inline void -V3D21_INCREMENT_SEMAPHORE_unpack(const uint8_t * restrict cl, - struct V3D21_INCREMENT_SEMAPHORE * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D21_WAIT_ON_SEMAPHORE_opcode 8 -#define V3D21_WAIT_ON_SEMAPHORE_header \ - .opcode = 8 - -struct V3D21_WAIT_ON_SEMAPHORE { - uint32_t opcode; -}; - -static inline void -V3D21_WAIT_ON_SEMAPHORE_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D21_WAIT_ON_SEMAPHORE * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D21_WAIT_ON_SEMAPHORE_length 1 -#ifdef __gen_unpack_address -static inline void -V3D21_WAIT_ON_SEMAPHORE_unpack(const uint8_t * restrict cl, - struct V3D21_WAIT_ON_SEMAPHORE * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D21_BRANCH_opcode 16 -#define V3D21_BRANCH_header \ - .opcode = 16 - -struct V3D21_BRANCH { - uint32_t opcode; - __gen_address_type address; -}; - -static inline void -V3D21_BRANCH_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D21_BRANCH * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - __gen_emit_reloc(data, &values->address); - cl[ 1] = __gen_address_offset(&values->address); - - cl[ 2] = __gen_address_offset(&values->address) >> 8; - - cl[ 3] = __gen_address_offset(&values->address) >> 16; - - cl[ 4] = __gen_address_offset(&values->address) >> 24; - -} - -#define V3D21_BRANCH_length 5 -#ifdef __gen_unpack_address -static inline void -V3D21_BRANCH_unpack(const uint8_t * restrict cl, - struct V3D21_BRANCH * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->address = __gen_unpack_address(cl, 8, 39); -} -#endif - - -#define V3D21_BRANCH_TO_SUB_LIST_opcode 17 -#define V3D21_BRANCH_TO_SUB_LIST_header \ - .opcode = 17 - -struct V3D21_BRANCH_TO_SUB_LIST { - uint32_t opcode; - __gen_address_type address; -}; - -static inline void -V3D21_BRANCH_TO_SUB_LIST_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D21_BRANCH_TO_SUB_LIST * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - __gen_emit_reloc(data, &values->address); - cl[ 1] = __gen_address_offset(&values->address); - - cl[ 2] = __gen_address_offset(&values->address) >> 8; - - cl[ 3] = __gen_address_offset(&values->address) >> 16; - - cl[ 4] = __gen_address_offset(&values->address) >> 24; - -} - -#define V3D21_BRANCH_TO_SUB_LIST_length 5 -#ifdef __gen_unpack_address -static inline void -V3D21_BRANCH_TO_SUB_LIST_unpack(const uint8_t * restrict cl, - struct V3D21_BRANCH_TO_SUB_LIST * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->address = __gen_unpack_address(cl, 8, 39); -} -#endif - - -#define V3D21_RETURN_FROM_SUB_LIST_opcode 18 -#define V3D21_RETURN_FROM_SUB_LIST_header \ - .opcode = 18 - -struct V3D21_RETURN_FROM_SUB_LIST { - uint32_t opcode; -}; - -static inline void -V3D21_RETURN_FROM_SUB_LIST_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D21_RETURN_FROM_SUB_LIST * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D21_RETURN_FROM_SUB_LIST_length 1 -#ifdef __gen_unpack_address -static inline void -V3D21_RETURN_FROM_SUB_LIST_unpack(const uint8_t * restrict cl, - struct V3D21_RETURN_FROM_SUB_LIST * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D21_STORE_MULTI_SAMPLE_RESOLVED_TILE_COLOR_BUFFER_opcode 24 -#define V3D21_STORE_MULTI_SAMPLE_RESOLVED_TILE_COLOR_BUFFER_header\ - .opcode = 24 - -struct V3D21_STORE_MULTI_SAMPLE_RESOLVED_TILE_COLOR_BUFFER { - uint32_t opcode; -}; - -static inline void -V3D21_STORE_MULTI_SAMPLE_RESOLVED_TILE_COLOR_BUFFER_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D21_STORE_MULTI_SAMPLE_RESOLVED_TILE_COLOR_BUFFER * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D21_STORE_MULTI_SAMPLE_RESOLVED_TILE_COLOR_BUFFER_length 1 -#ifdef __gen_unpack_address -static inline void -V3D21_STORE_MULTI_SAMPLE_RESOLVED_TILE_COLOR_BUFFER_unpack(const uint8_t * restrict cl, - struct V3D21_STORE_MULTI_SAMPLE_RESOLVED_TILE_COLOR_BUFFER * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D21_STORE_MULTI_SAMPLE_RESOLVED_TILE_COLOR_BUFFER_AND_EOF_opcode 25 -#define V3D21_STORE_MULTI_SAMPLE_RESOLVED_TILE_COLOR_BUFFER_AND_EOF_header\ - .opcode = 25 - -struct V3D21_STORE_MULTI_SAMPLE_RESOLVED_TILE_COLOR_BUFFER_AND_EOF { - uint32_t opcode; -}; - -static inline void -V3D21_STORE_MULTI_SAMPLE_RESOLVED_TILE_COLOR_BUFFER_AND_EOF_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D21_STORE_MULTI_SAMPLE_RESOLVED_TILE_COLOR_BUFFER_AND_EOF * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D21_STORE_MULTI_SAMPLE_RESOLVED_TILE_COLOR_BUFFER_AND_EOF_length 1 -#ifdef __gen_unpack_address -static inline void -V3D21_STORE_MULTI_SAMPLE_RESOLVED_TILE_COLOR_BUFFER_AND_EOF_unpack(const uint8_t * restrict cl, - struct V3D21_STORE_MULTI_SAMPLE_RESOLVED_TILE_COLOR_BUFFER_AND_EOF * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D21_STORE_FULL_RESOLUTION_TILE_BUFFER_opcode 26 -#define V3D21_STORE_FULL_RESOLUTION_TILE_BUFFER_header\ - .opcode = 26 - -struct V3D21_STORE_FULL_RESOLUTION_TILE_BUFFER { - uint32_t opcode; - __gen_address_type address; - bool last_tile; - bool disable_clear_on_write; - bool disable_z_stencil_buffer_write; - bool disable_color_buffer_write; -}; - -static inline void -V3D21_STORE_FULL_RESOLUTION_TILE_BUFFER_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D21_STORE_FULL_RESOLUTION_TILE_BUFFER * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - __gen_emit_reloc(data, &values->address); - cl[ 1] = __gen_address_offset(&values->address) | - __gen_uint(values->last_tile, 3, 3) | - __gen_uint(values->disable_clear_on_write, 2, 2) | - __gen_uint(values->disable_z_stencil_buffer_write, 1, 1) | - __gen_uint(values->disable_color_buffer_write, 0, 0); - - cl[ 2] = __gen_address_offset(&values->address) >> 8; - - cl[ 3] = __gen_address_offset(&values->address) >> 16; - - cl[ 4] = __gen_address_offset(&values->address) >> 24; - -} - -#define V3D21_STORE_FULL_RESOLUTION_TILE_BUFFER_length 5 -#ifdef __gen_unpack_address -static inline void -V3D21_STORE_FULL_RESOLUTION_TILE_BUFFER_unpack(const uint8_t * restrict cl, - struct V3D21_STORE_FULL_RESOLUTION_TILE_BUFFER * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->address = __gen_unpack_address(cl, 12, 39); - values->last_tile = __gen_unpack_uint(cl, 11, 11); - values->disable_clear_on_write = __gen_unpack_uint(cl, 10, 10); - values->disable_z_stencil_buffer_write = __gen_unpack_uint(cl, 9, 9); - values->disable_color_buffer_write = __gen_unpack_uint(cl, 8, 8); -} -#endif - - -#define V3D21_RE_LOAD_FULL_RESOLUTION_TILE_BUFFER_opcode 27 -#define V3D21_RE_LOAD_FULL_RESOLUTION_TILE_BUFFER_header\ - .opcode = 27 - -struct V3D21_RE_LOAD_FULL_RESOLUTION_TILE_BUFFER { - uint32_t opcode; - __gen_address_type address; - bool disable_z_stencil_buffer_read; - bool disable_color_buffer_read; -}; - -static inline void -V3D21_RE_LOAD_FULL_RESOLUTION_TILE_BUFFER_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D21_RE_LOAD_FULL_RESOLUTION_TILE_BUFFER * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - __gen_emit_reloc(data, &values->address); - cl[ 1] = __gen_address_offset(&values->address) | - __gen_uint(values->disable_z_stencil_buffer_read, 1, 1) | - __gen_uint(values->disable_color_buffer_read, 0, 0); - - cl[ 2] = __gen_address_offset(&values->address) >> 8; - - cl[ 3] = __gen_address_offset(&values->address) >> 16; - - cl[ 4] = __gen_address_offset(&values->address) >> 24; - -} - -#define V3D21_RE_LOAD_FULL_RESOLUTION_TILE_BUFFER_length 5 -#ifdef __gen_unpack_address -static inline void -V3D21_RE_LOAD_FULL_RESOLUTION_TILE_BUFFER_unpack(const uint8_t * restrict cl, - struct V3D21_RE_LOAD_FULL_RESOLUTION_TILE_BUFFER * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->address = __gen_unpack_address(cl, 12, 39); - values->disable_z_stencil_buffer_read = __gen_unpack_uint(cl, 9, 9); - values->disable_color_buffer_read = __gen_unpack_uint(cl, 8, 8); -} -#endif - - -#define V3D21_STORE_TILE_BUFFER_GENERAL_opcode 28 -#define V3D21_STORE_TILE_BUFFER_GENERAL_header \ - .opcode = 28 - -struct V3D21_STORE_TILE_BUFFER_GENERAL { - uint32_t opcode; - __gen_address_type memory_base_address_of_frame_tile_dump_buffer; - bool last_tile_of_frame; - bool disable_vg_mask_buffer_dump; - bool disable_z_stencil_buffer_dump; - bool disable_color_buffer_dump; - bool disable_vg_mask_buffer_clear_on_store_dump; - bool disable_z_stencil_buffer_clear_on_store_dump; - bool disable_color_buffer_clear_on_store_dump; - uint32_t pixel_color_format; -#define RGBA8888 0 -#define BGR565_DITHERED 1 -#define BGR565_NO_DITHER 2 - uint32_t mode; -#define SAMPLE_0 0 -#define DECIMATE_X4 1 -#define DECIMATE_X16 2 - uint32_t format; -#define RASTER 0 -#define T 1 -#define LT 2 - uint32_t buffer_to_store; -#define NONE 0 -#define COLOR 1 -#define Z_STENCIL 2 -#define Z 3 -#define VG_MASK 4 -}; - -static inline void -V3D21_STORE_TILE_BUFFER_GENERAL_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D21_STORE_TILE_BUFFER_GENERAL * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->mode, 6, 7) | - __gen_uint(values->format, 4, 5) | - __gen_uint(values->buffer_to_store, 0, 2); - - cl[ 2] = __gen_uint(values->disable_vg_mask_buffer_clear_on_store_dump, 7, 7) | - __gen_uint(values->disable_z_stencil_buffer_clear_on_store_dump, 6, 6) | - __gen_uint(values->disable_color_buffer_clear_on_store_dump, 5, 5) | - __gen_uint(values->pixel_color_format, 0, 1); - - __gen_emit_reloc(data, &values->memory_base_address_of_frame_tile_dump_buffer); - cl[ 3] = __gen_address_offset(&values->memory_base_address_of_frame_tile_dump_buffer) | - __gen_uint(values->last_tile_of_frame, 3, 3) | - __gen_uint(values->disable_vg_mask_buffer_dump, 2, 2) | - __gen_uint(values->disable_z_stencil_buffer_dump, 1, 1) | - __gen_uint(values->disable_color_buffer_dump, 0, 0); - - cl[ 4] = __gen_address_offset(&values->memory_base_address_of_frame_tile_dump_buffer) >> 8; - - cl[ 5] = __gen_address_offset(&values->memory_base_address_of_frame_tile_dump_buffer) >> 16; - - cl[ 6] = __gen_address_offset(&values->memory_base_address_of_frame_tile_dump_buffer) >> 24; - -} - -#define V3D21_STORE_TILE_BUFFER_GENERAL_length 7 -#ifdef __gen_unpack_address -static inline void -V3D21_STORE_TILE_BUFFER_GENERAL_unpack(const uint8_t * restrict cl, - struct V3D21_STORE_TILE_BUFFER_GENERAL * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->memory_base_address_of_frame_tile_dump_buffer = __gen_unpack_address(cl, 28, 55); - values->last_tile_of_frame = __gen_unpack_uint(cl, 27, 27); - values->disable_vg_mask_buffer_dump = __gen_unpack_uint(cl, 26, 26); - values->disable_z_stencil_buffer_dump = __gen_unpack_uint(cl, 25, 25); - values->disable_color_buffer_dump = __gen_unpack_uint(cl, 24, 24); - values->disable_vg_mask_buffer_clear_on_store_dump = __gen_unpack_uint(cl, 23, 23); - values->disable_z_stencil_buffer_clear_on_store_dump = __gen_unpack_uint(cl, 22, 22); - values->disable_color_buffer_clear_on_store_dump = __gen_unpack_uint(cl, 21, 21); - values->pixel_color_format = __gen_unpack_uint(cl, 16, 17); - values->mode = __gen_unpack_uint(cl, 14, 15); - values->format = __gen_unpack_uint(cl, 12, 13); - values->buffer_to_store = __gen_unpack_uint(cl, 8, 10); -} -#endif - - -#define V3D21_LOAD_TILE_BUFFER_GENERAL_opcode 29 -#define V3D21_LOAD_TILE_BUFFER_GENERAL_header \ - .opcode = 29 - -struct V3D21_LOAD_TILE_BUFFER_GENERAL { - uint32_t opcode; - __gen_address_type memory_base_address_of_frame_tile_dump_buffer; - bool disable_vg_mask_buffer_load; - bool disable_z_stencil_buffer_load; - bool disable_color_buffer_load; - uint32_t pixel_color_format; -#define RGBA8888 0 -#define BGR565_DITHERED 1 -#define BGR565_NO_DITHER 2 - uint32_t mode; -#define SAMPLE_0 0 -#define DECIMATE_X4 1 -#define DECIMATE_X16 2 - uint32_t format; -#define RASTER 0 -#define T 1 -#define LT 2 - uint32_t buffer_to_store; -#define NONE 0 -#define COLOR 1 -#define Z_STENCIL 2 -#define Z 3 -#define VG_MASK 4 -}; - -static inline void -V3D21_LOAD_TILE_BUFFER_GENERAL_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D21_LOAD_TILE_BUFFER_GENERAL * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->mode, 6, 7) | - __gen_uint(values->format, 4, 5) | - __gen_uint(values->buffer_to_store, 0, 2); - - cl[ 2] = __gen_uint(values->pixel_color_format, 0, 1); - - __gen_emit_reloc(data, &values->memory_base_address_of_frame_tile_dump_buffer); - cl[ 3] = __gen_address_offset(&values->memory_base_address_of_frame_tile_dump_buffer) | - __gen_uint(values->disable_vg_mask_buffer_load, 2, 2) | - __gen_uint(values->disable_z_stencil_buffer_load, 1, 1) | - __gen_uint(values->disable_color_buffer_load, 0, 0); - - cl[ 4] = __gen_address_offset(&values->memory_base_address_of_frame_tile_dump_buffer) >> 8; - - cl[ 5] = __gen_address_offset(&values->memory_base_address_of_frame_tile_dump_buffer) >> 16; - - cl[ 6] = __gen_address_offset(&values->memory_base_address_of_frame_tile_dump_buffer) >> 24; - -} - -#define V3D21_LOAD_TILE_BUFFER_GENERAL_length 7 -#ifdef __gen_unpack_address -static inline void -V3D21_LOAD_TILE_BUFFER_GENERAL_unpack(const uint8_t * restrict cl, - struct V3D21_LOAD_TILE_BUFFER_GENERAL * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->memory_base_address_of_frame_tile_dump_buffer = __gen_unpack_address(cl, 28, 55); - values->disable_vg_mask_buffer_load = __gen_unpack_uint(cl, 26, 26); - values->disable_z_stencil_buffer_load = __gen_unpack_uint(cl, 25, 25); - values->disable_color_buffer_load = __gen_unpack_uint(cl, 24, 24); - values->pixel_color_format = __gen_unpack_uint(cl, 16, 17); - values->mode = __gen_unpack_uint(cl, 14, 15); - values->format = __gen_unpack_uint(cl, 12, 13); - values->buffer_to_store = __gen_unpack_uint(cl, 8, 10); -} -#endif - - -#define V3D21_INDEXED_PRIMITIVE_LIST_opcode 32 -#define V3D21_INDEXED_PRIMITIVE_LIST_header \ - .opcode = 32 - -struct V3D21_INDEXED_PRIMITIVE_LIST { - uint32_t opcode; - uint32_t maximum_index; - uint32_t address_of_indices_list; - uint32_t length; - uint32_t index_type; -#define _8_BIT 0 -#define _16_BIT 1 - enum V3D21_Primitive primitive_mode; -}; - -static inline void -V3D21_INDEXED_PRIMITIVE_LIST_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D21_INDEXED_PRIMITIVE_LIST * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->index_type, 4, 7) | - __gen_uint(values->primitive_mode, 0, 3); - - - memcpy(&cl[2], &values->length, sizeof(values->length)); - - memcpy(&cl[6], &values->address_of_indices_list, sizeof(values->address_of_indices_list)); - - memcpy(&cl[10], &values->maximum_index, sizeof(values->maximum_index)); -} - -#define V3D21_INDEXED_PRIMITIVE_LIST_length 14 -#ifdef __gen_unpack_address -static inline void -V3D21_INDEXED_PRIMITIVE_LIST_unpack(const uint8_t * restrict cl, - struct V3D21_INDEXED_PRIMITIVE_LIST * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->maximum_index = __gen_unpack_uint(cl, 80, 111); - values->address_of_indices_list = __gen_unpack_uint(cl, 48, 79); - values->length = __gen_unpack_uint(cl, 16, 47); - values->index_type = __gen_unpack_uint(cl, 12, 15); - values->primitive_mode = __gen_unpack_uint(cl, 8, 11); -} -#endif - - -#define V3D21_VERTEX_ARRAY_PRIMITIVES_opcode 33 -#define V3D21_VERTEX_ARRAY_PRIMITIVES_header \ - .opcode = 33 - -struct V3D21_VERTEX_ARRAY_PRIMITIVES { - uint32_t opcode; - uint32_t index_of_first_vertex; - uint32_t length; - enum V3D21_Primitive primitive_mode; -}; - -static inline void -V3D21_VERTEX_ARRAY_PRIMITIVES_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D21_VERTEX_ARRAY_PRIMITIVES * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->primitive_mode, 0, 3); - - - memcpy(&cl[2], &values->length, sizeof(values->length)); - - memcpy(&cl[6], &values->index_of_first_vertex, sizeof(values->index_of_first_vertex)); -} - -#define V3D21_VERTEX_ARRAY_PRIMITIVES_length 10 -#ifdef __gen_unpack_address -static inline void -V3D21_VERTEX_ARRAY_PRIMITIVES_unpack(const uint8_t * restrict cl, - struct V3D21_VERTEX_ARRAY_PRIMITIVES * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->index_of_first_vertex = __gen_unpack_uint(cl, 48, 79); - values->length = __gen_unpack_uint(cl, 16, 47); - values->primitive_mode = __gen_unpack_uint(cl, 8, 11); -} -#endif - - -#define V3D21_PRIMITIVE_LIST_FORMAT_opcode 56 -#define V3D21_PRIMITIVE_LIST_FORMAT_header \ - .opcode = 56 - -struct V3D21_PRIMITIVE_LIST_FORMAT { - uint32_t opcode; - uint32_t data_type; -#define _16_BIT_INDEX 1 -#define _32_BIT_X_Y 3 - uint32_t primitive_type; -#define POINTS_LIST 0 -#define LINES_LIST 1 -#define TRIANGLES_LIST 2 -#define RHY_LIST 3 -}; - -static inline void -V3D21_PRIMITIVE_LIST_FORMAT_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D21_PRIMITIVE_LIST_FORMAT * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->data_type, 4, 7) | - __gen_uint(values->primitive_type, 0, 3); - -} - -#define V3D21_PRIMITIVE_LIST_FORMAT_length 2 -#ifdef __gen_unpack_address -static inline void -V3D21_PRIMITIVE_LIST_FORMAT_unpack(const uint8_t * restrict cl, - struct V3D21_PRIMITIVE_LIST_FORMAT * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->data_type = __gen_unpack_uint(cl, 12, 15); - values->primitive_type = __gen_unpack_uint(cl, 8, 11); -} -#endif - - -#define V3D21_GL_SHADER_STATE_opcode 64 -#define V3D21_GL_SHADER_STATE_header \ - .opcode = 64 - -struct V3D21_GL_SHADER_STATE { - uint32_t opcode; - uint32_t address; - bool extended_shader_record; - uint32_t number_of_attribute_arrays; -}; - -static inline void -V3D21_GL_SHADER_STATE_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D21_GL_SHADER_STATE * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->address, 0, 27) | - __gen_uint(values->extended_shader_record, 3, 3) | - __gen_uint(values->number_of_attribute_arrays, 0, 2); - - cl[ 2] = __gen_uint(values->address, 0, 27) >> 8; - - cl[ 3] = __gen_uint(values->address, 0, 27) >> 16; - - cl[ 4] = __gen_uint(values->address, 0, 27) >> 24; - -} - -#define V3D21_GL_SHADER_STATE_length 5 -#ifdef __gen_unpack_address -static inline void -V3D21_GL_SHADER_STATE_unpack(const uint8_t * restrict cl, - struct V3D21_GL_SHADER_STATE * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->address = __gen_unpack_uint(cl, 8, 35); - values->extended_shader_record = __gen_unpack_uint(cl, 11, 11); - values->number_of_attribute_arrays = __gen_unpack_uint(cl, 8, 10); -} -#endif - - -#define V3D21_CLEAR_COLORS_opcode 114 -#define V3D21_CLEAR_COLORS_header \ - .opcode = 114 - -struct V3D21_CLEAR_COLORS { - uint32_t opcode; - uint32_t clear_stencil; - uint32_t clear_vg_mask; - uint32_t clear_zs; - uint64_t clear_color; -}; - -static inline void -V3D21_CLEAR_COLORS_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D21_CLEAR_COLORS * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->clear_color, 0, 63); - - cl[ 2] = __gen_uint(values->clear_color, 0, 63) >> 8; - - cl[ 3] = __gen_uint(values->clear_color, 0, 63) >> 16; - - cl[ 4] = __gen_uint(values->clear_color, 0, 63) >> 24; - - cl[ 5] = __gen_uint(values->clear_color, 0, 63) >> 32; - - cl[ 6] = __gen_uint(values->clear_color, 0, 63) >> 40; - - cl[ 7] = __gen_uint(values->clear_color, 0, 63) >> 48; - - cl[ 8] = __gen_uint(values->clear_color, 0, 63) >> 56; - - cl[ 9] = __gen_uint(values->clear_zs, 0, 23); - - cl[10] = __gen_uint(values->clear_zs, 0, 23) >> 8; - - cl[11] = __gen_uint(values->clear_zs, 0, 23) >> 16; - - cl[12] = __gen_uint(values->clear_vg_mask, 0, 7); - - cl[13] = __gen_uint(values->clear_stencil, 0, 7); - -} - -#define V3D21_CLEAR_COLORS_length 14 -#ifdef __gen_unpack_address -static inline void -V3D21_CLEAR_COLORS_unpack(const uint8_t * restrict cl, - struct V3D21_CLEAR_COLORS * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->clear_stencil = __gen_unpack_uint(cl, 104, 111); - values->clear_vg_mask = __gen_unpack_uint(cl, 96, 103); - values->clear_zs = __gen_unpack_uint(cl, 72, 95); - values->clear_color = __gen_unpack_uint(cl, 8, 71); -} -#endif - - -#define V3D21_CONFIGURATION_BITS_opcode 96 -#define V3D21_CONFIGURATION_BITS_header \ - .opcode = 96 - -struct V3D21_CONFIGURATION_BITS { - uint32_t opcode; - bool early_z_updates_enable; - bool early_z_enable; - bool z_updates_enable; - enum V3D21_Compare_Function depth_test_function; - uint32_t coverage_read_mode; - bool coverage_pipe_select; - uint32_t rasteriser_oversample_mode; - uint32_t coverage_read_type; - bool antialiased_points_and_lines; - bool enable_depth_offset; - bool clockwise_primitives; - bool enable_reverse_facing_primitive; - bool enable_forward_facing_primitive; -}; - -static inline void -V3D21_CONFIGURATION_BITS_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D21_CONFIGURATION_BITS * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->rasteriser_oversample_mode, 6, 7) | - __gen_uint(values->coverage_read_type, 5, 5) | - __gen_uint(values->antialiased_points_and_lines, 4, 4) | - __gen_uint(values->enable_depth_offset, 3, 3) | - __gen_uint(values->clockwise_primitives, 2, 2) | - __gen_uint(values->enable_reverse_facing_primitive, 1, 1) | - __gen_uint(values->enable_forward_facing_primitive, 0, 0); - - cl[ 2] = __gen_uint(values->z_updates_enable, 7, 7) | - __gen_uint(values->depth_test_function, 4, 6) | - __gen_uint(values->coverage_read_mode, 3, 3) | - __gen_uint(values->coverage_pipe_select, 0, 0); - - cl[ 3] = __gen_uint(values->early_z_updates_enable, 1, 1) | - __gen_uint(values->early_z_enable, 0, 0); - -} - -#define V3D21_CONFIGURATION_BITS_length 4 -#ifdef __gen_unpack_address -static inline void -V3D21_CONFIGURATION_BITS_unpack(const uint8_t * restrict cl, - struct V3D21_CONFIGURATION_BITS * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->early_z_updates_enable = __gen_unpack_uint(cl, 25, 25); - values->early_z_enable = __gen_unpack_uint(cl, 24, 24); - values->z_updates_enable = __gen_unpack_uint(cl, 23, 23); - values->depth_test_function = __gen_unpack_uint(cl, 20, 22); - values->coverage_read_mode = __gen_unpack_uint(cl, 19, 19); - values->coverage_pipe_select = __gen_unpack_uint(cl, 16, 16); - values->rasteriser_oversample_mode = __gen_unpack_uint(cl, 14, 15); - values->coverage_read_type = __gen_unpack_uint(cl, 13, 13); - values->antialiased_points_and_lines = __gen_unpack_uint(cl, 12, 12); - values->enable_depth_offset = __gen_unpack_uint(cl, 11, 11); - values->clockwise_primitives = __gen_unpack_uint(cl, 10, 10); - values->enable_reverse_facing_primitive = __gen_unpack_uint(cl, 9, 9); - values->enable_forward_facing_primitive = __gen_unpack_uint(cl, 8, 8); -} -#endif - - -#define V3D21_FLAT_SHADE_FLAGS_opcode 97 -#define V3D21_FLAT_SHADE_FLAGS_header \ - .opcode = 97 - -struct V3D21_FLAT_SHADE_FLAGS { - uint32_t opcode; - uint32_t flat_shading_flags; -}; - -static inline void -V3D21_FLAT_SHADE_FLAGS_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D21_FLAT_SHADE_FLAGS * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - - memcpy(&cl[1], &values->flat_shading_flags, sizeof(values->flat_shading_flags)); -} - -#define V3D21_FLAT_SHADE_FLAGS_length 5 -#ifdef __gen_unpack_address -static inline void -V3D21_FLAT_SHADE_FLAGS_unpack(const uint8_t * restrict cl, - struct V3D21_FLAT_SHADE_FLAGS * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->flat_shading_flags = __gen_unpack_uint(cl, 8, 39); -} -#endif - - -#define V3D21_POINT_SIZE_opcode 98 -#define V3D21_POINT_SIZE_header \ - .opcode = 98 - -struct V3D21_POINT_SIZE { - uint32_t opcode; - float point_size; -}; - -static inline void -V3D21_POINT_SIZE_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D21_POINT_SIZE * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - - memcpy(&cl[1], &values->point_size, sizeof(values->point_size)); -} - -#define V3D21_POINT_SIZE_length 5 -#ifdef __gen_unpack_address -static inline void -V3D21_POINT_SIZE_unpack(const uint8_t * restrict cl, - struct V3D21_POINT_SIZE * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->point_size = __gen_unpack_float(cl, 8, 39); -} -#endif - - -#define V3D21_LINE_WIDTH_opcode 99 -#define V3D21_LINE_WIDTH_header \ - .opcode = 99 - -struct V3D21_LINE_WIDTH { - uint32_t opcode; - float line_width; -}; - -static inline void -V3D21_LINE_WIDTH_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D21_LINE_WIDTH * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - - memcpy(&cl[1], &values->line_width, sizeof(values->line_width)); -} - -#define V3D21_LINE_WIDTH_length 5 -#ifdef __gen_unpack_address -static inline void -V3D21_LINE_WIDTH_unpack(const uint8_t * restrict cl, - struct V3D21_LINE_WIDTH * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->line_width = __gen_unpack_float(cl, 8, 39); -} -#endif - - -#define V3D21_RHT_X_BOUNDARY_opcode 100 -#define V3D21_RHT_X_BOUNDARY_header \ - .opcode = 100 - -struct V3D21_RHT_X_BOUNDARY { - uint32_t opcode; - int32_t rht_primitive_x_boundary; -}; - -static inline void -V3D21_RHT_X_BOUNDARY_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D21_RHT_X_BOUNDARY * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_sint(values->rht_primitive_x_boundary, 0, 15); - - cl[ 2] = __gen_sint(values->rht_primitive_x_boundary, 0, 15) >> 8; - -} - -#define V3D21_RHT_X_BOUNDARY_length 3 -#ifdef __gen_unpack_address -static inline void -V3D21_RHT_X_BOUNDARY_unpack(const uint8_t * restrict cl, - struct V3D21_RHT_X_BOUNDARY * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->rht_primitive_x_boundary = __gen_unpack_sint(cl, 8, 23); -} -#endif - - -#define V3D21_DEPTH_OFFSET_opcode 101 -#define V3D21_DEPTH_OFFSET_header \ - .opcode = 101 - -struct V3D21_DEPTH_OFFSET { - uint32_t opcode; - uint32_t depth_offset_units; - uint32_t depth_offset_factor; -}; - -static inline void -V3D21_DEPTH_OFFSET_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D21_DEPTH_OFFSET * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->depth_offset_factor, 0, 15); - - cl[ 2] = __gen_uint(values->depth_offset_factor, 0, 15) >> 8; - - cl[ 3] = __gen_uint(values->depth_offset_units, 0, 15); - - cl[ 4] = __gen_uint(values->depth_offset_units, 0, 15) >> 8; - -} - -#define V3D21_DEPTH_OFFSET_length 5 -#ifdef __gen_unpack_address -static inline void -V3D21_DEPTH_OFFSET_unpack(const uint8_t * restrict cl, - struct V3D21_DEPTH_OFFSET * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->depth_offset_units = __gen_unpack_uint(cl, 24, 39); - values->depth_offset_factor = __gen_unpack_uint(cl, 8, 23); -} -#endif - - -#define V3D21_CLIP_WINDOW_opcode 102 -#define V3D21_CLIP_WINDOW_header \ - .opcode = 102 - -struct V3D21_CLIP_WINDOW { - uint32_t opcode; - uint32_t clip_window_height_in_pixels; - uint32_t clip_window_width_in_pixels; - uint32_t clip_window_bottom_pixel_coordinate; - uint32_t clip_window_left_pixel_coordinate; -}; - -static inline void -V3D21_CLIP_WINDOW_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D21_CLIP_WINDOW * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->clip_window_left_pixel_coordinate, 0, 15); - - cl[ 2] = __gen_uint(values->clip_window_left_pixel_coordinate, 0, 15) >> 8; - - cl[ 3] = __gen_uint(values->clip_window_bottom_pixel_coordinate, 0, 15); - - cl[ 4] = __gen_uint(values->clip_window_bottom_pixel_coordinate, 0, 15) >> 8; - - cl[ 5] = __gen_uint(values->clip_window_width_in_pixels, 0, 15); - - cl[ 6] = __gen_uint(values->clip_window_width_in_pixels, 0, 15) >> 8; - - cl[ 7] = __gen_uint(values->clip_window_height_in_pixels, 0, 15); - - cl[ 8] = __gen_uint(values->clip_window_height_in_pixels, 0, 15) >> 8; - -} - -#define V3D21_CLIP_WINDOW_length 9 -#ifdef __gen_unpack_address -static inline void -V3D21_CLIP_WINDOW_unpack(const uint8_t * restrict cl, - struct V3D21_CLIP_WINDOW * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->clip_window_height_in_pixels = __gen_unpack_uint(cl, 56, 71); - values->clip_window_width_in_pixels = __gen_unpack_uint(cl, 40, 55); - values->clip_window_bottom_pixel_coordinate = __gen_unpack_uint(cl, 24, 39); - values->clip_window_left_pixel_coordinate = __gen_unpack_uint(cl, 8, 23); -} -#endif - - -#define V3D21_VIEWPORT_OFFSET_opcode 103 -#define V3D21_VIEWPORT_OFFSET_header \ - .opcode = 103 - -struct V3D21_VIEWPORT_OFFSET { - uint32_t opcode; - float viewport_centre_y_coordinate; - float viewport_centre_x_coordinate; -}; - -static inline void -V3D21_VIEWPORT_OFFSET_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D21_VIEWPORT_OFFSET * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_sfixed(values->viewport_centre_x_coordinate, 0, 15, 4); - - cl[ 2] = __gen_sfixed(values->viewport_centre_x_coordinate, 0, 15, 4) >> 8; - - cl[ 3] = __gen_sfixed(values->viewport_centre_y_coordinate, 0, 15, 4); - - cl[ 4] = __gen_sfixed(values->viewport_centre_y_coordinate, 0, 15, 4) >> 8; - -} - -#define V3D21_VIEWPORT_OFFSET_length 5 -#ifdef __gen_unpack_address -static inline void -V3D21_VIEWPORT_OFFSET_unpack(const uint8_t * restrict cl, - struct V3D21_VIEWPORT_OFFSET * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->viewport_centre_y_coordinate = __gen_unpack_sfixed(cl, 24, 39, 4); - values->viewport_centre_x_coordinate = __gen_unpack_sfixed(cl, 8, 23, 4); -} -#endif - - -#define V3D21_Z_MIN_AND_MAX_CLIPPING_PLANES_opcode 104 -#define V3D21_Z_MIN_AND_MAX_CLIPPING_PLANES_header\ - .opcode = 104 - -struct V3D21_Z_MIN_AND_MAX_CLIPPING_PLANES { - uint32_t opcode; - float maximum_zw; - float minimum_zw; -}; - -static inline void -V3D21_Z_MIN_AND_MAX_CLIPPING_PLANES_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D21_Z_MIN_AND_MAX_CLIPPING_PLANES * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - - memcpy(&cl[1], &values->minimum_zw, sizeof(values->minimum_zw)); - - memcpy(&cl[5], &values->maximum_zw, sizeof(values->maximum_zw)); -} - -#define V3D21_Z_MIN_AND_MAX_CLIPPING_PLANES_length 9 -#ifdef __gen_unpack_address -static inline void -V3D21_Z_MIN_AND_MAX_CLIPPING_PLANES_unpack(const uint8_t * restrict cl, - struct V3D21_Z_MIN_AND_MAX_CLIPPING_PLANES * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->maximum_zw = __gen_unpack_float(cl, 40, 71); - values->minimum_zw = __gen_unpack_float(cl, 8, 39); -} -#endif - - -#define V3D21_CLIPPER_XY_SCALING_opcode 105 -#define V3D21_CLIPPER_XY_SCALING_header \ - .opcode = 105 - -struct V3D21_CLIPPER_XY_SCALING { - uint32_t opcode; - float viewport_half_height_in_1_16th_of_pixel; - float viewport_half_width_in_1_16th_of_pixel; -}; - -static inline void -V3D21_CLIPPER_XY_SCALING_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D21_CLIPPER_XY_SCALING * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - - memcpy(&cl[1], &values->viewport_half_width_in_1_16th_of_pixel, sizeof(values->viewport_half_width_in_1_16th_of_pixel)); - - memcpy(&cl[5], &values->viewport_half_height_in_1_16th_of_pixel, sizeof(values->viewport_half_height_in_1_16th_of_pixel)); -} - -#define V3D21_CLIPPER_XY_SCALING_length 9 -#ifdef __gen_unpack_address -static inline void -V3D21_CLIPPER_XY_SCALING_unpack(const uint8_t * restrict cl, - struct V3D21_CLIPPER_XY_SCALING * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->viewport_half_height_in_1_16th_of_pixel = __gen_unpack_float(cl, 40, 71); - values->viewport_half_width_in_1_16th_of_pixel = __gen_unpack_float(cl, 8, 39); -} -#endif - - -#define V3D21_CLIPPER_Z_SCALE_AND_OFFSET_opcode 106 -#define V3D21_CLIPPER_Z_SCALE_AND_OFFSET_header \ - .opcode = 106 - -struct V3D21_CLIPPER_Z_SCALE_AND_OFFSET { - uint32_t opcode; - float viewport_z_offset_zc_to_zs; - float viewport_z_scale_zc_to_zs; -}; - -static inline void -V3D21_CLIPPER_Z_SCALE_AND_OFFSET_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D21_CLIPPER_Z_SCALE_AND_OFFSET * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - - memcpy(&cl[1], &values->viewport_z_scale_zc_to_zs, sizeof(values->viewport_z_scale_zc_to_zs)); - - memcpy(&cl[5], &values->viewport_z_offset_zc_to_zs, sizeof(values->viewport_z_offset_zc_to_zs)); -} - -#define V3D21_CLIPPER_Z_SCALE_AND_OFFSET_length 9 -#ifdef __gen_unpack_address -static inline void -V3D21_CLIPPER_Z_SCALE_AND_OFFSET_unpack(const uint8_t * restrict cl, - struct V3D21_CLIPPER_Z_SCALE_AND_OFFSET * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->viewport_z_offset_zc_to_zs = __gen_unpack_float(cl, 40, 71); - values->viewport_z_scale_zc_to_zs = __gen_unpack_float(cl, 8, 39); -} -#endif - - -#define V3D21_TILE_BINNING_MODE_CONFIGURATION_opcode 112 -#define V3D21_TILE_BINNING_MODE_CONFIGURATION_header\ - .opcode = 112 - -struct V3D21_TILE_BINNING_MODE_CONFIGURATION { - uint32_t opcode; - bool double_buffer_in_non_ms_mode; - uint32_t tile_allocation_block_size; -#define BLOCK_SIZE_32 0 -#define BLOCK_SIZE_64 1 -#define BLOCK_SIZE_128 2 -#define BLOCK_SIZE_256 3 - uint32_t tile_allocation_initial_block_size; -#define BLOCK_SIZE_32 0 -#define BLOCK_SIZE_64 1 -#define BLOCK_SIZE_128 2 -#define BLOCK_SIZE_256 3 - bool auto_initialise_tile_state_data_array; - bool tile_buffer_64_bit_color_depth; - bool multisample_mode_4x; - uint32_t height_in_tiles; - uint32_t width_in_tiles; - uint32_t tile_state_data_array_address; - uint32_t tile_allocation_memory_size; - uint32_t tile_allocation_memory_address; -}; - -static inline void -V3D21_TILE_BINNING_MODE_CONFIGURATION_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D21_TILE_BINNING_MODE_CONFIGURATION * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - - memcpy(&cl[1], &values->tile_allocation_memory_address, sizeof(values->tile_allocation_memory_address)); - - memcpy(&cl[5], &values->tile_allocation_memory_size, sizeof(values->tile_allocation_memory_size)); - - memcpy(&cl[9], &values->tile_state_data_array_address, sizeof(values->tile_state_data_array_address)); - cl[13] = __gen_uint(values->width_in_tiles, 0, 7); - - cl[14] = __gen_uint(values->height_in_tiles, 0, 7); - - cl[15] = __gen_uint(values->double_buffer_in_non_ms_mode, 7, 7) | - __gen_uint(values->tile_allocation_block_size, 5, 6) | - __gen_uint(values->tile_allocation_initial_block_size, 3, 4) | - __gen_uint(values->auto_initialise_tile_state_data_array, 2, 2) | - __gen_uint(values->tile_buffer_64_bit_color_depth, 1, 1) | - __gen_uint(values->multisample_mode_4x, 0, 0); - -} - -#define V3D21_TILE_BINNING_MODE_CONFIGURATION_length 16 -#ifdef __gen_unpack_address -static inline void -V3D21_TILE_BINNING_MODE_CONFIGURATION_unpack(const uint8_t * restrict cl, - struct V3D21_TILE_BINNING_MODE_CONFIGURATION * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->double_buffer_in_non_ms_mode = __gen_unpack_uint(cl, 127, 127); - values->tile_allocation_block_size = __gen_unpack_uint(cl, 125, 126); - values->tile_allocation_initial_block_size = __gen_unpack_uint(cl, 123, 124); - values->auto_initialise_tile_state_data_array = __gen_unpack_uint(cl, 122, 122); - values->tile_buffer_64_bit_color_depth = __gen_unpack_uint(cl, 121, 121); - values->multisample_mode_4x = __gen_unpack_uint(cl, 120, 120); - values->height_in_tiles = __gen_unpack_uint(cl, 112, 119); - values->width_in_tiles = __gen_unpack_uint(cl, 104, 111); - values->tile_state_data_array_address = __gen_unpack_uint(cl, 72, 103); - values->tile_allocation_memory_size = __gen_unpack_uint(cl, 40, 71); - values->tile_allocation_memory_address = __gen_unpack_uint(cl, 8, 39); -} -#endif - - -#define V3D21_TILE_RENDERING_MODE_CONFIGURATION_opcode 113 -#define V3D21_TILE_RENDERING_MODE_CONFIGURATION_header\ - .opcode = 113 - -struct V3D21_TILE_RENDERING_MODE_CONFIGURATION { - uint32_t opcode; - bool double_buffer_in_non_ms_mode; - bool early_z_early_cov_disable; - bool early_z_update_direction_gt_ge; - bool select_coverage_mode; - bool enable_vg_mask_buffer; - uint32_t memory_format; -#define RASTER 0 -#define T 1 -#define LT 2 - uint32_t decimate_mode; - uint32_t non_hdr_frame_buffer_color_format; -#define RENDERING_CONFIG_BGR565_DITHERED 0 -#define RENDERING_CONFIG_RGBA8888 1 -#define RENDERING_CONFIG_BGR565_NO_DITHER 2 - bool tile_buffer_64_bit_color_depth; - bool multisample_mode_4x; - uint32_t height_pixels; - uint32_t width_pixels; - __gen_address_type memory_address; -}; - -static inline void -V3D21_TILE_RENDERING_MODE_CONFIGURATION_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D21_TILE_RENDERING_MODE_CONFIGURATION * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - __gen_emit_reloc(data, &values->memory_address); - cl[ 1] = __gen_address_offset(&values->memory_address); - - cl[ 2] = __gen_address_offset(&values->memory_address) >> 8; - - cl[ 3] = __gen_address_offset(&values->memory_address) >> 16; - - cl[ 4] = __gen_address_offset(&values->memory_address) >> 24; - - cl[ 5] = __gen_uint(values->width_pixels, 0, 15); - - cl[ 6] = __gen_uint(values->width_pixels, 0, 15) >> 8; - - cl[ 7] = __gen_uint(values->height_pixels, 0, 15); - - cl[ 8] = __gen_uint(values->height_pixels, 0, 15) >> 8; - - cl[ 9] = __gen_uint(values->memory_format, 6, 7) | - __gen_uint(values->decimate_mode, 4, 5) | - __gen_uint(values->non_hdr_frame_buffer_color_format, 2, 3) | - __gen_uint(values->tile_buffer_64_bit_color_depth, 1, 1) | - __gen_uint(values->multisample_mode_4x, 0, 0); - - cl[10] = __gen_uint(values->double_buffer_in_non_ms_mode, 4, 4) | - __gen_uint(values->early_z_early_cov_disable, 3, 3) | - __gen_uint(values->early_z_update_direction_gt_ge, 2, 2) | - __gen_uint(values->select_coverage_mode, 1, 1) | - __gen_uint(values->enable_vg_mask_buffer, 0, 0); - -} - -#define V3D21_TILE_RENDERING_MODE_CONFIGURATION_length 11 -#ifdef __gen_unpack_address -static inline void -V3D21_TILE_RENDERING_MODE_CONFIGURATION_unpack(const uint8_t * restrict cl, - struct V3D21_TILE_RENDERING_MODE_CONFIGURATION * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->double_buffer_in_non_ms_mode = __gen_unpack_uint(cl, 84, 84); - values->early_z_early_cov_disable = __gen_unpack_uint(cl, 83, 83); - values->early_z_update_direction_gt_ge = __gen_unpack_uint(cl, 82, 82); - values->select_coverage_mode = __gen_unpack_uint(cl, 81, 81); - values->enable_vg_mask_buffer = __gen_unpack_uint(cl, 80, 80); - values->memory_format = __gen_unpack_uint(cl, 78, 79); - values->decimate_mode = __gen_unpack_uint(cl, 76, 77); - values->non_hdr_frame_buffer_color_format = __gen_unpack_uint(cl, 74, 75); - values->tile_buffer_64_bit_color_depth = __gen_unpack_uint(cl, 73, 73); - values->multisample_mode_4x = __gen_unpack_uint(cl, 72, 72); - values->height_pixels = __gen_unpack_uint(cl, 56, 71); - values->width_pixels = __gen_unpack_uint(cl, 40, 55); - values->memory_address = __gen_unpack_address(cl, 8, 39); -} -#endif - - -#define V3D21_TILE_COORDINATES_opcode 115 -#define V3D21_TILE_COORDINATES_header \ - .opcode = 115 - -struct V3D21_TILE_COORDINATES { - uint32_t opcode; - uint32_t tile_row_number; - uint32_t tile_column_number; -}; - -static inline void -V3D21_TILE_COORDINATES_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D21_TILE_COORDINATES * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->tile_column_number, 0, 7); - - cl[ 2] = __gen_uint(values->tile_row_number, 0, 7); - -} - -#define V3D21_TILE_COORDINATES_length 3 -#ifdef __gen_unpack_address -static inline void -V3D21_TILE_COORDINATES_unpack(const uint8_t * restrict cl, - struct V3D21_TILE_COORDINATES * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->tile_row_number = __gen_unpack_uint(cl, 16, 23); - values->tile_column_number = __gen_unpack_uint(cl, 8, 15); -} -#endif - - -#define V3D21_GEM_RELOCATIONS_opcode 254 -#define V3D21_GEM_RELOCATIONS_header \ - .opcode = 254 - -struct V3D21_GEM_RELOCATIONS { - uint32_t opcode; - uint32_t buffer_1; - uint32_t buffer_0; -}; - -static inline void -V3D21_GEM_RELOCATIONS_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D21_GEM_RELOCATIONS * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - - memcpy(&cl[1], &values->buffer_0, sizeof(values->buffer_0)); - - memcpy(&cl[5], &values->buffer_1, sizeof(values->buffer_1)); -} - -#define V3D21_GEM_RELOCATIONS_length 9 -#ifdef __gen_unpack_address -static inline void -V3D21_GEM_RELOCATIONS_unpack(const uint8_t * restrict cl, - struct V3D21_GEM_RELOCATIONS * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->buffer_1 = __gen_unpack_uint(cl, 40, 71); - values->buffer_0 = __gen_unpack_uint(cl, 8, 39); -} -#endif - - -#define V3D21_SHADER_RECORD_header \ - - -struct V3D21_SHADER_RECORD { - bool fragment_shader_is_single_threaded; - bool point_size_included_in_shaded_vertex_data; - bool enable_clipping; - uint32_t fragment_shader_number_of_uniforms_not_used_currently; - uint32_t fragment_shader_number_of_varyings; - __gen_address_type fragment_shader_code_address; - uint32_t fragment_shader_uniforms_address; - uint32_t vertex_shader_number_of_uniforms_not_used_currently; - uint32_t vertex_shader_attribute_array_select_bits; - uint32_t vertex_shader_total_attributes_size; - __gen_address_type vertex_shader_code_address; - uint32_t vertex_shader_uniforms_address; - uint32_t coordinate_shader_number_of_uniforms_not_used_currently; - uint32_t coordinate_shader_attribute_array_select_bits; - uint32_t coordinate_shader_total_attributes_size; - __gen_address_type coordinate_shader_code_address; - uint32_t coordinate_shader_uniforms_address; -}; - -static inline void -V3D21_SHADER_RECORD_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D21_SHADER_RECORD * restrict values) -{ - cl[ 0] = __gen_uint(values->fragment_shader_is_single_threaded, 0, 0) | - __gen_uint(values->point_size_included_in_shaded_vertex_data, 1, 1) | - __gen_uint(values->enable_clipping, 2, 2); - - cl[ 1] = 0; - cl[ 2] = __gen_uint(values->fragment_shader_number_of_uniforms_not_used_currently, 0, 15); - - cl[ 3] = __gen_uint(values->fragment_shader_number_of_uniforms_not_used_currently, 0, 15) >> 8 | - __gen_uint(values->fragment_shader_number_of_varyings, 0, 7); - - __gen_emit_reloc(data, &values->fragment_shader_code_address); - cl[ 4] = __gen_address_offset(&values->fragment_shader_code_address); - - cl[ 5] = __gen_address_offset(&values->fragment_shader_code_address) >> 8; - - cl[ 6] = __gen_address_offset(&values->fragment_shader_code_address) >> 16; - - cl[ 7] = __gen_address_offset(&values->fragment_shader_code_address) >> 24; - - - memcpy(&cl[8], &values->fragment_shader_uniforms_address, sizeof(values->fragment_shader_uniforms_address)); - cl[12] = __gen_uint(values->vertex_shader_number_of_uniforms_not_used_currently, 0, 15); - - cl[13] = __gen_uint(values->vertex_shader_number_of_uniforms_not_used_currently, 0, 15) >> 8; - - cl[14] = __gen_uint(values->vertex_shader_attribute_array_select_bits, 0, 7); - - cl[15] = __gen_uint(values->vertex_shader_total_attributes_size, 0, 7); - - __gen_emit_reloc(data, &values->vertex_shader_code_address); - cl[16] = __gen_address_offset(&values->vertex_shader_code_address) | - __gen_uint(values->vertex_shader_uniforms_address, 0, 31); - - cl[17] = __gen_address_offset(&values->vertex_shader_code_address) >> 8 | - __gen_uint(values->vertex_shader_uniforms_address, 0, 31) >> 8; - - cl[18] = __gen_address_offset(&values->vertex_shader_code_address) >> 16 | - __gen_uint(values->vertex_shader_uniforms_address, 0, 31) >> 16; - - cl[19] = __gen_address_offset(&values->vertex_shader_code_address) >> 24 | - __gen_uint(values->vertex_shader_uniforms_address, 0, 31) >> 24; - - cl[20] = 0; - cl[21] = 0; - cl[22] = 0; - cl[23] = 0; - cl[24] = __gen_uint(values->coordinate_shader_number_of_uniforms_not_used_currently, 0, 15); - - cl[25] = __gen_uint(values->coordinate_shader_number_of_uniforms_not_used_currently, 0, 15) >> 8; - - cl[26] = __gen_uint(values->coordinate_shader_attribute_array_select_bits, 0, 7); - - cl[27] = __gen_uint(values->coordinate_shader_total_attributes_size, 0, 7); - - __gen_emit_reloc(data, &values->coordinate_shader_code_address); - cl[28] = __gen_address_offset(&values->coordinate_shader_code_address); - - cl[29] = __gen_address_offset(&values->coordinate_shader_code_address) >> 8; - - cl[30] = __gen_address_offset(&values->coordinate_shader_code_address) >> 16; - - cl[31] = __gen_address_offset(&values->coordinate_shader_code_address) >> 24; - - - memcpy(&cl[32], &values->coordinate_shader_uniforms_address, sizeof(values->coordinate_shader_uniforms_address)); -} - -#define V3D21_SHADER_RECORD_length 36 -#ifdef __gen_unpack_address -static inline void -V3D21_SHADER_RECORD_unpack(const uint8_t * restrict cl, - struct V3D21_SHADER_RECORD * restrict values) -{ - values->fragment_shader_is_single_threaded = __gen_unpack_uint(cl, 0, 0); - values->point_size_included_in_shaded_vertex_data = __gen_unpack_uint(cl, 1, 1); - values->enable_clipping = __gen_unpack_uint(cl, 2, 2); - values->fragment_shader_number_of_uniforms_not_used_currently = __gen_unpack_uint(cl, 16, 31); - values->fragment_shader_number_of_varyings = __gen_unpack_uint(cl, 24, 31); - values->fragment_shader_code_address = __gen_unpack_address(cl, 32, 63); - values->fragment_shader_uniforms_address = __gen_unpack_uint(cl, 64, 95); - values->vertex_shader_number_of_uniforms_not_used_currently = __gen_unpack_uint(cl, 96, 111); - values->vertex_shader_attribute_array_select_bits = __gen_unpack_uint(cl, 112, 119); - values->vertex_shader_total_attributes_size = __gen_unpack_uint(cl, 120, 127); - values->vertex_shader_code_address = __gen_unpack_address(cl, 128, 159); - values->vertex_shader_uniforms_address = __gen_unpack_uint(cl, 128, 159); - values->coordinate_shader_number_of_uniforms_not_used_currently = __gen_unpack_uint(cl, 192, 207); - values->coordinate_shader_attribute_array_select_bits = __gen_unpack_uint(cl, 208, 215); - values->coordinate_shader_total_attributes_size = __gen_unpack_uint(cl, 216, 223); - values->coordinate_shader_code_address = __gen_unpack_address(cl, 224, 255); - values->coordinate_shader_uniforms_address = __gen_unpack_uint(cl, 256, 287); -} -#endif - - -#define V3D21_ATTRIBUTE_RECORD_header \ - - -struct V3D21_ATTRIBUTE_RECORD { - __gen_address_type address; - uint32_t number_of_bytes_minus_1; - uint32_t stride; - uint32_t vertex_shader_vpm_offset; - uint32_t coordinate_shader_vpm_offset; -}; - -static inline void -V3D21_ATTRIBUTE_RECORD_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D21_ATTRIBUTE_RECORD * restrict values) -{ - __gen_emit_reloc(data, &values->address); - cl[ 0] = __gen_address_offset(&values->address); - - cl[ 1] = __gen_address_offset(&values->address) >> 8; - - cl[ 2] = __gen_address_offset(&values->address) >> 16; - - cl[ 3] = __gen_address_offset(&values->address) >> 24; - - cl[ 4] = __gen_uint(values->number_of_bytes_minus_1, 0, 7); - - cl[ 5] = __gen_uint(values->stride, 0, 7); - - cl[ 6] = __gen_uint(values->vertex_shader_vpm_offset, 0, 7); - - cl[ 7] = __gen_uint(values->coordinate_shader_vpm_offset, 0, 7); - -} - -#define V3D21_ATTRIBUTE_RECORD_length 8 -#ifdef __gen_unpack_address -static inline void -V3D21_ATTRIBUTE_RECORD_unpack(const uint8_t * restrict cl, - struct V3D21_ATTRIBUTE_RECORD * restrict values) -{ - values->address = __gen_unpack_address(cl, 0, 31); - values->number_of_bytes_minus_1 = __gen_unpack_uint(cl, 32, 39); - values->stride = __gen_unpack_uint(cl, 40, 47); - values->vertex_shader_vpm_offset = __gen_unpack_uint(cl, 48, 55); - values->coordinate_shader_vpm_offset = __gen_unpack_uint(cl, 56, 63); -} -#endif - - -#endif /* V3D21_PACK_H */ diff --git a/lib/mesa/src/broadcom/cle/v3d_packet_v33_pack.h b/lib/mesa/src/broadcom/cle/v3d_packet_v33_pack.h deleted file mode 100644 index 934b0de4f..000000000 --- a/lib/mesa/src/broadcom/cle/v3d_packet_v33_pack.h +++ /dev/null @@ -1,3733 +0,0 @@ -/* Generated code, see packets.xml and gen_packet_header.py */ - - -/* Packets, enums and structures for V3D 3.3. - * - * This file has been generated, do not hand edit. - */ - -#ifndef V3D33_PACK_H -#define V3D33_PACK_H - -#include "v3d_packet_helpers.h" - - -enum V3D33_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 V3D33_Blend_Factor { - V3D_BLEND_FACTOR_ZERO = 0, - V3D_BLEND_FACTOR_ONE = 1, - V3D_BLEND_FACTOR_SRC_COLOR = 2, - V3D_BLEND_FACTOR_INV_SRC_COLOR = 3, - V3D_BLEND_FACTOR_DST_COLOR = 4, - V3D_BLEND_FACTOR_INV_DST_COLOR = 5, - V3D_BLEND_FACTOR_SRC_ALPHA = 6, - V3D_BLEND_FACTOR_INV_SRC_ALPHA = 7, - V3D_BLEND_FACTOR_DST_ALPHA = 8, - V3D_BLEND_FACTOR_INV_DST_ALPHA = 9, - V3D_BLEND_FACTOR_CONST_COLOR = 10, - V3D_BLEND_FACTOR_INV_CONST_COLOR = 11, - V3D_BLEND_FACTOR_CONST_ALPHA = 12, - V3D_BLEND_FACTOR_INV_CONST_ALPHA = 13, - V3D_BLEND_FACTOR_SRC_ALPHA_SATURATE = 14, -}; - -enum V3D33_Blend_Mode { - V3D_BLEND_MODE_ADD = 0, - V3D_BLEND_MODE_SUB = 1, - V3D_BLEND_MODE_RSUB = 2, - V3D_BLEND_MODE_MIN = 3, - V3D_BLEND_MODE_MAX = 4, - V3D_BLEND_MODE_MUL = 5, - V3D_BLEND_MODE_SCREEN = 6, - V3D_BLEND_MODE_DARKEN = 7, - V3D_BLEND_MODE_LIGHTEN = 8, -}; - -enum V3D33_Stencil_Op { - V3D_STENCIL_OP_ZERO = 0, - V3D_STENCIL_OP_KEEP = 1, - V3D_STENCIL_OP_REPLACE = 2, - V3D_STENCIL_OP_INCR = 3, - V3D_STENCIL_OP_DECR = 4, - V3D_STENCIL_OP_INVERT = 5, - V3D_STENCIL_OP_INCWRAP = 6, - V3D_STENCIL_OP_DECWRAP = 7, -}; - -enum V3D33_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, - V3D_PRIM_POINTS_TF = 16, - V3D_PRIM_LINES_TF = 17, - V3D_PRIM_LINE_LOOP_TF = 18, - V3D_PRIM_LINE_STRIP_TF = 19, - V3D_PRIM_TRIANGLES_TF = 20, - V3D_PRIM_TRIANGLE_STRIP_TF = 21, - V3D_PRIM_TRIANGLE_FAN_TF = 22, -}; - -#define V3D33_HALT_opcode 0 -#define V3D33_HALT_header \ - .opcode = 0 - -struct V3D33_HALT { - uint32_t opcode; -}; - -static inline void -V3D33_HALT_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_HALT * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D33_HALT_length 1 -#ifdef __gen_unpack_address -static inline void -V3D33_HALT_unpack(const uint8_t * restrict cl, - struct V3D33_HALT * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D33_NOP_opcode 1 -#define V3D33_NOP_header \ - .opcode = 1 - -struct V3D33_NOP { - uint32_t opcode; -}; - -static inline void -V3D33_NOP_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_NOP * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D33_NOP_length 1 -#ifdef __gen_unpack_address -static inline void -V3D33_NOP_unpack(const uint8_t * restrict cl, - struct V3D33_NOP * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D33_FLUSH_opcode 4 -#define V3D33_FLUSH_header \ - .opcode = 4 - -struct V3D33_FLUSH { - uint32_t opcode; -}; - -static inline void -V3D33_FLUSH_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_FLUSH * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D33_FLUSH_length 1 -#ifdef __gen_unpack_address -static inline void -V3D33_FLUSH_unpack(const uint8_t * restrict cl, - struct V3D33_FLUSH * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D33_FLUSH_ALL_STATE_opcode 5 -#define V3D33_FLUSH_ALL_STATE_header \ - .opcode = 5 - -struct V3D33_FLUSH_ALL_STATE { - uint32_t opcode; -}; - -static inline void -V3D33_FLUSH_ALL_STATE_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_FLUSH_ALL_STATE * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D33_FLUSH_ALL_STATE_length 1 -#ifdef __gen_unpack_address -static inline void -V3D33_FLUSH_ALL_STATE_unpack(const uint8_t * restrict cl, - struct V3D33_FLUSH_ALL_STATE * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D33_START_TILE_BINNING_opcode 6 -#define V3D33_START_TILE_BINNING_header \ - .opcode = 6 - -struct V3D33_START_TILE_BINNING { - uint32_t opcode; -}; - -static inline void -V3D33_START_TILE_BINNING_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_START_TILE_BINNING * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D33_START_TILE_BINNING_length 1 -#ifdef __gen_unpack_address -static inline void -V3D33_START_TILE_BINNING_unpack(const uint8_t * restrict cl, - struct V3D33_START_TILE_BINNING * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D33_INCREMENT_SEMAPHORE_opcode 7 -#define V3D33_INCREMENT_SEMAPHORE_header \ - .opcode = 7 - -struct V3D33_INCREMENT_SEMAPHORE { - uint32_t opcode; -}; - -static inline void -V3D33_INCREMENT_SEMAPHORE_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_INCREMENT_SEMAPHORE * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D33_INCREMENT_SEMAPHORE_length 1 -#ifdef __gen_unpack_address -static inline void -V3D33_INCREMENT_SEMAPHORE_unpack(const uint8_t * restrict cl, - struct V3D33_INCREMENT_SEMAPHORE * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D33_WAIT_ON_SEMAPHORE_opcode 8 -#define V3D33_WAIT_ON_SEMAPHORE_header \ - .opcode = 8 - -struct V3D33_WAIT_ON_SEMAPHORE { - uint32_t opcode; -}; - -static inline void -V3D33_WAIT_ON_SEMAPHORE_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_WAIT_ON_SEMAPHORE * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D33_WAIT_ON_SEMAPHORE_length 1 -#ifdef __gen_unpack_address -static inline void -V3D33_WAIT_ON_SEMAPHORE_unpack(const uint8_t * restrict cl, - struct V3D33_WAIT_ON_SEMAPHORE * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D33_WAIT_FOR_PREVIOUS_FRAME_opcode 9 -#define V3D33_WAIT_FOR_PREVIOUS_FRAME_header \ - .opcode = 9 - -struct V3D33_WAIT_FOR_PREVIOUS_FRAME { - uint32_t opcode; -}; - -static inline void -V3D33_WAIT_FOR_PREVIOUS_FRAME_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_WAIT_FOR_PREVIOUS_FRAME * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D33_WAIT_FOR_PREVIOUS_FRAME_length 1 -#ifdef __gen_unpack_address -static inline void -V3D33_WAIT_FOR_PREVIOUS_FRAME_unpack(const uint8_t * restrict cl, - struct V3D33_WAIT_FOR_PREVIOUS_FRAME * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D33_ENABLE_Z_ONLY_RENDERING_opcode 10 -#define V3D33_ENABLE_Z_ONLY_RENDERING_header \ - .opcode = 10 - -struct V3D33_ENABLE_Z_ONLY_RENDERING { - uint32_t opcode; -}; - -static inline void -V3D33_ENABLE_Z_ONLY_RENDERING_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_ENABLE_Z_ONLY_RENDERING * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D33_ENABLE_Z_ONLY_RENDERING_length 1 -#ifdef __gen_unpack_address -static inline void -V3D33_ENABLE_Z_ONLY_RENDERING_unpack(const uint8_t * restrict cl, - struct V3D33_ENABLE_Z_ONLY_RENDERING * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D33_DISABLE_Z_ONLY_RENDERING_opcode 11 -#define V3D33_DISABLE_Z_ONLY_RENDERING_header \ - .opcode = 11 - -struct V3D33_DISABLE_Z_ONLY_RENDERING { - uint32_t opcode; -}; - -static inline void -V3D33_DISABLE_Z_ONLY_RENDERING_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_DISABLE_Z_ONLY_RENDERING * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D33_DISABLE_Z_ONLY_RENDERING_length 1 -#ifdef __gen_unpack_address -static inline void -V3D33_DISABLE_Z_ONLY_RENDERING_unpack(const uint8_t * restrict cl, - struct V3D33_DISABLE_Z_ONLY_RENDERING * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D33_END_OF_Z_ONLY_RENDERING_IN_FRAME_opcode 12 -#define V3D33_END_OF_Z_ONLY_RENDERING_IN_FRAME_header\ - .opcode = 12 - -struct V3D33_END_OF_Z_ONLY_RENDERING_IN_FRAME { - uint32_t opcode; -}; - -static inline void -V3D33_END_OF_Z_ONLY_RENDERING_IN_FRAME_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_END_OF_Z_ONLY_RENDERING_IN_FRAME * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D33_END_OF_Z_ONLY_RENDERING_IN_FRAME_length 1 -#ifdef __gen_unpack_address -static inline void -V3D33_END_OF_Z_ONLY_RENDERING_IN_FRAME_unpack(const uint8_t * restrict cl, - struct V3D33_END_OF_Z_ONLY_RENDERING_IN_FRAME * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D33_END_OF_RENDERING_opcode 13 -#define V3D33_END_OF_RENDERING_header \ - .opcode = 13 - -struct V3D33_END_OF_RENDERING { - uint32_t opcode; -}; - -static inline void -V3D33_END_OF_RENDERING_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_END_OF_RENDERING * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D33_END_OF_RENDERING_length 1 -#ifdef __gen_unpack_address -static inline void -V3D33_END_OF_RENDERING_unpack(const uint8_t * restrict cl, - struct V3D33_END_OF_RENDERING * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D33_WAIT_FOR_TRANSFORM_FEEDBACK_opcode 14 -#define V3D33_WAIT_FOR_TRANSFORM_FEEDBACK_header\ - .opcode = 14 - -struct V3D33_WAIT_FOR_TRANSFORM_FEEDBACK { - uint32_t opcode; - uint32_t block_count; -}; - -static inline void -V3D33_WAIT_FOR_TRANSFORM_FEEDBACK_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_WAIT_FOR_TRANSFORM_FEEDBACK * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->block_count, 0, 7); - -} - -#define V3D33_WAIT_FOR_TRANSFORM_FEEDBACK_length 2 -#ifdef __gen_unpack_address -static inline void -V3D33_WAIT_FOR_TRANSFORM_FEEDBACK_unpack(const uint8_t * restrict cl, - struct V3D33_WAIT_FOR_TRANSFORM_FEEDBACK * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->block_count = __gen_unpack_uint(cl, 8, 15); -} -#endif - - -#define V3D33_BRANCH_TO_AUTO_CHAINED_SUB_LIST_opcode 15 -#define V3D33_BRANCH_TO_AUTO_CHAINED_SUB_LIST_header\ - .opcode = 15 - -struct V3D33_BRANCH_TO_AUTO_CHAINED_SUB_LIST { - uint32_t opcode; - __gen_address_type address; -}; - -static inline void -V3D33_BRANCH_TO_AUTO_CHAINED_SUB_LIST_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_BRANCH_TO_AUTO_CHAINED_SUB_LIST * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - __gen_emit_reloc(data, &values->address); - cl[ 1] = __gen_address_offset(&values->address); - - cl[ 2] = __gen_address_offset(&values->address) >> 8; - - cl[ 3] = __gen_address_offset(&values->address) >> 16; - - cl[ 4] = __gen_address_offset(&values->address) >> 24; - -} - -#define V3D33_BRANCH_TO_AUTO_CHAINED_SUB_LIST_length 5 -#ifdef __gen_unpack_address -static inline void -V3D33_BRANCH_TO_AUTO_CHAINED_SUB_LIST_unpack(const uint8_t * restrict cl, - struct V3D33_BRANCH_TO_AUTO_CHAINED_SUB_LIST * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->address = __gen_unpack_address(cl, 8, 39); -} -#endif - - -#define V3D33_BRANCH_opcode 16 -#define V3D33_BRANCH_header \ - .opcode = 16 - -struct V3D33_BRANCH { - uint32_t opcode; - __gen_address_type address; -}; - -static inline void -V3D33_BRANCH_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_BRANCH * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - __gen_emit_reloc(data, &values->address); - cl[ 1] = __gen_address_offset(&values->address); - - cl[ 2] = __gen_address_offset(&values->address) >> 8; - - cl[ 3] = __gen_address_offset(&values->address) >> 16; - - cl[ 4] = __gen_address_offset(&values->address) >> 24; - -} - -#define V3D33_BRANCH_length 5 -#ifdef __gen_unpack_address -static inline void -V3D33_BRANCH_unpack(const uint8_t * restrict cl, - struct V3D33_BRANCH * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->address = __gen_unpack_address(cl, 8, 39); -} -#endif - - -#define V3D33_BRANCH_TO_SUB_LIST_opcode 17 -#define V3D33_BRANCH_TO_SUB_LIST_header \ - .opcode = 17 - -struct V3D33_BRANCH_TO_SUB_LIST { - uint32_t opcode; - __gen_address_type address; -}; - -static inline void -V3D33_BRANCH_TO_SUB_LIST_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_BRANCH_TO_SUB_LIST * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - __gen_emit_reloc(data, &values->address); - cl[ 1] = __gen_address_offset(&values->address); - - cl[ 2] = __gen_address_offset(&values->address) >> 8; - - cl[ 3] = __gen_address_offset(&values->address) >> 16; - - cl[ 4] = __gen_address_offset(&values->address) >> 24; - -} - -#define V3D33_BRANCH_TO_SUB_LIST_length 5 -#ifdef __gen_unpack_address -static inline void -V3D33_BRANCH_TO_SUB_LIST_unpack(const uint8_t * restrict cl, - struct V3D33_BRANCH_TO_SUB_LIST * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->address = __gen_unpack_address(cl, 8, 39); -} -#endif - - -#define V3D33_RETURN_FROM_SUB_LIST_opcode 18 -#define V3D33_RETURN_FROM_SUB_LIST_header \ - .opcode = 18 - -struct V3D33_RETURN_FROM_SUB_LIST { - uint32_t opcode; -}; - -static inline void -V3D33_RETURN_FROM_SUB_LIST_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_RETURN_FROM_SUB_LIST * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D33_RETURN_FROM_SUB_LIST_length 1 -#ifdef __gen_unpack_address -static inline void -V3D33_RETURN_FROM_SUB_LIST_unpack(const uint8_t * restrict cl, - struct V3D33_RETURN_FROM_SUB_LIST * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D33_FLUSH_VCD_CACHE_opcode 19 -#define V3D33_FLUSH_VCD_CACHE_header \ - .opcode = 19 - -struct V3D33_FLUSH_VCD_CACHE { - uint32_t opcode; -}; - -static inline void -V3D33_FLUSH_VCD_CACHE_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_FLUSH_VCD_CACHE * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D33_FLUSH_VCD_CACHE_length 1 -#ifdef __gen_unpack_address -static inline void -V3D33_FLUSH_VCD_CACHE_unpack(const uint8_t * restrict cl, - struct V3D33_FLUSH_VCD_CACHE * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D33_START_ADDRESS_OF_GENERIC_TILE_LIST_opcode 20 -#define V3D33_START_ADDRESS_OF_GENERIC_TILE_LIST_header\ - .opcode = 20 - -struct V3D33_START_ADDRESS_OF_GENERIC_TILE_LIST { - uint32_t opcode; - __gen_address_type start; - __gen_address_type end; -}; - -static inline void -V3D33_START_ADDRESS_OF_GENERIC_TILE_LIST_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_START_ADDRESS_OF_GENERIC_TILE_LIST * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - __gen_emit_reloc(data, &values->start); - cl[ 1] = __gen_address_offset(&values->start); - - cl[ 2] = __gen_address_offset(&values->start) >> 8; - - cl[ 3] = __gen_address_offset(&values->start) >> 16; - - cl[ 4] = __gen_address_offset(&values->start) >> 24; - - __gen_emit_reloc(data, &values->end); - cl[ 5] = __gen_address_offset(&values->end); - - cl[ 6] = __gen_address_offset(&values->end) >> 8; - - cl[ 7] = __gen_address_offset(&values->end) >> 16; - - cl[ 8] = __gen_address_offset(&values->end) >> 24; - -} - -#define V3D33_START_ADDRESS_OF_GENERIC_TILE_LIST_length 9 -#ifdef __gen_unpack_address -static inline void -V3D33_START_ADDRESS_OF_GENERIC_TILE_LIST_unpack(const uint8_t * restrict cl, - struct V3D33_START_ADDRESS_OF_GENERIC_TILE_LIST * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->start = __gen_unpack_address(cl, 8, 39); - values->end = __gen_unpack_address(cl, 40, 71); -} -#endif - - -#define V3D33_BRANCH_TO_IMPLICIT_TILE_LIST_opcode 21 -#define V3D33_BRANCH_TO_IMPLICIT_TILE_LIST_header\ - .opcode = 21 - -struct V3D33_BRANCH_TO_IMPLICIT_TILE_LIST { - uint32_t opcode; - uint32_t tile_list_set_number; -}; - -static inline void -V3D33_BRANCH_TO_IMPLICIT_TILE_LIST_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_BRANCH_TO_IMPLICIT_TILE_LIST * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->tile_list_set_number, 0, 7); - -} - -#define V3D33_BRANCH_TO_IMPLICIT_TILE_LIST_length 2 -#ifdef __gen_unpack_address -static inline void -V3D33_BRANCH_TO_IMPLICIT_TILE_LIST_unpack(const uint8_t * restrict cl, - struct V3D33_BRANCH_TO_IMPLICIT_TILE_LIST * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->tile_list_set_number = __gen_unpack_uint(cl, 8, 15); -} -#endif - - -#define V3D33_BRANCH_TO_EXPLICIT_SUPERTILE_opcode 22 -#define V3D33_BRANCH_TO_EXPLICIT_SUPERTILE_header\ - .opcode = 22 - -struct V3D33_BRANCH_TO_EXPLICIT_SUPERTILE { - uint32_t opcode; - __gen_address_type absolute_address_of_explicit_supertile_render_list; - uint32_t explicit_supertile_number; - uint32_t row_number; - uint32_t column_number; -}; - -static inline void -V3D33_BRANCH_TO_EXPLICIT_SUPERTILE_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_BRANCH_TO_EXPLICIT_SUPERTILE * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->column_number, 0, 7); - - cl[ 2] = __gen_uint(values->row_number, 0, 7); - - cl[ 3] = __gen_uint(values->explicit_supertile_number, 0, 7); - - __gen_emit_reloc(data, &values->absolute_address_of_explicit_supertile_render_list); - cl[ 4] = __gen_address_offset(&values->absolute_address_of_explicit_supertile_render_list); - - cl[ 5] = __gen_address_offset(&values->absolute_address_of_explicit_supertile_render_list) >> 8; - - cl[ 6] = __gen_address_offset(&values->absolute_address_of_explicit_supertile_render_list) >> 16; - - cl[ 7] = __gen_address_offset(&values->absolute_address_of_explicit_supertile_render_list) >> 24; - -} - -#define V3D33_BRANCH_TO_EXPLICIT_SUPERTILE_length 8 -#ifdef __gen_unpack_address -static inline void -V3D33_BRANCH_TO_EXPLICIT_SUPERTILE_unpack(const uint8_t * restrict cl, - struct V3D33_BRANCH_TO_EXPLICIT_SUPERTILE * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->absolute_address_of_explicit_supertile_render_list = __gen_unpack_address(cl, 32, 63); - values->explicit_supertile_number = __gen_unpack_uint(cl, 24, 31); - values->row_number = __gen_unpack_uint(cl, 16, 23); - values->column_number = __gen_unpack_uint(cl, 8, 15); -} -#endif - - -#define V3D33_SUPERTILE_COORDINATES_opcode 23 -#define V3D33_SUPERTILE_COORDINATES_header \ - .opcode = 23 - -struct V3D33_SUPERTILE_COORDINATES { - uint32_t opcode; - uint32_t row_number_in_supertiles; - uint32_t column_number_in_supertiles; -}; - -static inline void -V3D33_SUPERTILE_COORDINATES_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_SUPERTILE_COORDINATES * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->column_number_in_supertiles, 0, 7); - - cl[ 2] = __gen_uint(values->row_number_in_supertiles, 0, 7); - -} - -#define V3D33_SUPERTILE_COORDINATES_length 3 -#ifdef __gen_unpack_address -static inline void -V3D33_SUPERTILE_COORDINATES_unpack(const uint8_t * restrict cl, - struct V3D33_SUPERTILE_COORDINATES * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->row_number_in_supertiles = __gen_unpack_uint(cl, 16, 23); - values->column_number_in_supertiles = __gen_unpack_uint(cl, 8, 15); -} -#endif - - -#define V3D33_STORE_MULTI_SAMPLE_RESOLVED_TILE_COLOR_BUFFER_opcode 24 -#define V3D33_STORE_MULTI_SAMPLE_RESOLVED_TILE_COLOR_BUFFER_header\ - .opcode = 24 - -struct V3D33_STORE_MULTI_SAMPLE_RESOLVED_TILE_COLOR_BUFFER { - uint32_t opcode; -}; - -static inline void -V3D33_STORE_MULTI_SAMPLE_RESOLVED_TILE_COLOR_BUFFER_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_STORE_MULTI_SAMPLE_RESOLVED_TILE_COLOR_BUFFER * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D33_STORE_MULTI_SAMPLE_RESOLVED_TILE_COLOR_BUFFER_length 1 -#ifdef __gen_unpack_address -static inline void -V3D33_STORE_MULTI_SAMPLE_RESOLVED_TILE_COLOR_BUFFER_unpack(const uint8_t * restrict cl, - struct V3D33_STORE_MULTI_SAMPLE_RESOLVED_TILE_COLOR_BUFFER * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D33_STORE_MULTI_SAMPLE_RESOLVED_TILE_COLOR_BUFFER_EXTENDED_opcode 25 -#define V3D33_STORE_MULTI_SAMPLE_RESOLVED_TILE_COLOR_BUFFER_EXTENDED_header\ - .opcode = 25 - -struct V3D33_STORE_MULTI_SAMPLE_RESOLVED_TILE_COLOR_BUFFER_EXTENDED { - uint32_t opcode; - uint32_t disable_color_buffer_write; - bool enable_z_write; - bool enable_stencil_write; - bool disable_colour_buffers_clear_on_write; - bool disable_stencil_buffer_clear_on_write; - bool disable_z_buffer_clear_on_write; - bool disable_fast_opportunistic_write_out_in_multisample_mode; - bool last_tile_of_frame; -}; - -static inline void -V3D33_STORE_MULTI_SAMPLE_RESOLVED_TILE_COLOR_BUFFER_EXTENDED_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_STORE_MULTI_SAMPLE_RESOLVED_TILE_COLOR_BUFFER_EXTENDED * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->enable_z_write, 7, 7) | - __gen_uint(values->enable_stencil_write, 6, 6) | - __gen_uint(values->disable_colour_buffers_clear_on_write, 4, 4) | - __gen_uint(values->disable_stencil_buffer_clear_on_write, 3, 3) | - __gen_uint(values->disable_z_buffer_clear_on_write, 2, 2) | - __gen_uint(values->disable_fast_opportunistic_write_out_in_multisample_mode, 1, 1) | - __gen_uint(values->last_tile_of_frame, 0, 0); - - cl[ 2] = __gen_uint(values->disable_color_buffer_write, 0, 7); - -} - -#define V3D33_STORE_MULTI_SAMPLE_RESOLVED_TILE_COLOR_BUFFER_EXTENDED_length 3 -#ifdef __gen_unpack_address -static inline void -V3D33_STORE_MULTI_SAMPLE_RESOLVED_TILE_COLOR_BUFFER_EXTENDED_unpack(const uint8_t * restrict cl, - struct V3D33_STORE_MULTI_SAMPLE_RESOLVED_TILE_COLOR_BUFFER_EXTENDED * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->disable_color_buffer_write = __gen_unpack_uint(cl, 16, 23); - values->enable_z_write = __gen_unpack_uint(cl, 15, 15); - values->enable_stencil_write = __gen_unpack_uint(cl, 14, 14); - values->disable_colour_buffers_clear_on_write = __gen_unpack_uint(cl, 12, 12); - values->disable_stencil_buffer_clear_on_write = __gen_unpack_uint(cl, 11, 11); - values->disable_z_buffer_clear_on_write = __gen_unpack_uint(cl, 10, 10); - values->disable_fast_opportunistic_write_out_in_multisample_mode = __gen_unpack_uint(cl, 9, 9); - values->last_tile_of_frame = __gen_unpack_uint(cl, 8, 8); -} -#endif - - -#define V3D33_RELOAD_TILE_COLOUR_BUFFER_opcode 26 -#define V3D33_RELOAD_TILE_COLOUR_BUFFER_header \ - .opcode = 26 - -struct V3D33_RELOAD_TILE_COLOUR_BUFFER { - uint32_t opcode; - uint32_t disable_colour_buffer_load; - bool enable_z_load; - bool enable_stencil_load; -}; - -static inline void -V3D33_RELOAD_TILE_COLOUR_BUFFER_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_RELOAD_TILE_COLOUR_BUFFER * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->enable_z_load, 7, 7) | - __gen_uint(values->enable_stencil_load, 6, 6); - - cl[ 2] = __gen_uint(values->disable_colour_buffer_load, 0, 7); - -} - -#define V3D33_RELOAD_TILE_COLOUR_BUFFER_length 3 -#ifdef __gen_unpack_address -static inline void -V3D33_RELOAD_TILE_COLOUR_BUFFER_unpack(const uint8_t * restrict cl, - struct V3D33_RELOAD_TILE_COLOUR_BUFFER * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->disable_colour_buffer_load = __gen_unpack_uint(cl, 16, 23); - values->enable_z_load = __gen_unpack_uint(cl, 15, 15); - values->enable_stencil_load = __gen_unpack_uint(cl, 14, 14); -} -#endif - - -#define V3D33_END_OF_TILE_MARKER_opcode 27 -#define V3D33_END_OF_TILE_MARKER_header \ - .opcode = 27 - -struct V3D33_END_OF_TILE_MARKER { - uint32_t opcode; -}; - -static inline void -V3D33_END_OF_TILE_MARKER_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_END_OF_TILE_MARKER * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D33_END_OF_TILE_MARKER_length 1 -#ifdef __gen_unpack_address -static inline void -V3D33_END_OF_TILE_MARKER_unpack(const uint8_t * restrict cl, - struct V3D33_END_OF_TILE_MARKER * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D33_STORE_TILE_BUFFER_GENERAL_opcode 29 -#define V3D33_STORE_TILE_BUFFER_GENERAL_header \ - .opcode = 29 - -struct V3D33_STORE_TILE_BUFFER_GENERAL { - uint32_t opcode; - __gen_address_type address; - uint32_t padded_height_of_output_image_in_uif_blocks; - bool xor_uif; - bool last_tile_of_frame; - bool disable_colour_buffers_clear_on_write; - bool disable_stencil_buffer_clear_on_write; - bool disable_z_buffer_clear_on_write; - bool raw_mode; - uint32_t buffer_to_store; -#define RENDER_TARGET_0 0 -#define RENDER_TARGET_1 1 -#define RENDER_TARGET_2 2 -#define RENDER_TARGET_3 3 -#define NONE 8 -#define Z 9 -#define STENCIL 10 -#define ZSTENCIL 11 -}; - -static inline void -V3D33_STORE_TILE_BUFFER_GENERAL_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_STORE_TILE_BUFFER_GENERAL * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->disable_colour_buffers_clear_on_write, 7, 7) | - __gen_uint(values->disable_stencil_buffer_clear_on_write, 6, 6) | - __gen_uint(values->disable_z_buffer_clear_on_write, 5, 5) | - __gen_uint(values->raw_mode, 4, 4) | - __gen_uint(values->buffer_to_store, 0, 3); - - cl[ 2] = __gen_uint(values->padded_height_of_output_image_in_uif_blocks, 3, 15) | - __gen_uint(values->xor_uif, 2, 2) | - __gen_uint(values->last_tile_of_frame, 0, 0); - - __gen_emit_reloc(data, &values->address); - cl[ 3] = __gen_address_offset(&values->address) | - __gen_uint(values->padded_height_of_output_image_in_uif_blocks, 3, 15) >> 8; - - cl[ 4] = __gen_address_offset(&values->address) >> 8; - - cl[ 5] = __gen_address_offset(&values->address) >> 16; - - cl[ 6] = __gen_address_offset(&values->address) >> 24; - -} - -#define V3D33_STORE_TILE_BUFFER_GENERAL_length 7 -#ifdef __gen_unpack_address -static inline void -V3D33_STORE_TILE_BUFFER_GENERAL_unpack(const uint8_t * restrict cl, - struct V3D33_STORE_TILE_BUFFER_GENERAL * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->address = __gen_unpack_address(cl, 24, 55); - values->padded_height_of_output_image_in_uif_blocks = __gen_unpack_uint(cl, 19, 31); - values->xor_uif = __gen_unpack_uint(cl, 18, 18); - values->last_tile_of_frame = __gen_unpack_uint(cl, 16, 16); - values->disable_colour_buffers_clear_on_write = __gen_unpack_uint(cl, 15, 15); - values->disable_stencil_buffer_clear_on_write = __gen_unpack_uint(cl, 14, 14); - values->disable_z_buffer_clear_on_write = __gen_unpack_uint(cl, 13, 13); - values->raw_mode = __gen_unpack_uint(cl, 12, 12); - values->buffer_to_store = __gen_unpack_uint(cl, 8, 11); -} -#endif - - -#define V3D33_LOAD_TILE_BUFFER_GENERAL_opcode 30 -#define V3D33_LOAD_TILE_BUFFER_GENERAL_header \ - .opcode = 30 - -struct V3D33_LOAD_TILE_BUFFER_GENERAL { - uint32_t opcode; - __gen_address_type address; - uint32_t padded_height_of_output_image_in_uif_blocks; - bool xor_uif; - bool raw_mode; - uint32_t buffer_to_load; -#define RENDER_TARGET_0 0 -#define RENDER_TARGET_1 1 -#define RENDER_TARGET_2 2 -#define RENDER_TARGET_3 3 -#define NONE 8 -#define Z 9 -#define STENCIL 10 -#define ZSTENCIL 11 -}; - -static inline void -V3D33_LOAD_TILE_BUFFER_GENERAL_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_LOAD_TILE_BUFFER_GENERAL * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->raw_mode, 4, 4) | - __gen_uint(values->buffer_to_load, 0, 3); - - cl[ 2] = __gen_uint(values->padded_height_of_output_image_in_uif_blocks, 3, 15) | - __gen_uint(values->xor_uif, 2, 2); - - cl[ 3] = __gen_uint(values->padded_height_of_output_image_in_uif_blocks, 3, 15) >> 8; - - __gen_emit_reloc(data, &values->address); - cl[ 4] = __gen_address_offset(&values->address); - - cl[ 5] = __gen_address_offset(&values->address) >> 8; - - cl[ 6] = __gen_address_offset(&values->address) >> 16; - -} - -#define V3D33_LOAD_TILE_BUFFER_GENERAL_length 7 -#ifdef __gen_unpack_address -static inline void -V3D33_LOAD_TILE_BUFFER_GENERAL_unpack(const uint8_t * restrict cl, - struct V3D33_LOAD_TILE_BUFFER_GENERAL * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->address = __gen_unpack_address(cl, 32, 55); - values->padded_height_of_output_image_in_uif_blocks = __gen_unpack_uint(cl, 19, 31); - values->xor_uif = __gen_unpack_uint(cl, 18, 18); - values->raw_mode = __gen_unpack_uint(cl, 12, 12); - values->buffer_to_load = __gen_unpack_uint(cl, 8, 11); -} -#endif - - -#define V3D33_INDEXED_PRIMITIVE_LIST_opcode 32 -#define V3D33_INDEXED_PRIMITIVE_LIST_header \ - .opcode = 32 - -struct V3D33_INDEXED_PRIMITIVE_LIST { - uint32_t opcode; - uint32_t minimum_index; - bool enable_primitive_restarts; - uint32_t maximum_index; - __gen_address_type address_of_indices_list; - uint32_t length; - uint32_t index_type; -#define INDEX_TYPE_8_BIT 0 -#define INDEX_TYPE_16_BIT 1 -#define INDEX_TYPE_32_BIT 2 - uint32_t mode; -}; - -static inline void -V3D33_INDEXED_PRIMITIVE_LIST_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_INDEXED_PRIMITIVE_LIST * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->index_type, 6, 7) | - __gen_uint(values->mode, 0, 4); - - - memcpy(&cl[2], &values->length, sizeof(values->length)); - __gen_emit_reloc(data, &values->address_of_indices_list); - cl[ 6] = __gen_address_offset(&values->address_of_indices_list); - - cl[ 7] = __gen_address_offset(&values->address_of_indices_list) >> 8; - - cl[ 8] = __gen_address_offset(&values->address_of_indices_list) >> 16; - - cl[ 9] = __gen_address_offset(&values->address_of_indices_list) >> 24; - - cl[10] = __gen_uint(values->maximum_index, 0, 30); - - cl[11] = __gen_uint(values->maximum_index, 0, 30) >> 8; - - cl[12] = __gen_uint(values->maximum_index, 0, 30) >> 16; - - cl[13] = __gen_uint(values->enable_primitive_restarts, 7, 7) | - __gen_uint(values->maximum_index, 0, 30) >> 24; - - - memcpy(&cl[14], &values->minimum_index, sizeof(values->minimum_index)); -} - -#define V3D33_INDEXED_PRIMITIVE_LIST_length 18 -#ifdef __gen_unpack_address -static inline void -V3D33_INDEXED_PRIMITIVE_LIST_unpack(const uint8_t * restrict cl, - struct V3D33_INDEXED_PRIMITIVE_LIST * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->minimum_index = __gen_unpack_uint(cl, 112, 143); - values->enable_primitive_restarts = __gen_unpack_uint(cl, 111, 111); - values->maximum_index = __gen_unpack_uint(cl, 80, 110); - values->address_of_indices_list = __gen_unpack_address(cl, 48, 79); - values->length = __gen_unpack_uint(cl, 16, 47); - values->index_type = __gen_unpack_uint(cl, 14, 15); - values->mode = __gen_unpack_uint(cl, 8, 12); -} -#endif - - -#define V3D33_INDEXED_INSTANCED_PRIMITIVE_LIST_opcode 34 -#define V3D33_INDEXED_INSTANCED_PRIMITIVE_LIST_header\ - .opcode = 34 - -struct V3D33_INDEXED_INSTANCED_PRIMITIVE_LIST { - uint32_t opcode; - bool enable_primitive_restarts; - uint32_t maximum_index; - __gen_address_type address_of_indices_list; - uint32_t number_of_instances; - uint32_t instance_length; - uint32_t index_type; -#define INDEX_TYPE_8_BIT 0 -#define INDEX_TYPE_16_BIT 1 -#define INDEX_TYPE_32_BIT 2 - enum V3D33_Primitive mode; -}; - -static inline void -V3D33_INDEXED_INSTANCED_PRIMITIVE_LIST_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_INDEXED_INSTANCED_PRIMITIVE_LIST * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->index_type, 6, 7) | - __gen_uint(values->mode, 0, 4); - - - memcpy(&cl[2], &values->instance_length, sizeof(values->instance_length)); - - memcpy(&cl[6], &values->number_of_instances, sizeof(values->number_of_instances)); - __gen_emit_reloc(data, &values->address_of_indices_list); - cl[10] = __gen_address_offset(&values->address_of_indices_list); - - cl[11] = __gen_address_offset(&values->address_of_indices_list) >> 8; - - cl[12] = __gen_address_offset(&values->address_of_indices_list) >> 16; - - cl[13] = __gen_address_offset(&values->address_of_indices_list) >> 24; - - cl[14] = __gen_uint(values->maximum_index, 0, 30); - - cl[15] = __gen_uint(values->maximum_index, 0, 30) >> 8; - - cl[16] = __gen_uint(values->maximum_index, 0, 30) >> 16; - - cl[17] = __gen_uint(values->enable_primitive_restarts, 7, 7) | - __gen_uint(values->maximum_index, 0, 30) >> 24; - -} - -#define V3D33_INDEXED_INSTANCED_PRIMITIVE_LIST_length 18 -#ifdef __gen_unpack_address -static inline void -V3D33_INDEXED_INSTANCED_PRIMITIVE_LIST_unpack(const uint8_t * restrict cl, - struct V3D33_INDEXED_INSTANCED_PRIMITIVE_LIST * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->enable_primitive_restarts = __gen_unpack_uint(cl, 143, 143); - values->maximum_index = __gen_unpack_uint(cl, 112, 142); - values->address_of_indices_list = __gen_unpack_address(cl, 80, 111); - values->number_of_instances = __gen_unpack_uint(cl, 48, 79); - values->instance_length = __gen_unpack_uint(cl, 16, 47); - values->index_type = __gen_unpack_uint(cl, 14, 15); - values->mode = __gen_unpack_uint(cl, 8, 12); -} -#endif - - -#define V3D33_VERTEX_ARRAY_PRIMITIVES_opcode 36 -#define V3D33_VERTEX_ARRAY_PRIMITIVES_header \ - .opcode = 36 - -struct V3D33_VERTEX_ARRAY_PRIMITIVES { - uint32_t opcode; - uint32_t index_of_first_vertex; - uint32_t length; - enum V3D33_Primitive mode; -}; - -static inline void -V3D33_VERTEX_ARRAY_PRIMITIVES_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_VERTEX_ARRAY_PRIMITIVES * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->mode, 0, 7); - - - memcpy(&cl[2], &values->length, sizeof(values->length)); - - memcpy(&cl[6], &values->index_of_first_vertex, sizeof(values->index_of_first_vertex)); -} - -#define V3D33_VERTEX_ARRAY_PRIMITIVES_length 10 -#ifdef __gen_unpack_address -static inline void -V3D33_VERTEX_ARRAY_PRIMITIVES_unpack(const uint8_t * restrict cl, - struct V3D33_VERTEX_ARRAY_PRIMITIVES * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->index_of_first_vertex = __gen_unpack_uint(cl, 48, 79); - values->length = __gen_unpack_uint(cl, 16, 47); - values->mode = __gen_unpack_uint(cl, 8, 15); -} -#endif - - -#define V3D33_VERTEX_ARRAY_INSTANCED_PRIMITIVES_opcode 38 -#define V3D33_VERTEX_ARRAY_INSTANCED_PRIMITIVES_header\ - .opcode = 38 - -struct V3D33_VERTEX_ARRAY_INSTANCED_PRIMITIVES { - uint32_t opcode; - uint32_t index_of_first_vertex; - uint32_t number_of_instances; - uint32_t instance_length; - enum V3D33_Primitive mode; -}; - -static inline void -V3D33_VERTEX_ARRAY_INSTANCED_PRIMITIVES_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_VERTEX_ARRAY_INSTANCED_PRIMITIVES * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->mode, 0, 7); - - - memcpy(&cl[2], &values->instance_length, sizeof(values->instance_length)); - - memcpy(&cl[6], &values->number_of_instances, sizeof(values->number_of_instances)); - - memcpy(&cl[10], &values->index_of_first_vertex, sizeof(values->index_of_first_vertex)); -} - -#define V3D33_VERTEX_ARRAY_INSTANCED_PRIMITIVES_length 14 -#ifdef __gen_unpack_address -static inline void -V3D33_VERTEX_ARRAY_INSTANCED_PRIMITIVES_unpack(const uint8_t * restrict cl, - struct V3D33_VERTEX_ARRAY_INSTANCED_PRIMITIVES * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->index_of_first_vertex = __gen_unpack_uint(cl, 80, 111); - values->number_of_instances = __gen_unpack_uint(cl, 48, 79); - values->instance_length = __gen_unpack_uint(cl, 16, 47); - values->mode = __gen_unpack_uint(cl, 8, 15); -} -#endif - - -#define V3D33_BASE_VERTEX_BASE_INSTANCE_opcode 43 -#define V3D33_BASE_VERTEX_BASE_INSTANCE_header \ - .opcode = 43 - -struct V3D33_BASE_VERTEX_BASE_INSTANCE { - uint32_t opcode; - uint32_t base_instance; - uint32_t base_vertex; -}; - -static inline void -V3D33_BASE_VERTEX_BASE_INSTANCE_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_BASE_VERTEX_BASE_INSTANCE * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - - memcpy(&cl[1], &values->base_vertex, sizeof(values->base_vertex)); - - memcpy(&cl[5], &values->base_instance, sizeof(values->base_instance)); -} - -#define V3D33_BASE_VERTEX_BASE_INSTANCE_length 9 -#ifdef __gen_unpack_address -static inline void -V3D33_BASE_VERTEX_BASE_INSTANCE_unpack(const uint8_t * restrict cl, - struct V3D33_BASE_VERTEX_BASE_INSTANCE * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->base_instance = __gen_unpack_uint(cl, 40, 71); - values->base_vertex = __gen_unpack_uint(cl, 8, 39); -} -#endif - - -#define V3D33_PRIMITIVE_LIST_FORMAT_opcode 56 -#define V3D33_PRIMITIVE_LIST_FORMAT_header \ - .opcode = 56 - -struct V3D33_PRIMITIVE_LIST_FORMAT { - uint32_t opcode; - uint32_t data_type; -#define LIST_INDEXED 0 -#define LIST_32_BIT_X_Y 1 - uint32_t primitive_type; -#define LIST_POINTS 0 -#define LIST_LINES 1 -#define LIST_TRIANGLES 2 -}; - -static inline void -V3D33_PRIMITIVE_LIST_FORMAT_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_PRIMITIVE_LIST_FORMAT * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->data_type, 6, 6) | - __gen_uint(values->primitive_type, 0, 5); - -} - -#define V3D33_PRIMITIVE_LIST_FORMAT_length 2 -#ifdef __gen_unpack_address -static inline void -V3D33_PRIMITIVE_LIST_FORMAT_unpack(const uint8_t * restrict cl, - struct V3D33_PRIMITIVE_LIST_FORMAT * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->data_type = __gen_unpack_uint(cl, 14, 14); - values->primitive_type = __gen_unpack_uint(cl, 8, 13); -} -#endif - - -#define V3D33_GL_SHADER_STATE_opcode 64 -#define V3D33_GL_SHADER_STATE_header \ - .opcode = 64 - -struct V3D33_GL_SHADER_STATE { - uint32_t opcode; - __gen_address_type address; - uint32_t number_of_attribute_arrays; -}; - -static inline void -V3D33_GL_SHADER_STATE_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_GL_SHADER_STATE * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - __gen_emit_reloc(data, &values->address); - cl[ 1] = __gen_address_offset(&values->address) | - __gen_uint(values->number_of_attribute_arrays, 0, 4); - - cl[ 2] = __gen_address_offset(&values->address) >> 8; - - cl[ 3] = __gen_address_offset(&values->address) >> 16; - - cl[ 4] = __gen_address_offset(&values->address) >> 24; - -} - -#define V3D33_GL_SHADER_STATE_length 5 -#ifdef __gen_unpack_address -static inline void -V3D33_GL_SHADER_STATE_unpack(const uint8_t * restrict cl, - struct V3D33_GL_SHADER_STATE * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->address = __gen_unpack_address(cl, 13, 39); - values->number_of_attribute_arrays = __gen_unpack_uint(cl, 8, 12); -} -#endif - - -#define V3D33_TRANSFORM_FEEDBACK_ENABLE_opcode 74 -#define V3D33_TRANSFORM_FEEDBACK_ENABLE_header \ - .opcode = 74 - -struct V3D33_TRANSFORM_FEEDBACK_ENABLE { - uint32_t opcode; - uint32_t number_of_32_bit_output_buffer_address_following; - uint32_t number_of_16_bit_output_data_specs_following; -}; - -static inline void -V3D33_TRANSFORM_FEEDBACK_ENABLE_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_TRANSFORM_FEEDBACK_ENABLE * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = 0; - cl[ 2] = __gen_uint(values->number_of_32_bit_output_buffer_address_following, 0, 2) | - __gen_uint(values->number_of_16_bit_output_data_specs_following, 3, 7); - -} - -#define V3D33_TRANSFORM_FEEDBACK_ENABLE_length 3 -#ifdef __gen_unpack_address -static inline void -V3D33_TRANSFORM_FEEDBACK_ENABLE_unpack(const uint8_t * restrict cl, - struct V3D33_TRANSFORM_FEEDBACK_ENABLE * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->number_of_32_bit_output_buffer_address_following = __gen_unpack_uint(cl, 16, 18); - values->number_of_16_bit_output_data_specs_following = __gen_unpack_uint(cl, 19, 23); -} -#endif - - -#define V3D33_FLUSH_TRANSFORM_FEEDBACK_DATA_opcode 75 -#define V3D33_FLUSH_TRANSFORM_FEEDBACK_DATA_header\ - .opcode = 75 - -struct V3D33_FLUSH_TRANSFORM_FEEDBACK_DATA { - uint32_t opcode; -}; - -static inline void -V3D33_FLUSH_TRANSFORM_FEEDBACK_DATA_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_FLUSH_TRANSFORM_FEEDBACK_DATA * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D33_FLUSH_TRANSFORM_FEEDBACK_DATA_length 1 -#ifdef __gen_unpack_address -static inline void -V3D33_FLUSH_TRANSFORM_FEEDBACK_DATA_unpack(const uint8_t * restrict cl, - struct V3D33_FLUSH_TRANSFORM_FEEDBACK_DATA * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D33_TRANSFORM_FEEDBACK_OUTPUT_DATA_SPEC_header\ - - -struct V3D33_TRANSFORM_FEEDBACK_OUTPUT_DATA_SPEC { - uint32_t first_shaded_vertex_value_to_output; - uint32_t number_of_consecutive_vertex_values_to_output_as_32_bit_values_minus_1; - uint32_t output_buffer_to_write_to; -}; - -static inline void -V3D33_TRANSFORM_FEEDBACK_OUTPUT_DATA_SPEC_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_TRANSFORM_FEEDBACK_OUTPUT_DATA_SPEC * restrict values) -{ - cl[ 0] = __gen_uint(values->first_shaded_vertex_value_to_output, 0, 7); - - cl[ 1] = __gen_uint(values->number_of_consecutive_vertex_values_to_output_as_32_bit_values_minus_1, 0, 3) | - __gen_uint(values->output_buffer_to_write_to, 4, 5); - -} - -#define V3D33_TRANSFORM_FEEDBACK_OUTPUT_DATA_SPEC_length 2 -#ifdef __gen_unpack_address -static inline void -V3D33_TRANSFORM_FEEDBACK_OUTPUT_DATA_SPEC_unpack(const uint8_t * restrict cl, - struct V3D33_TRANSFORM_FEEDBACK_OUTPUT_DATA_SPEC * restrict values) -{ - values->first_shaded_vertex_value_to_output = __gen_unpack_uint(cl, 0, 7); - values->number_of_consecutive_vertex_values_to_output_as_32_bit_values_minus_1 = __gen_unpack_uint(cl, 8, 11); - values->output_buffer_to_write_to = __gen_unpack_uint(cl, 12, 13); -} -#endif - - -#define V3D33_TRANSFORM_FEEDBACK_OUTPUT_ADDRESS_header\ - - -struct V3D33_TRANSFORM_FEEDBACK_OUTPUT_ADDRESS { - __gen_address_type address; -}; - -static inline void -V3D33_TRANSFORM_FEEDBACK_OUTPUT_ADDRESS_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_TRANSFORM_FEEDBACK_OUTPUT_ADDRESS * restrict values) -{ - __gen_emit_reloc(data, &values->address); - cl[ 0] = __gen_address_offset(&values->address); - - cl[ 1] = __gen_address_offset(&values->address) >> 8; - - cl[ 2] = __gen_address_offset(&values->address) >> 16; - - cl[ 3] = __gen_address_offset(&values->address) >> 24; - -} - -#define V3D33_TRANSFORM_FEEDBACK_OUTPUT_ADDRESS_length 4 -#ifdef __gen_unpack_address -static inline void -V3D33_TRANSFORM_FEEDBACK_OUTPUT_ADDRESS_unpack(const uint8_t * restrict cl, - struct V3D33_TRANSFORM_FEEDBACK_OUTPUT_ADDRESS * restrict values) -{ - values->address = __gen_unpack_address(cl, 0, 31); -} -#endif - - -#define V3D33_STENCIL_CONFIG_opcode 80 -#define V3D33_STENCIL_CONFIG_header \ - .opcode = 80 - -struct V3D33_STENCIL_CONFIG { - uint32_t opcode; - uint32_t stencil_write_mask; - bool back_config; - bool front_config; - enum V3D33_Stencil_Op stencil_pass_op; - enum V3D33_Stencil_Op depth_test_fail_op; - enum V3D33_Stencil_Op stencil_test_fail_op; - enum V3D33_Compare_Function stencil_test_function; - uint32_t stencil_test_mask; - uint32_t stencil_ref_value; -}; - -static inline void -V3D33_STENCIL_CONFIG_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_STENCIL_CONFIG * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->stencil_ref_value, 0, 7); - - cl[ 2] = __gen_uint(values->stencil_test_mask, 0, 7); - - cl[ 3] = __gen_uint(values->depth_test_fail_op, 6, 8) | - __gen_uint(values->stencil_test_fail_op, 3, 5) | - __gen_uint(values->stencil_test_function, 0, 2); - - cl[ 4] = __gen_uint(values->back_config, 5, 5) | - __gen_uint(values->front_config, 4, 4) | - __gen_uint(values->stencil_pass_op, 1, 3) | - __gen_uint(values->depth_test_fail_op, 6, 8) >> 8; - - cl[ 5] = __gen_uint(values->stencil_write_mask, 0, 7); - -} - -#define V3D33_STENCIL_CONFIG_length 6 -#ifdef __gen_unpack_address -static inline void -V3D33_STENCIL_CONFIG_unpack(const uint8_t * restrict cl, - struct V3D33_STENCIL_CONFIG * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->stencil_write_mask = __gen_unpack_uint(cl, 40, 47); - values->back_config = __gen_unpack_uint(cl, 37, 37); - values->front_config = __gen_unpack_uint(cl, 36, 36); - values->stencil_pass_op = __gen_unpack_uint(cl, 33, 35); - values->depth_test_fail_op = __gen_unpack_uint(cl, 30, 32); - values->stencil_test_fail_op = __gen_unpack_uint(cl, 27, 29); - values->stencil_test_function = __gen_unpack_uint(cl, 24, 26); - values->stencil_test_mask = __gen_unpack_uint(cl, 16, 23); - values->stencil_ref_value = __gen_unpack_uint(cl, 8, 15); -} -#endif - - -#define V3D33_BLEND_CONFIG_opcode 84 -#define V3D33_BLEND_CONFIG_header \ - .opcode = 84 - -struct V3D33_BLEND_CONFIG { - uint32_t opcode; - uint32_t vg_coverage_modes; - enum V3D33_Blend_Factor colour_blend_dst_factor; - enum V3D33_Blend_Factor colour_blend_src_factor; - enum V3D33_Blend_Mode colour_blend_mode; - enum V3D33_Blend_Factor alpha_blend_dst_factor; - enum V3D33_Blend_Factor alpha_blend_src_factor; - enum V3D33_Blend_Mode alpha_blend_mode; -}; - -static inline void -V3D33_BLEND_CONFIG_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_BLEND_CONFIG * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->alpha_blend_src_factor, 4, 7) | - __gen_uint(values->alpha_blend_mode, 0, 3); - - cl[ 2] = __gen_uint(values->colour_blend_mode, 4, 7) | - __gen_uint(values->alpha_blend_dst_factor, 0, 3); - - cl[ 3] = __gen_uint(values->colour_blend_dst_factor, 4, 7) | - __gen_uint(values->colour_blend_src_factor, 0, 3); - - cl[ 4] = __gen_uint(values->vg_coverage_modes, 4, 5); - -} - -#define V3D33_BLEND_CONFIG_length 5 -#ifdef __gen_unpack_address -static inline void -V3D33_BLEND_CONFIG_unpack(const uint8_t * restrict cl, - struct V3D33_BLEND_CONFIG * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->vg_coverage_modes = __gen_unpack_uint(cl, 36, 37); - values->colour_blend_dst_factor = __gen_unpack_uint(cl, 28, 31); - values->colour_blend_src_factor = __gen_unpack_uint(cl, 24, 27); - values->colour_blend_mode = __gen_unpack_uint(cl, 20, 23); - values->alpha_blend_dst_factor = __gen_unpack_uint(cl, 16, 19); - values->alpha_blend_src_factor = __gen_unpack_uint(cl, 12, 15); - values->alpha_blend_mode = __gen_unpack_uint(cl, 8, 11); -} -#endif - - -#define V3D33_BLEND_CONSTANT_COLOUR_opcode 86 -#define V3D33_BLEND_CONSTANT_COLOUR_header \ - .opcode = 86 - -struct V3D33_BLEND_CONSTANT_COLOUR { - uint32_t opcode; - uint32_t alpha_f16; - uint32_t blue_f16; - uint32_t green_f16; - uint32_t red_f16; -}; - -static inline void -V3D33_BLEND_CONSTANT_COLOUR_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_BLEND_CONSTANT_COLOUR * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->red_f16, 0, 15); - - cl[ 2] = __gen_uint(values->red_f16, 0, 15) >> 8; - - cl[ 3] = __gen_uint(values->green_f16, 0, 15); - - cl[ 4] = __gen_uint(values->green_f16, 0, 15) >> 8; - - cl[ 5] = __gen_uint(values->blue_f16, 0, 15); - - cl[ 6] = __gen_uint(values->blue_f16, 0, 15) >> 8; - - cl[ 7] = __gen_uint(values->alpha_f16, 0, 15); - - cl[ 8] = __gen_uint(values->alpha_f16, 0, 15) >> 8; - -} - -#define V3D33_BLEND_CONSTANT_COLOUR_length 9 -#ifdef __gen_unpack_address -static inline void -V3D33_BLEND_CONSTANT_COLOUR_unpack(const uint8_t * restrict cl, - struct V3D33_BLEND_CONSTANT_COLOUR * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->alpha_f16 = __gen_unpack_uint(cl, 56, 71); - values->blue_f16 = __gen_unpack_uint(cl, 40, 55); - values->green_f16 = __gen_unpack_uint(cl, 24, 39); - values->red_f16 = __gen_unpack_uint(cl, 8, 23); -} -#endif - - -#define V3D33_COLOUR_WRITE_MASKS_opcode 87 -#define V3D33_COLOUR_WRITE_MASKS_header \ - .opcode = 87 - -struct V3D33_COLOUR_WRITE_MASKS { - uint32_t opcode; - uint32_t reserved; - uint32_t render_target_3_per_colour_component_write_masks; - uint32_t render_target_2_per_colour_component_write_masks; - uint32_t render_target_1_per_colour_component_write_masks; - uint32_t render_target_0_per_colour_component_write_masks; -}; - -static inline void -V3D33_COLOUR_WRITE_MASKS_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_COLOUR_WRITE_MASKS * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->render_target_1_per_colour_component_write_masks, 4, 7) | - __gen_uint(values->render_target_0_per_colour_component_write_masks, 0, 3); - - cl[ 2] = __gen_uint(values->render_target_3_per_colour_component_write_masks, 4, 7) | - __gen_uint(values->render_target_2_per_colour_component_write_masks, 0, 3); - - cl[ 3] = __gen_uint(values->reserved, 0, 15); - - cl[ 4] = __gen_uint(values->reserved, 0, 15) >> 8; - -} - -#define V3D33_COLOUR_WRITE_MASKS_length 5 -#ifdef __gen_unpack_address -static inline void -V3D33_COLOUR_WRITE_MASKS_unpack(const uint8_t * restrict cl, - struct V3D33_COLOUR_WRITE_MASKS * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->reserved = __gen_unpack_uint(cl, 24, 39); - values->render_target_3_per_colour_component_write_masks = __gen_unpack_uint(cl, 20, 23); - values->render_target_2_per_colour_component_write_masks = __gen_unpack_uint(cl, 16, 19); - values->render_target_1_per_colour_component_write_masks = __gen_unpack_uint(cl, 12, 15); - values->render_target_0_per_colour_component_write_masks = __gen_unpack_uint(cl, 8, 11); -} -#endif - - -#define V3D33_CONFIGURATION_BITS_opcode 96 -#define V3D33_CONFIGURATION_BITS_header \ - .opcode = 96 - -struct V3D33_CONFIGURATION_BITS { - uint32_t opcode; - bool direct3d_provoking_vertex; - bool direct3d_point_fill_mode; - bool blend_enable; - bool stencil_enable; - bool early_z_updates_enable; - bool early_z_enable; - bool z_updates_enable; - enum V3D33_Compare_Function depth_test_function; - bool direct3d_wireframe_triangles_mode; - uint32_t coverage_update_mode; - bool coverage_pipe_select; - uint32_t rasterizer_oversample_mode; - uint32_t line_rasterization; - bool enable_depth_offset; - bool clockwise_primitives; - bool enable_reverse_facing_primitive; - bool enable_forward_facing_primitive; -}; - -static inline void -V3D33_CONFIGURATION_BITS_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_CONFIGURATION_BITS * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->rasterizer_oversample_mode, 6, 7) | - __gen_uint(values->line_rasterization, 4, 5) | - __gen_uint(values->enable_depth_offset, 3, 3) | - __gen_uint(values->clockwise_primitives, 2, 2) | - __gen_uint(values->enable_reverse_facing_primitive, 1, 1) | - __gen_uint(values->enable_forward_facing_primitive, 0, 0); - - cl[ 2] = __gen_uint(values->z_updates_enable, 7, 7) | - __gen_uint(values->depth_test_function, 4, 6) | - __gen_uint(values->direct3d_wireframe_triangles_mode, 3, 3) | - __gen_uint(values->coverage_update_mode, 1, 2) | - __gen_uint(values->coverage_pipe_select, 0, 0); - - cl[ 3] = __gen_uint(values->direct3d_provoking_vertex, 5, 5) | - __gen_uint(values->direct3d_point_fill_mode, 4, 4) | - __gen_uint(values->blend_enable, 3, 3) | - __gen_uint(values->stencil_enable, 2, 2) | - __gen_uint(values->early_z_updates_enable, 1, 1) | - __gen_uint(values->early_z_enable, 0, 0); - -} - -#define V3D33_CONFIGURATION_BITS_length 4 -#ifdef __gen_unpack_address -static inline void -V3D33_CONFIGURATION_BITS_unpack(const uint8_t * restrict cl, - struct V3D33_CONFIGURATION_BITS * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->direct3d_provoking_vertex = __gen_unpack_uint(cl, 29, 29); - values->direct3d_point_fill_mode = __gen_unpack_uint(cl, 28, 28); - values->blend_enable = __gen_unpack_uint(cl, 27, 27); - values->stencil_enable = __gen_unpack_uint(cl, 26, 26); - values->early_z_updates_enable = __gen_unpack_uint(cl, 25, 25); - values->early_z_enable = __gen_unpack_uint(cl, 24, 24); - values->z_updates_enable = __gen_unpack_uint(cl, 23, 23); - values->depth_test_function = __gen_unpack_uint(cl, 20, 22); - values->direct3d_wireframe_triangles_mode = __gen_unpack_uint(cl, 19, 19); - values->coverage_update_mode = __gen_unpack_uint(cl, 17, 18); - values->coverage_pipe_select = __gen_unpack_uint(cl, 16, 16); - values->rasterizer_oversample_mode = __gen_unpack_uint(cl, 14, 15); - values->line_rasterization = __gen_unpack_uint(cl, 12, 13); - values->enable_depth_offset = __gen_unpack_uint(cl, 11, 11); - values->clockwise_primitives = __gen_unpack_uint(cl, 10, 10); - values->enable_reverse_facing_primitive = __gen_unpack_uint(cl, 9, 9); - values->enable_forward_facing_primitive = __gen_unpack_uint(cl, 8, 8); -} -#endif - - -#define V3D33_ZERO_ALL_FLAT_SHADE_FLAGS_opcode 97 -#define V3D33_ZERO_ALL_FLAT_SHADE_FLAGS_header \ - .opcode = 97 - -struct V3D33_ZERO_ALL_FLAT_SHADE_FLAGS { - uint32_t opcode; -}; - -static inline void -V3D33_ZERO_ALL_FLAT_SHADE_FLAGS_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_ZERO_ALL_FLAT_SHADE_FLAGS * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D33_ZERO_ALL_FLAT_SHADE_FLAGS_length 1 -#ifdef __gen_unpack_address -static inline void -V3D33_ZERO_ALL_FLAT_SHADE_FLAGS_unpack(const uint8_t * restrict cl, - struct V3D33_ZERO_ALL_FLAT_SHADE_FLAGS * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D33_FLAT_SHADE_FLAGS_opcode 98 -#define V3D33_FLAT_SHADE_FLAGS_header \ - .opcode = 98 - -struct V3D33_FLAT_SHADE_FLAGS { - uint32_t opcode; - uint32_t flat_shade_flags_for_varyings_v024; - uint32_t action_for_flat_shade_flags_of_higher_numbered_varyings; - uint32_t action_for_flat_shade_flags_of_lower_numbered_varyings; - uint32_t varying_offset_v0; -}; - -static inline void -V3D33_FLAT_SHADE_FLAGS_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_FLAT_SHADE_FLAGS * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->action_for_flat_shade_flags_of_higher_numbered_varyings, 6, 7) | - __gen_uint(values->action_for_flat_shade_flags_of_lower_numbered_varyings, 4, 5) | - __gen_uint(values->varying_offset_v0, 0, 3); - - cl[ 2] = __gen_uint(values->flat_shade_flags_for_varyings_v024, 0, 23); - - cl[ 3] = __gen_uint(values->flat_shade_flags_for_varyings_v024, 0, 23) >> 8; - - cl[ 4] = __gen_uint(values->flat_shade_flags_for_varyings_v024, 0, 23) >> 16; - -} - -#define V3D33_FLAT_SHADE_FLAGS_length 5 -#ifdef __gen_unpack_address -static inline void -V3D33_FLAT_SHADE_FLAGS_unpack(const uint8_t * restrict cl, - struct V3D33_FLAT_SHADE_FLAGS * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->flat_shade_flags_for_varyings_v024 = __gen_unpack_uint(cl, 16, 39); - values->action_for_flat_shade_flags_of_higher_numbered_varyings = __gen_unpack_uint(cl, 14, 15); - values->action_for_flat_shade_flags_of_lower_numbered_varyings = __gen_unpack_uint(cl, 12, 13); - values->varying_offset_v0 = __gen_unpack_uint(cl, 8, 11); -} -#endif - - -#define V3D33_POINT_SIZE_opcode 104 -#define V3D33_POINT_SIZE_header \ - .opcode = 104 - -struct V3D33_POINT_SIZE { - uint32_t opcode; - float point_size; -}; - -static inline void -V3D33_POINT_SIZE_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_POINT_SIZE * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - - memcpy(&cl[1], &values->point_size, sizeof(values->point_size)); -} - -#define V3D33_POINT_SIZE_length 5 -#ifdef __gen_unpack_address -static inline void -V3D33_POINT_SIZE_unpack(const uint8_t * restrict cl, - struct V3D33_POINT_SIZE * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->point_size = __gen_unpack_float(cl, 8, 39); -} -#endif - - -#define V3D33_LINE_WIDTH_opcode 105 -#define V3D33_LINE_WIDTH_header \ - .opcode = 105 - -struct V3D33_LINE_WIDTH { - uint32_t opcode; - float line_width; -}; - -static inline void -V3D33_LINE_WIDTH_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_LINE_WIDTH * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - - memcpy(&cl[1], &values->line_width, sizeof(values->line_width)); -} - -#define V3D33_LINE_WIDTH_length 5 -#ifdef __gen_unpack_address -static inline void -V3D33_LINE_WIDTH_unpack(const uint8_t * restrict cl, - struct V3D33_LINE_WIDTH * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->line_width = __gen_unpack_float(cl, 8, 39); -} -#endif - - -#define V3D33_DEPTH_OFFSET_opcode 106 -#define V3D33_DEPTH_OFFSET_header \ - .opcode = 106 - -struct V3D33_DEPTH_OFFSET { - uint32_t opcode; - uint32_t depth_offset_units; - uint32_t depth_offset_factor; -}; - -static inline void -V3D33_DEPTH_OFFSET_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_DEPTH_OFFSET * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->depth_offset_factor, 0, 15); - - cl[ 2] = __gen_uint(values->depth_offset_factor, 0, 15) >> 8; - - cl[ 3] = __gen_uint(values->depth_offset_units, 0, 15); - - cl[ 4] = __gen_uint(values->depth_offset_units, 0, 15) >> 8; - -} - -#define V3D33_DEPTH_OFFSET_length 5 -#ifdef __gen_unpack_address -static inline void -V3D33_DEPTH_OFFSET_unpack(const uint8_t * restrict cl, - struct V3D33_DEPTH_OFFSET * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->depth_offset_units = __gen_unpack_uint(cl, 24, 39); - values->depth_offset_factor = __gen_unpack_uint(cl, 8, 23); -} -#endif - - -#define V3D33_CLIP_WINDOW_opcode 107 -#define V3D33_CLIP_WINDOW_header \ - .opcode = 107 - -struct V3D33_CLIP_WINDOW { - uint32_t opcode; - uint32_t clip_window_height_in_pixels; - uint32_t clip_window_width_in_pixels; - uint32_t clip_window_bottom_pixel_coordinate; - uint32_t clip_window_left_pixel_coordinate; -}; - -static inline void -V3D33_CLIP_WINDOW_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_CLIP_WINDOW * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->clip_window_left_pixel_coordinate, 0, 15); - - cl[ 2] = __gen_uint(values->clip_window_left_pixel_coordinate, 0, 15) >> 8; - - cl[ 3] = __gen_uint(values->clip_window_bottom_pixel_coordinate, 0, 15); - - cl[ 4] = __gen_uint(values->clip_window_bottom_pixel_coordinate, 0, 15) >> 8; - - cl[ 5] = __gen_uint(values->clip_window_width_in_pixels, 0, 15); - - cl[ 6] = __gen_uint(values->clip_window_width_in_pixels, 0, 15) >> 8; - - cl[ 7] = __gen_uint(values->clip_window_height_in_pixels, 0, 15); - - cl[ 8] = __gen_uint(values->clip_window_height_in_pixels, 0, 15) >> 8; - -} - -#define V3D33_CLIP_WINDOW_length 9 -#ifdef __gen_unpack_address -static inline void -V3D33_CLIP_WINDOW_unpack(const uint8_t * restrict cl, - struct V3D33_CLIP_WINDOW * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->clip_window_height_in_pixels = __gen_unpack_uint(cl, 56, 71); - values->clip_window_width_in_pixels = __gen_unpack_uint(cl, 40, 55); - values->clip_window_bottom_pixel_coordinate = __gen_unpack_uint(cl, 24, 39); - values->clip_window_left_pixel_coordinate = __gen_unpack_uint(cl, 8, 23); -} -#endif - - -#define V3D33_VIEWPORT_OFFSET_opcode 108 -#define V3D33_VIEWPORT_OFFSET_header \ - .opcode = 108 - -struct V3D33_VIEWPORT_OFFSET { - uint32_t opcode; - float viewport_centre_y_coordinate; - float viewport_centre_x_coordinate; -}; - -static inline void -V3D33_VIEWPORT_OFFSET_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_VIEWPORT_OFFSET * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_sfixed(values->viewport_centre_x_coordinate, 0, 31, 8); - - cl[ 2] = __gen_sfixed(values->viewport_centre_x_coordinate, 0, 31, 8) >> 8; - - cl[ 3] = __gen_sfixed(values->viewport_centre_x_coordinate, 0, 31, 8) >> 16; - - cl[ 4] = __gen_sfixed(values->viewport_centre_x_coordinate, 0, 31, 8) >> 24; - - cl[ 5] = __gen_sfixed(values->viewport_centre_y_coordinate, 0, 31, 8); - - cl[ 6] = __gen_sfixed(values->viewport_centre_y_coordinate, 0, 31, 8) >> 8; - - cl[ 7] = __gen_sfixed(values->viewport_centre_y_coordinate, 0, 31, 8) >> 16; - - cl[ 8] = __gen_sfixed(values->viewport_centre_y_coordinate, 0, 31, 8) >> 24; - -} - -#define V3D33_VIEWPORT_OFFSET_length 9 -#ifdef __gen_unpack_address -static inline void -V3D33_VIEWPORT_OFFSET_unpack(const uint8_t * restrict cl, - struct V3D33_VIEWPORT_OFFSET * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->viewport_centre_y_coordinate = __gen_unpack_sfixed(cl, 40, 71, 8); - values->viewport_centre_x_coordinate = __gen_unpack_sfixed(cl, 8, 39, 8); -} -#endif - - -#define V3D33_CLIPPER_Z_MIN_MAX_CLIPPING_PLANES_opcode 109 -#define V3D33_CLIPPER_Z_MIN_MAX_CLIPPING_PLANES_header\ - .opcode = 109 - -struct V3D33_CLIPPER_Z_MIN_MAX_CLIPPING_PLANES { - uint32_t opcode; - float maximum_zw; - float minimum_zw; -}; - -static inline void -V3D33_CLIPPER_Z_MIN_MAX_CLIPPING_PLANES_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_CLIPPER_Z_MIN_MAX_CLIPPING_PLANES * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - - memcpy(&cl[1], &values->minimum_zw, sizeof(values->minimum_zw)); - - memcpy(&cl[5], &values->maximum_zw, sizeof(values->maximum_zw)); -} - -#define V3D33_CLIPPER_Z_MIN_MAX_CLIPPING_PLANES_length 9 -#ifdef __gen_unpack_address -static inline void -V3D33_CLIPPER_Z_MIN_MAX_CLIPPING_PLANES_unpack(const uint8_t * restrict cl, - struct V3D33_CLIPPER_Z_MIN_MAX_CLIPPING_PLANES * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->maximum_zw = __gen_unpack_float(cl, 40, 71); - values->minimum_zw = __gen_unpack_float(cl, 8, 39); -} -#endif - - -#define V3D33_CLIPPER_XY_SCALING_opcode 110 -#define V3D33_CLIPPER_XY_SCALING_header \ - .opcode = 110 - -struct V3D33_CLIPPER_XY_SCALING { - uint32_t opcode; - float viewport_half_height_in_1_256th_of_pixel; - float viewport_half_width_in_1_256th_of_pixel; -}; - -static inline void -V3D33_CLIPPER_XY_SCALING_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_CLIPPER_XY_SCALING * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - - memcpy(&cl[1], &values->viewport_half_width_in_1_256th_of_pixel, sizeof(values->viewport_half_width_in_1_256th_of_pixel)); - - memcpy(&cl[5], &values->viewport_half_height_in_1_256th_of_pixel, sizeof(values->viewport_half_height_in_1_256th_of_pixel)); -} - -#define V3D33_CLIPPER_XY_SCALING_length 9 -#ifdef __gen_unpack_address -static inline void -V3D33_CLIPPER_XY_SCALING_unpack(const uint8_t * restrict cl, - struct V3D33_CLIPPER_XY_SCALING * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->viewport_half_height_in_1_256th_of_pixel = __gen_unpack_float(cl, 40, 71); - values->viewport_half_width_in_1_256th_of_pixel = __gen_unpack_float(cl, 8, 39); -} -#endif - - -#define V3D33_CLIPPER_Z_SCALE_AND_OFFSET_opcode 111 -#define V3D33_CLIPPER_Z_SCALE_AND_OFFSET_header \ - .opcode = 111 - -struct V3D33_CLIPPER_Z_SCALE_AND_OFFSET { - uint32_t opcode; - float viewport_z_offset_zc_to_zs; - float viewport_z_scale_zc_to_zs; -}; - -static inline void -V3D33_CLIPPER_Z_SCALE_AND_OFFSET_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_CLIPPER_Z_SCALE_AND_OFFSET * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - - memcpy(&cl[1], &values->viewport_z_scale_zc_to_zs, sizeof(values->viewport_z_scale_zc_to_zs)); - - memcpy(&cl[5], &values->viewport_z_offset_zc_to_zs, sizeof(values->viewport_z_offset_zc_to_zs)); -} - -#define V3D33_CLIPPER_Z_SCALE_AND_OFFSET_length 9 -#ifdef __gen_unpack_address -static inline void -V3D33_CLIPPER_Z_SCALE_AND_OFFSET_unpack(const uint8_t * restrict cl, - struct V3D33_CLIPPER_Z_SCALE_AND_OFFSET * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->viewport_z_offset_zc_to_zs = __gen_unpack_float(cl, 40, 71); - values->viewport_z_scale_zc_to_zs = __gen_unpack_float(cl, 8, 39); -} -#endif - - -#define V3D33_TILE_BINNING_MODE_CONFIGURATION_PART1_opcode 120 -#define V3D33_TILE_BINNING_MODE_CONFIGURATION_PART1_header\ - .opcode = 120, \ - .auto_initialize_tile_state_data_array = 1, \ - .sub_id = 0 - -struct V3D33_TILE_BINNING_MODE_CONFIGURATION_PART1 { - uint32_t opcode; - bool double_buffer_in_non_ms_mode; - bool multisample_mode_4x; - uint32_t maximum_bpp_of_all_render_targets; -#define RENDER_TARGET_MAXIMUM_32BPP 0 -#define RENDER_TARGET_MAXIMUM_64BPP 1 -#define RENDER_TARGET_MAXIMUM_128BPP 2 - uint32_t number_of_render_targets; - uint32_t height_in_tiles; - uint32_t width_in_tiles; - __gen_address_type tile_state_data_array_base_address; - uint32_t tile_allocation_block_size; -#define TILE_ALLOCATION_BLOCK_SIZE_64B 0 -#define TILE_ALLOCATION_BLOCK_SIZE_128B 1 -#define TILE_ALLOCATION_BLOCK_SIZE_256B 2 - uint32_t tile_allocation_initial_block_size; -#define TILE_ALLOCATION_INITIAL_BLOCK_SIZE_64B 0 -#define TILE_ALLOCATION_INITIAL_BLOCK_SIZE_128B 1 -#define TILE_ALLOCATION_INITIAL_BLOCK_SIZE_256B 2 - bool auto_initialize_tile_state_data_array; - uint32_t sub_id; -}; - -static inline void -V3D33_TILE_BINNING_MODE_CONFIGURATION_PART1_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_TILE_BINNING_MODE_CONFIGURATION_PART1 * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - __gen_emit_reloc(data, &values->tile_state_data_array_base_address); - cl[ 1] = __gen_address_offset(&values->tile_state_data_array_base_address) | - __gen_uint(values->tile_allocation_block_size, 4, 5) | - __gen_uint(values->tile_allocation_initial_block_size, 2, 3) | - __gen_uint(values->auto_initialize_tile_state_data_array, 1, 1) | - __gen_uint(values->sub_id, 0, 0); - - cl[ 2] = __gen_address_offset(&values->tile_state_data_array_base_address) >> 8; - - cl[ 3] = __gen_address_offset(&values->tile_state_data_array_base_address) >> 16; - - cl[ 4] = __gen_address_offset(&values->tile_state_data_array_base_address) >> 24; - - cl[ 5] = __gen_uint(values->width_in_tiles, 0, 11); - - cl[ 6] = __gen_uint(values->height_in_tiles, 4, 15) | - __gen_uint(values->width_in_tiles, 0, 11) >> 8; - - cl[ 7] = __gen_uint(values->height_in_tiles, 4, 15) >> 8; - - cl[ 8] = __gen_uint(values->double_buffer_in_non_ms_mode, 7, 7) | - __gen_uint(values->multisample_mode_4x, 6, 6) | - __gen_uint(values->maximum_bpp_of_all_render_targets, 4, 5) | - __gen_uint(values->number_of_render_targets, 0, 3); - -} - -#define V3D33_TILE_BINNING_MODE_CONFIGURATION_PART1_length 9 -#ifdef __gen_unpack_address -static inline void -V3D33_TILE_BINNING_MODE_CONFIGURATION_PART1_unpack(const uint8_t * restrict cl, - struct V3D33_TILE_BINNING_MODE_CONFIGURATION_PART1 * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->double_buffer_in_non_ms_mode = __gen_unpack_uint(cl, 71, 71); - values->multisample_mode_4x = __gen_unpack_uint(cl, 70, 70); - values->maximum_bpp_of_all_render_targets = __gen_unpack_uint(cl, 68, 69); - values->number_of_render_targets = __gen_unpack_uint(cl, 64, 67); - values->height_in_tiles = __gen_unpack_uint(cl, 52, 63); - values->width_in_tiles = __gen_unpack_uint(cl, 40, 51); - values->tile_state_data_array_base_address = __gen_unpack_address(cl, 8, 39); - values->tile_allocation_block_size = __gen_unpack_uint(cl, 12, 13); - values->tile_allocation_initial_block_size = __gen_unpack_uint(cl, 10, 11); - values->auto_initialize_tile_state_data_array = __gen_unpack_uint(cl, 9, 9); - values->sub_id = __gen_unpack_uint(cl, 8, 8); -} -#endif - - -#define V3D33_TILE_BINNING_MODE_CONFIGURATION_PART2_opcode 120 -#define V3D33_TILE_BINNING_MODE_CONFIGURATION_PART2_header\ - .opcode = 120, \ - .sub_id = 1 - -struct V3D33_TILE_BINNING_MODE_CONFIGURATION_PART2 { - uint32_t opcode; - __gen_address_type tile_allocation_memory_address; - uint32_t tile_allocation_memory_size; - uint32_t sub_id; -}; - -static inline void -V3D33_TILE_BINNING_MODE_CONFIGURATION_PART2_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_TILE_BINNING_MODE_CONFIGURATION_PART2 * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->tile_allocation_memory_size, 0, 31) | - __gen_uint(values->sub_id, 0, 0); - - cl[ 2] = __gen_uint(values->tile_allocation_memory_size, 0, 31) >> 8; - - cl[ 3] = __gen_uint(values->tile_allocation_memory_size, 0, 31) >> 16; - - cl[ 4] = __gen_uint(values->tile_allocation_memory_size, 0, 31) >> 24; - - __gen_emit_reloc(data, &values->tile_allocation_memory_address); - cl[ 5] = __gen_address_offset(&values->tile_allocation_memory_address); - - cl[ 6] = __gen_address_offset(&values->tile_allocation_memory_address) >> 8; - - cl[ 7] = __gen_address_offset(&values->tile_allocation_memory_address) >> 16; - - cl[ 8] = __gen_address_offset(&values->tile_allocation_memory_address) >> 24; - -} - -#define V3D33_TILE_BINNING_MODE_CONFIGURATION_PART2_length 9 -#ifdef __gen_unpack_address -static inline void -V3D33_TILE_BINNING_MODE_CONFIGURATION_PART2_unpack(const uint8_t * restrict cl, - struct V3D33_TILE_BINNING_MODE_CONFIGURATION_PART2 * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->tile_allocation_memory_address = __gen_unpack_address(cl, 40, 71); - values->tile_allocation_memory_size = __gen_unpack_uint(cl, 8, 39); - values->sub_id = __gen_unpack_uint(cl, 8, 8); -} -#endif - - -#define V3D33_TILE_RENDERING_MODE_CONFIGURATION_COMMON_CONFIGURATION_opcode 121 -#define V3D33_TILE_RENDERING_MODE_CONFIGURATION_COMMON_CONFIGURATION_header\ - .opcode = 121, \ - .sub_id = 0 - -struct V3D33_TILE_RENDERING_MODE_CONFIGURATION_COMMON_CONFIGURATION { - uint32_t opcode; - uint32_t disable_render_target_stores; - bool enable_z_store; - bool enable_stencil_store; - bool early_z_disable; - uint32_t early_z_test_and_update_direction; -#define EARLY_Z_DIRECTION_LT_LE 0 -#define EARLY_Z_DIRECTION_GT_GE 1 - bool select_coverage_mode; - bool double_buffer_in_non_ms_mode; - bool multisample_mode_4x; - uint32_t maximum_bpp_of_all_render_targets; -#define RENDER_TARGET_MAXIMUM_32BPP 0 -#define RENDER_TARGET_MAXIMUM_64BPP 1 -#define RENDER_TARGET_MAXIMUM_128BPP 2 - uint32_t image_height_pixels; - uint32_t image_width_pixels; - uint32_t number_of_render_targets_minus_1; - uint32_t sub_id; -}; - -static inline void -V3D33_TILE_RENDERING_MODE_CONFIGURATION_COMMON_CONFIGURATION_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_TILE_RENDERING_MODE_CONFIGURATION_COMMON_CONFIGURATION * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->number_of_render_targets_minus_1, 4, 7) | - __gen_uint(values->sub_id, 0, 3); - - cl[ 2] = __gen_uint(values->image_width_pixels, 0, 15); - - cl[ 3] = __gen_uint(values->image_width_pixels, 0, 15) >> 8; - - cl[ 4] = __gen_uint(values->image_height_pixels, 0, 15); - - cl[ 5] = __gen_uint(values->image_height_pixels, 0, 15) >> 8; - - cl[ 6] = __gen_uint(values->early_z_disable, 6, 6) | - __gen_uint(values->early_z_test_and_update_direction, 5, 5) | - __gen_uint(values->select_coverage_mode, 4, 4) | - __gen_uint(values->double_buffer_in_non_ms_mode, 3, 3) | - __gen_uint(values->multisample_mode_4x, 2, 2) | - __gen_uint(values->maximum_bpp_of_all_render_targets, 0, 1); - - cl[ 7] = __gen_uint(values->enable_z_store, 7, 7) | - __gen_uint(values->enable_stencil_store, 6, 6); - - cl[ 8] = __gen_uint(values->disable_render_target_stores, 0, 7); - -} - -#define V3D33_TILE_RENDERING_MODE_CONFIGURATION_COMMON_CONFIGURATION_length 9 -#ifdef __gen_unpack_address -static inline void -V3D33_TILE_RENDERING_MODE_CONFIGURATION_COMMON_CONFIGURATION_unpack(const uint8_t * restrict cl, - struct V3D33_TILE_RENDERING_MODE_CONFIGURATION_COMMON_CONFIGURATION * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->disable_render_target_stores = __gen_unpack_uint(cl, 64, 71); - values->enable_z_store = __gen_unpack_uint(cl, 63, 63); - values->enable_stencil_store = __gen_unpack_uint(cl, 62, 62); - values->early_z_disable = __gen_unpack_uint(cl, 54, 54); - values->early_z_test_and_update_direction = __gen_unpack_uint(cl, 53, 53); - values->select_coverage_mode = __gen_unpack_uint(cl, 52, 52); - values->double_buffer_in_non_ms_mode = __gen_unpack_uint(cl, 51, 51); - values->multisample_mode_4x = __gen_unpack_uint(cl, 50, 50); - values->maximum_bpp_of_all_render_targets = __gen_unpack_uint(cl, 48, 49); - values->image_height_pixels = __gen_unpack_uint(cl, 32, 47); - values->image_width_pixels = __gen_unpack_uint(cl, 16, 31); - values->number_of_render_targets_minus_1 = __gen_unpack_uint(cl, 12, 15); - values->sub_id = __gen_unpack_uint(cl, 8, 11); -} -#endif - - -#define V3D33_TILE_RENDERING_MODE_CONFIGURATION_RENDER_TARGET_CONFIG_opcode 121 -#define V3D33_TILE_RENDERING_MODE_CONFIGURATION_RENDER_TARGET_CONFIG_header\ - .opcode = 121, \ - .sub_id = 2 - -struct V3D33_TILE_RENDERING_MODE_CONFIGURATION_RENDER_TARGET_CONFIG { - uint32_t opcode; - __gen_address_type address; - uint32_t pad; - bool flip_y; - uint32_t memory_format; -#define MEMORY_FORMAT_RASTER 0 -#define MEMORY_FORMAT_LINEARTILE 1 -#define MEMORY_FORMAT_UB_LINEAR_1_UIF_BLOCK_WIDE 2 -#define MEMORY_FORMAT_UB_LINEAR_2_UIF_BLOCKS_WIDE 3 -#define MEMORY_FORMAT_UIF_NO_XOR 4 -#define MEMORY_FORMAT_UIF_XOR 5 - bool a_dithered; - bool bgr_dithered; - uint32_t output_image_format; -#define OUTPUT_IMAGE_FORMAT_SRGB8_ALPHA8 0 -#define OUTPUT_IMAGE_FORMAT_SRGB 1 -#define OUTPUT_IMAGE_FORMAT_RGB10_A2UI 2 -#define OUTPUT_IMAGE_FORMAT_RGB10_A2 3 -#define OUTPUT_IMAGE_FORMAT_ABGR1555 4 -#define OUTPUT_IMAGE_FORMAT_ALPHA_MASKED_ABGR1555 5 -#define OUTPUT_IMAGE_FORMAT_ABGR4444 6 -#define OUTPUT_IMAGE_FORMAT_BGR565 7 -#define OUTPUT_IMAGE_FORMAT_R11F_G11F_B10F 8 -#define OUTPUT_IMAGE_FORMAT_RGBA32F 9 -#define OUTPUT_IMAGE_FORMAT_RG32F 10 -#define OUTPUT_IMAGE_FORMAT_R32F 11 -#define OUTPUT_IMAGE_FORMAT_RGBA32I 12 -#define OUTPUT_IMAGE_FORMAT_RG32I 13 -#define OUTPUT_IMAGE_FORMAT_R32I 14 -#define OUTPUT_IMAGE_FORMAT_RGBA32UI 15 -#define OUTPUT_IMAGE_FORMAT_RG32UI 16 -#define OUTPUT_IMAGE_FORMAT_R32UI 17 -#define OUTPUT_IMAGE_FORMAT_RGBA16F 18 -#define OUTPUT_IMAGE_FORMAT_RG16F 19 -#define OUTPUT_IMAGE_FORMAT_R16F 20 -#define OUTPUT_IMAGE_FORMAT_RGBA16I 21 -#define OUTPUT_IMAGE_FORMAT_RG16I 22 -#define OUTPUT_IMAGE_FORMAT_R16I 23 -#define OUTPUT_IMAGE_FORMAT_RGBA16UI 24 -#define OUTPUT_IMAGE_FORMAT_RG16UI 25 -#define OUTPUT_IMAGE_FORMAT_R16UI 26 -#define OUTPUT_IMAGE_FORMAT_RGBA8 27 -#define OUTPUT_IMAGE_FORMAT_RGB8 28 -#define OUTPUT_IMAGE_FORMAT_RG8 29 -#define OUTPUT_IMAGE_FORMAT_R8 30 -#define OUTPUT_IMAGE_FORMAT_RGBA8I 31 -#define OUTPUT_IMAGE_FORMAT_RG8I 32 -#define OUTPUT_IMAGE_FORMAT_R8I 33 -#define OUTPUT_IMAGE_FORMAT_RGBA8UI 34 -#define OUTPUT_IMAGE_FORMAT_RG8UI 35 -#define OUTPUT_IMAGE_FORMAT_R8UI 36 -#define OUTPUT_IMAGE_FORMAT_SRGBX8 37 -#define OUTPUT_IMAGE_FORMAT_RGBX8 38 - uint32_t decimate_mode; - uint32_t internal_type; -#define INTERNAL_TYPE_8I 0 -#define INTERNAL_TYPE_8UI 1 -#define INTERNAL_TYPE_8 2 -#define INTERNAL_TYPE_16I 4 -#define INTERNAL_TYPE_16UI 5 -#define INTERNAL_TYPE_16F 6 -#define INTERNAL_TYPE_32I 8 -#define INTERNAL_TYPE_32UI 9 -#define INTERNAL_TYPE_32F 10 - uint32_t internal_bpp; -#define INTERNAL_BPP_32 0 -#define INTERNAL_BPP_64 1 -#define INTERNAL_BPP_128 2 - uint32_t render_target_number; - uint32_t sub_id; -}; - -static inline void -V3D33_TILE_RENDERING_MODE_CONFIGURATION_RENDER_TARGET_CONFIG_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_TILE_RENDERING_MODE_CONFIGURATION_RENDER_TARGET_CONFIG * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->render_target_number, 4, 7) | - __gen_uint(values->sub_id, 0, 3); - - cl[ 2] = __gen_uint(values->decimate_mode, 6, 7) | - __gen_uint(values->internal_type, 2, 5) | - __gen_uint(values->internal_bpp, 0, 1); - - cl[ 3] = __gen_uint(values->a_dithered, 7, 7) | - __gen_uint(values->bgr_dithered, 6, 6) | - __gen_uint(values->output_image_format, 0, 5); - - cl[ 4] = __gen_uint(values->pad, 4, 7) | - __gen_uint(values->flip_y, 3, 3) | - __gen_uint(values->memory_format, 0, 2); - - __gen_emit_reloc(data, &values->address); - cl[ 5] = __gen_address_offset(&values->address); - - cl[ 6] = __gen_address_offset(&values->address) >> 8; - - cl[ 7] = __gen_address_offset(&values->address) >> 16; - - cl[ 8] = __gen_address_offset(&values->address) >> 24; - -} - -#define V3D33_TILE_RENDERING_MODE_CONFIGURATION_RENDER_TARGET_CONFIG_length 9 -#ifdef __gen_unpack_address -static inline void -V3D33_TILE_RENDERING_MODE_CONFIGURATION_RENDER_TARGET_CONFIG_unpack(const uint8_t * restrict cl, - struct V3D33_TILE_RENDERING_MODE_CONFIGURATION_RENDER_TARGET_CONFIG * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->address = __gen_unpack_address(cl, 40, 71); - values->pad = __gen_unpack_uint(cl, 36, 39); - values->flip_y = __gen_unpack_uint(cl, 35, 35); - values->memory_format = __gen_unpack_uint(cl, 32, 34); - values->a_dithered = __gen_unpack_uint(cl, 31, 31); - values->bgr_dithered = __gen_unpack_uint(cl, 30, 30); - values->output_image_format = __gen_unpack_uint(cl, 24, 29); - values->decimate_mode = __gen_unpack_uint(cl, 22, 23); - values->internal_type = __gen_unpack_uint(cl, 18, 21); - values->internal_bpp = __gen_unpack_uint(cl, 16, 17); - values->render_target_number = __gen_unpack_uint(cl, 12, 15); - values->sub_id = __gen_unpack_uint(cl, 8, 11); -} -#endif - - -#define V3D33_TILE_RENDERING_MODE_CONFIGURATION_Z_STENCIL_CONFIG_opcode 121 -#define V3D33_TILE_RENDERING_MODE_CONFIGURATION_Z_STENCIL_CONFIG_header\ - .opcode = 121, \ - .z_stencil_id = 0, \ - .sub_id = 1 - -struct V3D33_TILE_RENDERING_MODE_CONFIGURATION_Z_STENCIL_CONFIG { - uint32_t opcode; - __gen_address_type address; - uint32_t padded_height_of_output_image_in_uif_blocks; - uint32_t memory_format; -#define MEMORY_FORMAT_RASTER 0 -#define MEMORY_FORMAT_LINEARTILE 1 -#define MEMORY_FORMAT_UB_LINEAR_1_UIF_BLOCK_WIDE 2 -#define MEMORY_FORMAT_UB_LINEAR_2_UIF_BLOCKS_WIDE 3 -#define MEMORY_FORMAT_UIF_NO_XOR 4 -#define MEMORY_FORMAT_UIF_XOR 5 - uint32_t output_image_format; -#define OUTPUT_IMAGE_FORMAT_DEPTH_COMPONENT32F 0 -#define OUTPUT_IMAGE_FORMAT_DEPTH_COMPONENT24 1 -#define OUTPUT_IMAGE_FORMAT_DEPTH_COMPONENT16 2 -#define OUTPUT_IMAGE_FORMAT_DEPTH24_STENCIL8 3 - uint32_t decimate_mode; - uint32_t internal_type; -#define INTERNAL_TYPE_DEPTH_32F 0 -#define INTERNAL_TYPE_DEPTH_24 1 -#define INTERNAL_TYPE_DEPTH_16 2 - uint32_t internal_bpp_ignored; - uint32_t z_stencil_id; - uint32_t sub_id; -}; - -static inline void -V3D33_TILE_RENDERING_MODE_CONFIGURATION_Z_STENCIL_CONFIG_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_TILE_RENDERING_MODE_CONFIGURATION_Z_STENCIL_CONFIG * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->z_stencil_id, 4, 7) | - __gen_uint(values->sub_id, 0, 3); - - cl[ 2] = __gen_uint(values->decimate_mode, 6, 7) | - __gen_uint(values->internal_type, 2, 5) | - __gen_uint(values->internal_bpp_ignored, 0, 1); - - cl[ 3] = __gen_uint(values->memory_format, 6, 8) | - __gen_uint(values->output_image_format, 0, 5); - - cl[ 4] = __gen_uint(values->padded_height_of_output_image_in_uif_blocks, 1, 13) | - __gen_uint(values->memory_format, 6, 8) >> 8; - - __gen_emit_reloc(data, &values->address); - cl[ 5] = __gen_address_offset(&values->address) | - __gen_uint(values->padded_height_of_output_image_in_uif_blocks, 1, 13) >> 8; - - cl[ 6] = __gen_address_offset(&values->address) >> 8; - - cl[ 7] = __gen_address_offset(&values->address) >> 16; - - cl[ 8] = __gen_address_offset(&values->address) >> 24; - -} - -#define V3D33_TILE_RENDERING_MODE_CONFIGURATION_Z_STENCIL_CONFIG_length 9 -#ifdef __gen_unpack_address -static inline void -V3D33_TILE_RENDERING_MODE_CONFIGURATION_Z_STENCIL_CONFIG_unpack(const uint8_t * restrict cl, - struct V3D33_TILE_RENDERING_MODE_CONFIGURATION_Z_STENCIL_CONFIG * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->address = __gen_unpack_address(cl, 40, 71); - values->padded_height_of_output_image_in_uif_blocks = __gen_unpack_uint(cl, 33, 45); - values->memory_format = __gen_unpack_uint(cl, 30, 32); - values->output_image_format = __gen_unpack_uint(cl, 24, 29); - values->decimate_mode = __gen_unpack_uint(cl, 22, 23); - values->internal_type = __gen_unpack_uint(cl, 18, 21); - values->internal_bpp_ignored = __gen_unpack_uint(cl, 16, 17); - values->z_stencil_id = __gen_unpack_uint(cl, 12, 15); - values->sub_id = __gen_unpack_uint(cl, 8, 11); -} -#endif - - -#define V3D33_TILE_RENDERING_MODE_CONFIGURATION_Z_STENCIL_CLEAR_VALUES_opcode 121 -#define V3D33_TILE_RENDERING_MODE_CONFIGURATION_Z_STENCIL_CLEAR_VALUES_header\ - .opcode = 121, \ - .sub_id = 3 - -struct V3D33_TILE_RENDERING_MODE_CONFIGURATION_Z_STENCIL_CLEAR_VALUES { - uint32_t opcode; - uint32_t unused; - float z_clear_value; - uint32_t stencil_vg_mask_clear_value; - uint32_t sub_id; -}; - -static inline void -V3D33_TILE_RENDERING_MODE_CONFIGURATION_Z_STENCIL_CLEAR_VALUES_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_TILE_RENDERING_MODE_CONFIGURATION_Z_STENCIL_CLEAR_VALUES * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->sub_id, 0, 3); - - cl[ 2] = __gen_uint(values->stencil_vg_mask_clear_value, 0, 7); - - - memcpy(&cl[3], &values->z_clear_value, sizeof(values->z_clear_value)); - cl[ 7] = __gen_uint(values->unused, 0, 15); - - cl[ 8] = __gen_uint(values->unused, 0, 15) >> 8; - -} - -#define V3D33_TILE_RENDERING_MODE_CONFIGURATION_Z_STENCIL_CLEAR_VALUES_length 9 -#ifdef __gen_unpack_address -static inline void -V3D33_TILE_RENDERING_MODE_CONFIGURATION_Z_STENCIL_CLEAR_VALUES_unpack(const uint8_t * restrict cl, - struct V3D33_TILE_RENDERING_MODE_CONFIGURATION_Z_STENCIL_CLEAR_VALUES * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->unused = __gen_unpack_uint(cl, 56, 71); - values->z_clear_value = __gen_unpack_float(cl, 24, 55); - values->stencil_vg_mask_clear_value = __gen_unpack_uint(cl, 16, 23); - values->sub_id = __gen_unpack_uint(cl, 8, 11); -} -#endif - - -#define V3D33_TILE_RENDERING_MODE_CONFIGURATION_CLEAR_COLORS_PART1_opcode 121 -#define V3D33_TILE_RENDERING_MODE_CONFIGURATION_CLEAR_COLORS_PART1_header\ - .opcode = 121, \ - .sub_id = 4 - -struct V3D33_TILE_RENDERING_MODE_CONFIGURATION_CLEAR_COLORS_PART1 { - uint32_t opcode; - uint32_t clear_color_next_24_bits; - uint32_t clear_color_low_32_bits; - uint32_t render_target_number; - uint32_t sub_id; -}; - -static inline void -V3D33_TILE_RENDERING_MODE_CONFIGURATION_CLEAR_COLORS_PART1_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_TILE_RENDERING_MODE_CONFIGURATION_CLEAR_COLORS_PART1 * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->render_target_number, 4, 7) | - __gen_uint(values->sub_id, 0, 3); - - - memcpy(&cl[2], &values->clear_color_low_32_bits, sizeof(values->clear_color_low_32_bits)); - cl[ 6] = __gen_uint(values->clear_color_next_24_bits, 0, 23); - - cl[ 7] = __gen_uint(values->clear_color_next_24_bits, 0, 23) >> 8; - - cl[ 8] = __gen_uint(values->clear_color_next_24_bits, 0, 23) >> 16; - -} - -#define V3D33_TILE_RENDERING_MODE_CONFIGURATION_CLEAR_COLORS_PART1_length 9 -#ifdef __gen_unpack_address -static inline void -V3D33_TILE_RENDERING_MODE_CONFIGURATION_CLEAR_COLORS_PART1_unpack(const uint8_t * restrict cl, - struct V3D33_TILE_RENDERING_MODE_CONFIGURATION_CLEAR_COLORS_PART1 * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->clear_color_next_24_bits = __gen_unpack_uint(cl, 48, 71); - values->clear_color_low_32_bits = __gen_unpack_uint(cl, 16, 47); - values->render_target_number = __gen_unpack_uint(cl, 12, 15); - values->sub_id = __gen_unpack_uint(cl, 8, 11); -} -#endif - - -#define V3D33_TILE_RENDERING_MODE_CONFIGURATION_CLEAR_COLORS_PART2_opcode 121 -#define V3D33_TILE_RENDERING_MODE_CONFIGURATION_CLEAR_COLORS_PART2_header\ - .opcode = 121, \ - .sub_id = 5 - -struct V3D33_TILE_RENDERING_MODE_CONFIGURATION_CLEAR_COLORS_PART2 { - uint32_t opcode; - uint32_t clear_color_mid_high_24_bits; - uint32_t clear_color_mid_low_32_bits; - uint32_t render_target_number; - uint32_t sub_id; -}; - -static inline void -V3D33_TILE_RENDERING_MODE_CONFIGURATION_CLEAR_COLORS_PART2_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_TILE_RENDERING_MODE_CONFIGURATION_CLEAR_COLORS_PART2 * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->render_target_number, 4, 7) | - __gen_uint(values->sub_id, 0, 3); - - - memcpy(&cl[2], &values->clear_color_mid_low_32_bits, sizeof(values->clear_color_mid_low_32_bits)); - cl[ 6] = __gen_uint(values->clear_color_mid_high_24_bits, 0, 23); - - cl[ 7] = __gen_uint(values->clear_color_mid_high_24_bits, 0, 23) >> 8; - - cl[ 8] = __gen_uint(values->clear_color_mid_high_24_bits, 0, 23) >> 16; - -} - -#define V3D33_TILE_RENDERING_MODE_CONFIGURATION_CLEAR_COLORS_PART2_length 9 -#ifdef __gen_unpack_address -static inline void -V3D33_TILE_RENDERING_MODE_CONFIGURATION_CLEAR_COLORS_PART2_unpack(const uint8_t * restrict cl, - struct V3D33_TILE_RENDERING_MODE_CONFIGURATION_CLEAR_COLORS_PART2 * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->clear_color_mid_high_24_bits = __gen_unpack_uint(cl, 48, 71); - values->clear_color_mid_low_32_bits = __gen_unpack_uint(cl, 16, 47); - values->render_target_number = __gen_unpack_uint(cl, 12, 15); - values->sub_id = __gen_unpack_uint(cl, 8, 11); -} -#endif - - -#define V3D33_TILE_RENDERING_MODE_CONFIGURATION_CLEAR_COLORS_PART3_opcode 121 -#define V3D33_TILE_RENDERING_MODE_CONFIGURATION_CLEAR_COLORS_PART3_header\ - .opcode = 121, \ - .sub_id = 6 - -struct V3D33_TILE_RENDERING_MODE_CONFIGURATION_CLEAR_COLORS_PART3 { - uint32_t opcode; - uint32_t pad; - uint32_t uif_padded_height_in_uif_blocks; - uint32_t raster_row_stride_or_image_height_in_pixels; - uint32_t clear_color_high_16_bits; - uint32_t render_target_number; - uint32_t sub_id; -}; - -static inline void -V3D33_TILE_RENDERING_MODE_CONFIGURATION_CLEAR_COLORS_PART3_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_TILE_RENDERING_MODE_CONFIGURATION_CLEAR_COLORS_PART3 * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->render_target_number, 4, 7) | - __gen_uint(values->sub_id, 0, 3); - - cl[ 2] = __gen_uint(values->clear_color_high_16_bits, 0, 15); - - cl[ 3] = __gen_uint(values->clear_color_high_16_bits, 0, 15) >> 8; - - cl[ 4] = __gen_uint(values->raster_row_stride_or_image_height_in_pixels, 0, 15); - - cl[ 5] = __gen_uint(values->raster_row_stride_or_image_height_in_pixels, 0, 15) >> 8; - - cl[ 6] = __gen_uint(values->uif_padded_height_in_uif_blocks, 0, 12); - - cl[ 7] = __gen_uint(values->pad, 5, 15) | - __gen_uint(values->uif_padded_height_in_uif_blocks, 0, 12) >> 8; - - cl[ 8] = __gen_uint(values->pad, 5, 15) >> 8; - -} - -#define V3D33_TILE_RENDERING_MODE_CONFIGURATION_CLEAR_COLORS_PART3_length 9 -#ifdef __gen_unpack_address -static inline void -V3D33_TILE_RENDERING_MODE_CONFIGURATION_CLEAR_COLORS_PART3_unpack(const uint8_t * restrict cl, - struct V3D33_TILE_RENDERING_MODE_CONFIGURATION_CLEAR_COLORS_PART3 * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->pad = __gen_unpack_uint(cl, 61, 71); - values->uif_padded_height_in_uif_blocks = __gen_unpack_uint(cl, 48, 60); - values->raster_row_stride_or_image_height_in_pixels = __gen_unpack_uint(cl, 32, 47); - values->clear_color_high_16_bits = __gen_unpack_uint(cl, 16, 31); - values->render_target_number = __gen_unpack_uint(cl, 12, 15); - values->sub_id = __gen_unpack_uint(cl, 8, 11); -} -#endif - - -#define V3D33_TILE_COORDINATES_opcode 124 -#define V3D33_TILE_COORDINATES_header \ - .opcode = 124 - -struct V3D33_TILE_COORDINATES { - uint32_t opcode; - uint32_t tile_row_number; - uint32_t tile_column_number; -}; - -static inline void -V3D33_TILE_COORDINATES_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_TILE_COORDINATES * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->tile_column_number, 0, 11); - - cl[ 2] = __gen_uint(values->tile_row_number, 4, 15) | - __gen_uint(values->tile_column_number, 0, 11) >> 8; - - cl[ 3] = __gen_uint(values->tile_row_number, 4, 15) >> 8; - -} - -#define V3D33_TILE_COORDINATES_length 4 -#ifdef __gen_unpack_address -static inline void -V3D33_TILE_COORDINATES_unpack(const uint8_t * restrict cl, - struct V3D33_TILE_COORDINATES * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->tile_row_number = __gen_unpack_uint(cl, 20, 31); - values->tile_column_number = __gen_unpack_uint(cl, 8, 19); -} -#endif - - -#define V3D33_MULTICORE_RENDERING_SUPERTILE_CONFIGURATION_opcode 122 -#define V3D33_MULTICORE_RENDERING_SUPERTILE_CONFIGURATION_header\ - .opcode = 122 - -struct V3D33_MULTICORE_RENDERING_SUPERTILE_CONFIGURATION { - uint32_t opcode; - bool supertile_raster_order; - bool multicore_enable; - uint32_t total_frame_height_in_tiles; - uint32_t total_frame_width_in_tiles; - uint32_t total_frame_height_in_supertiles; - uint32_t total_frame_width_in_supertiles; - uint32_t supertile_height_in_tiles_minus_1; - uint32_t supertile_width_in_tiles_minus_1; -}; - -static inline void -V3D33_MULTICORE_RENDERING_SUPERTILE_CONFIGURATION_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_MULTICORE_RENDERING_SUPERTILE_CONFIGURATION * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->supertile_width_in_tiles_minus_1, 0, 7); - - cl[ 2] = __gen_uint(values->supertile_height_in_tiles_minus_1, 0, 7); - - cl[ 3] = __gen_uint(values->total_frame_width_in_supertiles, 0, 7); - - cl[ 4] = __gen_uint(values->total_frame_height_in_supertiles, 0, 7); - - cl[ 5] = __gen_uint(values->total_frame_width_in_tiles, 0, 11); - - cl[ 6] = __gen_uint(values->total_frame_height_in_tiles, 4, 15) | - __gen_uint(values->total_frame_width_in_tiles, 0, 11) >> 8; - - cl[ 7] = __gen_uint(values->total_frame_height_in_tiles, 4, 15) >> 8; - - cl[ 8] = __gen_uint(values->supertile_raster_order, 4, 4) | - __gen_uint(values->multicore_enable, 0, 0); - -} - -#define V3D33_MULTICORE_RENDERING_SUPERTILE_CONFIGURATION_length 9 -#ifdef __gen_unpack_address -static inline void -V3D33_MULTICORE_RENDERING_SUPERTILE_CONFIGURATION_unpack(const uint8_t * restrict cl, - struct V3D33_MULTICORE_RENDERING_SUPERTILE_CONFIGURATION * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->supertile_raster_order = __gen_unpack_uint(cl, 68, 68); - values->multicore_enable = __gen_unpack_uint(cl, 64, 64); - values->total_frame_height_in_tiles = __gen_unpack_uint(cl, 52, 63); - values->total_frame_width_in_tiles = __gen_unpack_uint(cl, 40, 51); - values->total_frame_height_in_supertiles = __gen_unpack_uint(cl, 32, 39); - values->total_frame_width_in_supertiles = __gen_unpack_uint(cl, 24, 31); - values->supertile_height_in_tiles_minus_1 = __gen_unpack_uint(cl, 16, 23); - values->supertile_width_in_tiles_minus_1 = __gen_unpack_uint(cl, 8, 15); -} -#endif - - -#define V3D33_MULTICORE_RENDERING_TILE_LIST_SET_BASE_opcode 123 -#define V3D33_MULTICORE_RENDERING_TILE_LIST_SET_BASE_header\ - .opcode = 123 - -struct V3D33_MULTICORE_RENDERING_TILE_LIST_SET_BASE { - uint32_t opcode; - __gen_address_type address; - uint32_t tile_list_set_number; -}; - -static inline void -V3D33_MULTICORE_RENDERING_TILE_LIST_SET_BASE_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_MULTICORE_RENDERING_TILE_LIST_SET_BASE * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - __gen_emit_reloc(data, &values->address); - cl[ 1] = __gen_address_offset(&values->address) | - __gen_uint(values->tile_list_set_number, 0, 3); - - cl[ 2] = __gen_address_offset(&values->address) >> 8; - - cl[ 3] = __gen_address_offset(&values->address) >> 16; - - cl[ 4] = __gen_address_offset(&values->address) >> 24; - -} - -#define V3D33_MULTICORE_RENDERING_TILE_LIST_SET_BASE_length 5 -#ifdef __gen_unpack_address -static inline void -V3D33_MULTICORE_RENDERING_TILE_LIST_SET_BASE_unpack(const uint8_t * restrict cl, - struct V3D33_MULTICORE_RENDERING_TILE_LIST_SET_BASE * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->address = __gen_unpack_address(cl, 14, 39); - values->tile_list_set_number = __gen_unpack_uint(cl, 8, 11); -} -#endif - - -#define V3D33_TILE_COORDINATES_IMPLICIT_opcode 125 -#define V3D33_TILE_COORDINATES_IMPLICIT_header \ - .opcode = 125 - -struct V3D33_TILE_COORDINATES_IMPLICIT { - uint32_t opcode; -}; - -static inline void -V3D33_TILE_COORDINATES_IMPLICIT_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_TILE_COORDINATES_IMPLICIT * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D33_TILE_COORDINATES_IMPLICIT_length 1 -#ifdef __gen_unpack_address -static inline void -V3D33_TILE_COORDINATES_IMPLICIT_unpack(const uint8_t * restrict cl, - struct V3D33_TILE_COORDINATES_IMPLICIT * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D33_TILE_LIST_INITIAL_BLOCK_SIZE_opcode 126 -#define V3D33_TILE_LIST_INITIAL_BLOCK_SIZE_header\ - .opcode = 126 - -struct V3D33_TILE_LIST_INITIAL_BLOCK_SIZE { - uint32_t opcode; - bool use_auto_chained_tile_lists; - uint32_t size_of_first_block_in_chained_tile_lists; -#define TILE_ALLOCATION_BLOCK_SIZE_64B 0 -#define TILE_ALLOCATION_BLOCK_SIZE_128B 1 -#define TILE_ALLOCATION_BLOCK_SIZE_256B 2 -}; - -static inline void -V3D33_TILE_LIST_INITIAL_BLOCK_SIZE_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_TILE_LIST_INITIAL_BLOCK_SIZE * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->use_auto_chained_tile_lists, 2, 2) | - __gen_uint(values->size_of_first_block_in_chained_tile_lists, 0, 1); - -} - -#define V3D33_TILE_LIST_INITIAL_BLOCK_SIZE_length 2 -#ifdef __gen_unpack_address -static inline void -V3D33_TILE_LIST_INITIAL_BLOCK_SIZE_unpack(const uint8_t * restrict cl, - struct V3D33_TILE_LIST_INITIAL_BLOCK_SIZE * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->use_auto_chained_tile_lists = __gen_unpack_uint(cl, 10, 10); - values->size_of_first_block_in_chained_tile_lists = __gen_unpack_uint(cl, 8, 9); -} -#endif - - -#define V3D33_GL_SHADER_STATE_RECORD_header \ - - -struct V3D33_GL_SHADER_STATE_RECORD { - bool point_size_in_shaded_vertex_data; - bool enable_clipping; - bool vertex_id_read_by_coordinate_shader; - bool instance_id_read_by_coordinate_shader; - bool vertex_id_read_by_vertex_shader; - bool instance_id_read_by_vertex_shader; - bool fragment_shader_does_z_writes; - bool turn_off_early_z_test; - bool coordinate_shader_has_separate_input_and_output_vpm_blocks; - bool vertex_shader_has_separate_input_and_output_vpm_blocks; - bool fragment_shader_uses_real_pixel_centre_w_in_addition_to_centroid_w2; - uint32_t number_of_varyings_in_fragment_shader; - uint32_t coordinate_shader_output_vpm_segment_size; - uint32_t coordinate_shader_input_vpm_segment_size; - uint32_t vertex_shader_output_vpm_segment_size; - uint32_t vertex_shader_input_vpm_segment_size; - __gen_address_type address_of_default_attribute_values; - __gen_address_type fragment_shader_code_address; - bool _2_way_threadable; - bool _4_way_threadable; - bool propagate_nans; - __gen_address_type fragment_shader_uniforms_address; - __gen_address_type vertex_shader_code_address; - __gen_address_type vertex_shader_uniforms_address; - __gen_address_type coordinate_shader_code_address; - __gen_address_type coordinate_shader_uniforms_address; -}; - -static inline void -V3D33_GL_SHADER_STATE_RECORD_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_GL_SHADER_STATE_RECORD * restrict values) -{ - cl[ 0] = __gen_uint(values->point_size_in_shaded_vertex_data, 0, 0) | - __gen_uint(values->enable_clipping, 1, 1) | - __gen_uint(values->vertex_id_read_by_coordinate_shader, 2, 2) | - __gen_uint(values->instance_id_read_by_coordinate_shader, 3, 3) | - __gen_uint(values->vertex_id_read_by_vertex_shader, 4, 4) | - __gen_uint(values->instance_id_read_by_vertex_shader, 5, 5) | - __gen_uint(values->fragment_shader_does_z_writes, 6, 6) | - __gen_uint(values->turn_off_early_z_test, 7, 7); - - cl[ 1] = __gen_uint(values->coordinate_shader_has_separate_input_and_output_vpm_blocks, 0, 0) | - __gen_uint(values->vertex_shader_has_separate_input_and_output_vpm_blocks, 1, 1) | - __gen_uint(values->fragment_shader_uses_real_pixel_centre_w_in_addition_to_centroid_w2, 2, 2); - - cl[ 2] = __gen_uint(values->number_of_varyings_in_fragment_shader, 0, 7); - - cl[ 3] = 0; - cl[ 4] = __gen_uint(values->coordinate_shader_output_vpm_segment_size, 0, 7); - - cl[ 5] = __gen_uint(values->coordinate_shader_input_vpm_segment_size, 0, 7); - - cl[ 6] = __gen_uint(values->vertex_shader_output_vpm_segment_size, 0, 7); - - cl[ 7] = __gen_uint(values->vertex_shader_input_vpm_segment_size, 0, 7); - - __gen_emit_reloc(data, &values->address_of_default_attribute_values); - cl[ 8] = __gen_address_offset(&values->address_of_default_attribute_values); - - cl[ 9] = __gen_address_offset(&values->address_of_default_attribute_values) >> 8; - - cl[10] = __gen_address_offset(&values->address_of_default_attribute_values) >> 16; - - cl[11] = __gen_address_offset(&values->address_of_default_attribute_values) >> 24; - - __gen_emit_reloc(data, &values->fragment_shader_code_address); - cl[12] = __gen_address_offset(&values->fragment_shader_code_address) | - __gen_uint(values->_2_way_threadable, 0, 0) | - __gen_uint(values->_4_way_threadable, 1, 1) | - __gen_uint(values->propagate_nans, 2, 2); - - cl[13] = __gen_address_offset(&values->fragment_shader_code_address) >> 8; - - cl[14] = __gen_address_offset(&values->fragment_shader_code_address) >> 16; - - cl[15] = __gen_address_offset(&values->fragment_shader_code_address) >> 24; - - __gen_emit_reloc(data, &values->fragment_shader_uniforms_address); - cl[16] = __gen_address_offset(&values->fragment_shader_uniforms_address); - - cl[17] = __gen_address_offset(&values->fragment_shader_uniforms_address) >> 8; - - cl[18] = __gen_address_offset(&values->fragment_shader_uniforms_address) >> 16; - - cl[19] = __gen_address_offset(&values->fragment_shader_uniforms_address) >> 24; - - __gen_emit_reloc(data, &values->vertex_shader_code_address); - cl[20] = __gen_address_offset(&values->vertex_shader_code_address); - - cl[21] = __gen_address_offset(&values->vertex_shader_code_address) >> 8; - - cl[22] = __gen_address_offset(&values->vertex_shader_code_address) >> 16; - - cl[23] = __gen_address_offset(&values->vertex_shader_code_address) >> 24; - - __gen_emit_reloc(data, &values->vertex_shader_uniforms_address); - cl[24] = __gen_address_offset(&values->vertex_shader_uniforms_address); - - cl[25] = __gen_address_offset(&values->vertex_shader_uniforms_address) >> 8; - - cl[26] = __gen_address_offset(&values->vertex_shader_uniforms_address) >> 16; - - cl[27] = __gen_address_offset(&values->vertex_shader_uniforms_address) >> 24; - - __gen_emit_reloc(data, &values->coordinate_shader_code_address); - cl[28] = __gen_address_offset(&values->coordinate_shader_code_address); - - cl[29] = __gen_address_offset(&values->coordinate_shader_code_address) >> 8; - - cl[30] = __gen_address_offset(&values->coordinate_shader_code_address) >> 16; - - cl[31] = __gen_address_offset(&values->coordinate_shader_code_address) >> 24; - - __gen_emit_reloc(data, &values->coordinate_shader_uniforms_address); - cl[32] = __gen_address_offset(&values->coordinate_shader_uniforms_address); - - cl[33] = __gen_address_offset(&values->coordinate_shader_uniforms_address) >> 8; - - cl[34] = __gen_address_offset(&values->coordinate_shader_uniforms_address) >> 16; - - cl[35] = __gen_address_offset(&values->coordinate_shader_uniforms_address) >> 24; - -} - -#define V3D33_GL_SHADER_STATE_RECORD_length 36 -#ifdef __gen_unpack_address -static inline void -V3D33_GL_SHADER_STATE_RECORD_unpack(const uint8_t * restrict cl, - struct V3D33_GL_SHADER_STATE_RECORD * restrict values) -{ - values->point_size_in_shaded_vertex_data = __gen_unpack_uint(cl, 0, 0); - values->enable_clipping = __gen_unpack_uint(cl, 1, 1); - values->vertex_id_read_by_coordinate_shader = __gen_unpack_uint(cl, 2, 2); - values->instance_id_read_by_coordinate_shader = __gen_unpack_uint(cl, 3, 3); - values->vertex_id_read_by_vertex_shader = __gen_unpack_uint(cl, 4, 4); - values->instance_id_read_by_vertex_shader = __gen_unpack_uint(cl, 5, 5); - values->fragment_shader_does_z_writes = __gen_unpack_uint(cl, 6, 6); - values->turn_off_early_z_test = __gen_unpack_uint(cl, 7, 7); - values->coordinate_shader_has_separate_input_and_output_vpm_blocks = __gen_unpack_uint(cl, 8, 8); - values->vertex_shader_has_separate_input_and_output_vpm_blocks = __gen_unpack_uint(cl, 9, 9); - values->fragment_shader_uses_real_pixel_centre_w_in_addition_to_centroid_w2 = __gen_unpack_uint(cl, 10, 10); - values->number_of_varyings_in_fragment_shader = __gen_unpack_uint(cl, 16, 23); - values->coordinate_shader_output_vpm_segment_size = __gen_unpack_uint(cl, 32, 39); - values->coordinate_shader_input_vpm_segment_size = __gen_unpack_uint(cl, 40, 47); - values->vertex_shader_output_vpm_segment_size = __gen_unpack_uint(cl, 48, 55); - values->vertex_shader_input_vpm_segment_size = __gen_unpack_uint(cl, 56, 63); - values->address_of_default_attribute_values = __gen_unpack_address(cl, 64, 95); - values->fragment_shader_code_address = __gen_unpack_address(cl, 99, 127); - values->_2_way_threadable = __gen_unpack_uint(cl, 96, 96); - values->_4_way_threadable = __gen_unpack_uint(cl, 97, 97); - values->propagate_nans = __gen_unpack_uint(cl, 98, 98); - values->fragment_shader_uniforms_address = __gen_unpack_address(cl, 128, 159); - values->vertex_shader_code_address = __gen_unpack_address(cl, 160, 191); - values->vertex_shader_uniforms_address = __gen_unpack_address(cl, 192, 223); - values->coordinate_shader_code_address = __gen_unpack_address(cl, 224, 255); - values->coordinate_shader_uniforms_address = __gen_unpack_address(cl, 256, 287); -} -#endif - - -#define V3D33_GL_SHADER_STATE_ATTRIBUTE_RECORD_header\ - - -struct V3D33_GL_SHADER_STATE_ATTRIBUTE_RECORD { - __gen_address_type address; - uint32_t vec_size; - uint32_t type; -#define ATTRIBUTE_HALF_FLOAT 1 -#define ATTRIBUTE_FLOAT 2 -#define ATTRIBUTE_FIXED 3 -#define ATTRIBUTE_BYTE 4 -#define ATTRIBUTE_SHORT 5 -#define ATTRIBUTE_INT 6 -#define ATTRIBUTE_INT2_10_10_10 7 - bool signed_int_type; - bool normalized_int_type; - bool read_as_int_uint; - uint32_t number_of_values_read_by_coordinate_shader; - uint32_t number_of_values_read_by_vertex_shader; - uint32_t instance_divisor; - uint32_t stride; -}; - -static inline void -V3D33_GL_SHADER_STATE_ATTRIBUTE_RECORD_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_GL_SHADER_STATE_ATTRIBUTE_RECORD * restrict values) -{ - __gen_emit_reloc(data, &values->address); - cl[ 0] = __gen_address_offset(&values->address); - - cl[ 1] = __gen_address_offset(&values->address) >> 8; - - cl[ 2] = __gen_address_offset(&values->address) >> 16; - - cl[ 3] = __gen_address_offset(&values->address) >> 24; - - cl[ 4] = __gen_uint(values->vec_size, 0, 1) | - __gen_uint(values->type, 2, 4) | - __gen_uint(values->signed_int_type, 5, 5) | - __gen_uint(values->normalized_int_type, 6, 6) | - __gen_uint(values->read_as_int_uint, 7, 7); - - cl[ 5] = __gen_uint(values->number_of_values_read_by_coordinate_shader, 0, 3) | - __gen_uint(values->number_of_values_read_by_vertex_shader, 4, 7); - - cl[ 6] = __gen_uint(values->instance_divisor, 0, 15); - - cl[ 7] = __gen_uint(values->instance_divisor, 0, 15) >> 8; - - - memcpy(&cl[8], &values->stride, sizeof(values->stride)); -} - -#define V3D33_GL_SHADER_STATE_ATTRIBUTE_RECORD_length 12 -#ifdef __gen_unpack_address -static inline void -V3D33_GL_SHADER_STATE_ATTRIBUTE_RECORD_unpack(const uint8_t * restrict cl, - struct V3D33_GL_SHADER_STATE_ATTRIBUTE_RECORD * restrict values) -{ - values->address = __gen_unpack_address(cl, 0, 31); - values->vec_size = __gen_unpack_uint(cl, 32, 33); - values->type = __gen_unpack_uint(cl, 34, 36); - values->signed_int_type = __gen_unpack_uint(cl, 37, 37); - values->normalized_int_type = __gen_unpack_uint(cl, 38, 38); - values->read_as_int_uint = __gen_unpack_uint(cl, 39, 39); - values->number_of_values_read_by_coordinate_shader = __gen_unpack_uint(cl, 40, 43); - values->number_of_values_read_by_vertex_shader = __gen_unpack_uint(cl, 44, 47); - values->instance_divisor = __gen_unpack_uint(cl, 48, 63); - values->stride = __gen_unpack_uint(cl, 64, 95); -} -#endif - - -#define V3D33_VPM_GENERIC_BLOCK_WRITE_SETUP_header\ - .id = 0, \ - .id0 = 0 - -struct V3D33_VPM_GENERIC_BLOCK_WRITE_SETUP { - uint32_t id; - uint32_t id0; - bool horiz; - bool laned; - bool segs; - int32_t stride; - uint32_t size; -#define VPM_SETUP_SIZE_8_BIT 0 -#define VPM_SETUP_SIZE_16_BIT 1 -#define VPM_SETUP_SIZE_32_BIT 2 - uint32_t addr; -}; - -static inline void -V3D33_VPM_GENERIC_BLOCK_WRITE_SETUP_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_VPM_GENERIC_BLOCK_WRITE_SETUP * restrict values) -{ - cl[ 0] = __gen_uint(values->addr, 0, 12); - - cl[ 1] = __gen_sint(values->stride, 7, 13) | - __gen_uint(values->size, 5, 6) | - __gen_uint(values->addr, 0, 12) >> 8; - - cl[ 2] = __gen_uint(values->laned, 7, 7) | - __gen_uint(values->segs, 6, 6) | - __gen_sint(values->stride, 7, 13) >> 8; - - cl[ 3] = __gen_uint(values->id, 6, 7) | - __gen_uint(values->id0, 3, 5) | - __gen_uint(values->horiz, 0, 0); - -} - -#define V3D33_VPM_GENERIC_BLOCK_WRITE_SETUP_length 4 -#ifdef __gen_unpack_address -static inline void -V3D33_VPM_GENERIC_BLOCK_WRITE_SETUP_unpack(const uint8_t * restrict cl, - struct V3D33_VPM_GENERIC_BLOCK_WRITE_SETUP * restrict values) -{ - values->id = __gen_unpack_uint(cl, 30, 31); - values->id0 = __gen_unpack_uint(cl, 27, 29); - values->horiz = __gen_unpack_uint(cl, 24, 24); - values->laned = __gen_unpack_uint(cl, 23, 23); - values->segs = __gen_unpack_uint(cl, 22, 22); - values->stride = __gen_unpack_sint(cl, 15, 21); - values->size = __gen_unpack_uint(cl, 13, 14); - values->addr = __gen_unpack_uint(cl, 0, 12); -} -#endif - - -#define V3D33_VPM_GENERIC_BLOCK_READ_SETUP_header\ - .id = 1 - -struct V3D33_VPM_GENERIC_BLOCK_READ_SETUP { - uint32_t id; - bool horiz; - bool laned; - bool segs; - uint32_t num; - int32_t stride; - uint32_t size; -#define VPM_SETUP_SIZE_8_BIT 0 -#define VPM_SETUP_SIZE_16_BIT 1 -#define VPM_SETUP_SIZE_32_BIT 2 - uint32_t addr; -}; - -static inline void -V3D33_VPM_GENERIC_BLOCK_READ_SETUP_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_VPM_GENERIC_BLOCK_READ_SETUP * restrict values) -{ - cl[ 0] = __gen_uint(values->addr, 0, 12); - - cl[ 1] = __gen_sint(values->stride, 7, 13) | - __gen_uint(values->size, 5, 6) | - __gen_uint(values->addr, 0, 12) >> 8; - - cl[ 2] = __gen_uint(values->num, 6, 10) | - __gen_sint(values->stride, 7, 13) >> 8; - - cl[ 3] = __gen_uint(values->id, 6, 7) | - __gen_uint(values->horiz, 5, 5) | - __gen_uint(values->laned, 4, 4) | - __gen_uint(values->segs, 3, 3) | - __gen_uint(values->num, 6, 10) >> 8; - -} - -#define V3D33_VPM_GENERIC_BLOCK_READ_SETUP_length 4 -#ifdef __gen_unpack_address -static inline void -V3D33_VPM_GENERIC_BLOCK_READ_SETUP_unpack(const uint8_t * restrict cl, - struct V3D33_VPM_GENERIC_BLOCK_READ_SETUP * restrict values) -{ - values->id = __gen_unpack_uint(cl, 30, 31); - values->horiz = __gen_unpack_uint(cl, 29, 29); - values->laned = __gen_unpack_uint(cl, 28, 28); - values->segs = __gen_unpack_uint(cl, 27, 27); - values->num = __gen_unpack_uint(cl, 22, 26); - values->stride = __gen_unpack_sint(cl, 15, 21); - values->size = __gen_unpack_uint(cl, 13, 14); - values->addr = __gen_unpack_uint(cl, 0, 12); -} -#endif - - -#define V3D33_TEXTURE_UNIFORM_PARAMETER_0_CFG_MODE1_header\ - .new_configuration_mode = 1 - -struct V3D33_TEXTURE_UNIFORM_PARAMETER_0_CFG_MODE1 { - bool per_pixel_mask_enable; - int32_t texel_offset_for_r_coordinate; - int32_t texel_offset_for_t_coordinate; - int32_t texel_offset_for_s_coordinate; - uint32_t r_wrap_mode; -#define WRAP_MODE_REPEAT 0 -#define WRAP_MODE_CLAMP 1 -#define WRAP_MODE_MIRROR 2 -#define WRAP_MODE_BORDER 3 -#define WRAP_MODE_MIRROR_ONCE 4 - uint32_t t_wrap_mode; -#define WRAP_MODE_REPEAT 0 -#define WRAP_MODE_CLAMP 1 -#define WRAP_MODE_MIRROR 2 -#define WRAP_MODE_BORDER 3 -#define WRAP_MODE_MIRROR_ONCE 4 - uint32_t s_wrap_mode; -#define WRAP_MODE_REPEAT 0 -#define WRAP_MODE_CLAMP 1 -#define WRAP_MODE_MIRROR 2 -#define WRAP_MODE_BORDER 3 -#define WRAP_MODE_MIRROR_ONCE 4 - bool new_configuration_mode; - bool shadow; - bool coefficient_lookup_mode; - bool disable_autolod_use_bias_only; - bool bias_supplied; - bool gather_sample_mode; - bool fetch_sample_mode; - bool lookup_type; -#define TEXTURE_2D 0 -#define TEXTURE_2D_ARRAY 1 -#define TEXTURE_3D 2 -#define TEXTURE_CUBE_MAP 3 -#define TEXTURE_1D 4 -#define TEXTURE_1D_ARRAY 5 -#define TEXTURE_CHILD_IMAGE 6 -}; - -static inline void -V3D33_TEXTURE_UNIFORM_PARAMETER_0_CFG_MODE1_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_TEXTURE_UNIFORM_PARAMETER_0_CFG_MODE1 * restrict values) -{ - cl[ 0] = __gen_uint(values->coefficient_lookup_mode, 7, 7) | - __gen_uint(values->disable_autolod_use_bias_only, 6, 6) | - __gen_uint(values->bias_supplied, 5, 5) | - __gen_uint(values->gather_sample_mode, 4, 4) | - __gen_uint(values->fetch_sample_mode, 3, 3) | - __gen_uint(values->lookup_type, 0, 2); - - cl[ 1] = __gen_uint(values->t_wrap_mode, 5, 7) | - __gen_uint(values->s_wrap_mode, 2, 4) | - __gen_uint(values->new_configuration_mode, 1, 1) | - __gen_uint(values->shadow, 0, 0); - - cl[ 2] = __gen_sint(values->texel_offset_for_t_coordinate, 7, 10) | - __gen_sint(values->texel_offset_for_s_coordinate, 3, 6) | - __gen_uint(values->r_wrap_mode, 0, 2); - - cl[ 3] = __gen_uint(values->per_pixel_mask_enable, 7, 7) | - __gen_sint(values->texel_offset_for_r_coordinate, 3, 6) | - __gen_sint(values->texel_offset_for_t_coordinate, 7, 10) >> 8; - -} - -#define V3D33_TEXTURE_UNIFORM_PARAMETER_0_CFG_MODE1_length 4 -#ifdef __gen_unpack_address -static inline void -V3D33_TEXTURE_UNIFORM_PARAMETER_0_CFG_MODE1_unpack(const uint8_t * restrict cl, - struct V3D33_TEXTURE_UNIFORM_PARAMETER_0_CFG_MODE1 * restrict values) -{ - values->per_pixel_mask_enable = __gen_unpack_uint(cl, 31, 31); - values->texel_offset_for_r_coordinate = __gen_unpack_sint(cl, 27, 30); - values->texel_offset_for_t_coordinate = __gen_unpack_sint(cl, 23, 26); - values->texel_offset_for_s_coordinate = __gen_unpack_sint(cl, 19, 22); - values->r_wrap_mode = __gen_unpack_uint(cl, 16, 18); - values->t_wrap_mode = __gen_unpack_uint(cl, 13, 15); - values->s_wrap_mode = __gen_unpack_uint(cl, 10, 12); - values->new_configuration_mode = __gen_unpack_uint(cl, 9, 9); - values->shadow = __gen_unpack_uint(cl, 8, 8); - values->coefficient_lookup_mode = __gen_unpack_uint(cl, 7, 7); - values->disable_autolod_use_bias_only = __gen_unpack_uint(cl, 6, 6); - values->bias_supplied = __gen_unpack_uint(cl, 5, 5); - values->gather_sample_mode = __gen_unpack_uint(cl, 4, 4); - values->fetch_sample_mode = __gen_unpack_uint(cl, 3, 3); - values->lookup_type = __gen_unpack_uint(cl, 0, 2); -} -#endif - - -#define V3D33_TEXTURE_UNIFORM_PARAMETER_1_CFG_MODE1_header\ - - -struct V3D33_TEXTURE_UNIFORM_PARAMETER_1_CFG_MODE1 { - __gen_address_type texture_state_record_base_address; - bool return_word_3_of_texture_data; - bool return_word_2_of_texture_data; - bool return_word_1_of_texture_data; - bool return_word_0_of_texture_data; -}; - -static inline void -V3D33_TEXTURE_UNIFORM_PARAMETER_1_CFG_MODE1_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_TEXTURE_UNIFORM_PARAMETER_1_CFG_MODE1 * restrict values) -{ - __gen_emit_reloc(data, &values->texture_state_record_base_address); - cl[ 0] = __gen_address_offset(&values->texture_state_record_base_address) | - __gen_uint(values->return_word_3_of_texture_data, 3, 3) | - __gen_uint(values->return_word_2_of_texture_data, 2, 2) | - __gen_uint(values->return_word_1_of_texture_data, 1, 1) | - __gen_uint(values->return_word_0_of_texture_data, 0, 0); - - cl[ 1] = __gen_address_offset(&values->texture_state_record_base_address) >> 8; - - cl[ 2] = __gen_address_offset(&values->texture_state_record_base_address) >> 16; - - cl[ 3] = __gen_address_offset(&values->texture_state_record_base_address) >> 24; - -} - -#define V3D33_TEXTURE_UNIFORM_PARAMETER_1_CFG_MODE1_length 4 -#ifdef __gen_unpack_address -static inline void -V3D33_TEXTURE_UNIFORM_PARAMETER_1_CFG_MODE1_unpack(const uint8_t * restrict cl, - struct V3D33_TEXTURE_UNIFORM_PARAMETER_1_CFG_MODE1 * restrict values) -{ - values->texture_state_record_base_address = __gen_unpack_address(cl, 0, 31); - values->return_word_3_of_texture_data = __gen_unpack_uint(cl, 3, 3); - values->return_word_2_of_texture_data = __gen_unpack_uint(cl, 2, 2); - values->return_word_1_of_texture_data = __gen_unpack_uint(cl, 1, 1); - values->return_word_0_of_texture_data = __gen_unpack_uint(cl, 0, 0); -} -#endif - - -#define V3D33_TEXTURE_SHADER_STATE_header \ - .flip_etc_y = 1 - -struct V3D33_TEXTURE_SHADER_STATE { - bool level_0_is_strictly_uif; - bool level_0_xor_enable; - uint32_t level_0_ub_pad; - uint32_t base_level; - float fixed_bias; - float max_level_of_detail; - float min_level_of_detail; - uint32_t border_color_alpha; - uint32_t border_color_blue; - uint32_t border_color_green; - uint32_t border_color_red; - bool flip_s_and_t_on_incoming_request; - bool flip_etc_y; - bool flip_texture_y_axis; - bool flip_texture_x_axis; - uint32_t swizzle_a; -#define SWIZZLE_ZERO 0 -#define SWIZZLE_ONE 1 -#define SWIZZLE_RED 2 -#define SWIZZLE_GREEN 3 -#define SWIZZLE_BLUE 4 -#define SWIZZLE_ALPHA 5 - uint32_t swizzle_b; - uint32_t swizzle_g; - uint32_t swizzle_r; - enum V3D33_Compare_Function depth_compare_function; - bool srgb; - uint32_t texture_type; - uint32_t image_depth; - uint32_t image_height; - uint32_t image_width; - uint32_t array_stride_64_byte_aligned; - __gen_address_type texture_base_pointer; - uint32_t minification_filter; - uint32_t magnification_filter; -}; - -static inline void -V3D33_TEXTURE_SHADER_STATE_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D33_TEXTURE_SHADER_STATE * restrict values) -{ - __gen_emit_reloc(data, &values->texture_base_pointer); - cl[ 0] = __gen_address_offset(&values->texture_base_pointer) | - __gen_uint(values->minification_filter, 1, 3) | - __gen_uint(values->magnification_filter, 0, 0); - - cl[ 1] = __gen_address_offset(&values->texture_base_pointer) >> 8; - - cl[ 2] = __gen_address_offset(&values->texture_base_pointer) >> 16; - - cl[ 3] = __gen_address_offset(&values->texture_base_pointer) >> 24; - - cl[ 4] = __gen_uint(values->array_stride_64_byte_aligned, 0, 25); - - cl[ 5] = __gen_uint(values->array_stride_64_byte_aligned, 0, 25) >> 8; - - cl[ 6] = __gen_uint(values->array_stride_64_byte_aligned, 0, 25) >> 16; - - cl[ 7] = __gen_uint(values->image_width, 2, 15) | - __gen_uint(values->array_stride_64_byte_aligned, 0, 25) >> 24; - - cl[ 8] = __gen_uint(values->image_width, 2, 15) >> 8; - - cl[ 9] = __gen_uint(values->image_height, 0, 13); - - cl[10] = __gen_uint(values->image_depth, 6, 19) | - __gen_uint(values->image_height, 0, 13) >> 8; - - cl[11] = __gen_uint(values->image_depth, 6, 19) >> 8; - - cl[12] = __gen_uint(values->texture_type, 4, 10) | - __gen_uint(values->image_depth, 6, 19) >> 16; - - cl[13] = __gen_uint(values->depth_compare_function, 5, 7) | - __gen_uint(values->srgb, 3, 3) | - __gen_uint(values->texture_type, 4, 10) >> 8; - - cl[14] = __gen_uint(values->swizzle_b, 6, 8) | - __gen_uint(values->swizzle_g, 3, 5) | - __gen_uint(values->swizzle_r, 0, 2); - - cl[15] = __gen_uint(values->flip_s_and_t_on_incoming_request, 7, 7) | - __gen_uint(values->flip_etc_y, 6, 6) | - __gen_uint(values->flip_texture_y_axis, 5, 5) | - __gen_uint(values->flip_texture_x_axis, 4, 4) | - __gen_uint(values->swizzle_a, 1, 3) | - __gen_uint(values->swizzle_b, 6, 8) >> 8; - - cl[16] = __gen_uint(values->border_color_red, 0, 15); - - cl[17] = __gen_uint(values->border_color_red, 0, 15) >> 8; - - cl[18] = __gen_uint(values->border_color_green, 0, 15); - - cl[19] = __gen_uint(values->border_color_green, 0, 15) >> 8; - - cl[20] = __gen_uint(values->border_color_blue, 0, 15); - - cl[21] = __gen_uint(values->border_color_blue, 0, 15) >> 8; - - cl[22] = __gen_uint(values->border_color_alpha, 0, 15); - - cl[23] = __gen_uint(values->border_color_alpha, 0, 15) >> 8; - - cl[24] = __gen_sfixed(values->min_level_of_detail, 0, 15, 8); - - cl[25] = __gen_sfixed(values->min_level_of_detail, 0, 15, 8) >> 8; - - cl[26] = __gen_sfixed(values->max_level_of_detail, 0, 15, 8); - - cl[27] = __gen_sfixed(values->max_level_of_detail, 0, 15, 8) >> 8; - - cl[28] = __gen_sfixed(values->fixed_bias, 0, 15, 8); - - cl[29] = __gen_sfixed(values->fixed_bias, 0, 15, 8) >> 8; - - cl[30] = __gen_uint(values->base_level, 0, 3); - - cl[31] = __gen_uint(values->level_0_is_strictly_uif, 6, 6) | - __gen_uint(values->level_0_xor_enable, 4, 4) | - __gen_uint(values->level_0_ub_pad, 0, 3); - -} - -#define V3D33_TEXTURE_SHADER_STATE_length 32 -#ifdef __gen_unpack_address -static inline void -V3D33_TEXTURE_SHADER_STATE_unpack(const uint8_t * restrict cl, - struct V3D33_TEXTURE_SHADER_STATE * restrict values) -{ - values->level_0_is_strictly_uif = __gen_unpack_uint(cl, 254, 254); - values->level_0_xor_enable = __gen_unpack_uint(cl, 252, 252); - values->level_0_ub_pad = __gen_unpack_uint(cl, 248, 251); - values->base_level = __gen_unpack_uint(cl, 240, 243); - values->fixed_bias = __gen_unpack_sfixed(cl, 224, 239, 8); - values->max_level_of_detail = __gen_unpack_sfixed(cl, 208, 223, 8); - values->min_level_of_detail = __gen_unpack_sfixed(cl, 192, 207, 8); - values->border_color_alpha = __gen_unpack_uint(cl, 176, 191); - values->border_color_blue = __gen_unpack_uint(cl, 160, 175); - values->border_color_green = __gen_unpack_uint(cl, 144, 159); - values->border_color_red = __gen_unpack_uint(cl, 128, 143); - values->flip_s_and_t_on_incoming_request = __gen_unpack_uint(cl, 127, 127); - values->flip_etc_y = __gen_unpack_uint(cl, 126, 126); - values->flip_texture_y_axis = __gen_unpack_uint(cl, 125, 125); - values->flip_texture_x_axis = __gen_unpack_uint(cl, 124, 124); - values->swizzle_a = __gen_unpack_uint(cl, 121, 123); - values->swizzle_b = __gen_unpack_uint(cl, 118, 120); - values->swizzle_g = __gen_unpack_uint(cl, 115, 117); - values->swizzle_r = __gen_unpack_uint(cl, 112, 114); - values->depth_compare_function = __gen_unpack_uint(cl, 109, 111); - values->srgb = __gen_unpack_uint(cl, 107, 107); - values->texture_type = __gen_unpack_uint(cl, 100, 106); - values->image_depth = __gen_unpack_uint(cl, 86, 99); - values->image_height = __gen_unpack_uint(cl, 72, 85); - values->image_width = __gen_unpack_uint(cl, 58, 71); - values->array_stride_64_byte_aligned = __gen_unpack_uint(cl, 32, 57); - values->texture_base_pointer = __gen_unpack_address(cl, 0, 31); - values->minification_filter = __gen_unpack_uint(cl, 1, 3); - values->magnification_filter = __gen_unpack_uint(cl, 0, 0); -} -#endif - - -enum V3D33_Texture_Data_Formats { - TEXTURE_DATA_FORMAT_R8 = 0, - TEXTURE_DATA_FORMAT_R8_SNORM = 1, - TEXTURE_DATA_FORMAT_RG8 = 2, - TEXTURE_DATA_FORMAT_RG8_SNORM = 3, - TEXTURE_DATA_FORMAT_RGBA8 = 4, - TEXTURE_DATA_FORMAT_RGBA8_SNORM = 5, - TEXTURE_DATA_FORMAT_RGB565 = 6, - TEXTURE_DATA_FORMAT_RGBA4 = 7, - TEXTURE_DATA_FORMAT_RGB5_A1 = 8, - TEXTURE_DATA_FORMAT_RGB10_A2 = 9, - TEXTURE_DATA_FORMAT_R16 = 10, - TEXTURE_DATA_FORMAT_R16_SNORM = 11, - TEXTURE_DATA_FORMAT_RG16 = 12, - TEXTURE_DATA_FORMAT_RG16_SNORM = 13, - TEXTURE_DATA_FORMAT_RGBA16 = 14, - TEXTURE_DATA_FORMAT_RGBA16_SNORM = 15, - TEXTURE_DATA_FORMAT_R16F = 16, - TEXTURE_DATA_FORMAT_RG16F = 17, - TEXTURE_DATA_FORMAT_RGBA16F = 18, - TEXTURE_DATA_FORMAT_R11F_G11F_B10F = 19, - TEXTURE_DATA_FORMAT_RGB9_E5 = 20, - TEXTURE_DATA_FORMAT_DEPTH_COMP16 = 21, - TEXTURE_DATA_FORMAT_DEPTH_COMP24 = 22, - TEXTURE_DATA_FORMAT_DEPTH_COMP32F = 23, - TEXTURE_DATA_FORMAT_DEPTH24_X8 = 24, - TEXTURE_DATA_FORMAT_R4 = 25, - TEXTURE_DATA_FORMAT_R1 = 26, - TEXTURE_DATA_FORMAT_S8 = 27, - TEXTURE_DATA_FORMAT_S16 = 28, - TEXTURE_DATA_FORMAT_R32F = 29, - TEXTURE_DATA_FORMAT_RG32F = 30, - TEXTURE_DATA_FORMAT_RGBA32F = 31, - TEXTURE_DATA_FORMAT_RGB8_ETC2 = 32, - TEXTURE_DATA_FORMAT_RGB8_PUNCHTHROUGH_ALPHA1 = 33, - TEXTURE_DATA_FORMAT_R11_EAC = 34, - TEXTURE_DATA_FORMAT_SIGNED_R11_EAC = 35, - TEXTURE_DATA_FORMAT_RG11_EAC = 36, - TEXTURE_DATA_FORMAT_SIGNED_RG11_EAC = 37, - TEXTURE_DATA_FORMAT_RGBA8_ETC2_EAC = 38, - TEXTURE_DATA_FORMAT_YCBCR_LUMA = 39, - TEXTURE_DATA_FORMAT_YCBCR_420_CHROMA = 40, - TEXTURE_DATA_FORMAT_BC1 = 48, - TEXTURE_DATA_FORMAT_BC2 = 49, - TEXTURE_DATA_FORMAT_BC3 = 50, - TEXTURE_DATA_FORMAT_ASTC_4X4 = 64, - TEXTURE_DATA_FORMAT_ASTC_5X4 = 65, - TEXTURE_DATA_FORMAT_ASTC_5X5 = 66, - TEXTURE_DATA_FORMAT_ASTC_6X5 = 67, - TEXTURE_DATA_FORMAT_ASTC_6X6 = 68, - TEXTURE_DATA_FORMAT_ASTC_8X5 = 69, - TEXTURE_DATA_FORMAT_ASTC_8X6 = 70, - TEXTURE_DATA_FORMAT_ASTC_8X8 = 71, - TEXTURE_DATA_FORMAT_ASTC_10X5 = 72, - TEXTURE_DATA_FORMAT_ASTC_10X6 = 73, - TEXTURE_DATA_FORMAT_ASTC_10X8 = 74, - TEXTURE_DATA_FORMAT_ASTC_10X10 = 75, - TEXTURE_DATA_FORMAT_ASTC_12X10 = 76, - TEXTURE_DATA_FORMAT_ASTC_12X12 = 77, -}; - -#endif /* V3D33_PACK_H */ diff --git a/lib/mesa/src/broadcom/cle/v3d_packet_v41_pack.h b/lib/mesa/src/broadcom/cle/v3d_packet_v41_pack.h deleted file mode 100644 index 03094eb22..000000000 --- a/lib/mesa/src/broadcom/cle/v3d_packet_v41_pack.h +++ /dev/null @@ -1,4399 +0,0 @@ -/* Generated code, see packets.xml and gen_packet_header.py */ - - -/* Packets, enums and structures for V3D 4.1. - * - * This file has been generated, do not hand edit. - */ - -#ifndef V3D41_PACK_H -#define V3D41_PACK_H - -#include "cle/v3d_packet_helpers.h" - - -enum V3D41_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 V3D41_Blend_Factor { - V3D_BLEND_FACTOR_ZERO = 0, - V3D_BLEND_FACTOR_ONE = 1, - V3D_BLEND_FACTOR_SRC_COLOR = 2, - V3D_BLEND_FACTOR_INV_SRC_COLOR = 3, - V3D_BLEND_FACTOR_DST_COLOR = 4, - V3D_BLEND_FACTOR_INV_DST_COLOR = 5, - V3D_BLEND_FACTOR_SRC_ALPHA = 6, - V3D_BLEND_FACTOR_INV_SRC_ALPHA = 7, - V3D_BLEND_FACTOR_DST_ALPHA = 8, - V3D_BLEND_FACTOR_INV_DST_ALPHA = 9, - V3D_BLEND_FACTOR_CONST_COLOR = 10, - V3D_BLEND_FACTOR_INV_CONST_COLOR = 11, - V3D_BLEND_FACTOR_CONST_ALPHA = 12, - V3D_BLEND_FACTOR_INV_CONST_ALPHA = 13, - V3D_BLEND_FACTOR_SRC_ALPHA_SATURATE = 14, -}; - -enum V3D41_Blend_Mode { - V3D_BLEND_MODE_ADD = 0, - V3D_BLEND_MODE_SUB = 1, - V3D_BLEND_MODE_RSUB = 2, - V3D_BLEND_MODE_MIN = 3, - V3D_BLEND_MODE_MAX = 4, - V3D_BLEND_MODE_MUL = 5, - V3D_BLEND_MODE_SCREEN = 6, - V3D_BLEND_MODE_DARKEN = 7, - V3D_BLEND_MODE_LIGHTEN = 8, -}; - -enum V3D41_Stencil_Op { - V3D_STENCIL_OP_ZERO = 0, - V3D_STENCIL_OP_KEEP = 1, - V3D_STENCIL_OP_REPLACE = 2, - V3D_STENCIL_OP_INCR = 3, - V3D_STENCIL_OP_DECR = 4, - V3D_STENCIL_OP_INVERT = 5, - V3D_STENCIL_OP_INCWRAP = 6, - V3D_STENCIL_OP_DECWRAP = 7, -}; - -enum V3D41_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, - V3D_PRIM_POINTS_TF = 16, - V3D_PRIM_LINES_TF = 17, - V3D_PRIM_LINE_LOOP_TF = 18, - V3D_PRIM_LINE_STRIP_TF = 19, - V3D_PRIM_TRIANGLES_TF = 20, - V3D_PRIM_TRIANGLE_STRIP_TF = 21, - V3D_PRIM_TRIANGLE_FAN_TF = 22, -}; - -enum V3D41_Border_Color_Mode { - V3D_BORDER_COLOR_0000 = 0, - V3D_BORDER_COLOR_0001 = 1, - V3D_BORDER_COLOR_1111 = 2, - V3D_BORDER_COLOR_FOLLOWS = 7, -}; - -enum V3D41_Wrap_Mode { - V3D_WRAP_MODE_WRAP_MODE_REPEAT = 0, - V3D_WRAP_MODE_WRAP_MODE_CLAMP = 1, - V3D_WRAP_MODE_WRAP_MODE_MIRROR = 2, - V3D_WRAP_MODE_WRAP_MODE_BORDER = 3, - V3D_WRAP_MODE_WRAP_MODE_MIRROR_ONCE = 4, -}; - -enum V3D41_TMU_Op { - V3D_TMU_OP_WRITE_ADD_READ_PREFETCH = 0, - V3D_TMU_OP_WRITE_SUB_READ_CLEAR = 1, - V3D_TMU_OP_WRITE_XCHG_READ_FLUSH = 2, - V3D_TMU_OP_WRITE_CMPXCHG_READ_FLUSH = 3, - V3D_TMU_OP_WRITE_UMIN_FULL_L1_CLEAR = 4, - V3D_TMU_OP_WRITE_UMAX = 5, - V3D_TMU_OP_WRITE_SMIN = 6, - V3D_TMU_OP_WRITE_SMAX = 7, - V3D_TMU_OP_WRITE_AND_READ_INC = 8, - V3D_TMU_OP_WRITE_OR_READ_DEC = 9, - V3D_TMU_OP_WRITE_XOR_READ_NOT = 10, - V3D_TMU_OP_REGULAR = 15, -}; - -enum V3D41_Varying_Flags_Action { - V3D_VARYING_FLAGS_ACTION_UNCHANGED = 0, - V3D_VARYING_FLAGS_ACTION_ZEROED = 1, - V3D_VARYING_FLAGS_ACTION_SET = 2, -}; - -enum V3D41_Memory_Format { - V3D_MEMORY_FORMAT_RASTER = 0, - V3D_MEMORY_FORMAT_LINEARTILE = 1, - V3D_MEMORY_FORMAT_UB_LINEAR_1_UIF_BLOCK_WIDE = 2, - V3D_MEMORY_FORMAT_UB_LINEAR_2_UIF_BLOCKS_WIDE = 3, - V3D_MEMORY_FORMAT_UIF_NO_XOR = 4, - V3D_MEMORY_FORMAT_UIF_XOR = 5, -}; - -enum V3D41_Decimate_Mode { - V3D_DECIMATE_MODE_SAMPLE_0 = 0, - V3D_DECIMATE_MODE_4X = 1, - V3D_DECIMATE_MODE_ALL_SAMPLES = 3, -}; - -enum V3D41_Internal_Type { - V3D_INTERNAL_TYPE_8I = 0, - V3D_INTERNAL_TYPE_8UI = 1, - V3D_INTERNAL_TYPE_8 = 2, - V3D_INTERNAL_TYPE_16I = 4, - V3D_INTERNAL_TYPE_16UI = 5, - V3D_INTERNAL_TYPE_16F = 6, - V3D_INTERNAL_TYPE_32I = 8, - V3D_INTERNAL_TYPE_32UI = 9, - V3D_INTERNAL_TYPE_32F = 10, -}; - -enum V3D41_Internal_BPP { - V3D_INTERNAL_BPP_32 = 0, - V3D_INTERNAL_BPP_64 = 1, - V3D_INTERNAL_BPP_128 = 2, -}; - -enum V3D41_Internal_Depth_Type { - V3D_INTERNAL_TYPE_DEPTH_32F = 0, - V3D_INTERNAL_TYPE_DEPTH_24 = 1, - V3D_INTERNAL_TYPE_DEPTH_16 = 2, -}; - -enum V3D41_Render_Target_Clamp { - V3D_RENDER_TARGET_CLAMP_NONE = 0, - V3D_RENDER_TARGET_CLAMP_NORM = 1, - V3D_RENDER_TARGET_CLAMP_POS = 2, -}; - -enum V3D41_Output_Image_Format { - V3D_OUTPUT_IMAGE_FORMAT_SRGB8_ALPHA8 = 0, - V3D_OUTPUT_IMAGE_FORMAT_SRGB = 1, - V3D_OUTPUT_IMAGE_FORMAT_RGB10_A2UI = 2, - V3D_OUTPUT_IMAGE_FORMAT_RGB10_A2 = 3, - V3D_OUTPUT_IMAGE_FORMAT_ABGR1555 = 4, - V3D_OUTPUT_IMAGE_FORMAT_ALPHA_MASKED_ABGR1555 = 5, - V3D_OUTPUT_IMAGE_FORMAT_ABGR4444 = 6, - V3D_OUTPUT_IMAGE_FORMAT_BGR565 = 7, - V3D_OUTPUT_IMAGE_FORMAT_R11F_G11F_B10F = 8, - V3D_OUTPUT_IMAGE_FORMAT_RGBA32F = 9, - V3D_OUTPUT_IMAGE_FORMAT_RG32F = 10, - V3D_OUTPUT_IMAGE_FORMAT_R32F = 11, - V3D_OUTPUT_IMAGE_FORMAT_RGBA32I = 12, - V3D_OUTPUT_IMAGE_FORMAT_RG32I = 13, - V3D_OUTPUT_IMAGE_FORMAT_R32I = 14, - V3D_OUTPUT_IMAGE_FORMAT_RGBA32UI = 15, - V3D_OUTPUT_IMAGE_FORMAT_RG32UI = 16, - V3D_OUTPUT_IMAGE_FORMAT_R32UI = 17, - V3D_OUTPUT_IMAGE_FORMAT_RGBA16F = 18, - V3D_OUTPUT_IMAGE_FORMAT_RG16F = 19, - V3D_OUTPUT_IMAGE_FORMAT_R16F = 20, - V3D_OUTPUT_IMAGE_FORMAT_RGBA16I = 21, - V3D_OUTPUT_IMAGE_FORMAT_RG16I = 22, - V3D_OUTPUT_IMAGE_FORMAT_R16I = 23, - V3D_OUTPUT_IMAGE_FORMAT_RGBA16UI = 24, - V3D_OUTPUT_IMAGE_FORMAT_RG16UI = 25, - V3D_OUTPUT_IMAGE_FORMAT_R16UI = 26, - V3D_OUTPUT_IMAGE_FORMAT_RGBA8 = 27, - V3D_OUTPUT_IMAGE_FORMAT_RGB8 = 28, - V3D_OUTPUT_IMAGE_FORMAT_RG8 = 29, - V3D_OUTPUT_IMAGE_FORMAT_R8 = 30, - V3D_OUTPUT_IMAGE_FORMAT_RGBA8I = 31, - V3D_OUTPUT_IMAGE_FORMAT_RG8I = 32, - V3D_OUTPUT_IMAGE_FORMAT_R8I = 33, - V3D_OUTPUT_IMAGE_FORMAT_RGBA8UI = 34, - V3D_OUTPUT_IMAGE_FORMAT_RG8UI = 35, - V3D_OUTPUT_IMAGE_FORMAT_R8UI = 36, - V3D_OUTPUT_IMAGE_FORMAT_BSTC = 39, - V3D_OUTPUT_IMAGE_FORMAT_D32F = 40, - V3D_OUTPUT_IMAGE_FORMAT_D24 = 41, - V3D_OUTPUT_IMAGE_FORMAT_D16 = 42, - V3D_OUTPUT_IMAGE_FORMAT_D24S8 = 43, - V3D_OUTPUT_IMAGE_FORMAT_S8 = 44, -}; - -enum V3D41_Dither_Mode { - V3D_DITHER_MODE_NONE = 0, - V3D_DITHER_MODE_RGB = 1, - V3D_DITHER_MODE_A = 2, - V3D_DITHER_MODE_RGBA = 3, -}; - -#define V3D41_HALT_opcode 0 -#define V3D41_HALT_header \ - .opcode = 0 - -struct V3D41_HALT { - uint32_t opcode; -}; - -static inline void -V3D41_HALT_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_HALT * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D41_HALT_length 1 -#ifdef __gen_unpack_address -static inline void -V3D41_HALT_unpack(const uint8_t * restrict cl, - struct V3D41_HALT * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D41_NOP_opcode 1 -#define V3D41_NOP_header \ - .opcode = 1 - -struct V3D41_NOP { - uint32_t opcode; -}; - -static inline void -V3D41_NOP_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_NOP * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D41_NOP_length 1 -#ifdef __gen_unpack_address -static inline void -V3D41_NOP_unpack(const uint8_t * restrict cl, - struct V3D41_NOP * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D41_FLUSH_opcode 4 -#define V3D41_FLUSH_header \ - .opcode = 4 - -struct V3D41_FLUSH { - uint32_t opcode; -}; - -static inline void -V3D41_FLUSH_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_FLUSH * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D41_FLUSH_length 1 -#ifdef __gen_unpack_address -static inline void -V3D41_FLUSH_unpack(const uint8_t * restrict cl, - struct V3D41_FLUSH * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D41_FLUSH_ALL_STATE_opcode 5 -#define V3D41_FLUSH_ALL_STATE_header \ - .opcode = 5 - -struct V3D41_FLUSH_ALL_STATE { - uint32_t opcode; -}; - -static inline void -V3D41_FLUSH_ALL_STATE_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_FLUSH_ALL_STATE * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D41_FLUSH_ALL_STATE_length 1 -#ifdef __gen_unpack_address -static inline void -V3D41_FLUSH_ALL_STATE_unpack(const uint8_t * restrict cl, - struct V3D41_FLUSH_ALL_STATE * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D41_START_TILE_BINNING_opcode 6 -#define V3D41_START_TILE_BINNING_header \ - .opcode = 6 - -struct V3D41_START_TILE_BINNING { - uint32_t opcode; -}; - -static inline void -V3D41_START_TILE_BINNING_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_START_TILE_BINNING * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D41_START_TILE_BINNING_length 1 -#ifdef __gen_unpack_address -static inline void -V3D41_START_TILE_BINNING_unpack(const uint8_t * restrict cl, - struct V3D41_START_TILE_BINNING * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D41_INCREMENT_SEMAPHORE_opcode 7 -#define V3D41_INCREMENT_SEMAPHORE_header \ - .opcode = 7 - -struct V3D41_INCREMENT_SEMAPHORE { - uint32_t opcode; -}; - -static inline void -V3D41_INCREMENT_SEMAPHORE_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_INCREMENT_SEMAPHORE * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D41_INCREMENT_SEMAPHORE_length 1 -#ifdef __gen_unpack_address -static inline void -V3D41_INCREMENT_SEMAPHORE_unpack(const uint8_t * restrict cl, - struct V3D41_INCREMENT_SEMAPHORE * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D41_WAIT_ON_SEMAPHORE_opcode 8 -#define V3D41_WAIT_ON_SEMAPHORE_header \ - .opcode = 8 - -struct V3D41_WAIT_ON_SEMAPHORE { - uint32_t opcode; -}; - -static inline void -V3D41_WAIT_ON_SEMAPHORE_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_WAIT_ON_SEMAPHORE * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D41_WAIT_ON_SEMAPHORE_length 1 -#ifdef __gen_unpack_address -static inline void -V3D41_WAIT_ON_SEMAPHORE_unpack(const uint8_t * restrict cl, - struct V3D41_WAIT_ON_SEMAPHORE * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D41_WAIT_FOR_PREVIOUS_FRAME_opcode 9 -#define V3D41_WAIT_FOR_PREVIOUS_FRAME_header \ - .opcode = 9 - -struct V3D41_WAIT_FOR_PREVIOUS_FRAME { - uint32_t opcode; -}; - -static inline void -V3D41_WAIT_FOR_PREVIOUS_FRAME_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_WAIT_FOR_PREVIOUS_FRAME * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D41_WAIT_FOR_PREVIOUS_FRAME_length 1 -#ifdef __gen_unpack_address -static inline void -V3D41_WAIT_FOR_PREVIOUS_FRAME_unpack(const uint8_t * restrict cl, - struct V3D41_WAIT_FOR_PREVIOUS_FRAME * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D41_ENABLE_Z_ONLY_RENDERING_opcode 10 -#define V3D41_ENABLE_Z_ONLY_RENDERING_header \ - .opcode = 10 - -struct V3D41_ENABLE_Z_ONLY_RENDERING { - uint32_t opcode; -}; - -static inline void -V3D41_ENABLE_Z_ONLY_RENDERING_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_ENABLE_Z_ONLY_RENDERING * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D41_ENABLE_Z_ONLY_RENDERING_length 1 -#ifdef __gen_unpack_address -static inline void -V3D41_ENABLE_Z_ONLY_RENDERING_unpack(const uint8_t * restrict cl, - struct V3D41_ENABLE_Z_ONLY_RENDERING * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D41_DISABLE_Z_ONLY_RENDERING_opcode 11 -#define V3D41_DISABLE_Z_ONLY_RENDERING_header \ - .opcode = 11 - -struct V3D41_DISABLE_Z_ONLY_RENDERING { - uint32_t opcode; -}; - -static inline void -V3D41_DISABLE_Z_ONLY_RENDERING_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_DISABLE_Z_ONLY_RENDERING * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D41_DISABLE_Z_ONLY_RENDERING_length 1 -#ifdef __gen_unpack_address -static inline void -V3D41_DISABLE_Z_ONLY_RENDERING_unpack(const uint8_t * restrict cl, - struct V3D41_DISABLE_Z_ONLY_RENDERING * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D41_END_OF_Z_ONLY_RENDERING_IN_FRAME_opcode 12 -#define V3D41_END_OF_Z_ONLY_RENDERING_IN_FRAME_header\ - .opcode = 12 - -struct V3D41_END_OF_Z_ONLY_RENDERING_IN_FRAME { - uint32_t opcode; -}; - -static inline void -V3D41_END_OF_Z_ONLY_RENDERING_IN_FRAME_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_END_OF_Z_ONLY_RENDERING_IN_FRAME * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D41_END_OF_Z_ONLY_RENDERING_IN_FRAME_length 1 -#ifdef __gen_unpack_address -static inline void -V3D41_END_OF_Z_ONLY_RENDERING_IN_FRAME_unpack(const uint8_t * restrict cl, - struct V3D41_END_OF_Z_ONLY_RENDERING_IN_FRAME * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D41_END_OF_RENDERING_opcode 13 -#define V3D41_END_OF_RENDERING_header \ - .opcode = 13 - -struct V3D41_END_OF_RENDERING { - uint32_t opcode; -}; - -static inline void -V3D41_END_OF_RENDERING_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_END_OF_RENDERING * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D41_END_OF_RENDERING_length 1 -#ifdef __gen_unpack_address -static inline void -V3D41_END_OF_RENDERING_unpack(const uint8_t * restrict cl, - struct V3D41_END_OF_RENDERING * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D41_WAIT_FOR_TRANSFORM_FEEDBACK_opcode 14 -#define V3D41_WAIT_FOR_TRANSFORM_FEEDBACK_header\ - .opcode = 14 - -struct V3D41_WAIT_FOR_TRANSFORM_FEEDBACK { - uint32_t opcode; - uint32_t block_count; -}; - -static inline void -V3D41_WAIT_FOR_TRANSFORM_FEEDBACK_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_WAIT_FOR_TRANSFORM_FEEDBACK * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->block_count, 0, 7); - -} - -#define V3D41_WAIT_FOR_TRANSFORM_FEEDBACK_length 2 -#ifdef __gen_unpack_address -static inline void -V3D41_WAIT_FOR_TRANSFORM_FEEDBACK_unpack(const uint8_t * restrict cl, - struct V3D41_WAIT_FOR_TRANSFORM_FEEDBACK * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->block_count = __gen_unpack_uint(cl, 8, 15); -} -#endif - - -#define V3D41_BRANCH_TO_AUTO_CHAINED_SUB_LIST_opcode 15 -#define V3D41_BRANCH_TO_AUTO_CHAINED_SUB_LIST_header\ - .opcode = 15 - -struct V3D41_BRANCH_TO_AUTO_CHAINED_SUB_LIST { - uint32_t opcode; - __gen_address_type address; -}; - -static inline void -V3D41_BRANCH_TO_AUTO_CHAINED_SUB_LIST_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_BRANCH_TO_AUTO_CHAINED_SUB_LIST * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - __gen_emit_reloc(data, &values->address); - cl[ 1] = __gen_address_offset(&values->address); - - cl[ 2] = __gen_address_offset(&values->address) >> 8; - - cl[ 3] = __gen_address_offset(&values->address) >> 16; - - cl[ 4] = __gen_address_offset(&values->address) >> 24; - -} - -#define V3D41_BRANCH_TO_AUTO_CHAINED_SUB_LIST_length 5 -#ifdef __gen_unpack_address -static inline void -V3D41_BRANCH_TO_AUTO_CHAINED_SUB_LIST_unpack(const uint8_t * restrict cl, - struct V3D41_BRANCH_TO_AUTO_CHAINED_SUB_LIST * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->address = __gen_unpack_address(cl, 8, 39); -} -#endif - - -#define V3D41_BRANCH_opcode 16 -#define V3D41_BRANCH_header \ - .opcode = 16 - -struct V3D41_BRANCH { - uint32_t opcode; - __gen_address_type address; -}; - -static inline void -V3D41_BRANCH_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_BRANCH * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - __gen_emit_reloc(data, &values->address); - cl[ 1] = __gen_address_offset(&values->address); - - cl[ 2] = __gen_address_offset(&values->address) >> 8; - - cl[ 3] = __gen_address_offset(&values->address) >> 16; - - cl[ 4] = __gen_address_offset(&values->address) >> 24; - -} - -#define V3D41_BRANCH_length 5 -#ifdef __gen_unpack_address -static inline void -V3D41_BRANCH_unpack(const uint8_t * restrict cl, - struct V3D41_BRANCH * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->address = __gen_unpack_address(cl, 8, 39); -} -#endif - - -#define V3D41_BRANCH_TO_SUB_LIST_opcode 17 -#define V3D41_BRANCH_TO_SUB_LIST_header \ - .opcode = 17 - -struct V3D41_BRANCH_TO_SUB_LIST { - uint32_t opcode; - __gen_address_type address; -}; - -static inline void -V3D41_BRANCH_TO_SUB_LIST_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_BRANCH_TO_SUB_LIST * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - __gen_emit_reloc(data, &values->address); - cl[ 1] = __gen_address_offset(&values->address); - - cl[ 2] = __gen_address_offset(&values->address) >> 8; - - cl[ 3] = __gen_address_offset(&values->address) >> 16; - - cl[ 4] = __gen_address_offset(&values->address) >> 24; - -} - -#define V3D41_BRANCH_TO_SUB_LIST_length 5 -#ifdef __gen_unpack_address -static inline void -V3D41_BRANCH_TO_SUB_LIST_unpack(const uint8_t * restrict cl, - struct V3D41_BRANCH_TO_SUB_LIST * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->address = __gen_unpack_address(cl, 8, 39); -} -#endif - - -#define V3D41_RETURN_FROM_SUB_LIST_opcode 18 -#define V3D41_RETURN_FROM_SUB_LIST_header \ - .opcode = 18 - -struct V3D41_RETURN_FROM_SUB_LIST { - uint32_t opcode; -}; - -static inline void -V3D41_RETURN_FROM_SUB_LIST_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_RETURN_FROM_SUB_LIST * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D41_RETURN_FROM_SUB_LIST_length 1 -#ifdef __gen_unpack_address -static inline void -V3D41_RETURN_FROM_SUB_LIST_unpack(const uint8_t * restrict cl, - struct V3D41_RETURN_FROM_SUB_LIST * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D41_FLUSH_VCD_CACHE_opcode 19 -#define V3D41_FLUSH_VCD_CACHE_header \ - .opcode = 19 - -struct V3D41_FLUSH_VCD_CACHE { - uint32_t opcode; -}; - -static inline void -V3D41_FLUSH_VCD_CACHE_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_FLUSH_VCD_CACHE * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D41_FLUSH_VCD_CACHE_length 1 -#ifdef __gen_unpack_address -static inline void -V3D41_FLUSH_VCD_CACHE_unpack(const uint8_t * restrict cl, - struct V3D41_FLUSH_VCD_CACHE * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D41_START_ADDRESS_OF_GENERIC_TILE_LIST_opcode 20 -#define V3D41_START_ADDRESS_OF_GENERIC_TILE_LIST_header\ - .opcode = 20 - -struct V3D41_START_ADDRESS_OF_GENERIC_TILE_LIST { - uint32_t opcode; - __gen_address_type start; - __gen_address_type end; -}; - -static inline void -V3D41_START_ADDRESS_OF_GENERIC_TILE_LIST_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_START_ADDRESS_OF_GENERIC_TILE_LIST * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - __gen_emit_reloc(data, &values->start); - cl[ 1] = __gen_address_offset(&values->start); - - cl[ 2] = __gen_address_offset(&values->start) >> 8; - - cl[ 3] = __gen_address_offset(&values->start) >> 16; - - cl[ 4] = __gen_address_offset(&values->start) >> 24; - - __gen_emit_reloc(data, &values->end); - cl[ 5] = __gen_address_offset(&values->end); - - cl[ 6] = __gen_address_offset(&values->end) >> 8; - - cl[ 7] = __gen_address_offset(&values->end) >> 16; - - cl[ 8] = __gen_address_offset(&values->end) >> 24; - -} - -#define V3D41_START_ADDRESS_OF_GENERIC_TILE_LIST_length 9 -#ifdef __gen_unpack_address -static inline void -V3D41_START_ADDRESS_OF_GENERIC_TILE_LIST_unpack(const uint8_t * restrict cl, - struct V3D41_START_ADDRESS_OF_GENERIC_TILE_LIST * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->start = __gen_unpack_address(cl, 8, 39); - values->end = __gen_unpack_address(cl, 40, 71); -} -#endif - - -#define V3D41_BRANCH_TO_IMPLICIT_TILE_LIST_opcode 21 -#define V3D41_BRANCH_TO_IMPLICIT_TILE_LIST_header\ - .opcode = 21 - -struct V3D41_BRANCH_TO_IMPLICIT_TILE_LIST { - uint32_t opcode; - uint32_t tile_list_set_number; -}; - -static inline void -V3D41_BRANCH_TO_IMPLICIT_TILE_LIST_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_BRANCH_TO_IMPLICIT_TILE_LIST * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->tile_list_set_number, 0, 7); - -} - -#define V3D41_BRANCH_TO_IMPLICIT_TILE_LIST_length 2 -#ifdef __gen_unpack_address -static inline void -V3D41_BRANCH_TO_IMPLICIT_TILE_LIST_unpack(const uint8_t * restrict cl, - struct V3D41_BRANCH_TO_IMPLICIT_TILE_LIST * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->tile_list_set_number = __gen_unpack_uint(cl, 8, 15); -} -#endif - - -#define V3D41_BRANCH_TO_EXPLICIT_SUPERTILE_opcode 22 -#define V3D41_BRANCH_TO_EXPLICIT_SUPERTILE_header\ - .opcode = 22 - -struct V3D41_BRANCH_TO_EXPLICIT_SUPERTILE { - uint32_t opcode; - __gen_address_type absolute_address_of_explicit_supertile_render_list; - uint32_t explicit_supertile_number; - uint32_t row_number; - uint32_t column_number; -}; - -static inline void -V3D41_BRANCH_TO_EXPLICIT_SUPERTILE_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_BRANCH_TO_EXPLICIT_SUPERTILE * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->column_number, 0, 7); - - cl[ 2] = __gen_uint(values->row_number, 0, 7); - - cl[ 3] = __gen_uint(values->explicit_supertile_number, 0, 7); - - __gen_emit_reloc(data, &values->absolute_address_of_explicit_supertile_render_list); - cl[ 4] = __gen_address_offset(&values->absolute_address_of_explicit_supertile_render_list); - - cl[ 5] = __gen_address_offset(&values->absolute_address_of_explicit_supertile_render_list) >> 8; - - cl[ 6] = __gen_address_offset(&values->absolute_address_of_explicit_supertile_render_list) >> 16; - - cl[ 7] = __gen_address_offset(&values->absolute_address_of_explicit_supertile_render_list) >> 24; - -} - -#define V3D41_BRANCH_TO_EXPLICIT_SUPERTILE_length 8 -#ifdef __gen_unpack_address -static inline void -V3D41_BRANCH_TO_EXPLICIT_SUPERTILE_unpack(const uint8_t * restrict cl, - struct V3D41_BRANCH_TO_EXPLICIT_SUPERTILE * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->absolute_address_of_explicit_supertile_render_list = __gen_unpack_address(cl, 32, 63); - values->explicit_supertile_number = __gen_unpack_uint(cl, 24, 31); - values->row_number = __gen_unpack_uint(cl, 16, 23); - values->column_number = __gen_unpack_uint(cl, 8, 15); -} -#endif - - -#define V3D41_SUPERTILE_COORDINATES_opcode 23 -#define V3D41_SUPERTILE_COORDINATES_header \ - .opcode = 23 - -struct V3D41_SUPERTILE_COORDINATES { - uint32_t opcode; - uint32_t row_number_in_supertiles; - uint32_t column_number_in_supertiles; -}; - -static inline void -V3D41_SUPERTILE_COORDINATES_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_SUPERTILE_COORDINATES * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->column_number_in_supertiles, 0, 7); - - cl[ 2] = __gen_uint(values->row_number_in_supertiles, 0, 7); - -} - -#define V3D41_SUPERTILE_COORDINATES_length 3 -#ifdef __gen_unpack_address -static inline void -V3D41_SUPERTILE_COORDINATES_unpack(const uint8_t * restrict cl, - struct V3D41_SUPERTILE_COORDINATES * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->row_number_in_supertiles = __gen_unpack_uint(cl, 16, 23); - values->column_number_in_supertiles = __gen_unpack_uint(cl, 8, 15); -} -#endif - - -#define V3D41_CLEAR_TILE_BUFFERS_opcode 25 -#define V3D41_CLEAR_TILE_BUFFERS_header \ - .opcode = 25 - -struct V3D41_CLEAR_TILE_BUFFERS { - uint32_t opcode; - bool clear_z_stencil_buffer; - bool clear_all_render_targets; -}; - -static inline void -V3D41_CLEAR_TILE_BUFFERS_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_CLEAR_TILE_BUFFERS * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->clear_z_stencil_buffer, 1, 1) | - __gen_uint(values->clear_all_render_targets, 0, 0); - -} - -#define V3D41_CLEAR_TILE_BUFFERS_length 2 -#ifdef __gen_unpack_address -static inline void -V3D41_CLEAR_TILE_BUFFERS_unpack(const uint8_t * restrict cl, - struct V3D41_CLEAR_TILE_BUFFERS * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->clear_z_stencil_buffer = __gen_unpack_uint(cl, 9, 9); - values->clear_all_render_targets = __gen_unpack_uint(cl, 8, 8); -} -#endif - - -#define V3D41_END_OF_LOADS_opcode 26 -#define V3D41_END_OF_LOADS_header \ - .opcode = 26 - -struct V3D41_END_OF_LOADS { - uint32_t opcode; -}; - -static inline void -V3D41_END_OF_LOADS_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_END_OF_LOADS * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D41_END_OF_LOADS_length 1 -#ifdef __gen_unpack_address -static inline void -V3D41_END_OF_LOADS_unpack(const uint8_t * restrict cl, - struct V3D41_END_OF_LOADS * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D41_END_OF_TILE_MARKER_opcode 27 -#define V3D41_END_OF_TILE_MARKER_header \ - .opcode = 27 - -struct V3D41_END_OF_TILE_MARKER { - uint32_t opcode; -}; - -static inline void -V3D41_END_OF_TILE_MARKER_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_END_OF_TILE_MARKER * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D41_END_OF_TILE_MARKER_length 1 -#ifdef __gen_unpack_address -static inline void -V3D41_END_OF_TILE_MARKER_unpack(const uint8_t * restrict cl, - struct V3D41_END_OF_TILE_MARKER * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D41_STORE_TILE_BUFFER_GENERAL_opcode 29 -#define V3D41_STORE_TILE_BUFFER_GENERAL_header \ - .opcode = 29 - -struct V3D41_STORE_TILE_BUFFER_GENERAL { - uint32_t opcode; - __gen_address_type address; - uint32_t height; - uint32_t height_in_ub_or_stride; - bool r_b_swap; - bool channel_reverse; - bool clear_buffer_being_stored; - enum V3D41_Output_Image_Format output_image_format; - enum V3D41_Decimate_Mode decimate_mode; - enum V3D41_Dither_Mode dither_mode; - bool flip_y; - enum V3D41_Memory_Format memory_format; - uint32_t buffer_to_store; -#define RENDER_TARGET_0 0 -#define RENDER_TARGET_1 1 -#define RENDER_TARGET_2 2 -#define RENDER_TARGET_3 3 -#define NONE 8 -#define Z 9 -#define STENCIL 10 -#define ZSTENCIL 11 -}; - -static inline void -V3D41_STORE_TILE_BUFFER_GENERAL_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_STORE_TILE_BUFFER_GENERAL * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->flip_y, 7, 7) | - __gen_uint(values->memory_format, 4, 6) | - __gen_uint(values->buffer_to_store, 0, 3); - - cl[ 2] = __gen_uint(values->output_image_format, 4, 9) | - __gen_uint(values->decimate_mode, 2, 3) | - __gen_uint(values->dither_mode, 0, 1); - - cl[ 3] = __gen_uint(values->r_b_swap, 4, 4) | - __gen_uint(values->channel_reverse, 3, 3) | - __gen_uint(values->clear_buffer_being_stored, 2, 2) | - __gen_uint(values->output_image_format, 4, 9) >> 8; - - cl[ 4] = __gen_uint(values->height_in_ub_or_stride, 4, 23); - - cl[ 5] = __gen_uint(values->height_in_ub_or_stride, 4, 23) >> 8; - - cl[ 6] = __gen_uint(values->height_in_ub_or_stride, 4, 23) >> 16; - - cl[ 7] = __gen_uint(values->height, 0, 15); - - cl[ 8] = __gen_uint(values->height, 0, 15) >> 8; - - __gen_emit_reloc(data, &values->address); - cl[ 9] = __gen_address_offset(&values->address); - - cl[10] = __gen_address_offset(&values->address) >> 8; - - cl[11] = __gen_address_offset(&values->address) >> 16; - - cl[12] = __gen_address_offset(&values->address) >> 24; - -} - -#define V3D41_STORE_TILE_BUFFER_GENERAL_length 13 -#ifdef __gen_unpack_address -static inline void -V3D41_STORE_TILE_BUFFER_GENERAL_unpack(const uint8_t * restrict cl, - struct V3D41_STORE_TILE_BUFFER_GENERAL * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->address = __gen_unpack_address(cl, 72, 103); - values->height = __gen_unpack_uint(cl, 56, 71); - values->height_in_ub_or_stride = __gen_unpack_uint(cl, 36, 55); - values->r_b_swap = __gen_unpack_uint(cl, 28, 28); - values->channel_reverse = __gen_unpack_uint(cl, 27, 27); - values->clear_buffer_being_stored = __gen_unpack_uint(cl, 26, 26); - values->output_image_format = __gen_unpack_uint(cl, 20, 25); - values->decimate_mode = __gen_unpack_uint(cl, 18, 19); - values->dither_mode = __gen_unpack_uint(cl, 16, 17); - values->flip_y = __gen_unpack_uint(cl, 15, 15); - values->memory_format = __gen_unpack_uint(cl, 12, 14); - values->buffer_to_store = __gen_unpack_uint(cl, 8, 11); -} -#endif - - -#define V3D41_LOAD_TILE_BUFFER_GENERAL_opcode 30 -#define V3D41_LOAD_TILE_BUFFER_GENERAL_header \ - .opcode = 30 - -struct V3D41_LOAD_TILE_BUFFER_GENERAL { - uint32_t opcode; - __gen_address_type address; - uint32_t height; - uint32_t height_in_ub_or_stride; - bool r_b_swap; - bool channel_reverse; - enum V3D41_Output_Image_Format input_image_format; - enum V3D41_Decimate_Mode decimate_mode; - bool flip_y; - enum V3D41_Memory_Format memory_format; - uint32_t buffer_to_load; -#define RENDER_TARGET_0 0 -#define RENDER_TARGET_1 1 -#define RENDER_TARGET_2 2 -#define RENDER_TARGET_3 3 -#define NONE 8 -#define Z 9 -#define STENCIL 10 -#define ZSTENCIL 11 -}; - -static inline void -V3D41_LOAD_TILE_BUFFER_GENERAL_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_LOAD_TILE_BUFFER_GENERAL * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->flip_y, 7, 7) | - __gen_uint(values->memory_format, 4, 6) | - __gen_uint(values->buffer_to_load, 0, 3); - - cl[ 2] = __gen_uint(values->input_image_format, 4, 9) | - __gen_uint(values->decimate_mode, 2, 3); - - cl[ 3] = __gen_uint(values->r_b_swap, 4, 4) | - __gen_uint(values->channel_reverse, 3, 3) | - __gen_uint(values->input_image_format, 4, 9) >> 8; - - cl[ 4] = __gen_uint(values->height_in_ub_or_stride, 4, 23); - - cl[ 5] = __gen_uint(values->height_in_ub_or_stride, 4, 23) >> 8; - - cl[ 6] = __gen_uint(values->height_in_ub_or_stride, 4, 23) >> 16; - - cl[ 7] = __gen_uint(values->height, 0, 15); - - cl[ 8] = __gen_uint(values->height, 0, 15) >> 8; - - __gen_emit_reloc(data, &values->address); - cl[ 9] = __gen_address_offset(&values->address); - - cl[10] = __gen_address_offset(&values->address) >> 8; - - cl[11] = __gen_address_offset(&values->address) >> 16; - - cl[12] = __gen_address_offset(&values->address) >> 24; - -} - -#define V3D41_LOAD_TILE_BUFFER_GENERAL_length 13 -#ifdef __gen_unpack_address -static inline void -V3D41_LOAD_TILE_BUFFER_GENERAL_unpack(const uint8_t * restrict cl, - struct V3D41_LOAD_TILE_BUFFER_GENERAL * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->address = __gen_unpack_address(cl, 72, 103); - values->height = __gen_unpack_uint(cl, 56, 71); - values->height_in_ub_or_stride = __gen_unpack_uint(cl, 36, 55); - values->r_b_swap = __gen_unpack_uint(cl, 28, 28); - values->channel_reverse = __gen_unpack_uint(cl, 27, 27); - values->input_image_format = __gen_unpack_uint(cl, 20, 25); - values->decimate_mode = __gen_unpack_uint(cl, 18, 19); - values->flip_y = __gen_unpack_uint(cl, 15, 15); - values->memory_format = __gen_unpack_uint(cl, 12, 14); - values->buffer_to_load = __gen_unpack_uint(cl, 8, 11); -} -#endif - - -#define V3D41_TRANSFORM_FEEDBACK_FLUSH_AND_COUNT_opcode 31 -#define V3D41_TRANSFORM_FEEDBACK_FLUSH_AND_COUNT_header\ - .opcode = 31 - -struct V3D41_TRANSFORM_FEEDBACK_FLUSH_AND_COUNT { - uint32_t opcode; -}; - -static inline void -V3D41_TRANSFORM_FEEDBACK_FLUSH_AND_COUNT_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_TRANSFORM_FEEDBACK_FLUSH_AND_COUNT * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D41_TRANSFORM_FEEDBACK_FLUSH_AND_COUNT_length 1 -#ifdef __gen_unpack_address -static inline void -V3D41_TRANSFORM_FEEDBACK_FLUSH_AND_COUNT_unpack(const uint8_t * restrict cl, - struct V3D41_TRANSFORM_FEEDBACK_FLUSH_AND_COUNT * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D41_INDEXED_PRIM_LIST_opcode 32 -#define V3D41_INDEXED_PRIM_LIST_header \ - .opcode = 32 - -struct V3D41_INDEXED_PRIM_LIST { - uint32_t opcode; - uint32_t index_offset; - bool enable_primitive_restarts; - uint32_t length; - uint32_t index_type; -#define INDEX_TYPE_8_BIT 0 -#define INDEX_TYPE_16_BIT 1 -#define INDEX_TYPE_32_BIT 2 - enum V3D41_Primitive mode; -}; - -static inline void -V3D41_INDEXED_PRIM_LIST_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_INDEXED_PRIM_LIST * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->index_type, 6, 7) | - __gen_uint(values->mode, 0, 5); - - cl[ 2] = __gen_uint(values->length, 0, 30); - - cl[ 3] = __gen_uint(values->length, 0, 30) >> 8; - - cl[ 4] = __gen_uint(values->length, 0, 30) >> 16; - - cl[ 5] = __gen_uint(values->enable_primitive_restarts, 7, 7) | - __gen_uint(values->length, 0, 30) >> 24; - - - memcpy(&cl[6], &values->index_offset, sizeof(values->index_offset)); -} - -#define V3D41_INDEXED_PRIM_LIST_length 10 -#ifdef __gen_unpack_address -static inline void -V3D41_INDEXED_PRIM_LIST_unpack(const uint8_t * restrict cl, - struct V3D41_INDEXED_PRIM_LIST * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->index_offset = __gen_unpack_uint(cl, 48, 79); - values->enable_primitive_restarts = __gen_unpack_uint(cl, 47, 47); - values->length = __gen_unpack_uint(cl, 16, 46); - values->index_type = __gen_unpack_uint(cl, 14, 15); - values->mode = __gen_unpack_uint(cl, 8, 13); -} -#endif - - -#define V3D41_INDEXED_INSTANCED_PRIM_LIST_opcode 34 -#define V3D41_INDEXED_INSTANCED_PRIM_LIST_header\ - .opcode = 34 - -struct V3D41_INDEXED_INSTANCED_PRIM_LIST { - uint32_t opcode; - uint32_t index_offset; - uint32_t number_of_instances; - bool enable_primitive_restarts; - uint32_t instance_length; - uint32_t index_type; -#define INDEX_TYPE_8_BIT 0 -#define INDEX_TYPE_16_BIT 1 -#define INDEX_TYPE_32_BIT 2 - enum V3D41_Primitive mode; -}; - -static inline void -V3D41_INDEXED_INSTANCED_PRIM_LIST_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_INDEXED_INSTANCED_PRIM_LIST * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->index_type, 6, 7) | - __gen_uint(values->mode, 0, 5); - - cl[ 2] = __gen_uint(values->instance_length, 0, 30); - - cl[ 3] = __gen_uint(values->instance_length, 0, 30) >> 8; - - cl[ 4] = __gen_uint(values->instance_length, 0, 30) >> 16; - - cl[ 5] = __gen_uint(values->enable_primitive_restarts, 7, 7) | - __gen_uint(values->instance_length, 0, 30) >> 24; - - - memcpy(&cl[6], &values->number_of_instances, sizeof(values->number_of_instances)); - - memcpy(&cl[10], &values->index_offset, sizeof(values->index_offset)); -} - -#define V3D41_INDEXED_INSTANCED_PRIM_LIST_length 14 -#ifdef __gen_unpack_address -static inline void -V3D41_INDEXED_INSTANCED_PRIM_LIST_unpack(const uint8_t * restrict cl, - struct V3D41_INDEXED_INSTANCED_PRIM_LIST * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->index_offset = __gen_unpack_uint(cl, 80, 111); - values->number_of_instances = __gen_unpack_uint(cl, 48, 79); - values->enable_primitive_restarts = __gen_unpack_uint(cl, 47, 47); - values->instance_length = __gen_unpack_uint(cl, 16, 46); - values->index_type = __gen_unpack_uint(cl, 14, 15); - values->mode = __gen_unpack_uint(cl, 8, 13); -} -#endif - - -#define V3D41_VERTEX_ARRAY_PRIMS_opcode 36 -#define V3D41_VERTEX_ARRAY_PRIMS_header \ - .opcode = 36 - -struct V3D41_VERTEX_ARRAY_PRIMS { - uint32_t opcode; - uint32_t index_of_first_vertex; - uint32_t length; - enum V3D41_Primitive mode; -}; - -static inline void -V3D41_VERTEX_ARRAY_PRIMS_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_VERTEX_ARRAY_PRIMS * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->mode, 0, 7); - - - memcpy(&cl[2], &values->length, sizeof(values->length)); - - memcpy(&cl[6], &values->index_of_first_vertex, sizeof(values->index_of_first_vertex)); -} - -#define V3D41_VERTEX_ARRAY_PRIMS_length 10 -#ifdef __gen_unpack_address -static inline void -V3D41_VERTEX_ARRAY_PRIMS_unpack(const uint8_t * restrict cl, - struct V3D41_VERTEX_ARRAY_PRIMS * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->index_of_first_vertex = __gen_unpack_uint(cl, 48, 79); - values->length = __gen_unpack_uint(cl, 16, 47); - values->mode = __gen_unpack_uint(cl, 8, 15); -} -#endif - - -#define V3D41_VERTEX_ARRAY_INSTANCED_PRIMS_opcode 38 -#define V3D41_VERTEX_ARRAY_INSTANCED_PRIMS_header\ - .opcode = 38 - -struct V3D41_VERTEX_ARRAY_INSTANCED_PRIMS { - uint32_t opcode; - uint32_t index_of_first_vertex; - uint32_t number_of_instances; - uint32_t instance_length; - enum V3D41_Primitive mode; -}; - -static inline void -V3D41_VERTEX_ARRAY_INSTANCED_PRIMS_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_VERTEX_ARRAY_INSTANCED_PRIMS * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->mode, 0, 7); - - - memcpy(&cl[2], &values->instance_length, sizeof(values->instance_length)); - - memcpy(&cl[6], &values->number_of_instances, sizeof(values->number_of_instances)); - - memcpy(&cl[10], &values->index_of_first_vertex, sizeof(values->index_of_first_vertex)); -} - -#define V3D41_VERTEX_ARRAY_INSTANCED_PRIMS_length 14 -#ifdef __gen_unpack_address -static inline void -V3D41_VERTEX_ARRAY_INSTANCED_PRIMS_unpack(const uint8_t * restrict cl, - struct V3D41_VERTEX_ARRAY_INSTANCED_PRIMS * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->index_of_first_vertex = __gen_unpack_uint(cl, 80, 111); - values->number_of_instances = __gen_unpack_uint(cl, 48, 79); - values->instance_length = __gen_unpack_uint(cl, 16, 47); - values->mode = __gen_unpack_uint(cl, 8, 15); -} -#endif - - -#define V3D41_BASE_VERTEX_BASE_INSTANCE_opcode 43 -#define V3D41_BASE_VERTEX_BASE_INSTANCE_header \ - .opcode = 43 - -struct V3D41_BASE_VERTEX_BASE_INSTANCE { - uint32_t opcode; - uint32_t base_instance; - uint32_t base_vertex; -}; - -static inline void -V3D41_BASE_VERTEX_BASE_INSTANCE_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_BASE_VERTEX_BASE_INSTANCE * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - - memcpy(&cl[1], &values->base_vertex, sizeof(values->base_vertex)); - - memcpy(&cl[5], &values->base_instance, sizeof(values->base_instance)); -} - -#define V3D41_BASE_VERTEX_BASE_INSTANCE_length 9 -#ifdef __gen_unpack_address -static inline void -V3D41_BASE_VERTEX_BASE_INSTANCE_unpack(const uint8_t * restrict cl, - struct V3D41_BASE_VERTEX_BASE_INSTANCE * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->base_instance = __gen_unpack_uint(cl, 40, 71); - values->base_vertex = __gen_unpack_uint(cl, 8, 39); -} -#endif - - -#define V3D41_INDEX_BUFFER_SETUP_opcode 44 -#define V3D41_INDEX_BUFFER_SETUP_header \ - .opcode = 44 - -struct V3D41_INDEX_BUFFER_SETUP { - uint32_t opcode; - __gen_address_type address; - uint32_t size; -}; - -static inline void -V3D41_INDEX_BUFFER_SETUP_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_INDEX_BUFFER_SETUP * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - __gen_emit_reloc(data, &values->address); - cl[ 1] = __gen_address_offset(&values->address); - - cl[ 2] = __gen_address_offset(&values->address) >> 8; - - cl[ 3] = __gen_address_offset(&values->address) >> 16; - - cl[ 4] = __gen_address_offset(&values->address) >> 24; - - - memcpy(&cl[5], &values->size, sizeof(values->size)); -} - -#define V3D41_INDEX_BUFFER_SETUP_length 9 -#ifdef __gen_unpack_address -static inline void -V3D41_INDEX_BUFFER_SETUP_unpack(const uint8_t * restrict cl, - struct V3D41_INDEX_BUFFER_SETUP * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->address = __gen_unpack_address(cl, 8, 39); - values->size = __gen_unpack_uint(cl, 40, 71); -} -#endif - - -#define V3D41_PRIM_LIST_FORMAT_opcode 56 -#define V3D41_PRIM_LIST_FORMAT_header \ - .opcode = 56 - -struct V3D41_PRIM_LIST_FORMAT { - uint32_t opcode; - bool tri_strip_or_fan; - uint32_t primitive_type; -#define LIST_POINTS 0 -#define LIST_LINES 1 -#define LIST_TRIANGLES 2 -}; - -static inline void -V3D41_PRIM_LIST_FORMAT_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_PRIM_LIST_FORMAT * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->tri_strip_or_fan, 7, 7) | - __gen_uint(values->primitive_type, 0, 5); - -} - -#define V3D41_PRIM_LIST_FORMAT_length 2 -#ifdef __gen_unpack_address -static inline void -V3D41_PRIM_LIST_FORMAT_unpack(const uint8_t * restrict cl, - struct V3D41_PRIM_LIST_FORMAT * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->tri_strip_or_fan = __gen_unpack_uint(cl, 15, 15); - values->primitive_type = __gen_unpack_uint(cl, 8, 13); -} -#endif - - -#define V3D41_GL_SHADER_STATE_opcode 64 -#define V3D41_GL_SHADER_STATE_header \ - .opcode = 64 - -struct V3D41_GL_SHADER_STATE { - uint32_t opcode; - __gen_address_type address; - uint32_t number_of_attribute_arrays; -}; - -static inline void -V3D41_GL_SHADER_STATE_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_GL_SHADER_STATE * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - __gen_emit_reloc(data, &values->address); - cl[ 1] = __gen_address_offset(&values->address) | - __gen_uint(values->number_of_attribute_arrays, 0, 4); - - cl[ 2] = __gen_address_offset(&values->address) >> 8; - - cl[ 3] = __gen_address_offset(&values->address) >> 16; - - cl[ 4] = __gen_address_offset(&values->address) >> 24; - -} - -#define V3D41_GL_SHADER_STATE_length 5 -#ifdef __gen_unpack_address -static inline void -V3D41_GL_SHADER_STATE_unpack(const uint8_t * restrict cl, - struct V3D41_GL_SHADER_STATE * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->address = __gen_unpack_address(cl, 13, 39); - values->number_of_attribute_arrays = __gen_unpack_uint(cl, 8, 12); -} -#endif - - -#define V3D41_VCM_CACHE_SIZE_opcode 71 -#define V3D41_VCM_CACHE_SIZE_header \ - .opcode = 71 - -struct V3D41_VCM_CACHE_SIZE { - uint32_t opcode; - uint32_t number_of_16_vertex_batches_for_rendering; - uint32_t number_of_16_vertex_batches_for_binning; -}; - -static inline void -V3D41_VCM_CACHE_SIZE_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_VCM_CACHE_SIZE * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->number_of_16_vertex_batches_for_rendering, 4, 7) | - __gen_uint(values->number_of_16_vertex_batches_for_binning, 0, 3); - -} - -#define V3D41_VCM_CACHE_SIZE_length 2 -#ifdef __gen_unpack_address -static inline void -V3D41_VCM_CACHE_SIZE_unpack(const uint8_t * restrict cl, - struct V3D41_VCM_CACHE_SIZE * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->number_of_16_vertex_batches_for_rendering = __gen_unpack_uint(cl, 12, 15); - values->number_of_16_vertex_batches_for_binning = __gen_unpack_uint(cl, 8, 11); -} -#endif - - -#define V3D41_TRANSFORM_FEEDBACK_BUFFER_opcode 73 -#define V3D41_TRANSFORM_FEEDBACK_BUFFER_header \ - .opcode = 73 - -struct V3D41_TRANSFORM_FEEDBACK_BUFFER { - uint32_t opcode; - __gen_address_type buffer_address; - uint32_t buffer_size_in_32_bit_words; - uint32_t buffer_number; -}; - -static inline void -V3D41_TRANSFORM_FEEDBACK_BUFFER_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_TRANSFORM_FEEDBACK_BUFFER * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->buffer_size_in_32_bit_words, 2, 31) | - __gen_uint(values->buffer_number, 0, 1); - - cl[ 2] = __gen_uint(values->buffer_size_in_32_bit_words, 2, 31) >> 8; - - cl[ 3] = __gen_uint(values->buffer_size_in_32_bit_words, 2, 31) >> 16; - - cl[ 4] = __gen_uint(values->buffer_size_in_32_bit_words, 2, 31) >> 24; - - __gen_emit_reloc(data, &values->buffer_address); - cl[ 5] = __gen_address_offset(&values->buffer_address); - - cl[ 6] = __gen_address_offset(&values->buffer_address) >> 8; - - cl[ 7] = __gen_address_offset(&values->buffer_address) >> 16; - - cl[ 8] = __gen_address_offset(&values->buffer_address) >> 24; - -} - -#define V3D41_TRANSFORM_FEEDBACK_BUFFER_length 9 -#ifdef __gen_unpack_address -static inline void -V3D41_TRANSFORM_FEEDBACK_BUFFER_unpack(const uint8_t * restrict cl, - struct V3D41_TRANSFORM_FEEDBACK_BUFFER * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->buffer_address = __gen_unpack_address(cl, 40, 71); - values->buffer_size_in_32_bit_words = __gen_unpack_uint(cl, 10, 39); - values->buffer_number = __gen_unpack_uint(cl, 8, 9); -} -#endif - - -#define V3D41_TRANSFORM_FEEDBACK_SPECS_opcode 74 -#define V3D41_TRANSFORM_FEEDBACK_SPECS_header \ - .opcode = 74 - -struct V3D41_TRANSFORM_FEEDBACK_SPECS { - uint32_t opcode; - bool enable; - uint32_t number_of_16_bit_output_data_specs_following; -}; - -static inline void -V3D41_TRANSFORM_FEEDBACK_SPECS_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_TRANSFORM_FEEDBACK_SPECS * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->enable, 7, 7) | - __gen_uint(values->number_of_16_bit_output_data_specs_following, 0, 4); - -} - -#define V3D41_TRANSFORM_FEEDBACK_SPECS_length 2 -#ifdef __gen_unpack_address -static inline void -V3D41_TRANSFORM_FEEDBACK_SPECS_unpack(const uint8_t * restrict cl, - struct V3D41_TRANSFORM_FEEDBACK_SPECS * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->enable = __gen_unpack_uint(cl, 15, 15); - values->number_of_16_bit_output_data_specs_following = __gen_unpack_uint(cl, 8, 12); -} -#endif - - -#define V3D41_FLUSH_TRANSFORM_FEEDBACK_DATA_opcode 75 -#define V3D41_FLUSH_TRANSFORM_FEEDBACK_DATA_header\ - .opcode = 75 - -struct V3D41_FLUSH_TRANSFORM_FEEDBACK_DATA { - uint32_t opcode; -}; - -static inline void -V3D41_FLUSH_TRANSFORM_FEEDBACK_DATA_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_FLUSH_TRANSFORM_FEEDBACK_DATA * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D41_FLUSH_TRANSFORM_FEEDBACK_DATA_length 1 -#ifdef __gen_unpack_address -static inline void -V3D41_FLUSH_TRANSFORM_FEEDBACK_DATA_unpack(const uint8_t * restrict cl, - struct V3D41_FLUSH_TRANSFORM_FEEDBACK_DATA * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D41_TRANSFORM_FEEDBACK_OUTPUT_DATA_SPEC_header\ - - -struct V3D41_TRANSFORM_FEEDBACK_OUTPUT_DATA_SPEC { - uint32_t first_shaded_vertex_value_to_output; - uint32_t number_of_consecutive_vertex_values_to_output_as_32_bit_values; - uint32_t output_buffer_to_write_to; - uint32_t stream_number; -}; - -static inline void -V3D41_TRANSFORM_FEEDBACK_OUTPUT_DATA_SPEC_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_TRANSFORM_FEEDBACK_OUTPUT_DATA_SPEC * restrict values) -{ - assert(values->number_of_consecutive_vertex_values_to_output_as_32_bit_values >= 1); - cl[ 0] = __gen_uint(values->first_shaded_vertex_value_to_output, 0, 7); - - cl[ 1] = __gen_uint(values->number_of_consecutive_vertex_values_to_output_as_32_bit_values - 1, 0, 3) | - __gen_uint(values->output_buffer_to_write_to, 4, 5) | - __gen_uint(values->stream_number, 6, 7); - -} - -#define V3D41_TRANSFORM_FEEDBACK_OUTPUT_DATA_SPEC_length 2 -#ifdef __gen_unpack_address -static inline void -V3D41_TRANSFORM_FEEDBACK_OUTPUT_DATA_SPEC_unpack(const uint8_t * restrict cl, - struct V3D41_TRANSFORM_FEEDBACK_OUTPUT_DATA_SPEC * restrict values) -{ - values->first_shaded_vertex_value_to_output = __gen_unpack_uint(cl, 0, 7); - values->number_of_consecutive_vertex_values_to_output_as_32_bit_values = __gen_unpack_uint(cl, 8, 11) + 1; - values->output_buffer_to_write_to = __gen_unpack_uint(cl, 12, 13); - values->stream_number = __gen_unpack_uint(cl, 14, 15); -} -#endif - - -#define V3D41_TRANSFORM_FEEDBACK_OUTPUT_ADDRESS_header\ - - -struct V3D41_TRANSFORM_FEEDBACK_OUTPUT_ADDRESS { - __gen_address_type address; -}; - -static inline void -V3D41_TRANSFORM_FEEDBACK_OUTPUT_ADDRESS_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_TRANSFORM_FEEDBACK_OUTPUT_ADDRESS * restrict values) -{ - __gen_emit_reloc(data, &values->address); - cl[ 0] = __gen_address_offset(&values->address); - - cl[ 1] = __gen_address_offset(&values->address) >> 8; - - cl[ 2] = __gen_address_offset(&values->address) >> 16; - - cl[ 3] = __gen_address_offset(&values->address) >> 24; - -} - -#define V3D41_TRANSFORM_FEEDBACK_OUTPUT_ADDRESS_length 4 -#ifdef __gen_unpack_address -static inline void -V3D41_TRANSFORM_FEEDBACK_OUTPUT_ADDRESS_unpack(const uint8_t * restrict cl, - struct V3D41_TRANSFORM_FEEDBACK_OUTPUT_ADDRESS * restrict values) -{ - values->address = __gen_unpack_address(cl, 0, 31); -} -#endif - - -#define V3D41_STENCIL_CFG_opcode 80 -#define V3D41_STENCIL_CFG_header \ - .opcode = 80 - -struct V3D41_STENCIL_CFG { - uint32_t opcode; - uint32_t stencil_write_mask; - bool back_config; - bool front_config; - enum V3D41_Stencil_Op stencil_pass_op; - enum V3D41_Stencil_Op depth_test_fail_op; - enum V3D41_Stencil_Op stencil_test_fail_op; - enum V3D41_Compare_Function stencil_test_function; - uint32_t stencil_test_mask; - uint32_t stencil_ref_value; -}; - -static inline void -V3D41_STENCIL_CFG_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_STENCIL_CFG * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->stencil_ref_value, 0, 7); - - cl[ 2] = __gen_uint(values->stencil_test_mask, 0, 7); - - cl[ 3] = __gen_uint(values->depth_test_fail_op, 6, 8) | - __gen_uint(values->stencil_test_fail_op, 3, 5) | - __gen_uint(values->stencil_test_function, 0, 2); - - cl[ 4] = __gen_uint(values->back_config, 5, 5) | - __gen_uint(values->front_config, 4, 4) | - __gen_uint(values->stencil_pass_op, 1, 3) | - __gen_uint(values->depth_test_fail_op, 6, 8) >> 8; - - cl[ 5] = __gen_uint(values->stencil_write_mask, 0, 7); - -} - -#define V3D41_STENCIL_CFG_length 6 -#ifdef __gen_unpack_address -static inline void -V3D41_STENCIL_CFG_unpack(const uint8_t * restrict cl, - struct V3D41_STENCIL_CFG * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->stencil_write_mask = __gen_unpack_uint(cl, 40, 47); - values->back_config = __gen_unpack_uint(cl, 37, 37); - values->front_config = __gen_unpack_uint(cl, 36, 36); - values->stencil_pass_op = __gen_unpack_uint(cl, 33, 35); - values->depth_test_fail_op = __gen_unpack_uint(cl, 30, 32); - values->stencil_test_fail_op = __gen_unpack_uint(cl, 27, 29); - values->stencil_test_function = __gen_unpack_uint(cl, 24, 26); - values->stencil_test_mask = __gen_unpack_uint(cl, 16, 23); - values->stencil_ref_value = __gen_unpack_uint(cl, 8, 15); -} -#endif - - -#define V3D41_BLEND_ENABLES_opcode 83 -#define V3D41_BLEND_ENABLES_header \ - .opcode = 83 - -struct V3D41_BLEND_ENABLES { - uint32_t opcode; - uint32_t mask; -}; - -static inline void -V3D41_BLEND_ENABLES_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_BLEND_ENABLES * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->mask, 0, 7); - -} - -#define V3D41_BLEND_ENABLES_length 2 -#ifdef __gen_unpack_address -static inline void -V3D41_BLEND_ENABLES_unpack(const uint8_t * restrict cl, - struct V3D41_BLEND_ENABLES * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->mask = __gen_unpack_uint(cl, 8, 15); -} -#endif - - -#define V3D41_BLEND_CFG_opcode 84 -#define V3D41_BLEND_CFG_header \ - .opcode = 84 - -struct V3D41_BLEND_CFG { - uint32_t opcode; - uint32_t render_target_mask; - enum V3D41_Blend_Factor color_blend_dst_factor; - enum V3D41_Blend_Factor color_blend_src_factor; - enum V3D41_Blend_Mode color_blend_mode; - enum V3D41_Blend_Factor alpha_blend_dst_factor; - enum V3D41_Blend_Factor alpha_blend_src_factor; - enum V3D41_Blend_Mode alpha_blend_mode; -}; - -static inline void -V3D41_BLEND_CFG_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_BLEND_CFG * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->alpha_blend_src_factor, 4, 7) | - __gen_uint(values->alpha_blend_mode, 0, 3); - - cl[ 2] = __gen_uint(values->color_blend_mode, 4, 7) | - __gen_uint(values->alpha_blend_dst_factor, 0, 3); - - cl[ 3] = __gen_uint(values->color_blend_dst_factor, 4, 7) | - __gen_uint(values->color_blend_src_factor, 0, 3); - - cl[ 4] = __gen_uint(values->render_target_mask, 0, 3); - -} - -#define V3D41_BLEND_CFG_length 5 -#ifdef __gen_unpack_address -static inline void -V3D41_BLEND_CFG_unpack(const uint8_t * restrict cl, - struct V3D41_BLEND_CFG * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->render_target_mask = __gen_unpack_uint(cl, 32, 35); - values->color_blend_dst_factor = __gen_unpack_uint(cl, 28, 31); - values->color_blend_src_factor = __gen_unpack_uint(cl, 24, 27); - values->color_blend_mode = __gen_unpack_uint(cl, 20, 23); - values->alpha_blend_dst_factor = __gen_unpack_uint(cl, 16, 19); - values->alpha_blend_src_factor = __gen_unpack_uint(cl, 12, 15); - values->alpha_blend_mode = __gen_unpack_uint(cl, 8, 11); -} -#endif - - -#define V3D41_BLEND_CONSTANT_COLOR_opcode 86 -#define V3D41_BLEND_CONSTANT_COLOR_header \ - .opcode = 86 - -struct V3D41_BLEND_CONSTANT_COLOR { - uint32_t opcode; - uint32_t alpha_f16; - uint32_t blue_f16; - uint32_t green_f16; - uint32_t red_f16; -}; - -static inline void -V3D41_BLEND_CONSTANT_COLOR_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_BLEND_CONSTANT_COLOR * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->red_f16, 0, 15); - - cl[ 2] = __gen_uint(values->red_f16, 0, 15) >> 8; - - cl[ 3] = __gen_uint(values->green_f16, 0, 15); - - cl[ 4] = __gen_uint(values->green_f16, 0, 15) >> 8; - - cl[ 5] = __gen_uint(values->blue_f16, 0, 15); - - cl[ 6] = __gen_uint(values->blue_f16, 0, 15) >> 8; - - cl[ 7] = __gen_uint(values->alpha_f16, 0, 15); - - cl[ 8] = __gen_uint(values->alpha_f16, 0, 15) >> 8; - -} - -#define V3D41_BLEND_CONSTANT_COLOR_length 9 -#ifdef __gen_unpack_address -static inline void -V3D41_BLEND_CONSTANT_COLOR_unpack(const uint8_t * restrict cl, - struct V3D41_BLEND_CONSTANT_COLOR * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->alpha_f16 = __gen_unpack_uint(cl, 56, 71); - values->blue_f16 = __gen_unpack_uint(cl, 40, 55); - values->green_f16 = __gen_unpack_uint(cl, 24, 39); - values->red_f16 = __gen_unpack_uint(cl, 8, 23); -} -#endif - - -#define V3D41_COLOR_WRITE_MASKS_opcode 87 -#define V3D41_COLOR_WRITE_MASKS_header \ - .opcode = 87 - -struct V3D41_COLOR_WRITE_MASKS { - uint32_t opcode; - uint32_t mask; -}; - -static inline void -V3D41_COLOR_WRITE_MASKS_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_COLOR_WRITE_MASKS * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - - memcpy(&cl[1], &values->mask, sizeof(values->mask)); -} - -#define V3D41_COLOR_WRITE_MASKS_length 5 -#ifdef __gen_unpack_address -static inline void -V3D41_COLOR_WRITE_MASKS_unpack(const uint8_t * restrict cl, - struct V3D41_COLOR_WRITE_MASKS * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->mask = __gen_unpack_uint(cl, 8, 39); -} -#endif - - -#define V3D41_ZERO_ALL_CENTROID_FLAGS_opcode 88 -#define V3D41_ZERO_ALL_CENTROID_FLAGS_header \ - .opcode = 88 - -struct V3D41_ZERO_ALL_CENTROID_FLAGS { - uint32_t opcode; -}; - -static inline void -V3D41_ZERO_ALL_CENTROID_FLAGS_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_ZERO_ALL_CENTROID_FLAGS * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D41_ZERO_ALL_CENTROID_FLAGS_length 1 -#ifdef __gen_unpack_address -static inline void -V3D41_ZERO_ALL_CENTROID_FLAGS_unpack(const uint8_t * restrict cl, - struct V3D41_ZERO_ALL_CENTROID_FLAGS * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D41_CENTROID_FLAGS_opcode 89 -#define V3D41_CENTROID_FLAGS_header \ - .opcode = 89 - -struct V3D41_CENTROID_FLAGS { - uint32_t opcode; - uint32_t centroid_flags_for_varyings_v024; - enum V3D41_Varying_Flags_Action action_for_centroid_flags_of_higher_numbered_varyings; - enum V3D41_Varying_Flags_Action action_for_centroid_flags_of_lower_numbered_varyings; - uint32_t varying_offset_v0; -}; - -static inline void -V3D41_CENTROID_FLAGS_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_CENTROID_FLAGS * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->action_for_centroid_flags_of_higher_numbered_varyings, 6, 7) | - __gen_uint(values->action_for_centroid_flags_of_lower_numbered_varyings, 4, 5) | - __gen_uint(values->varying_offset_v0, 0, 3); - - cl[ 2] = __gen_uint(values->centroid_flags_for_varyings_v024, 0, 23); - - cl[ 3] = __gen_uint(values->centroid_flags_for_varyings_v024, 0, 23) >> 8; - - cl[ 4] = __gen_uint(values->centroid_flags_for_varyings_v024, 0, 23) >> 16; - -} - -#define V3D41_CENTROID_FLAGS_length 5 -#ifdef __gen_unpack_address -static inline void -V3D41_CENTROID_FLAGS_unpack(const uint8_t * restrict cl, - struct V3D41_CENTROID_FLAGS * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->centroid_flags_for_varyings_v024 = __gen_unpack_uint(cl, 16, 39); - values->action_for_centroid_flags_of_higher_numbered_varyings = __gen_unpack_uint(cl, 14, 15); - values->action_for_centroid_flags_of_lower_numbered_varyings = __gen_unpack_uint(cl, 12, 13); - values->varying_offset_v0 = __gen_unpack_uint(cl, 8, 11); -} -#endif - - -#define V3D41_SAMPLE_STATE_opcode 91 -#define V3D41_SAMPLE_STATE_header \ - .opcode = 91 - -struct V3D41_SAMPLE_STATE { - uint32_t opcode; - float coverage; - uint32_t mask; -}; - -static inline void -V3D41_SAMPLE_STATE_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_SAMPLE_STATE * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->mask, 0, 3); - - cl[ 2] = 0; - cl[ 3] = __gen_uint(fui(values->coverage) >> 16, 0, 15); - - cl[ 4] = __gen_uint(fui(values->coverage) >> 16, 0, 15) >> 8; - -} - -#define V3D41_SAMPLE_STATE_length 5 -#ifdef __gen_unpack_address -static inline void -V3D41_SAMPLE_STATE_unpack(const uint8_t * restrict cl, - struct V3D41_SAMPLE_STATE * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->coverage = __gen_unpack_f187(cl, 24, 39); - values->mask = __gen_unpack_uint(cl, 8, 11); -} -#endif - - -#define V3D41_OCCLUSION_QUERY_COUNTER_opcode 92 -#define V3D41_OCCLUSION_QUERY_COUNTER_header \ - .opcode = 92 - -struct V3D41_OCCLUSION_QUERY_COUNTER { - uint32_t opcode; - __gen_address_type address; -}; - -static inline void -V3D41_OCCLUSION_QUERY_COUNTER_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_OCCLUSION_QUERY_COUNTER * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - __gen_emit_reloc(data, &values->address); - cl[ 1] = __gen_address_offset(&values->address); - - cl[ 2] = __gen_address_offset(&values->address) >> 8; - - cl[ 3] = __gen_address_offset(&values->address) >> 16; - - cl[ 4] = __gen_address_offset(&values->address) >> 24; - -} - -#define V3D41_OCCLUSION_QUERY_COUNTER_length 5 -#ifdef __gen_unpack_address -static inline void -V3D41_OCCLUSION_QUERY_COUNTER_unpack(const uint8_t * restrict cl, - struct V3D41_OCCLUSION_QUERY_COUNTER * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->address = __gen_unpack_address(cl, 8, 39); -} -#endif - - -#define V3D41_CFG_BITS_opcode 96 -#define V3D41_CFG_BITS_header \ - .opcode = 96 - -struct V3D41_CFG_BITS { - uint32_t opcode; - bool direct3d_provoking_vertex; - bool direct3d_point_fill_mode; - bool blend_enable; - bool stencil_enable; - bool early_z_updates_enable; - bool early_z_enable; - bool z_updates_enable; - enum V3D41_Compare_Function depth_test_function; - bool direct3d_wireframe_triangles_mode; - uint32_t rasterizer_oversample_mode; - uint32_t line_rasterization; - bool enable_depth_offset; - bool clockwise_primitives; - bool enable_reverse_facing_primitive; - bool enable_forward_facing_primitive; -}; - -static inline void -V3D41_CFG_BITS_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_CFG_BITS * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->rasterizer_oversample_mode, 6, 7) | - __gen_uint(values->line_rasterization, 4, 5) | - __gen_uint(values->enable_depth_offset, 3, 3) | - __gen_uint(values->clockwise_primitives, 2, 2) | - __gen_uint(values->enable_reverse_facing_primitive, 1, 1) | - __gen_uint(values->enable_forward_facing_primitive, 0, 0); - - cl[ 2] = __gen_uint(values->z_updates_enable, 7, 7) | - __gen_uint(values->depth_test_function, 4, 6) | - __gen_uint(values->direct3d_wireframe_triangles_mode, 3, 3); - - cl[ 3] = __gen_uint(values->direct3d_provoking_vertex, 5, 5) | - __gen_uint(values->direct3d_point_fill_mode, 4, 4) | - __gen_uint(values->blend_enable, 3, 3) | - __gen_uint(values->stencil_enable, 2, 2) | - __gen_uint(values->early_z_updates_enable, 1, 1) | - __gen_uint(values->early_z_enable, 0, 0); - -} - -#define V3D41_CFG_BITS_length 4 -#ifdef __gen_unpack_address -static inline void -V3D41_CFG_BITS_unpack(const uint8_t * restrict cl, - struct V3D41_CFG_BITS * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->direct3d_provoking_vertex = __gen_unpack_uint(cl, 29, 29); - values->direct3d_point_fill_mode = __gen_unpack_uint(cl, 28, 28); - values->blend_enable = __gen_unpack_uint(cl, 27, 27); - values->stencil_enable = __gen_unpack_uint(cl, 26, 26); - values->early_z_updates_enable = __gen_unpack_uint(cl, 25, 25); - values->early_z_enable = __gen_unpack_uint(cl, 24, 24); - values->z_updates_enable = __gen_unpack_uint(cl, 23, 23); - values->depth_test_function = __gen_unpack_uint(cl, 20, 22); - values->direct3d_wireframe_triangles_mode = __gen_unpack_uint(cl, 19, 19); - values->rasterizer_oversample_mode = __gen_unpack_uint(cl, 14, 15); - values->line_rasterization = __gen_unpack_uint(cl, 12, 13); - values->enable_depth_offset = __gen_unpack_uint(cl, 11, 11); - values->clockwise_primitives = __gen_unpack_uint(cl, 10, 10); - values->enable_reverse_facing_primitive = __gen_unpack_uint(cl, 9, 9); - values->enable_forward_facing_primitive = __gen_unpack_uint(cl, 8, 8); -} -#endif - - -#define V3D41_ZERO_ALL_FLAT_SHADE_FLAGS_opcode 97 -#define V3D41_ZERO_ALL_FLAT_SHADE_FLAGS_header \ - .opcode = 97 - -struct V3D41_ZERO_ALL_FLAT_SHADE_FLAGS { - uint32_t opcode; -}; - -static inline void -V3D41_ZERO_ALL_FLAT_SHADE_FLAGS_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_ZERO_ALL_FLAT_SHADE_FLAGS * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D41_ZERO_ALL_FLAT_SHADE_FLAGS_length 1 -#ifdef __gen_unpack_address -static inline void -V3D41_ZERO_ALL_FLAT_SHADE_FLAGS_unpack(const uint8_t * restrict cl, - struct V3D41_ZERO_ALL_FLAT_SHADE_FLAGS * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D41_FLAT_SHADE_FLAGS_opcode 98 -#define V3D41_FLAT_SHADE_FLAGS_header \ - .opcode = 98 - -struct V3D41_FLAT_SHADE_FLAGS { - uint32_t opcode; - uint32_t flat_shade_flags_for_varyings_v024; - enum V3D41_Varying_Flags_Action action_for_flat_shade_flags_of_higher_numbered_varyings; - enum V3D41_Varying_Flags_Action action_for_flat_shade_flags_of_lower_numbered_varyings; - uint32_t varying_offset_v0; -}; - -static inline void -V3D41_FLAT_SHADE_FLAGS_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_FLAT_SHADE_FLAGS * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->action_for_flat_shade_flags_of_higher_numbered_varyings, 6, 7) | - __gen_uint(values->action_for_flat_shade_flags_of_lower_numbered_varyings, 4, 5) | - __gen_uint(values->varying_offset_v0, 0, 3); - - cl[ 2] = __gen_uint(values->flat_shade_flags_for_varyings_v024, 0, 23); - - cl[ 3] = __gen_uint(values->flat_shade_flags_for_varyings_v024, 0, 23) >> 8; - - cl[ 4] = __gen_uint(values->flat_shade_flags_for_varyings_v024, 0, 23) >> 16; - -} - -#define V3D41_FLAT_SHADE_FLAGS_length 5 -#ifdef __gen_unpack_address -static inline void -V3D41_FLAT_SHADE_FLAGS_unpack(const uint8_t * restrict cl, - struct V3D41_FLAT_SHADE_FLAGS * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->flat_shade_flags_for_varyings_v024 = __gen_unpack_uint(cl, 16, 39); - values->action_for_flat_shade_flags_of_higher_numbered_varyings = __gen_unpack_uint(cl, 14, 15); - values->action_for_flat_shade_flags_of_lower_numbered_varyings = __gen_unpack_uint(cl, 12, 13); - values->varying_offset_v0 = __gen_unpack_uint(cl, 8, 11); -} -#endif - - -#define V3D41_ZERO_ALL_NON_PERSPECTIVE_FLAGS_opcode 99 -#define V3D41_ZERO_ALL_NON_PERSPECTIVE_FLAGS_header\ - .opcode = 99 - -struct V3D41_ZERO_ALL_NON_PERSPECTIVE_FLAGS { - uint32_t opcode; -}; - -static inline void -V3D41_ZERO_ALL_NON_PERSPECTIVE_FLAGS_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_ZERO_ALL_NON_PERSPECTIVE_FLAGS * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D41_ZERO_ALL_NON_PERSPECTIVE_FLAGS_length 1 -#ifdef __gen_unpack_address -static inline void -V3D41_ZERO_ALL_NON_PERSPECTIVE_FLAGS_unpack(const uint8_t * restrict cl, - struct V3D41_ZERO_ALL_NON_PERSPECTIVE_FLAGS * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D41_NON_PERSPECTIVE_FLAGS_opcode 100 -#define V3D41_NON_PERSPECTIVE_FLAGS_header \ - .opcode = 100 - -struct V3D41_NON_PERSPECTIVE_FLAGS { - uint32_t opcode; - uint32_t non_perspective_flags_for_varyings_v024; - enum V3D41_Varying_Flags_Action action_for_non_perspective_flags_of_higher_numbered_varyings; - enum V3D41_Varying_Flags_Action action_for_non_perspective_flags_of_lower_numbered_varyings; - uint32_t varying_offset_v0; -}; - -static inline void -V3D41_NON_PERSPECTIVE_FLAGS_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_NON_PERSPECTIVE_FLAGS * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->action_for_non_perspective_flags_of_higher_numbered_varyings, 6, 7) | - __gen_uint(values->action_for_non_perspective_flags_of_lower_numbered_varyings, 4, 5) | - __gen_uint(values->varying_offset_v0, 0, 3); - - cl[ 2] = __gen_uint(values->non_perspective_flags_for_varyings_v024, 0, 23); - - cl[ 3] = __gen_uint(values->non_perspective_flags_for_varyings_v024, 0, 23) >> 8; - - cl[ 4] = __gen_uint(values->non_perspective_flags_for_varyings_v024, 0, 23) >> 16; - -} - -#define V3D41_NON_PERSPECTIVE_FLAGS_length 5 -#ifdef __gen_unpack_address -static inline void -V3D41_NON_PERSPECTIVE_FLAGS_unpack(const uint8_t * restrict cl, - struct V3D41_NON_PERSPECTIVE_FLAGS * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->non_perspective_flags_for_varyings_v024 = __gen_unpack_uint(cl, 16, 39); - values->action_for_non_perspective_flags_of_higher_numbered_varyings = __gen_unpack_uint(cl, 14, 15); - values->action_for_non_perspective_flags_of_lower_numbered_varyings = __gen_unpack_uint(cl, 12, 13); - values->varying_offset_v0 = __gen_unpack_uint(cl, 8, 11); -} -#endif - - -#define V3D41_POINT_SIZE_opcode 104 -#define V3D41_POINT_SIZE_header \ - .opcode = 104 - -struct V3D41_POINT_SIZE { - uint32_t opcode; - float point_size; -}; - -static inline void -V3D41_POINT_SIZE_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_POINT_SIZE * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - - memcpy(&cl[1], &values->point_size, sizeof(values->point_size)); -} - -#define V3D41_POINT_SIZE_length 5 -#ifdef __gen_unpack_address -static inline void -V3D41_POINT_SIZE_unpack(const uint8_t * restrict cl, - struct V3D41_POINT_SIZE * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->point_size = __gen_unpack_float(cl, 8, 39); -} -#endif - - -#define V3D41_LINE_WIDTH_opcode 105 -#define V3D41_LINE_WIDTH_header \ - .opcode = 105 - -struct V3D41_LINE_WIDTH { - uint32_t opcode; - float line_width; -}; - -static inline void -V3D41_LINE_WIDTH_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_LINE_WIDTH * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - - memcpy(&cl[1], &values->line_width, sizeof(values->line_width)); -} - -#define V3D41_LINE_WIDTH_length 5 -#ifdef __gen_unpack_address -static inline void -V3D41_LINE_WIDTH_unpack(const uint8_t * restrict cl, - struct V3D41_LINE_WIDTH * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->line_width = __gen_unpack_float(cl, 8, 39); -} -#endif - - -#define V3D41_DEPTH_OFFSET_opcode 106 -#define V3D41_DEPTH_OFFSET_header \ - .opcode = 106 - -struct V3D41_DEPTH_OFFSET { - uint32_t opcode; - float limit; - float depth_offset_units; - float depth_offset_factor; -}; - -static inline void -V3D41_DEPTH_OFFSET_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_DEPTH_OFFSET * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(fui(values->depth_offset_factor) >> 16, 0, 15); - - cl[ 2] = __gen_uint(fui(values->depth_offset_factor) >> 16, 0, 15) >> 8; - - cl[ 3] = __gen_uint(fui(values->depth_offset_units) >> 16, 0, 15); - - cl[ 4] = __gen_uint(fui(values->depth_offset_units) >> 16, 0, 15) >> 8; - - - memcpy(&cl[5], &values->limit, sizeof(values->limit)); -} - -#define V3D41_DEPTH_OFFSET_length 9 -#ifdef __gen_unpack_address -static inline void -V3D41_DEPTH_OFFSET_unpack(const uint8_t * restrict cl, - struct V3D41_DEPTH_OFFSET * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->limit = __gen_unpack_float(cl, 40, 71); - values->depth_offset_units = __gen_unpack_f187(cl, 24, 39); - values->depth_offset_factor = __gen_unpack_f187(cl, 8, 23); -} -#endif - - -#define V3D41_CLIP_WINDOW_opcode 107 -#define V3D41_CLIP_WINDOW_header \ - .opcode = 107 - -struct V3D41_CLIP_WINDOW { - uint32_t opcode; - uint32_t clip_window_height_in_pixels; - uint32_t clip_window_width_in_pixels; - uint32_t clip_window_bottom_pixel_coordinate; - uint32_t clip_window_left_pixel_coordinate; -}; - -static inline void -V3D41_CLIP_WINDOW_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_CLIP_WINDOW * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->clip_window_left_pixel_coordinate, 0, 15); - - cl[ 2] = __gen_uint(values->clip_window_left_pixel_coordinate, 0, 15) >> 8; - - cl[ 3] = __gen_uint(values->clip_window_bottom_pixel_coordinate, 0, 15); - - cl[ 4] = __gen_uint(values->clip_window_bottom_pixel_coordinate, 0, 15) >> 8; - - cl[ 5] = __gen_uint(values->clip_window_width_in_pixels, 0, 15); - - cl[ 6] = __gen_uint(values->clip_window_width_in_pixels, 0, 15) >> 8; - - cl[ 7] = __gen_uint(values->clip_window_height_in_pixels, 0, 15); - - cl[ 8] = __gen_uint(values->clip_window_height_in_pixels, 0, 15) >> 8; - -} - -#define V3D41_CLIP_WINDOW_length 9 -#ifdef __gen_unpack_address -static inline void -V3D41_CLIP_WINDOW_unpack(const uint8_t * restrict cl, - struct V3D41_CLIP_WINDOW * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->clip_window_height_in_pixels = __gen_unpack_uint(cl, 56, 71); - values->clip_window_width_in_pixels = __gen_unpack_uint(cl, 40, 55); - values->clip_window_bottom_pixel_coordinate = __gen_unpack_uint(cl, 24, 39); - values->clip_window_left_pixel_coordinate = __gen_unpack_uint(cl, 8, 23); -} -#endif - - -#define V3D41_VIEWPORT_OFFSET_opcode 108 -#define V3D41_VIEWPORT_OFFSET_header \ - .opcode = 108 - -struct V3D41_VIEWPORT_OFFSET { - uint32_t opcode; - uint32_t coarse_y; - float viewport_centre_y_coordinate; - uint32_t coarse_x; - float viewport_centre_x_coordinate; -}; - -static inline void -V3D41_VIEWPORT_OFFSET_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_VIEWPORT_OFFSET * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_sfixed(values->viewport_centre_x_coordinate, 0, 21, 8); - - cl[ 2] = __gen_sfixed(values->viewport_centre_x_coordinate, 0, 21, 8) >> 8; - - cl[ 3] = __gen_uint(values->coarse_x, 6, 15) | - __gen_sfixed(values->viewport_centre_x_coordinate, 0, 21, 8) >> 16; - - cl[ 4] = __gen_uint(values->coarse_x, 6, 15) >> 8; - - cl[ 5] = __gen_sfixed(values->viewport_centre_y_coordinate, 0, 21, 8); - - cl[ 6] = __gen_sfixed(values->viewport_centre_y_coordinate, 0, 21, 8) >> 8; - - cl[ 7] = __gen_uint(values->coarse_y, 6, 15) | - __gen_sfixed(values->viewport_centre_y_coordinate, 0, 21, 8) >> 16; - - cl[ 8] = __gen_uint(values->coarse_y, 6, 15) >> 8; - -} - -#define V3D41_VIEWPORT_OFFSET_length 9 -#ifdef __gen_unpack_address -static inline void -V3D41_VIEWPORT_OFFSET_unpack(const uint8_t * restrict cl, - struct V3D41_VIEWPORT_OFFSET * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->coarse_y = __gen_unpack_uint(cl, 62, 71); - values->viewport_centre_y_coordinate = __gen_unpack_sfixed(cl, 40, 61, 8); - values->coarse_x = __gen_unpack_uint(cl, 30, 39); - values->viewport_centre_x_coordinate = __gen_unpack_sfixed(cl, 8, 29, 8); -} -#endif - - -#define V3D41_CLIPPER_Z_MIN_MAX_CLIPPING_PLANES_opcode 109 -#define V3D41_CLIPPER_Z_MIN_MAX_CLIPPING_PLANES_header\ - .opcode = 109 - -struct V3D41_CLIPPER_Z_MIN_MAX_CLIPPING_PLANES { - uint32_t opcode; - float maximum_zw; - float minimum_zw; -}; - -static inline void -V3D41_CLIPPER_Z_MIN_MAX_CLIPPING_PLANES_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_CLIPPER_Z_MIN_MAX_CLIPPING_PLANES * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - - memcpy(&cl[1], &values->minimum_zw, sizeof(values->minimum_zw)); - - memcpy(&cl[5], &values->maximum_zw, sizeof(values->maximum_zw)); -} - -#define V3D41_CLIPPER_Z_MIN_MAX_CLIPPING_PLANES_length 9 -#ifdef __gen_unpack_address -static inline void -V3D41_CLIPPER_Z_MIN_MAX_CLIPPING_PLANES_unpack(const uint8_t * restrict cl, - struct V3D41_CLIPPER_Z_MIN_MAX_CLIPPING_PLANES * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->maximum_zw = __gen_unpack_float(cl, 40, 71); - values->minimum_zw = __gen_unpack_float(cl, 8, 39); -} -#endif - - -#define V3D41_CLIPPER_XY_SCALING_opcode 110 -#define V3D41_CLIPPER_XY_SCALING_header \ - .opcode = 110 - -struct V3D41_CLIPPER_XY_SCALING { - uint32_t opcode; - float viewport_half_height_in_1_256th_of_pixel; - float viewport_half_width_in_1_256th_of_pixel; -}; - -static inline void -V3D41_CLIPPER_XY_SCALING_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_CLIPPER_XY_SCALING * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - - memcpy(&cl[1], &values->viewport_half_width_in_1_256th_of_pixel, sizeof(values->viewport_half_width_in_1_256th_of_pixel)); - - memcpy(&cl[5], &values->viewport_half_height_in_1_256th_of_pixel, sizeof(values->viewport_half_height_in_1_256th_of_pixel)); -} - -#define V3D41_CLIPPER_XY_SCALING_length 9 -#ifdef __gen_unpack_address -static inline void -V3D41_CLIPPER_XY_SCALING_unpack(const uint8_t * restrict cl, - struct V3D41_CLIPPER_XY_SCALING * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->viewport_half_height_in_1_256th_of_pixel = __gen_unpack_float(cl, 40, 71); - values->viewport_half_width_in_1_256th_of_pixel = __gen_unpack_float(cl, 8, 39); -} -#endif - - -#define V3D41_CLIPPER_Z_SCALE_AND_OFFSET_opcode 111 -#define V3D41_CLIPPER_Z_SCALE_AND_OFFSET_header \ - .opcode = 111 - -struct V3D41_CLIPPER_Z_SCALE_AND_OFFSET { - uint32_t opcode; - float viewport_z_offset_zc_to_zs; - float viewport_z_scale_zc_to_zs; -}; - -static inline void -V3D41_CLIPPER_Z_SCALE_AND_OFFSET_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_CLIPPER_Z_SCALE_AND_OFFSET * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - - memcpy(&cl[1], &values->viewport_z_scale_zc_to_zs, sizeof(values->viewport_z_scale_zc_to_zs)); - - memcpy(&cl[5], &values->viewport_z_offset_zc_to_zs, sizeof(values->viewport_z_offset_zc_to_zs)); -} - -#define V3D41_CLIPPER_Z_SCALE_AND_OFFSET_length 9 -#ifdef __gen_unpack_address -static inline void -V3D41_CLIPPER_Z_SCALE_AND_OFFSET_unpack(const uint8_t * restrict cl, - struct V3D41_CLIPPER_Z_SCALE_AND_OFFSET * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->viewport_z_offset_zc_to_zs = __gen_unpack_float(cl, 40, 71); - values->viewport_z_scale_zc_to_zs = __gen_unpack_float(cl, 8, 39); -} -#endif - - -#define V3D41_NUMBER_OF_LAYERS_opcode 119 -#define V3D41_NUMBER_OF_LAYERS_header \ - .opcode = 119 - -struct V3D41_NUMBER_OF_LAYERS { - uint32_t opcode; - uint32_t number_of_layers; -}; - -static inline void -V3D41_NUMBER_OF_LAYERS_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_NUMBER_OF_LAYERS * restrict values) -{ - assert(values->number_of_layers >= 1); - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->number_of_layers - 1, 0, 7); - -} - -#define V3D41_NUMBER_OF_LAYERS_length 2 -#ifdef __gen_unpack_address -static inline void -V3D41_NUMBER_OF_LAYERS_unpack(const uint8_t * restrict cl, - struct V3D41_NUMBER_OF_LAYERS * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->number_of_layers = __gen_unpack_uint(cl, 8, 15) + 1; -} -#endif - - -#define V3D41_TILE_BINNING_MODE_CFG_opcode 120 -#define V3D41_TILE_BINNING_MODE_CFG_header \ - .opcode = 120 - -struct V3D41_TILE_BINNING_MODE_CFG { - uint32_t opcode; - uint32_t height_in_pixels; - uint32_t width_in_pixels; - bool double_buffer_in_non_ms_mode; - bool multisample_mode_4x; - uint32_t maximum_bpp_of_all_render_targets; -#define RENDER_TARGET_MAXIMUM_32BPP 0 -#define RENDER_TARGET_MAXIMUM_64BPP 1 -#define RENDER_TARGET_MAXIMUM_128BPP 2 - uint32_t number_of_render_targets; - uint32_t tile_allocation_block_size; -#define TILE_ALLOCATION_BLOCK_SIZE_64B 0 -#define TILE_ALLOCATION_BLOCK_SIZE_128B 1 -#define TILE_ALLOCATION_BLOCK_SIZE_256B 2 - uint32_t tile_allocation_initial_block_size; -#define TILE_ALLOCATION_INITIAL_BLOCK_SIZE_64B 0 -#define TILE_ALLOCATION_INITIAL_BLOCK_SIZE_128B 1 -#define TILE_ALLOCATION_INITIAL_BLOCK_SIZE_256B 2 -}; - -static inline void -V3D41_TILE_BINNING_MODE_CFG_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_TILE_BINNING_MODE_CFG * restrict values) -{ - assert(values->height_in_pixels >= 1); - assert(values->width_in_pixels >= 1); - assert(values->number_of_render_targets >= 1); - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->tile_allocation_block_size, 4, 5) | - __gen_uint(values->tile_allocation_initial_block_size, 2, 3); - - cl[ 2] = __gen_uint(values->double_buffer_in_non_ms_mode, 7, 7) | - __gen_uint(values->multisample_mode_4x, 6, 6) | - __gen_uint(values->maximum_bpp_of_all_render_targets, 4, 5) | - __gen_uint(values->number_of_render_targets - 1, 0, 3); - - cl[ 3] = 0; - cl[ 4] = 0; - cl[ 5] = __gen_uint(values->width_in_pixels - 1, 0, 11); - - cl[ 6] = __gen_uint(values->width_in_pixels - 1, 0, 11) >> 8; - - cl[ 7] = __gen_uint(values->height_in_pixels - 1, 0, 11); - - cl[ 8] = __gen_uint(values->height_in_pixels - 1, 0, 11) >> 8; - -} - -#define V3D41_TILE_BINNING_MODE_CFG_length 9 -#ifdef __gen_unpack_address -static inline void -V3D41_TILE_BINNING_MODE_CFG_unpack(const uint8_t * restrict cl, - struct V3D41_TILE_BINNING_MODE_CFG * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->height_in_pixels = __gen_unpack_uint(cl, 56, 67) + 1; - values->width_in_pixels = __gen_unpack_uint(cl, 40, 51) + 1; - values->double_buffer_in_non_ms_mode = __gen_unpack_uint(cl, 23, 23); - values->multisample_mode_4x = __gen_unpack_uint(cl, 22, 22); - values->maximum_bpp_of_all_render_targets = __gen_unpack_uint(cl, 20, 21); - values->number_of_render_targets = __gen_unpack_uint(cl, 16, 19) + 1; - values->tile_allocation_block_size = __gen_unpack_uint(cl, 12, 13); - values->tile_allocation_initial_block_size = __gen_unpack_uint(cl, 10, 11); -} -#endif - - -#define V3D41_TILE_RENDERING_MODE_CFG_COMMON_opcode 121 -#define V3D41_TILE_RENDERING_MODE_CFG_COMMON_header\ - .opcode = 121, \ - .sub_id = 0 - -struct V3D41_TILE_RENDERING_MODE_CFG_COMMON { - uint32_t opcode; - uint32_t pad; - bool early_depth_stencil_clear; - enum V3D41_Internal_Depth_Type internal_depth_type; - bool early_z_disable; - uint32_t early_z_test_and_update_direction; -#define EARLY_Z_DIRECTION_LT_LE 0 -#define EARLY_Z_DIRECTION_GT_GE 1 - bool double_buffer_in_non_ms_mode; - bool multisample_mode_4x; - enum V3D41_Internal_BPP maximum_bpp_of_all_render_targets; - uint32_t image_height_pixels; - uint32_t image_width_pixels; - uint32_t number_of_render_targets; - uint32_t sub_id; -}; - -static inline void -V3D41_TILE_RENDERING_MODE_CFG_COMMON_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_TILE_RENDERING_MODE_CFG_COMMON * restrict values) -{ - assert(values->number_of_render_targets >= 1); - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->number_of_render_targets - 1, 4, 7) | - __gen_uint(values->sub_id, 0, 3); - - cl[ 2] = __gen_uint(values->image_width_pixels, 0, 15); - - cl[ 3] = __gen_uint(values->image_width_pixels, 0, 15) >> 8; - - cl[ 4] = __gen_uint(values->image_height_pixels, 0, 15); - - cl[ 5] = __gen_uint(values->image_height_pixels, 0, 15) >> 8; - - cl[ 6] = __gen_uint(values->internal_depth_type, 7, 10) | - __gen_uint(values->early_z_disable, 6, 6) | - __gen_uint(values->early_z_test_and_update_direction, 5, 5) | - __gen_uint(values->double_buffer_in_non_ms_mode, 3, 3) | - __gen_uint(values->multisample_mode_4x, 2, 2) | - __gen_uint(values->maximum_bpp_of_all_render_targets, 0, 1); - - cl[ 7] = __gen_uint(values->pad, 4, 15) | - __gen_uint(values->early_depth_stencil_clear, 3, 3) | - __gen_uint(values->internal_depth_type, 7, 10) >> 8; - - cl[ 8] = __gen_uint(values->pad, 4, 15) >> 8; - -} - -#define V3D41_TILE_RENDERING_MODE_CFG_COMMON_length 9 -#ifdef __gen_unpack_address -static inline void -V3D41_TILE_RENDERING_MODE_CFG_COMMON_unpack(const uint8_t * restrict cl, - struct V3D41_TILE_RENDERING_MODE_CFG_COMMON * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->pad = __gen_unpack_uint(cl, 60, 71); - values->early_depth_stencil_clear = __gen_unpack_uint(cl, 59, 59); - values->internal_depth_type = __gen_unpack_uint(cl, 55, 58); - values->early_z_disable = __gen_unpack_uint(cl, 54, 54); - values->early_z_test_and_update_direction = __gen_unpack_uint(cl, 53, 53); - values->double_buffer_in_non_ms_mode = __gen_unpack_uint(cl, 51, 51); - values->multisample_mode_4x = __gen_unpack_uint(cl, 50, 50); - values->maximum_bpp_of_all_render_targets = __gen_unpack_uint(cl, 48, 49); - values->image_height_pixels = __gen_unpack_uint(cl, 32, 47); - values->image_width_pixels = __gen_unpack_uint(cl, 16, 31); - values->number_of_render_targets = __gen_unpack_uint(cl, 12, 15) + 1; - values->sub_id = __gen_unpack_uint(cl, 8, 11); -} -#endif - - -#define V3D41_TILE_RENDERING_MODE_CFG_COLOR_opcode 121 -#define V3D41_TILE_RENDERING_MODE_CFG_COLOR_header\ - .opcode = 121, \ - .sub_id = 1 - -struct V3D41_TILE_RENDERING_MODE_CFG_COLOR { - uint32_t opcode; - uint32_t pad; - enum V3D41_Render_Target_Clamp render_target_3_clamp; - enum V3D41_Internal_Type render_target_3_internal_type; - enum V3D41_Internal_BPP render_target_3_internal_bpp; - enum V3D41_Render_Target_Clamp render_target_2_clamp; - enum V3D41_Internal_Type render_target_2_internal_type; - enum V3D41_Internal_BPP render_target_2_internal_bpp; - enum V3D41_Render_Target_Clamp render_target_1_clamp; - enum V3D41_Internal_Type render_target_1_internal_type; - enum V3D41_Internal_BPP render_target_1_internal_bpp; - enum V3D41_Render_Target_Clamp render_target_0_clamp; - enum V3D41_Internal_Type render_target_0_internal_type; - enum V3D41_Internal_BPP render_target_0_internal_bpp; - uint32_t sub_id; -}; - -static inline void -V3D41_TILE_RENDERING_MODE_CFG_COLOR_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_TILE_RENDERING_MODE_CFG_COLOR * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->render_target_0_internal_type, 6, 9) | - __gen_uint(values->render_target_0_internal_bpp, 4, 5) | - __gen_uint(values->sub_id, 0, 3); - - cl[ 2] = __gen_uint(values->render_target_1_internal_type, 6, 9) | - __gen_uint(values->render_target_1_internal_bpp, 4, 5) | - __gen_uint(values->render_target_0_clamp, 2, 3) | - __gen_uint(values->render_target_0_internal_type, 6, 9) >> 8; - - cl[ 3] = __gen_uint(values->render_target_2_internal_type, 6, 9) | - __gen_uint(values->render_target_2_internal_bpp, 4, 5) | - __gen_uint(values->render_target_1_clamp, 2, 3) | - __gen_uint(values->render_target_1_internal_type, 6, 9) >> 8; - - cl[ 4] = __gen_uint(values->render_target_3_internal_type, 6, 9) | - __gen_uint(values->render_target_3_internal_bpp, 4, 5) | - __gen_uint(values->render_target_2_clamp, 2, 3) | - __gen_uint(values->render_target_2_internal_type, 6, 9) >> 8; - - cl[ 5] = __gen_uint(values->pad, 2, 29) | - __gen_uint(values->render_target_3_clamp, 0, 1) | - __gen_uint(values->render_target_3_internal_type, 6, 9) >> 8; - - cl[ 6] = __gen_uint(values->pad, 2, 29) >> 8; - - cl[ 7] = __gen_uint(values->pad, 2, 29) >> 16; - - cl[ 8] = __gen_uint(values->pad, 2, 29) >> 24; - -} - -#define V3D41_TILE_RENDERING_MODE_CFG_COLOR_length 9 -#ifdef __gen_unpack_address -static inline void -V3D41_TILE_RENDERING_MODE_CFG_COLOR_unpack(const uint8_t * restrict cl, - struct V3D41_TILE_RENDERING_MODE_CFG_COLOR * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->pad = __gen_unpack_uint(cl, 42, 69); - values->render_target_3_clamp = __gen_unpack_uint(cl, 40, 41); - values->render_target_3_internal_type = __gen_unpack_uint(cl, 38, 41); - values->render_target_3_internal_bpp = __gen_unpack_uint(cl, 36, 37); - values->render_target_2_clamp = __gen_unpack_uint(cl, 34, 35); - values->render_target_2_internal_type = __gen_unpack_uint(cl, 30, 33); - values->render_target_2_internal_bpp = __gen_unpack_uint(cl, 28, 29); - values->render_target_1_clamp = __gen_unpack_uint(cl, 26, 27); - values->render_target_1_internal_type = __gen_unpack_uint(cl, 22, 25); - values->render_target_1_internal_bpp = __gen_unpack_uint(cl, 20, 21); - values->render_target_0_clamp = __gen_unpack_uint(cl, 18, 19); - values->render_target_0_internal_type = __gen_unpack_uint(cl, 14, 17); - values->render_target_0_internal_bpp = __gen_unpack_uint(cl, 12, 13); - values->sub_id = __gen_unpack_uint(cl, 8, 11); -} -#endif - - -#define V3D41_TILE_RENDERING_MODE_CFG_ZS_CLEAR_VALUES_opcode 121 -#define V3D41_TILE_RENDERING_MODE_CFG_ZS_CLEAR_VALUES_header\ - .opcode = 121, \ - .sub_id = 2 - -struct V3D41_TILE_RENDERING_MODE_CFG_ZS_CLEAR_VALUES { - uint32_t opcode; - uint32_t unused; - float z_clear_value; - uint32_t stencil_clear_value; - uint32_t sub_id; -}; - -static inline void -V3D41_TILE_RENDERING_MODE_CFG_ZS_CLEAR_VALUES_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_TILE_RENDERING_MODE_CFG_ZS_CLEAR_VALUES * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->sub_id, 0, 3); - - cl[ 2] = __gen_uint(values->stencil_clear_value, 0, 7); - - - memcpy(&cl[3], &values->z_clear_value, sizeof(values->z_clear_value)); - cl[ 7] = __gen_uint(values->unused, 0, 15); - - cl[ 8] = __gen_uint(values->unused, 0, 15) >> 8; - -} - -#define V3D41_TILE_RENDERING_MODE_CFG_ZS_CLEAR_VALUES_length 9 -#ifdef __gen_unpack_address -static inline void -V3D41_TILE_RENDERING_MODE_CFG_ZS_CLEAR_VALUES_unpack(const uint8_t * restrict cl, - struct V3D41_TILE_RENDERING_MODE_CFG_ZS_CLEAR_VALUES * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->unused = __gen_unpack_uint(cl, 56, 71); - values->z_clear_value = __gen_unpack_float(cl, 24, 55); - values->stencil_clear_value = __gen_unpack_uint(cl, 16, 23); - values->sub_id = __gen_unpack_uint(cl, 8, 11); -} -#endif - - -#define V3D41_TILE_RENDERING_MODE_CFG_CLEAR_COLORS_PART1_opcode 121 -#define V3D41_TILE_RENDERING_MODE_CFG_CLEAR_COLORS_PART1_header\ - .opcode = 121, \ - .sub_id = 3 - -struct V3D41_TILE_RENDERING_MODE_CFG_CLEAR_COLORS_PART1 { - uint32_t opcode; - uint32_t clear_color_next_24_bits; - uint32_t clear_color_low_32_bits; - uint32_t render_target_number; - uint32_t sub_id; -}; - -static inline void -V3D41_TILE_RENDERING_MODE_CFG_CLEAR_COLORS_PART1_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_TILE_RENDERING_MODE_CFG_CLEAR_COLORS_PART1 * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->render_target_number, 4, 7) | - __gen_uint(values->sub_id, 0, 3); - - - memcpy(&cl[2], &values->clear_color_low_32_bits, sizeof(values->clear_color_low_32_bits)); - cl[ 6] = __gen_uint(values->clear_color_next_24_bits, 0, 23); - - cl[ 7] = __gen_uint(values->clear_color_next_24_bits, 0, 23) >> 8; - - cl[ 8] = __gen_uint(values->clear_color_next_24_bits, 0, 23) >> 16; - -} - -#define V3D41_TILE_RENDERING_MODE_CFG_CLEAR_COLORS_PART1_length 9 -#ifdef __gen_unpack_address -static inline void -V3D41_TILE_RENDERING_MODE_CFG_CLEAR_COLORS_PART1_unpack(const uint8_t * restrict cl, - struct V3D41_TILE_RENDERING_MODE_CFG_CLEAR_COLORS_PART1 * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->clear_color_next_24_bits = __gen_unpack_uint(cl, 48, 71); - values->clear_color_low_32_bits = __gen_unpack_uint(cl, 16, 47); - values->render_target_number = __gen_unpack_uint(cl, 12, 15); - values->sub_id = __gen_unpack_uint(cl, 8, 11); -} -#endif - - -#define V3D41_TILE_RENDERING_MODE_CFG_CLEAR_COLORS_PART2_opcode 121 -#define V3D41_TILE_RENDERING_MODE_CFG_CLEAR_COLORS_PART2_header\ - .opcode = 121, \ - .sub_id = 4 - -struct V3D41_TILE_RENDERING_MODE_CFG_CLEAR_COLORS_PART2 { - uint32_t opcode; - uint32_t clear_color_mid_high_24_bits; - uint32_t clear_color_mid_low_32_bits; - uint32_t render_target_number; - uint32_t sub_id; -}; - -static inline void -V3D41_TILE_RENDERING_MODE_CFG_CLEAR_COLORS_PART2_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_TILE_RENDERING_MODE_CFG_CLEAR_COLORS_PART2 * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->render_target_number, 4, 7) | - __gen_uint(values->sub_id, 0, 3); - - - memcpy(&cl[2], &values->clear_color_mid_low_32_bits, sizeof(values->clear_color_mid_low_32_bits)); - cl[ 6] = __gen_uint(values->clear_color_mid_high_24_bits, 0, 23); - - cl[ 7] = __gen_uint(values->clear_color_mid_high_24_bits, 0, 23) >> 8; - - cl[ 8] = __gen_uint(values->clear_color_mid_high_24_bits, 0, 23) >> 16; - -} - -#define V3D41_TILE_RENDERING_MODE_CFG_CLEAR_COLORS_PART2_length 9 -#ifdef __gen_unpack_address -static inline void -V3D41_TILE_RENDERING_MODE_CFG_CLEAR_COLORS_PART2_unpack(const uint8_t * restrict cl, - struct V3D41_TILE_RENDERING_MODE_CFG_CLEAR_COLORS_PART2 * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->clear_color_mid_high_24_bits = __gen_unpack_uint(cl, 48, 71); - values->clear_color_mid_low_32_bits = __gen_unpack_uint(cl, 16, 47); - values->render_target_number = __gen_unpack_uint(cl, 12, 15); - values->sub_id = __gen_unpack_uint(cl, 8, 11); -} -#endif - - -#define V3D41_TILE_RENDERING_MODE_CFG_CLEAR_COLORS_PART3_opcode 121 -#define V3D41_TILE_RENDERING_MODE_CFG_CLEAR_COLORS_PART3_header\ - .opcode = 121, \ - .sub_id = 5 - -struct V3D41_TILE_RENDERING_MODE_CFG_CLEAR_COLORS_PART3 { - uint32_t opcode; - uint32_t pad; - uint32_t uif_padded_height_in_uif_blocks; - uint32_t raster_row_stride_or_image_height_in_pixels; - uint32_t clear_color_high_16_bits; - uint32_t render_target_number; - uint32_t sub_id; -}; - -static inline void -V3D41_TILE_RENDERING_MODE_CFG_CLEAR_COLORS_PART3_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_TILE_RENDERING_MODE_CFG_CLEAR_COLORS_PART3 * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->render_target_number, 4, 7) | - __gen_uint(values->sub_id, 0, 3); - - cl[ 2] = __gen_uint(values->clear_color_high_16_bits, 0, 15); - - cl[ 3] = __gen_uint(values->clear_color_high_16_bits, 0, 15) >> 8; - - cl[ 4] = __gen_uint(values->raster_row_stride_or_image_height_in_pixels, 0, 15); - - cl[ 5] = __gen_uint(values->raster_row_stride_or_image_height_in_pixels, 0, 15) >> 8; - - cl[ 6] = __gen_uint(values->uif_padded_height_in_uif_blocks, 0, 12); - - cl[ 7] = __gen_uint(values->pad, 5, 15) | - __gen_uint(values->uif_padded_height_in_uif_blocks, 0, 12) >> 8; - - cl[ 8] = __gen_uint(values->pad, 5, 15) >> 8; - -} - -#define V3D41_TILE_RENDERING_MODE_CFG_CLEAR_COLORS_PART3_length 9 -#ifdef __gen_unpack_address -static inline void -V3D41_TILE_RENDERING_MODE_CFG_CLEAR_COLORS_PART3_unpack(const uint8_t * restrict cl, - struct V3D41_TILE_RENDERING_MODE_CFG_CLEAR_COLORS_PART3 * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->pad = __gen_unpack_uint(cl, 61, 71); - values->uif_padded_height_in_uif_blocks = __gen_unpack_uint(cl, 48, 60); - values->raster_row_stride_or_image_height_in_pixels = __gen_unpack_uint(cl, 32, 47); - values->clear_color_high_16_bits = __gen_unpack_uint(cl, 16, 31); - values->render_target_number = __gen_unpack_uint(cl, 12, 15); - values->sub_id = __gen_unpack_uint(cl, 8, 11); -} -#endif - - -#define V3D41_TILE_COORDINATES_opcode 124 -#define V3D41_TILE_COORDINATES_header \ - .opcode = 124 - -struct V3D41_TILE_COORDINATES { - uint32_t opcode; - uint32_t tile_row_number; - uint32_t tile_column_number; -}; - -static inline void -V3D41_TILE_COORDINATES_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_TILE_COORDINATES * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->tile_column_number, 0, 11); - - cl[ 2] = __gen_uint(values->tile_row_number, 4, 15) | - __gen_uint(values->tile_column_number, 0, 11) >> 8; - - cl[ 3] = __gen_uint(values->tile_row_number, 4, 15) >> 8; - -} - -#define V3D41_TILE_COORDINATES_length 4 -#ifdef __gen_unpack_address -static inline void -V3D41_TILE_COORDINATES_unpack(const uint8_t * restrict cl, - struct V3D41_TILE_COORDINATES * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->tile_row_number = __gen_unpack_uint(cl, 20, 31); - values->tile_column_number = __gen_unpack_uint(cl, 8, 19); -} -#endif - - -#define V3D41_MULTICORE_RENDERING_SUPERTILE_CFG_opcode 122 -#define V3D41_MULTICORE_RENDERING_SUPERTILE_CFG_header\ - .opcode = 122 - -struct V3D41_MULTICORE_RENDERING_SUPERTILE_CFG { - uint32_t opcode; - uint32_t number_of_bin_tile_lists; - bool supertile_raster_order; - bool multicore_enable; - uint32_t total_frame_height_in_tiles; - uint32_t total_frame_width_in_tiles; - uint32_t total_frame_height_in_supertiles; - uint32_t total_frame_width_in_supertiles; - uint32_t supertile_height_in_tiles; - uint32_t supertile_width_in_tiles; -}; - -static inline void -V3D41_MULTICORE_RENDERING_SUPERTILE_CFG_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_MULTICORE_RENDERING_SUPERTILE_CFG * restrict values) -{ - assert(values->number_of_bin_tile_lists >= 1); - assert(values->supertile_height_in_tiles >= 1); - assert(values->supertile_width_in_tiles >= 1); - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->supertile_width_in_tiles - 1, 0, 7); - - cl[ 2] = __gen_uint(values->supertile_height_in_tiles - 1, 0, 7); - - cl[ 3] = __gen_uint(values->total_frame_width_in_supertiles, 0, 7); - - cl[ 4] = __gen_uint(values->total_frame_height_in_supertiles, 0, 7); - - cl[ 5] = __gen_uint(values->total_frame_width_in_tiles, 0, 11); - - cl[ 6] = __gen_uint(values->total_frame_height_in_tiles, 4, 15) | - __gen_uint(values->total_frame_width_in_tiles, 0, 11) >> 8; - - cl[ 7] = __gen_uint(values->total_frame_height_in_tiles, 4, 15) >> 8; - - cl[ 8] = __gen_uint(values->number_of_bin_tile_lists - 1, 5, 7) | - __gen_uint(values->supertile_raster_order, 4, 4) | - __gen_uint(values->multicore_enable, 0, 0); - -} - -#define V3D41_MULTICORE_RENDERING_SUPERTILE_CFG_length 9 -#ifdef __gen_unpack_address -static inline void -V3D41_MULTICORE_RENDERING_SUPERTILE_CFG_unpack(const uint8_t * restrict cl, - struct V3D41_MULTICORE_RENDERING_SUPERTILE_CFG * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->number_of_bin_tile_lists = __gen_unpack_uint(cl, 69, 71) + 1; - values->supertile_raster_order = __gen_unpack_uint(cl, 68, 68); - values->multicore_enable = __gen_unpack_uint(cl, 64, 64); - values->total_frame_height_in_tiles = __gen_unpack_uint(cl, 52, 63); - values->total_frame_width_in_tiles = __gen_unpack_uint(cl, 40, 51); - values->total_frame_height_in_supertiles = __gen_unpack_uint(cl, 32, 39); - values->total_frame_width_in_supertiles = __gen_unpack_uint(cl, 24, 31); - values->supertile_height_in_tiles = __gen_unpack_uint(cl, 16, 23) + 1; - values->supertile_width_in_tiles = __gen_unpack_uint(cl, 8, 15) + 1; -} -#endif - - -#define V3D41_MULTICORE_RENDERING_TILE_LIST_SET_BASE_opcode 123 -#define V3D41_MULTICORE_RENDERING_TILE_LIST_SET_BASE_header\ - .opcode = 123 - -struct V3D41_MULTICORE_RENDERING_TILE_LIST_SET_BASE { - uint32_t opcode; - __gen_address_type address; - uint32_t tile_list_set_number; -}; - -static inline void -V3D41_MULTICORE_RENDERING_TILE_LIST_SET_BASE_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_MULTICORE_RENDERING_TILE_LIST_SET_BASE * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - __gen_emit_reloc(data, &values->address); - cl[ 1] = __gen_address_offset(&values->address) | - __gen_uint(values->tile_list_set_number, 0, 3); - - cl[ 2] = __gen_address_offset(&values->address) >> 8; - - cl[ 3] = __gen_address_offset(&values->address) >> 16; - - cl[ 4] = __gen_address_offset(&values->address) >> 24; - -} - -#define V3D41_MULTICORE_RENDERING_TILE_LIST_SET_BASE_length 5 -#ifdef __gen_unpack_address -static inline void -V3D41_MULTICORE_RENDERING_TILE_LIST_SET_BASE_unpack(const uint8_t * restrict cl, - struct V3D41_MULTICORE_RENDERING_TILE_LIST_SET_BASE * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->address = __gen_unpack_address(cl, 14, 39); - values->tile_list_set_number = __gen_unpack_uint(cl, 8, 11); -} -#endif - - -#define V3D41_TILE_COORDINATES_IMPLICIT_opcode 125 -#define V3D41_TILE_COORDINATES_IMPLICIT_header \ - .opcode = 125 - -struct V3D41_TILE_COORDINATES_IMPLICIT { - uint32_t opcode; -}; - -static inline void -V3D41_TILE_COORDINATES_IMPLICIT_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_TILE_COORDINATES_IMPLICIT * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D41_TILE_COORDINATES_IMPLICIT_length 1 -#ifdef __gen_unpack_address -static inline void -V3D41_TILE_COORDINATES_IMPLICIT_unpack(const uint8_t * restrict cl, - struct V3D41_TILE_COORDINATES_IMPLICIT * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D41_TILE_LIST_INITIAL_BLOCK_SIZE_opcode 126 -#define V3D41_TILE_LIST_INITIAL_BLOCK_SIZE_header\ - .opcode = 126 - -struct V3D41_TILE_LIST_INITIAL_BLOCK_SIZE { - uint32_t opcode; - bool use_auto_chained_tile_lists; - uint32_t size_of_first_block_in_chained_tile_lists; -#define TILE_ALLOCATION_BLOCK_SIZE_64B 0 -#define TILE_ALLOCATION_BLOCK_SIZE_128B 1 -#define TILE_ALLOCATION_BLOCK_SIZE_256B 2 -}; - -static inline void -V3D41_TILE_LIST_INITIAL_BLOCK_SIZE_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_TILE_LIST_INITIAL_BLOCK_SIZE * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->use_auto_chained_tile_lists, 2, 2) | - __gen_uint(values->size_of_first_block_in_chained_tile_lists, 0, 1); - -} - -#define V3D41_TILE_LIST_INITIAL_BLOCK_SIZE_length 2 -#ifdef __gen_unpack_address -static inline void -V3D41_TILE_LIST_INITIAL_BLOCK_SIZE_unpack(const uint8_t * restrict cl, - struct V3D41_TILE_LIST_INITIAL_BLOCK_SIZE * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->use_auto_chained_tile_lists = __gen_unpack_uint(cl, 10, 10); - values->size_of_first_block_in_chained_tile_lists = __gen_unpack_uint(cl, 8, 9); -} -#endif - - -#define V3D41_GL_SHADER_STATE_RECORD_header \ - - -struct V3D41_GL_SHADER_STATE_RECORD { - bool point_size_in_shaded_vertex_data; - bool enable_clipping; - bool vertex_id_read_by_coordinate_shader; - bool instance_id_read_by_coordinate_shader; - bool base_instance_id_read_by_coordinate_shader; - bool vertex_id_read_by_vertex_shader; - bool instance_id_read_by_vertex_shader; - bool base_instance_id_read_by_vertex_shader; - bool fragment_shader_does_z_writes; - bool turn_off_early_z_test; - bool coordinate_shader_has_separate_input_and_output_vpm_blocks; - bool vertex_shader_has_separate_input_and_output_vpm_blocks; - bool fragment_shader_uses_real_pixel_centre_w_in_addition_to_centroid_w2; - bool enable_sample_rate_shading; - bool any_shader_reads_hardware_written_primitive_id; - bool insert_primitive_id_as_first_varying_to_fragment_shader; - bool turn_off_scoreboard; - bool do_scoreboard_wait_on_first_thread_switch; - bool disable_implicit_point_line_varyings; - bool no_prim_pack; - uint32_t number_of_varyings_in_fragment_shader; - uint32_t coordinate_shader_output_vpm_segment_size; - uint32_t min_coord_shader_output_segments_required_in_play_in_addition_to_vcm_cache_size; - uint32_t coordinate_shader_input_vpm_segment_size; - uint32_t min_coord_shader_input_segments_required_in_play; - uint32_t vertex_shader_output_vpm_segment_size; - uint32_t min_vertex_shader_output_segments_required_in_play_in_addition_to_vcm_cache_size; - uint32_t vertex_shader_input_vpm_segment_size; - uint32_t min_vertex_shader_input_segments_required_in_play; - __gen_address_type address_of_default_attribute_values; - __gen_address_type fragment_shader_code_address; - bool fragment_shader_4_way_threadable; - bool fragment_shader_start_in_final_thread_section; - bool fragment_shader_propagate_nans; - __gen_address_type fragment_shader_uniforms_address; - __gen_address_type vertex_shader_code_address; - bool vertex_shader_4_way_threadable; - bool vertex_shader_start_in_final_thread_section; - bool vertex_shader_propagate_nans; - __gen_address_type vertex_shader_uniforms_address; - __gen_address_type coordinate_shader_code_address; - bool coordinate_shader_4_way_threadable; - bool coordinate_shader_start_in_final_thread_section; - bool coordinate_shader_propagate_nans; - __gen_address_type coordinate_shader_uniforms_address; -}; - -static inline void -V3D41_GL_SHADER_STATE_RECORD_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_GL_SHADER_STATE_RECORD * restrict values) -{ - assert(values->min_coord_shader_input_segments_required_in_play >= 1); - assert(values->min_vertex_shader_input_segments_required_in_play >= 1); - cl[ 0] = __gen_uint(values->point_size_in_shaded_vertex_data, 0, 0) | - __gen_uint(values->enable_clipping, 1, 1) | - __gen_uint(values->vertex_id_read_by_coordinate_shader, 2, 2) | - __gen_uint(values->instance_id_read_by_coordinate_shader, 3, 3) | - __gen_uint(values->base_instance_id_read_by_coordinate_shader, 4, 4) | - __gen_uint(values->vertex_id_read_by_vertex_shader, 5, 5) | - __gen_uint(values->instance_id_read_by_vertex_shader, 6, 6) | - __gen_uint(values->base_instance_id_read_by_vertex_shader, 7, 7); - - cl[ 1] = __gen_uint(values->fragment_shader_does_z_writes, 0, 0) | - __gen_uint(values->turn_off_early_z_test, 1, 1) | - __gen_uint(values->coordinate_shader_has_separate_input_and_output_vpm_blocks, 2, 2) | - __gen_uint(values->vertex_shader_has_separate_input_and_output_vpm_blocks, 3, 3) | - __gen_uint(values->fragment_shader_uses_real_pixel_centre_w_in_addition_to_centroid_w2, 4, 4) | - __gen_uint(values->enable_sample_rate_shading, 5, 5) | - __gen_uint(values->any_shader_reads_hardware_written_primitive_id, 6, 6) | - __gen_uint(values->insert_primitive_id_as_first_varying_to_fragment_shader, 7, 7); - - cl[ 2] = __gen_uint(values->turn_off_scoreboard, 0, 0) | - __gen_uint(values->do_scoreboard_wait_on_first_thread_switch, 1, 1) | - __gen_uint(values->disable_implicit_point_line_varyings, 2, 2) | - __gen_uint(values->no_prim_pack, 3, 3); - - cl[ 3] = __gen_uint(values->number_of_varyings_in_fragment_shader, 0, 7); - - cl[ 4] = __gen_uint(values->coordinate_shader_output_vpm_segment_size, 0, 3) | - __gen_uint(values->min_coord_shader_output_segments_required_in_play_in_addition_to_vcm_cache_size, 4, 7); - - cl[ 5] = __gen_uint(values->coordinate_shader_input_vpm_segment_size, 0, 3) | - __gen_uint(values->min_coord_shader_input_segments_required_in_play - 1, 4, 7); - - cl[ 6] = __gen_uint(values->vertex_shader_output_vpm_segment_size, 0, 3) | - __gen_uint(values->min_vertex_shader_output_segments_required_in_play_in_addition_to_vcm_cache_size, 4, 7); - - cl[ 7] = __gen_uint(values->vertex_shader_input_vpm_segment_size, 0, 3) | - __gen_uint(values->min_vertex_shader_input_segments_required_in_play - 1, 4, 7); - - __gen_emit_reloc(data, &values->address_of_default_attribute_values); - cl[ 8] = __gen_address_offset(&values->address_of_default_attribute_values); - - cl[ 9] = __gen_address_offset(&values->address_of_default_attribute_values) >> 8; - - cl[10] = __gen_address_offset(&values->address_of_default_attribute_values) >> 16; - - cl[11] = __gen_address_offset(&values->address_of_default_attribute_values) >> 24; - - __gen_emit_reloc(data, &values->fragment_shader_code_address); - cl[12] = __gen_address_offset(&values->fragment_shader_code_address) | - __gen_uint(values->fragment_shader_4_way_threadable, 0, 0) | - __gen_uint(values->fragment_shader_start_in_final_thread_section, 1, 1) | - __gen_uint(values->fragment_shader_propagate_nans, 2, 2); - - cl[13] = __gen_address_offset(&values->fragment_shader_code_address) >> 8; - - cl[14] = __gen_address_offset(&values->fragment_shader_code_address) >> 16; - - cl[15] = __gen_address_offset(&values->fragment_shader_code_address) >> 24; - - __gen_emit_reloc(data, &values->fragment_shader_uniforms_address); - cl[16] = __gen_address_offset(&values->fragment_shader_uniforms_address); - - cl[17] = __gen_address_offset(&values->fragment_shader_uniforms_address) >> 8; - - cl[18] = __gen_address_offset(&values->fragment_shader_uniforms_address) >> 16; - - cl[19] = __gen_address_offset(&values->fragment_shader_uniforms_address) >> 24; - - __gen_emit_reloc(data, &values->vertex_shader_code_address); - cl[20] = __gen_address_offset(&values->vertex_shader_code_address) | - __gen_uint(values->vertex_shader_4_way_threadable, 0, 0) | - __gen_uint(values->vertex_shader_start_in_final_thread_section, 1, 1) | - __gen_uint(values->vertex_shader_propagate_nans, 2, 2); - - cl[21] = __gen_address_offset(&values->vertex_shader_code_address) >> 8; - - cl[22] = __gen_address_offset(&values->vertex_shader_code_address) >> 16; - - cl[23] = __gen_address_offset(&values->vertex_shader_code_address) >> 24; - - __gen_emit_reloc(data, &values->vertex_shader_uniforms_address); - cl[24] = __gen_address_offset(&values->vertex_shader_uniforms_address); - - cl[25] = __gen_address_offset(&values->vertex_shader_uniforms_address) >> 8; - - cl[26] = __gen_address_offset(&values->vertex_shader_uniforms_address) >> 16; - - cl[27] = __gen_address_offset(&values->vertex_shader_uniforms_address) >> 24; - - __gen_emit_reloc(data, &values->coordinate_shader_code_address); - cl[28] = __gen_address_offset(&values->coordinate_shader_code_address) | - __gen_uint(values->coordinate_shader_4_way_threadable, 0, 0) | - __gen_uint(values->coordinate_shader_start_in_final_thread_section, 1, 1) | - __gen_uint(values->coordinate_shader_propagate_nans, 2, 2); - - cl[29] = __gen_address_offset(&values->coordinate_shader_code_address) >> 8; - - cl[30] = __gen_address_offset(&values->coordinate_shader_code_address) >> 16; - - cl[31] = __gen_address_offset(&values->coordinate_shader_code_address) >> 24; - - __gen_emit_reloc(data, &values->coordinate_shader_uniforms_address); - cl[32] = __gen_address_offset(&values->coordinate_shader_uniforms_address); - - cl[33] = __gen_address_offset(&values->coordinate_shader_uniforms_address) >> 8; - - cl[34] = __gen_address_offset(&values->coordinate_shader_uniforms_address) >> 16; - - cl[35] = __gen_address_offset(&values->coordinate_shader_uniforms_address) >> 24; - -} - -#define V3D41_GL_SHADER_STATE_RECORD_length 36 -#ifdef __gen_unpack_address -static inline void -V3D41_GL_SHADER_STATE_RECORD_unpack(const uint8_t * restrict cl, - struct V3D41_GL_SHADER_STATE_RECORD * restrict values) -{ - values->point_size_in_shaded_vertex_data = __gen_unpack_uint(cl, 0, 0); - values->enable_clipping = __gen_unpack_uint(cl, 1, 1); - values->vertex_id_read_by_coordinate_shader = __gen_unpack_uint(cl, 2, 2); - values->instance_id_read_by_coordinate_shader = __gen_unpack_uint(cl, 3, 3); - values->base_instance_id_read_by_coordinate_shader = __gen_unpack_uint(cl, 4, 4); - values->vertex_id_read_by_vertex_shader = __gen_unpack_uint(cl, 5, 5); - values->instance_id_read_by_vertex_shader = __gen_unpack_uint(cl, 6, 6); - values->base_instance_id_read_by_vertex_shader = __gen_unpack_uint(cl, 7, 7); - values->fragment_shader_does_z_writes = __gen_unpack_uint(cl, 8, 8); - values->turn_off_early_z_test = __gen_unpack_uint(cl, 9, 9); - values->coordinate_shader_has_separate_input_and_output_vpm_blocks = __gen_unpack_uint(cl, 10, 10); - values->vertex_shader_has_separate_input_and_output_vpm_blocks = __gen_unpack_uint(cl, 11, 11); - values->fragment_shader_uses_real_pixel_centre_w_in_addition_to_centroid_w2 = __gen_unpack_uint(cl, 12, 12); - values->enable_sample_rate_shading = __gen_unpack_uint(cl, 13, 13); - values->any_shader_reads_hardware_written_primitive_id = __gen_unpack_uint(cl, 14, 14); - values->insert_primitive_id_as_first_varying_to_fragment_shader = __gen_unpack_uint(cl, 15, 15); - values->turn_off_scoreboard = __gen_unpack_uint(cl, 16, 16); - values->do_scoreboard_wait_on_first_thread_switch = __gen_unpack_uint(cl, 17, 17); - values->disable_implicit_point_line_varyings = __gen_unpack_uint(cl, 18, 18); - values->no_prim_pack = __gen_unpack_uint(cl, 19, 19); - values->number_of_varyings_in_fragment_shader = __gen_unpack_uint(cl, 24, 31); - values->coordinate_shader_output_vpm_segment_size = __gen_unpack_uint(cl, 32, 35); - values->min_coord_shader_output_segments_required_in_play_in_addition_to_vcm_cache_size = __gen_unpack_uint(cl, 36, 39); - values->coordinate_shader_input_vpm_segment_size = __gen_unpack_uint(cl, 40, 43); - values->min_coord_shader_input_segments_required_in_play = __gen_unpack_uint(cl, 44, 47) + 1; - values->vertex_shader_output_vpm_segment_size = __gen_unpack_uint(cl, 48, 51); - values->min_vertex_shader_output_segments_required_in_play_in_addition_to_vcm_cache_size = __gen_unpack_uint(cl, 52, 55); - values->vertex_shader_input_vpm_segment_size = __gen_unpack_uint(cl, 56, 59); - values->min_vertex_shader_input_segments_required_in_play = __gen_unpack_uint(cl, 60, 63) + 1; - values->address_of_default_attribute_values = __gen_unpack_address(cl, 64, 95); - values->fragment_shader_code_address = __gen_unpack_address(cl, 99, 127); - values->fragment_shader_4_way_threadable = __gen_unpack_uint(cl, 96, 96); - values->fragment_shader_start_in_final_thread_section = __gen_unpack_uint(cl, 97, 97); - values->fragment_shader_propagate_nans = __gen_unpack_uint(cl, 98, 98); - values->fragment_shader_uniforms_address = __gen_unpack_address(cl, 128, 159); - values->vertex_shader_code_address = __gen_unpack_address(cl, 163, 191); - values->vertex_shader_4_way_threadable = __gen_unpack_uint(cl, 160, 160); - values->vertex_shader_start_in_final_thread_section = __gen_unpack_uint(cl, 161, 161); - values->vertex_shader_propagate_nans = __gen_unpack_uint(cl, 162, 162); - values->vertex_shader_uniforms_address = __gen_unpack_address(cl, 192, 223); - values->coordinate_shader_code_address = __gen_unpack_address(cl, 227, 255); - values->coordinate_shader_4_way_threadable = __gen_unpack_uint(cl, 224, 224); - values->coordinate_shader_start_in_final_thread_section = __gen_unpack_uint(cl, 225, 225); - values->coordinate_shader_propagate_nans = __gen_unpack_uint(cl, 226, 226); - values->coordinate_shader_uniforms_address = __gen_unpack_address(cl, 256, 287); -} -#endif - - -#define V3D41_GEOMETRY_SHADER_STATE_RECORD_header\ - - -struct V3D41_GEOMETRY_SHADER_STATE_RECORD { - __gen_address_type geometry_bin_mode_shader_code_address; - bool _4_way_threadable; - bool start_in_final_thread_section; - bool propagate_nans; - __gen_address_type geometry_bin_mode_shader_uniforms_address; - __gen_address_type geometry_render_mode_shader_code_address; - __gen_address_type geometry_render_mode_shader_uniforms_address; -}; - -static inline void -V3D41_GEOMETRY_SHADER_STATE_RECORD_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_GEOMETRY_SHADER_STATE_RECORD * restrict values) -{ - __gen_emit_reloc(data, &values->geometry_bin_mode_shader_code_address); - cl[ 0] = __gen_address_offset(&values->geometry_bin_mode_shader_code_address) | - __gen_uint(values->_4_way_threadable, 0, 0) | - __gen_uint(values->start_in_final_thread_section, 1, 1) | - __gen_uint(values->propagate_nans, 2, 2); - - cl[ 1] = __gen_address_offset(&values->geometry_bin_mode_shader_code_address) >> 8; - - cl[ 2] = __gen_address_offset(&values->geometry_bin_mode_shader_code_address) >> 16; - - cl[ 3] = __gen_address_offset(&values->geometry_bin_mode_shader_code_address) >> 24; - - __gen_emit_reloc(data, &values->geometry_bin_mode_shader_uniforms_address); - cl[ 4] = __gen_address_offset(&values->geometry_bin_mode_shader_uniforms_address); - - cl[ 5] = __gen_address_offset(&values->geometry_bin_mode_shader_uniforms_address) >> 8; - - cl[ 6] = __gen_address_offset(&values->geometry_bin_mode_shader_uniforms_address) >> 16; - - cl[ 7] = __gen_address_offset(&values->geometry_bin_mode_shader_uniforms_address) >> 24; - - __gen_emit_reloc(data, &values->geometry_render_mode_shader_code_address); - cl[ 8] = __gen_address_offset(&values->geometry_render_mode_shader_code_address); - - cl[ 9] = __gen_address_offset(&values->geometry_render_mode_shader_code_address) >> 8; - - cl[10] = __gen_address_offset(&values->geometry_render_mode_shader_code_address) >> 16; - - cl[11] = __gen_address_offset(&values->geometry_render_mode_shader_code_address) >> 24; - - __gen_emit_reloc(data, &values->geometry_render_mode_shader_uniforms_address); - cl[12] = __gen_address_offset(&values->geometry_render_mode_shader_uniforms_address); - - cl[13] = __gen_address_offset(&values->geometry_render_mode_shader_uniforms_address) >> 8; - - cl[14] = __gen_address_offset(&values->geometry_render_mode_shader_uniforms_address) >> 16; - - cl[15] = __gen_address_offset(&values->geometry_render_mode_shader_uniforms_address) >> 24; - -} - -#define V3D41_GEOMETRY_SHADER_STATE_RECORD_length 16 -#ifdef __gen_unpack_address -static inline void -V3D41_GEOMETRY_SHADER_STATE_RECORD_unpack(const uint8_t * restrict cl, - struct V3D41_GEOMETRY_SHADER_STATE_RECORD * restrict values) -{ - values->geometry_bin_mode_shader_code_address = __gen_unpack_address(cl, 0, 31); - values->_4_way_threadable = __gen_unpack_uint(cl, 0, 0); - values->start_in_final_thread_section = __gen_unpack_uint(cl, 1, 1); - values->propagate_nans = __gen_unpack_uint(cl, 2, 2); - values->geometry_bin_mode_shader_uniforms_address = __gen_unpack_address(cl, 32, 63); - values->geometry_render_mode_shader_code_address = __gen_unpack_address(cl, 64, 95); - values->geometry_render_mode_shader_uniforms_address = __gen_unpack_address(cl, 96, 127); -} -#endif - - -#define V3D41_TESSELLATION_SHADER_STATE_RECORD_header\ - - -struct V3D41_TESSELLATION_SHADER_STATE_RECORD { - __gen_address_type tessellation_bin_mode_control_shader_code_address; - __gen_address_type tessellation_bin_mode_control_shader_uniforms_address; - __gen_address_type tessellation_render_mode_control_shader_code_address; - __gen_address_type tessellation_render_mode_control_shader_uniforms_address; - __gen_address_type tessellation_bin_mode_evaluation_shader_code_address; - __gen_address_type tessellation_bin_mode_evaluation_shader_uniforms_address; - __gen_address_type tessellation_render_mode_evaluation_shader_code_address; - __gen_address_type tessellation_render_mode_evaluation_shader_uniforms_address; -}; - -static inline void -V3D41_TESSELLATION_SHADER_STATE_RECORD_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_TESSELLATION_SHADER_STATE_RECORD * restrict values) -{ - __gen_emit_reloc(data, &values->tessellation_bin_mode_control_shader_code_address); - cl[ 0] = __gen_address_offset(&values->tessellation_bin_mode_control_shader_code_address); - - cl[ 1] = __gen_address_offset(&values->tessellation_bin_mode_control_shader_code_address) >> 8; - - cl[ 2] = __gen_address_offset(&values->tessellation_bin_mode_control_shader_code_address) >> 16; - - cl[ 3] = __gen_address_offset(&values->tessellation_bin_mode_control_shader_code_address) >> 24; - - __gen_emit_reloc(data, &values->tessellation_bin_mode_control_shader_uniforms_address); - cl[ 4] = __gen_address_offset(&values->tessellation_bin_mode_control_shader_uniforms_address); - - cl[ 5] = __gen_address_offset(&values->tessellation_bin_mode_control_shader_uniforms_address) >> 8; - - cl[ 6] = __gen_address_offset(&values->tessellation_bin_mode_control_shader_uniforms_address) >> 16; - - cl[ 7] = __gen_address_offset(&values->tessellation_bin_mode_control_shader_uniforms_address) >> 24; - - __gen_emit_reloc(data, &values->tessellation_render_mode_control_shader_code_address); - cl[ 8] = __gen_address_offset(&values->tessellation_render_mode_control_shader_code_address); - - cl[ 9] = __gen_address_offset(&values->tessellation_render_mode_control_shader_code_address) >> 8; - - cl[10] = __gen_address_offset(&values->tessellation_render_mode_control_shader_code_address) >> 16; - - cl[11] = __gen_address_offset(&values->tessellation_render_mode_control_shader_code_address) >> 24; - - __gen_emit_reloc(data, &values->tessellation_render_mode_control_shader_uniforms_address); - cl[12] = __gen_address_offset(&values->tessellation_render_mode_control_shader_uniforms_address); - - cl[13] = __gen_address_offset(&values->tessellation_render_mode_control_shader_uniforms_address) >> 8; - - cl[14] = __gen_address_offset(&values->tessellation_render_mode_control_shader_uniforms_address) >> 16; - - cl[15] = __gen_address_offset(&values->tessellation_render_mode_control_shader_uniforms_address) >> 24; - - __gen_emit_reloc(data, &values->tessellation_bin_mode_evaluation_shader_code_address); - cl[16] = __gen_address_offset(&values->tessellation_bin_mode_evaluation_shader_code_address); - - cl[17] = __gen_address_offset(&values->tessellation_bin_mode_evaluation_shader_code_address) >> 8; - - cl[18] = __gen_address_offset(&values->tessellation_bin_mode_evaluation_shader_code_address) >> 16; - - cl[19] = __gen_address_offset(&values->tessellation_bin_mode_evaluation_shader_code_address) >> 24; - - __gen_emit_reloc(data, &values->tessellation_bin_mode_evaluation_shader_uniforms_address); - cl[20] = __gen_address_offset(&values->tessellation_bin_mode_evaluation_shader_uniforms_address); - - cl[21] = __gen_address_offset(&values->tessellation_bin_mode_evaluation_shader_uniforms_address) >> 8; - - cl[22] = __gen_address_offset(&values->tessellation_bin_mode_evaluation_shader_uniforms_address) >> 16; - - cl[23] = __gen_address_offset(&values->tessellation_bin_mode_evaluation_shader_uniforms_address) >> 24; - - __gen_emit_reloc(data, &values->tessellation_render_mode_evaluation_shader_code_address); - cl[24] = __gen_address_offset(&values->tessellation_render_mode_evaluation_shader_code_address); - - cl[25] = __gen_address_offset(&values->tessellation_render_mode_evaluation_shader_code_address) >> 8; - - cl[26] = __gen_address_offset(&values->tessellation_render_mode_evaluation_shader_code_address) >> 16; - - cl[27] = __gen_address_offset(&values->tessellation_render_mode_evaluation_shader_code_address) >> 24; - - __gen_emit_reloc(data, &values->tessellation_render_mode_evaluation_shader_uniforms_address); - cl[28] = __gen_address_offset(&values->tessellation_render_mode_evaluation_shader_uniforms_address); - - cl[29] = __gen_address_offset(&values->tessellation_render_mode_evaluation_shader_uniforms_address) >> 8; - - cl[30] = __gen_address_offset(&values->tessellation_render_mode_evaluation_shader_uniforms_address) >> 16; - - cl[31] = __gen_address_offset(&values->tessellation_render_mode_evaluation_shader_uniforms_address) >> 24; - -} - -#define V3D41_TESSELLATION_SHADER_STATE_RECORD_length 32 -#ifdef __gen_unpack_address -static inline void -V3D41_TESSELLATION_SHADER_STATE_RECORD_unpack(const uint8_t * restrict cl, - struct V3D41_TESSELLATION_SHADER_STATE_RECORD * restrict values) -{ - values->tessellation_bin_mode_control_shader_code_address = __gen_unpack_address(cl, 0, 31); - values->tessellation_bin_mode_control_shader_uniforms_address = __gen_unpack_address(cl, 32, 63); - values->tessellation_render_mode_control_shader_code_address = __gen_unpack_address(cl, 64, 95); - values->tessellation_render_mode_control_shader_uniforms_address = __gen_unpack_address(cl, 96, 127); - values->tessellation_bin_mode_evaluation_shader_code_address = __gen_unpack_address(cl, 128, 159); - values->tessellation_bin_mode_evaluation_shader_uniforms_address = __gen_unpack_address(cl, 160, 191); - values->tessellation_render_mode_evaluation_shader_code_address = __gen_unpack_address(cl, 192, 223); - values->tessellation_render_mode_evaluation_shader_uniforms_address = __gen_unpack_address(cl, 224, 255); -} -#endif - - -#define V3D41_GL_SHADER_STATE_ATTRIBUTE_RECORD_header\ - - -struct V3D41_GL_SHADER_STATE_ATTRIBUTE_RECORD { - __gen_address_type address; - uint32_t vec_size; - uint32_t type; -#define ATTRIBUTE_HALF_FLOAT 1 -#define ATTRIBUTE_FLOAT 2 -#define ATTRIBUTE_FIXED 3 -#define ATTRIBUTE_BYTE 4 -#define ATTRIBUTE_SHORT 5 -#define ATTRIBUTE_INT 6 -#define ATTRIBUTE_INT2_10_10_10 7 - bool signed_int_type; - bool normalized_int_type; - bool read_as_int_uint; - uint32_t number_of_values_read_by_coordinate_shader; - uint32_t number_of_values_read_by_vertex_shader; - uint32_t instance_divisor; - uint32_t stride; - uint32_t maximum_index; -}; - -static inline void -V3D41_GL_SHADER_STATE_ATTRIBUTE_RECORD_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_GL_SHADER_STATE_ATTRIBUTE_RECORD * restrict values) -{ - __gen_emit_reloc(data, &values->address); - cl[ 0] = __gen_address_offset(&values->address); - - cl[ 1] = __gen_address_offset(&values->address) >> 8; - - cl[ 2] = __gen_address_offset(&values->address) >> 16; - - cl[ 3] = __gen_address_offset(&values->address) >> 24; - - cl[ 4] = __gen_uint(values->vec_size, 0, 1) | - __gen_uint(values->type, 2, 4) | - __gen_uint(values->signed_int_type, 5, 5) | - __gen_uint(values->normalized_int_type, 6, 6) | - __gen_uint(values->read_as_int_uint, 7, 7); - - cl[ 5] = __gen_uint(values->number_of_values_read_by_coordinate_shader, 0, 3) | - __gen_uint(values->number_of_values_read_by_vertex_shader, 4, 7); - - cl[ 6] = __gen_uint(values->instance_divisor, 0, 15); - - cl[ 7] = __gen_uint(values->instance_divisor, 0, 15) >> 8; - - - memcpy(&cl[8], &values->stride, sizeof(values->stride)); - - memcpy(&cl[12], &values->maximum_index, sizeof(values->maximum_index)); -} - -#define V3D41_GL_SHADER_STATE_ATTRIBUTE_RECORD_length 16 -#ifdef __gen_unpack_address -static inline void -V3D41_GL_SHADER_STATE_ATTRIBUTE_RECORD_unpack(const uint8_t * restrict cl, - struct V3D41_GL_SHADER_STATE_ATTRIBUTE_RECORD * restrict values) -{ - values->address = __gen_unpack_address(cl, 0, 31); - values->vec_size = __gen_unpack_uint(cl, 32, 33); - values->type = __gen_unpack_uint(cl, 34, 36); - values->signed_int_type = __gen_unpack_uint(cl, 37, 37); - values->normalized_int_type = __gen_unpack_uint(cl, 38, 38); - values->read_as_int_uint = __gen_unpack_uint(cl, 39, 39); - values->number_of_values_read_by_coordinate_shader = __gen_unpack_uint(cl, 40, 43); - values->number_of_values_read_by_vertex_shader = __gen_unpack_uint(cl, 44, 47); - values->instance_divisor = __gen_unpack_uint(cl, 48, 63); - values->stride = __gen_unpack_uint(cl, 64, 95); - values->maximum_index = __gen_unpack_uint(cl, 96, 127); -} -#endif - - -#define V3D41_VPM_GENERIC_BLOCK_WRITE_SETUP_header\ - .id = 0, \ - .id0 = 0 - -struct V3D41_VPM_GENERIC_BLOCK_WRITE_SETUP { - uint32_t id; - uint32_t id0; - bool horiz; - bool laned; - bool segs; - int32_t stride; - uint32_t size; -#define VPM_SETUP_SIZE_8_BIT 0 -#define VPM_SETUP_SIZE_16_BIT 1 -#define VPM_SETUP_SIZE_32_BIT 2 - uint32_t addr; -}; - -static inline void -V3D41_VPM_GENERIC_BLOCK_WRITE_SETUP_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_VPM_GENERIC_BLOCK_WRITE_SETUP * restrict values) -{ - cl[ 0] = __gen_uint(values->addr, 0, 12); - - cl[ 1] = __gen_sint(values->stride, 7, 13) | - __gen_uint(values->size, 5, 6) | - __gen_uint(values->addr, 0, 12) >> 8; - - cl[ 2] = __gen_uint(values->laned, 7, 7) | - __gen_uint(values->segs, 6, 6) | - __gen_sint(values->stride, 7, 13) >> 8; - - cl[ 3] = __gen_uint(values->id, 6, 7) | - __gen_uint(values->id0, 3, 5) | - __gen_uint(values->horiz, 0, 0); - -} - -#define V3D41_VPM_GENERIC_BLOCK_WRITE_SETUP_length 4 -#ifdef __gen_unpack_address -static inline void -V3D41_VPM_GENERIC_BLOCK_WRITE_SETUP_unpack(const uint8_t * restrict cl, - struct V3D41_VPM_GENERIC_BLOCK_WRITE_SETUP * restrict values) -{ - values->id = __gen_unpack_uint(cl, 30, 31); - values->id0 = __gen_unpack_uint(cl, 27, 29); - values->horiz = __gen_unpack_uint(cl, 24, 24); - values->laned = __gen_unpack_uint(cl, 23, 23); - values->segs = __gen_unpack_uint(cl, 22, 22); - values->stride = __gen_unpack_sint(cl, 15, 21); - values->size = __gen_unpack_uint(cl, 13, 14); - values->addr = __gen_unpack_uint(cl, 0, 12); -} -#endif - - -#define V3D41_VPM_GENERIC_BLOCK_READ_SETUP_header\ - .id = 1 - -struct V3D41_VPM_GENERIC_BLOCK_READ_SETUP { - uint32_t id; - bool horiz; - bool laned; - bool segs; - uint32_t num; - int32_t stride; - uint32_t size; -#define VPM_SETUP_SIZE_8_BIT 0 -#define VPM_SETUP_SIZE_16_BIT 1 -#define VPM_SETUP_SIZE_32_BIT 2 - uint32_t addr; -}; - -static inline void -V3D41_VPM_GENERIC_BLOCK_READ_SETUP_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_VPM_GENERIC_BLOCK_READ_SETUP * restrict values) -{ - cl[ 0] = __gen_uint(values->addr, 0, 12); - - cl[ 1] = __gen_sint(values->stride, 7, 13) | - __gen_uint(values->size, 5, 6) | - __gen_uint(values->addr, 0, 12) >> 8; - - cl[ 2] = __gen_uint(values->num, 6, 10) | - __gen_sint(values->stride, 7, 13) >> 8; - - cl[ 3] = __gen_uint(values->id, 6, 7) | - __gen_uint(values->horiz, 5, 5) | - __gen_uint(values->laned, 4, 4) | - __gen_uint(values->segs, 3, 3) | - __gen_uint(values->num, 6, 10) >> 8; - -} - -#define V3D41_VPM_GENERIC_BLOCK_READ_SETUP_length 4 -#ifdef __gen_unpack_address -static inline void -V3D41_VPM_GENERIC_BLOCK_READ_SETUP_unpack(const uint8_t * restrict cl, - struct V3D41_VPM_GENERIC_BLOCK_READ_SETUP * restrict values) -{ - values->id = __gen_unpack_uint(cl, 30, 31); - values->horiz = __gen_unpack_uint(cl, 29, 29); - values->laned = __gen_unpack_uint(cl, 28, 28); - values->segs = __gen_unpack_uint(cl, 27, 27); - values->num = __gen_unpack_uint(cl, 22, 26); - values->stride = __gen_unpack_sint(cl, 15, 21); - values->size = __gen_unpack_uint(cl, 13, 14); - values->addr = __gen_unpack_uint(cl, 0, 12); -} -#endif - - -#define V3D41_TMU_CONFIG_PARAMETER_0_header \ - - -struct V3D41_TMU_CONFIG_PARAMETER_0 { - __gen_address_type texture_state_address; - uint32_t return_words_of_texture_data; -}; - -static inline void -V3D41_TMU_CONFIG_PARAMETER_0_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_TMU_CONFIG_PARAMETER_0 * restrict values) -{ - __gen_emit_reloc(data, &values->texture_state_address); - cl[ 0] = __gen_address_offset(&values->texture_state_address) | - __gen_uint(values->return_words_of_texture_data, 0, 3); - - cl[ 1] = __gen_address_offset(&values->texture_state_address) >> 8; - - cl[ 2] = __gen_address_offset(&values->texture_state_address) >> 16; - - cl[ 3] = __gen_address_offset(&values->texture_state_address) >> 24; - -} - -#define V3D41_TMU_CONFIG_PARAMETER_0_length 4 -#ifdef __gen_unpack_address -static inline void -V3D41_TMU_CONFIG_PARAMETER_0_unpack(const uint8_t * restrict cl, - struct V3D41_TMU_CONFIG_PARAMETER_0 * restrict values) -{ - values->texture_state_address = __gen_unpack_address(cl, 0, 31); - values->return_words_of_texture_data = __gen_unpack_uint(cl, 0, 3); -} -#endif - - -#define V3D41_TMU_CONFIG_PARAMETER_1_header \ - - -struct V3D41_TMU_CONFIG_PARAMETER_1 { - __gen_address_type sampler_state_address; - bool per_pixel_mask_enable; - bool unnormalized_coordinates; - bool output_type_32_bit; -}; - -static inline void -V3D41_TMU_CONFIG_PARAMETER_1_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_TMU_CONFIG_PARAMETER_1 * restrict values) -{ - __gen_emit_reloc(data, &values->sampler_state_address); - cl[ 0] = __gen_address_offset(&values->sampler_state_address) | - __gen_uint(values->per_pixel_mask_enable, 2, 2) | - __gen_uint(values->unnormalized_coordinates, 1, 1) | - __gen_uint(values->output_type_32_bit, 0, 0); - - cl[ 1] = __gen_address_offset(&values->sampler_state_address) >> 8; - - cl[ 2] = __gen_address_offset(&values->sampler_state_address) >> 16; - - cl[ 3] = __gen_address_offset(&values->sampler_state_address) >> 24; - -} - -#define V3D41_TMU_CONFIG_PARAMETER_1_length 4 -#ifdef __gen_unpack_address -static inline void -V3D41_TMU_CONFIG_PARAMETER_1_unpack(const uint8_t * restrict cl, - struct V3D41_TMU_CONFIG_PARAMETER_1 * restrict values) -{ - values->sampler_state_address = __gen_unpack_address(cl, 0, 31); - values->per_pixel_mask_enable = __gen_unpack_uint(cl, 2, 2); - values->unnormalized_coordinates = __gen_unpack_uint(cl, 1, 1); - values->output_type_32_bit = __gen_unpack_uint(cl, 0, 0); -} -#endif - - -#define V3D41_TMU_CONFIG_PARAMETER_2_header \ - - -struct V3D41_TMU_CONFIG_PARAMETER_2 { - uint32_t pad; - enum V3D41_TMU_Op op; - int32_t offset_r; - int32_t offset_t; - int32_t offset_s; - bool gather_mode; - uint32_t gather_component; - bool coefficient_mode; - uint32_t sample_number; - bool disable_autolod; - bool offset_format_8; -}; - -static inline void -V3D41_TMU_CONFIG_PARAMETER_2_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_TMU_CONFIG_PARAMETER_2 * restrict values) -{ - cl[ 0] = __gen_uint(values->gather_mode, 7, 7) | - __gen_uint(values->gather_component, 5, 6) | - __gen_uint(values->coefficient_mode, 4, 4) | - __gen_uint(values->sample_number, 2, 3) | - __gen_uint(values->disable_autolod, 1, 1) | - __gen_uint(values->offset_format_8, 0, 0); - - cl[ 1] = __gen_uint(values->pad, 0, 23) | - __gen_sint(values->offset_t, 4, 7) | - __gen_sint(values->offset_s, 0, 3); - - cl[ 2] = __gen_uint(values->pad, 0, 23) >> 8 | - __gen_uint(values->op, 4, 7) | - __gen_sint(values->offset_r, 0, 3); - - cl[ 3] = __gen_uint(values->pad, 0, 23) >> 16; - -} - -#define V3D41_TMU_CONFIG_PARAMETER_2_length 4 -#ifdef __gen_unpack_address -static inline void -V3D41_TMU_CONFIG_PARAMETER_2_unpack(const uint8_t * restrict cl, - struct V3D41_TMU_CONFIG_PARAMETER_2 * restrict values) -{ - values->pad = __gen_unpack_uint(cl, 8, 31); - values->op = __gen_unpack_uint(cl, 20, 23); - values->offset_r = __gen_unpack_sint(cl, 16, 19); - values->offset_t = __gen_unpack_sint(cl, 12, 15); - values->offset_s = __gen_unpack_sint(cl, 8, 11); - values->gather_mode = __gen_unpack_uint(cl, 7, 7); - values->gather_component = __gen_unpack_uint(cl, 5, 6); - values->coefficient_mode = __gen_unpack_uint(cl, 4, 4); - values->sample_number = __gen_unpack_uint(cl, 2, 3); - values->disable_autolod = __gen_unpack_uint(cl, 1, 1); - values->offset_format_8 = __gen_unpack_uint(cl, 0, 0); -} -#endif - - -#define V3D41_TEXTURE_SHADER_STATE_header \ - - -struct V3D41_TEXTURE_SHADER_STATE { - uint64_t pad; - bool uif_xor_disable; - bool level_0_is_strictly_uif; - bool level_0_xor_enable; - uint32_t level_0_ub_pad; - uint32_t base_level; - uint32_t max_level; - uint32_t swizzle_a; -#define SWIZZLE_ZERO 0 -#define SWIZZLE_ONE 1 -#define SWIZZLE_RED 2 -#define SWIZZLE_GREEN 3 -#define SWIZZLE_BLUE 4 -#define SWIZZLE_ALPHA 5 - uint32_t swizzle_b; - uint32_t swizzle_g; - uint32_t swizzle_r; - bool extended; - uint32_t texture_type; - uint32_t image_depth; - uint32_t image_height; - uint32_t image_width; - uint32_t array_stride_64_byte_aligned; - __gen_address_type texture_base_pointer; - bool reverse_standard_border_color; - bool ahdr; - bool srgb; - bool flip_s_and_t_on_incoming_request; - bool flip_texture_y_axis; - bool flip_texture_x_axis; -}; - -static inline void -V3D41_TEXTURE_SHADER_STATE_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_TEXTURE_SHADER_STATE * restrict values) -{ - __gen_emit_reloc(data, &values->texture_base_pointer); - cl[ 0] = __gen_address_offset(&values->texture_base_pointer) | - __gen_uint(values->reverse_standard_border_color, 5, 5) | - __gen_uint(values->ahdr, 4, 4) | - __gen_uint(values->srgb, 3, 3) | - __gen_uint(values->flip_s_and_t_on_incoming_request, 2, 2) | - __gen_uint(values->flip_texture_y_axis, 1, 1) | - __gen_uint(values->flip_texture_x_axis, 0, 0); - - cl[ 1] = __gen_address_offset(&values->texture_base_pointer) >> 8; - - cl[ 2] = __gen_address_offset(&values->texture_base_pointer) >> 16; - - cl[ 3] = __gen_address_offset(&values->texture_base_pointer) >> 24; - - cl[ 4] = __gen_uint(values->array_stride_64_byte_aligned, 0, 25); - - cl[ 5] = __gen_uint(values->array_stride_64_byte_aligned, 0, 25) >> 8; - - cl[ 6] = __gen_uint(values->array_stride_64_byte_aligned, 0, 25) >> 16; - - cl[ 7] = __gen_uint(values->image_width, 2, 15) | - __gen_uint(values->array_stride_64_byte_aligned, 0, 25) >> 24; - - cl[ 8] = __gen_uint(values->image_width, 2, 15) >> 8; - - cl[ 9] = __gen_uint(values->image_height, 0, 13); - - cl[10] = __gen_uint(values->image_depth, 6, 19) | - __gen_uint(values->image_height, 0, 13) >> 8; - - cl[11] = __gen_uint(values->image_depth, 6, 19) >> 8; - - cl[12] = __gen_uint(values->texture_type, 4, 10) | - __gen_uint(values->image_depth, 6, 19) >> 16; - - cl[13] = __gen_uint(values->swizzle_g, 7, 9) | - __gen_uint(values->swizzle_r, 4, 6) | - __gen_uint(values->extended, 3, 3) | - __gen_uint(values->texture_type, 4, 10) >> 8; - - cl[14] = __gen_uint(values->swizzle_a, 5, 7) | - __gen_uint(values->swizzle_b, 2, 4) | - __gen_uint(values->swizzle_g, 7, 9) >> 8; - - cl[15] = __gen_uint(values->base_level, 4, 7) | - __gen_uint(values->max_level, 0, 3); - - cl[16] = __gen_uint(values->uif_xor_disable, 7, 7) | - __gen_uint(values->level_0_is_strictly_uif, 6, 6) | - __gen_uint(values->level_0_xor_enable, 4, 4) | - __gen_uint(values->level_0_ub_pad, 0, 3); - - cl[17] = __gen_uint(values->pad, 0, 55); - - cl[18] = __gen_uint(values->pad, 0, 55) >> 8; - - cl[19] = __gen_uint(values->pad, 0, 55) >> 16; - - cl[20] = __gen_uint(values->pad, 0, 55) >> 24; - - cl[21] = __gen_uint(values->pad, 0, 55) >> 32; - - cl[22] = __gen_uint(values->pad, 0, 55) >> 40; - - cl[23] = __gen_uint(values->pad, 0, 55) >> 48; - -} - -#define V3D41_TEXTURE_SHADER_STATE_length 24 -#ifdef __gen_unpack_address -static inline void -V3D41_TEXTURE_SHADER_STATE_unpack(const uint8_t * restrict cl, - struct V3D41_TEXTURE_SHADER_STATE * restrict values) -{ - values->pad = __gen_unpack_uint(cl, 136, 191); - values->uif_xor_disable = __gen_unpack_uint(cl, 135, 135); - values->level_0_is_strictly_uif = __gen_unpack_uint(cl, 134, 134); - values->level_0_xor_enable = __gen_unpack_uint(cl, 132, 132); - values->level_0_ub_pad = __gen_unpack_uint(cl, 128, 131); - values->base_level = __gen_unpack_uint(cl, 124, 127); - values->max_level = __gen_unpack_uint(cl, 120, 123); - values->swizzle_a = __gen_unpack_uint(cl, 117, 119); - values->swizzle_b = __gen_unpack_uint(cl, 114, 116); - values->swizzle_g = __gen_unpack_uint(cl, 111, 113); - values->swizzle_r = __gen_unpack_uint(cl, 108, 110); - values->extended = __gen_unpack_uint(cl, 107, 107); - values->texture_type = __gen_unpack_uint(cl, 100, 106); - values->image_depth = __gen_unpack_uint(cl, 86, 99); - values->image_height = __gen_unpack_uint(cl, 72, 85); - values->image_width = __gen_unpack_uint(cl, 58, 71); - values->array_stride_64_byte_aligned = __gen_unpack_uint(cl, 32, 57); - values->texture_base_pointer = __gen_unpack_address(cl, 0, 31); - values->reverse_standard_border_color = __gen_unpack_uint(cl, 5, 5); - values->ahdr = __gen_unpack_uint(cl, 4, 4); - values->srgb = __gen_unpack_uint(cl, 3, 3); - values->flip_s_and_t_on_incoming_request = __gen_unpack_uint(cl, 2, 2); - values->flip_texture_y_axis = __gen_unpack_uint(cl, 1, 1); - values->flip_texture_x_axis = __gen_unpack_uint(cl, 0, 0); -} -#endif - - -#define V3D41_SAMPLER_STATE_header \ - - -struct V3D41_SAMPLER_STATE { - uint32_t border_color_alpha; - uint32_t border_color_blue; - uint32_t border_color_green; - uint32_t border_color_red; - uint32_t maximum_anisotropy; - enum V3D41_Border_Color_Mode border_color_mode; - bool wrap_i_border; - enum V3D41_Wrap_Mode wrap_r; - enum V3D41_Wrap_Mode wrap_t; - enum V3D41_Wrap_Mode wrap_s; - float fixed_bias; - float max_level_of_detail; - float min_level_of_detail; - bool srgb_disable; - enum V3D41_Compare_Function depth_compare_function; - bool anisotropy_enable; - bool mip_filter_nearest; - bool min_filter_nearest; - bool mag_filter_nearest; -}; - -static inline void -V3D41_SAMPLER_STATE_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D41_SAMPLER_STATE * restrict values) -{ - cl[ 0] = __gen_uint(values->srgb_disable, 7, 7) | - __gen_uint(values->depth_compare_function, 4, 6) | - __gen_uint(values->anisotropy_enable, 3, 3) | - __gen_uint(values->mip_filter_nearest, 2, 2) | - __gen_uint(values->min_filter_nearest, 1, 1) | - __gen_uint(values->mag_filter_nearest, 0, 0); - - cl[ 1] = __gen_ufixed(values->min_level_of_detail, 0, 11, 8); - - cl[ 2] = __gen_ufixed(values->max_level_of_detail, 4, 15, 8) | - __gen_ufixed(values->min_level_of_detail, 0, 11, 8) >> 8; - - cl[ 3] = __gen_ufixed(values->max_level_of_detail, 4, 15, 8) >> 8; - - cl[ 4] = __gen_sfixed(values->fixed_bias, 0, 15, 8); - - cl[ 5] = __gen_sfixed(values->fixed_bias, 0, 15, 8) >> 8; - - cl[ 6] = __gen_uint(values->wrap_r, 6, 8) | - __gen_uint(values->wrap_t, 3, 5) | - __gen_uint(values->wrap_s, 0, 2); - - cl[ 7] = __gen_uint(values->maximum_anisotropy, 5, 6) | - __gen_uint(values->border_color_mode, 2, 4) | - __gen_uint(values->wrap_i_border, 1, 1) | - __gen_uint(values->wrap_r, 6, 8) >> 8; - - - memcpy(&cl[8], &values->border_color_red, sizeof(values->border_color_red)); - - memcpy(&cl[12], &values->border_color_green, sizeof(values->border_color_green)); - - memcpy(&cl[16], &values->border_color_blue, sizeof(values->border_color_blue)); - - memcpy(&cl[20], &values->border_color_alpha, sizeof(values->border_color_alpha)); -} - -#define V3D41_SAMPLER_STATE_length 24 -#ifdef __gen_unpack_address -static inline void -V3D41_SAMPLER_STATE_unpack(const uint8_t * restrict cl, - struct V3D41_SAMPLER_STATE * restrict values) -{ - values->border_color_alpha = __gen_unpack_uint(cl, 160, 191); - values->border_color_blue = __gen_unpack_uint(cl, 128, 159); - values->border_color_green = __gen_unpack_uint(cl, 96, 127); - values->border_color_red = __gen_unpack_uint(cl, 64, 95); - values->maximum_anisotropy = __gen_unpack_uint(cl, 61, 62); - values->border_color_mode = __gen_unpack_uint(cl, 58, 60); - values->wrap_i_border = __gen_unpack_uint(cl, 57, 57); - values->wrap_r = __gen_unpack_uint(cl, 54, 56); - values->wrap_t = __gen_unpack_uint(cl, 51, 53); - values->wrap_s = __gen_unpack_uint(cl, 48, 50); - values->fixed_bias = __gen_unpack_sfixed(cl, 32, 47, 8); - values->max_level_of_detail = __gen_unpack_ufixed(cl, 20, 31, 8); - values->min_level_of_detail = __gen_unpack_ufixed(cl, 8, 19, 8); - values->srgb_disable = __gen_unpack_uint(cl, 7, 7); - values->depth_compare_function = __gen_unpack_uint(cl, 4, 6); - values->anisotropy_enable = __gen_unpack_uint(cl, 3, 3); - values->mip_filter_nearest = __gen_unpack_uint(cl, 2, 2); - values->min_filter_nearest = __gen_unpack_uint(cl, 1, 1); - values->mag_filter_nearest = __gen_unpack_uint(cl, 0, 0); -} -#endif - - -enum V3D41_Texture_Data_Formats { - TEXTURE_DATA_FORMAT_R8 = 0, - TEXTURE_DATA_FORMAT_R8_SNORM = 1, - TEXTURE_DATA_FORMAT_RG8 = 2, - TEXTURE_DATA_FORMAT_RG8_SNORM = 3, - TEXTURE_DATA_FORMAT_RGBA8 = 4, - TEXTURE_DATA_FORMAT_RGBA8_SNORM = 5, - TEXTURE_DATA_FORMAT_RGB565 = 6, - TEXTURE_DATA_FORMAT_RGBA4 = 7, - TEXTURE_DATA_FORMAT_RGB5_A1 = 8, - TEXTURE_DATA_FORMAT_RGB10_A2 = 9, - TEXTURE_DATA_FORMAT_R16 = 10, - TEXTURE_DATA_FORMAT_R16_SNORM = 11, - TEXTURE_DATA_FORMAT_RG16 = 12, - TEXTURE_DATA_FORMAT_RG16_SNORM = 13, - TEXTURE_DATA_FORMAT_RGBA16 = 14, - TEXTURE_DATA_FORMAT_RGBA16_SNORM = 15, - TEXTURE_DATA_FORMAT_R16F = 16, - TEXTURE_DATA_FORMAT_RG16F = 17, - TEXTURE_DATA_FORMAT_RGBA16F = 18, - TEXTURE_DATA_FORMAT_R11F_G11F_B10F = 19, - TEXTURE_DATA_FORMAT_RGB9_E5 = 20, - TEXTURE_DATA_FORMAT_DEPTH_COMP16 = 21, - TEXTURE_DATA_FORMAT_DEPTH_COMP24 = 22, - TEXTURE_DATA_FORMAT_DEPTH_COMP32F = 23, - TEXTURE_DATA_FORMAT_DEPTH24_X8 = 24, - TEXTURE_DATA_FORMAT_R4 = 25, - TEXTURE_DATA_FORMAT_R1 = 26, - TEXTURE_DATA_FORMAT_S8 = 27, - TEXTURE_DATA_FORMAT_S16 = 28, - TEXTURE_DATA_FORMAT_R32F = 29, - TEXTURE_DATA_FORMAT_RG32F = 30, - TEXTURE_DATA_FORMAT_RGBA32F = 31, - TEXTURE_DATA_FORMAT_RGB8_ETC2 = 32, - TEXTURE_DATA_FORMAT_RGB8_PUNCHTHROUGH_ALPHA1 = 33, - TEXTURE_DATA_FORMAT_R11_EAC = 34, - TEXTURE_DATA_FORMAT_SIGNED_R11_EAC = 35, - TEXTURE_DATA_FORMAT_RG11_EAC = 36, - TEXTURE_DATA_FORMAT_SIGNED_RG11_EAC = 37, - TEXTURE_DATA_FORMAT_RGBA8_ETC2_EAC = 38, - TEXTURE_DATA_FORMAT_YCBCR_LUMA = 39, - TEXTURE_DATA_FORMAT_YCBCR_420_CHROMA = 40, - TEXTURE_DATA_FORMAT_BC1 = 48, - TEXTURE_DATA_FORMAT_BC2 = 49, - TEXTURE_DATA_FORMAT_BC3 = 50, - TEXTURE_DATA_FORMAT_ASTC_4X4 = 64, - TEXTURE_DATA_FORMAT_ASTC_5X4 = 65, - TEXTURE_DATA_FORMAT_ASTC_5X5 = 66, - TEXTURE_DATA_FORMAT_ASTC_6X5 = 67, - TEXTURE_DATA_FORMAT_ASTC_6X6 = 68, - TEXTURE_DATA_FORMAT_ASTC_8X5 = 69, - TEXTURE_DATA_FORMAT_ASTC_8X6 = 70, - TEXTURE_DATA_FORMAT_ASTC_8X8 = 71, - TEXTURE_DATA_FORMAT_ASTC_10X5 = 72, - TEXTURE_DATA_FORMAT_ASTC_10X6 = 73, - TEXTURE_DATA_FORMAT_ASTC_10X8 = 74, - TEXTURE_DATA_FORMAT_ASTC_10X10 = 75, - TEXTURE_DATA_FORMAT_ASTC_12X10 = 76, - TEXTURE_DATA_FORMAT_ASTC_12X12 = 77, - TEXTURE_DATA_FORMAT_R8I = 96, - TEXTURE_DATA_FORMAT_R8UI = 97, - TEXTURE_DATA_FORMAT_RG8I = 98, - TEXTURE_DATA_FORMAT_RG8UI = 99, - TEXTURE_DATA_FORMAT_RGBA8I = 100, - TEXTURE_DATA_FORMAT_RGBA8UI = 101, - TEXTURE_DATA_FORMAT_R16I = 102, - TEXTURE_DATA_FORMAT_R16UI = 103, - TEXTURE_DATA_FORMAT_RG16I = 104, - TEXTURE_DATA_FORMAT_RG16UI = 105, - TEXTURE_DATA_FORMAT_RGBA16I = 106, - TEXTURE_DATA_FORMAT_RGBA16UI = 107, - TEXTURE_DATA_FORMAT_R32I = 108, - TEXTURE_DATA_FORMAT_R32UI = 109, - TEXTURE_DATA_FORMAT_RG32I = 110, - TEXTURE_DATA_FORMAT_RG32UI = 111, - TEXTURE_DATA_FORMAT_RGBA32I = 112, - TEXTURE_DATA_FORMAT_RGBA32UI = 113, - TEXTURE_DATA_FORMAT_RGB10_A2UI = 114, -}; - -#endif /* V3D41_PACK_H */ diff --git a/lib/mesa/src/broadcom/cle/v3d_packet_v42_pack.h b/lib/mesa/src/broadcom/cle/v3d_packet_v42_pack.h deleted file mode 100644 index 48870087f..000000000 --- a/lib/mesa/src/broadcom/cle/v3d_packet_v42_pack.h +++ /dev/null @@ -1,4403 +0,0 @@ -/* Generated code, see packets.xml and gen_packet_header.py */ - - -/* Packets, enums and structures for V3D 4.2. - * - * This file has been generated, do not hand edit. - */ - -#ifndef V3D42_PACK_H -#define V3D42_PACK_H - -#include "cle/v3d_packet_helpers.h" - - -enum V3D42_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 V3D42_Blend_Factor { - V3D_BLEND_FACTOR_ZERO = 0, - V3D_BLEND_FACTOR_ONE = 1, - V3D_BLEND_FACTOR_SRC_COLOR = 2, - V3D_BLEND_FACTOR_INV_SRC_COLOR = 3, - V3D_BLEND_FACTOR_DST_COLOR = 4, - V3D_BLEND_FACTOR_INV_DST_COLOR = 5, - V3D_BLEND_FACTOR_SRC_ALPHA = 6, - V3D_BLEND_FACTOR_INV_SRC_ALPHA = 7, - V3D_BLEND_FACTOR_DST_ALPHA = 8, - V3D_BLEND_FACTOR_INV_DST_ALPHA = 9, - V3D_BLEND_FACTOR_CONST_COLOR = 10, - V3D_BLEND_FACTOR_INV_CONST_COLOR = 11, - V3D_BLEND_FACTOR_CONST_ALPHA = 12, - V3D_BLEND_FACTOR_INV_CONST_ALPHA = 13, - V3D_BLEND_FACTOR_SRC_ALPHA_SATURATE = 14, -}; - -enum V3D42_Blend_Mode { - V3D_BLEND_MODE_ADD = 0, - V3D_BLEND_MODE_SUB = 1, - V3D_BLEND_MODE_RSUB = 2, - V3D_BLEND_MODE_MIN = 3, - V3D_BLEND_MODE_MAX = 4, - V3D_BLEND_MODE_MUL = 5, - V3D_BLEND_MODE_SCREEN = 6, - V3D_BLEND_MODE_DARKEN = 7, - V3D_BLEND_MODE_LIGHTEN = 8, -}; - -enum V3D42_Stencil_Op { - V3D_STENCIL_OP_ZERO = 0, - V3D_STENCIL_OP_KEEP = 1, - V3D_STENCIL_OP_REPLACE = 2, - V3D_STENCIL_OP_INCR = 3, - V3D_STENCIL_OP_DECR = 4, - V3D_STENCIL_OP_INVERT = 5, - V3D_STENCIL_OP_INCWRAP = 6, - V3D_STENCIL_OP_DECWRAP = 7, -}; - -enum V3D42_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, - V3D_PRIM_POINTS_TF = 16, - V3D_PRIM_LINES_TF = 17, - V3D_PRIM_LINE_LOOP_TF = 18, - V3D_PRIM_LINE_STRIP_TF = 19, - V3D_PRIM_TRIANGLES_TF = 20, - V3D_PRIM_TRIANGLE_STRIP_TF = 21, - V3D_PRIM_TRIANGLE_FAN_TF = 22, -}; - -enum V3D42_Border_Color_Mode { - V3D_BORDER_COLOR_0000 = 0, - V3D_BORDER_COLOR_0001 = 1, - V3D_BORDER_COLOR_1111 = 2, - V3D_BORDER_COLOR_FOLLOWS = 7, -}; - -enum V3D42_Wrap_Mode { - V3D_WRAP_MODE_WRAP_MODE_REPEAT = 0, - V3D_WRAP_MODE_WRAP_MODE_CLAMP = 1, - V3D_WRAP_MODE_WRAP_MODE_MIRROR = 2, - V3D_WRAP_MODE_WRAP_MODE_BORDER = 3, - V3D_WRAP_MODE_WRAP_MODE_MIRROR_ONCE = 4, -}; - -enum V3D42_TMU_Op { - V3D_TMU_OP_WRITE_ADD_READ_PREFETCH = 0, - V3D_TMU_OP_WRITE_SUB_READ_CLEAR = 1, - V3D_TMU_OP_WRITE_XCHG_READ_FLUSH = 2, - V3D_TMU_OP_WRITE_CMPXCHG_READ_FLUSH = 3, - V3D_TMU_OP_WRITE_UMIN_FULL_L1_CLEAR = 4, - V3D_TMU_OP_WRITE_UMAX = 5, - V3D_TMU_OP_WRITE_SMIN = 6, - V3D_TMU_OP_WRITE_SMAX = 7, - V3D_TMU_OP_WRITE_AND_READ_INC = 8, - V3D_TMU_OP_WRITE_OR_READ_DEC = 9, - V3D_TMU_OP_WRITE_XOR_READ_NOT = 10, - V3D_TMU_OP_REGULAR = 15, -}; - -enum V3D42_Varying_Flags_Action { - V3D_VARYING_FLAGS_ACTION_UNCHANGED = 0, - V3D_VARYING_FLAGS_ACTION_ZEROED = 1, - V3D_VARYING_FLAGS_ACTION_SET = 2, -}; - -enum V3D42_Memory_Format { - V3D_MEMORY_FORMAT_RASTER = 0, - V3D_MEMORY_FORMAT_LINEARTILE = 1, - V3D_MEMORY_FORMAT_UB_LINEAR_1_UIF_BLOCK_WIDE = 2, - V3D_MEMORY_FORMAT_UB_LINEAR_2_UIF_BLOCKS_WIDE = 3, - V3D_MEMORY_FORMAT_UIF_NO_XOR = 4, - V3D_MEMORY_FORMAT_UIF_XOR = 5, -}; - -enum V3D42_Decimate_Mode { - V3D_DECIMATE_MODE_SAMPLE_0 = 0, - V3D_DECIMATE_MODE_4X = 1, - V3D_DECIMATE_MODE_ALL_SAMPLES = 3, -}; - -enum V3D42_Internal_Type { - V3D_INTERNAL_TYPE_8I = 0, - V3D_INTERNAL_TYPE_8UI = 1, - V3D_INTERNAL_TYPE_8 = 2, - V3D_INTERNAL_TYPE_16I = 4, - V3D_INTERNAL_TYPE_16UI = 5, - V3D_INTERNAL_TYPE_16F = 6, - V3D_INTERNAL_TYPE_32I = 8, - V3D_INTERNAL_TYPE_32UI = 9, - V3D_INTERNAL_TYPE_32F = 10, -}; - -enum V3D42_Internal_BPP { - V3D_INTERNAL_BPP_32 = 0, - V3D_INTERNAL_BPP_64 = 1, - V3D_INTERNAL_BPP_128 = 2, -}; - -enum V3D42_Internal_Depth_Type { - V3D_INTERNAL_TYPE_DEPTH_32F = 0, - V3D_INTERNAL_TYPE_DEPTH_24 = 1, - V3D_INTERNAL_TYPE_DEPTH_16 = 2, -}; - -enum V3D42_Render_Target_Clamp { - V3D_RENDER_TARGET_CLAMP_NONE = 0, - V3D_RENDER_TARGET_CLAMP_NORM = 1, - V3D_RENDER_TARGET_CLAMP_POS = 2, - V3D_RENDER_TARGET_CLAMP_INT = 3, -}; - -enum V3D42_Output_Image_Format { - V3D_OUTPUT_IMAGE_FORMAT_SRGB8_ALPHA8 = 0, - V3D_OUTPUT_IMAGE_FORMAT_SRGB = 1, - V3D_OUTPUT_IMAGE_FORMAT_RGB10_A2UI = 2, - V3D_OUTPUT_IMAGE_FORMAT_RGB10_A2 = 3, - V3D_OUTPUT_IMAGE_FORMAT_ABGR1555 = 4, - V3D_OUTPUT_IMAGE_FORMAT_ALPHA_MASKED_ABGR1555 = 5, - V3D_OUTPUT_IMAGE_FORMAT_ABGR4444 = 6, - V3D_OUTPUT_IMAGE_FORMAT_BGR565 = 7, - V3D_OUTPUT_IMAGE_FORMAT_R11F_G11F_B10F = 8, - V3D_OUTPUT_IMAGE_FORMAT_RGBA32F = 9, - V3D_OUTPUT_IMAGE_FORMAT_RG32F = 10, - V3D_OUTPUT_IMAGE_FORMAT_R32F = 11, - V3D_OUTPUT_IMAGE_FORMAT_RGBA32I = 12, - V3D_OUTPUT_IMAGE_FORMAT_RG32I = 13, - V3D_OUTPUT_IMAGE_FORMAT_R32I = 14, - V3D_OUTPUT_IMAGE_FORMAT_RGBA32UI = 15, - V3D_OUTPUT_IMAGE_FORMAT_RG32UI = 16, - V3D_OUTPUT_IMAGE_FORMAT_R32UI = 17, - V3D_OUTPUT_IMAGE_FORMAT_RGBA16F = 18, - V3D_OUTPUT_IMAGE_FORMAT_RG16F = 19, - V3D_OUTPUT_IMAGE_FORMAT_R16F = 20, - V3D_OUTPUT_IMAGE_FORMAT_RGBA16I = 21, - V3D_OUTPUT_IMAGE_FORMAT_RG16I = 22, - V3D_OUTPUT_IMAGE_FORMAT_R16I = 23, - V3D_OUTPUT_IMAGE_FORMAT_RGBA16UI = 24, - V3D_OUTPUT_IMAGE_FORMAT_RG16UI = 25, - V3D_OUTPUT_IMAGE_FORMAT_R16UI = 26, - V3D_OUTPUT_IMAGE_FORMAT_RGBA8 = 27, - V3D_OUTPUT_IMAGE_FORMAT_RGB8 = 28, - V3D_OUTPUT_IMAGE_FORMAT_RG8 = 29, - V3D_OUTPUT_IMAGE_FORMAT_R8 = 30, - V3D_OUTPUT_IMAGE_FORMAT_RGBA8I = 31, - V3D_OUTPUT_IMAGE_FORMAT_RG8I = 32, - V3D_OUTPUT_IMAGE_FORMAT_R8I = 33, - V3D_OUTPUT_IMAGE_FORMAT_RGBA8UI = 34, - V3D_OUTPUT_IMAGE_FORMAT_RG8UI = 35, - V3D_OUTPUT_IMAGE_FORMAT_R8UI = 36, - V3D_OUTPUT_IMAGE_FORMAT_BSTC = 39, - V3D_OUTPUT_IMAGE_FORMAT_D32F = 40, - V3D_OUTPUT_IMAGE_FORMAT_D24 = 41, - V3D_OUTPUT_IMAGE_FORMAT_D16 = 42, - V3D_OUTPUT_IMAGE_FORMAT_D24S8 = 43, - V3D_OUTPUT_IMAGE_FORMAT_S8 = 44, -}; - -enum V3D42_Dither_Mode { - V3D_DITHER_MODE_NONE = 0, - V3D_DITHER_MODE_RGB = 1, - V3D_DITHER_MODE_A = 2, - V3D_DITHER_MODE_RGBA = 3, -}; - -#define V3D42_HALT_opcode 0 -#define V3D42_HALT_header \ - .opcode = 0 - -struct V3D42_HALT { - uint32_t opcode; -}; - -static inline void -V3D42_HALT_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_HALT * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D42_HALT_length 1 -#ifdef __gen_unpack_address -static inline void -V3D42_HALT_unpack(const uint8_t * restrict cl, - struct V3D42_HALT * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D42_NOP_opcode 1 -#define V3D42_NOP_header \ - .opcode = 1 - -struct V3D42_NOP { - uint32_t opcode; -}; - -static inline void -V3D42_NOP_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_NOP * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D42_NOP_length 1 -#ifdef __gen_unpack_address -static inline void -V3D42_NOP_unpack(const uint8_t * restrict cl, - struct V3D42_NOP * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D42_FLUSH_opcode 4 -#define V3D42_FLUSH_header \ - .opcode = 4 - -struct V3D42_FLUSH { - uint32_t opcode; -}; - -static inline void -V3D42_FLUSH_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_FLUSH * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D42_FLUSH_length 1 -#ifdef __gen_unpack_address -static inline void -V3D42_FLUSH_unpack(const uint8_t * restrict cl, - struct V3D42_FLUSH * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D42_FLUSH_ALL_STATE_opcode 5 -#define V3D42_FLUSH_ALL_STATE_header \ - .opcode = 5 - -struct V3D42_FLUSH_ALL_STATE { - uint32_t opcode; -}; - -static inline void -V3D42_FLUSH_ALL_STATE_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_FLUSH_ALL_STATE * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D42_FLUSH_ALL_STATE_length 1 -#ifdef __gen_unpack_address -static inline void -V3D42_FLUSH_ALL_STATE_unpack(const uint8_t * restrict cl, - struct V3D42_FLUSH_ALL_STATE * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D42_START_TILE_BINNING_opcode 6 -#define V3D42_START_TILE_BINNING_header \ - .opcode = 6 - -struct V3D42_START_TILE_BINNING { - uint32_t opcode; -}; - -static inline void -V3D42_START_TILE_BINNING_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_START_TILE_BINNING * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D42_START_TILE_BINNING_length 1 -#ifdef __gen_unpack_address -static inline void -V3D42_START_TILE_BINNING_unpack(const uint8_t * restrict cl, - struct V3D42_START_TILE_BINNING * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D42_INCREMENT_SEMAPHORE_opcode 7 -#define V3D42_INCREMENT_SEMAPHORE_header \ - .opcode = 7 - -struct V3D42_INCREMENT_SEMAPHORE { - uint32_t opcode; -}; - -static inline void -V3D42_INCREMENT_SEMAPHORE_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_INCREMENT_SEMAPHORE * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D42_INCREMENT_SEMAPHORE_length 1 -#ifdef __gen_unpack_address -static inline void -V3D42_INCREMENT_SEMAPHORE_unpack(const uint8_t * restrict cl, - struct V3D42_INCREMENT_SEMAPHORE * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D42_WAIT_ON_SEMAPHORE_opcode 8 -#define V3D42_WAIT_ON_SEMAPHORE_header \ - .opcode = 8 - -struct V3D42_WAIT_ON_SEMAPHORE { - uint32_t opcode; -}; - -static inline void -V3D42_WAIT_ON_SEMAPHORE_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_WAIT_ON_SEMAPHORE * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D42_WAIT_ON_SEMAPHORE_length 1 -#ifdef __gen_unpack_address -static inline void -V3D42_WAIT_ON_SEMAPHORE_unpack(const uint8_t * restrict cl, - struct V3D42_WAIT_ON_SEMAPHORE * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D42_WAIT_FOR_PREVIOUS_FRAME_opcode 9 -#define V3D42_WAIT_FOR_PREVIOUS_FRAME_header \ - .opcode = 9 - -struct V3D42_WAIT_FOR_PREVIOUS_FRAME { - uint32_t opcode; -}; - -static inline void -V3D42_WAIT_FOR_PREVIOUS_FRAME_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_WAIT_FOR_PREVIOUS_FRAME * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D42_WAIT_FOR_PREVIOUS_FRAME_length 1 -#ifdef __gen_unpack_address -static inline void -V3D42_WAIT_FOR_PREVIOUS_FRAME_unpack(const uint8_t * restrict cl, - struct V3D42_WAIT_FOR_PREVIOUS_FRAME * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D42_ENABLE_Z_ONLY_RENDERING_opcode 10 -#define V3D42_ENABLE_Z_ONLY_RENDERING_header \ - .opcode = 10 - -struct V3D42_ENABLE_Z_ONLY_RENDERING { - uint32_t opcode; -}; - -static inline void -V3D42_ENABLE_Z_ONLY_RENDERING_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_ENABLE_Z_ONLY_RENDERING * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D42_ENABLE_Z_ONLY_RENDERING_length 1 -#ifdef __gen_unpack_address -static inline void -V3D42_ENABLE_Z_ONLY_RENDERING_unpack(const uint8_t * restrict cl, - struct V3D42_ENABLE_Z_ONLY_RENDERING * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D42_DISABLE_Z_ONLY_RENDERING_opcode 11 -#define V3D42_DISABLE_Z_ONLY_RENDERING_header \ - .opcode = 11 - -struct V3D42_DISABLE_Z_ONLY_RENDERING { - uint32_t opcode; -}; - -static inline void -V3D42_DISABLE_Z_ONLY_RENDERING_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_DISABLE_Z_ONLY_RENDERING * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D42_DISABLE_Z_ONLY_RENDERING_length 1 -#ifdef __gen_unpack_address -static inline void -V3D42_DISABLE_Z_ONLY_RENDERING_unpack(const uint8_t * restrict cl, - struct V3D42_DISABLE_Z_ONLY_RENDERING * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D42_END_OF_Z_ONLY_RENDERING_IN_FRAME_opcode 12 -#define V3D42_END_OF_Z_ONLY_RENDERING_IN_FRAME_header\ - .opcode = 12 - -struct V3D42_END_OF_Z_ONLY_RENDERING_IN_FRAME { - uint32_t opcode; -}; - -static inline void -V3D42_END_OF_Z_ONLY_RENDERING_IN_FRAME_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_END_OF_Z_ONLY_RENDERING_IN_FRAME * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D42_END_OF_Z_ONLY_RENDERING_IN_FRAME_length 1 -#ifdef __gen_unpack_address -static inline void -V3D42_END_OF_Z_ONLY_RENDERING_IN_FRAME_unpack(const uint8_t * restrict cl, - struct V3D42_END_OF_Z_ONLY_RENDERING_IN_FRAME * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D42_END_OF_RENDERING_opcode 13 -#define V3D42_END_OF_RENDERING_header \ - .opcode = 13 - -struct V3D42_END_OF_RENDERING { - uint32_t opcode; -}; - -static inline void -V3D42_END_OF_RENDERING_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_END_OF_RENDERING * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D42_END_OF_RENDERING_length 1 -#ifdef __gen_unpack_address -static inline void -V3D42_END_OF_RENDERING_unpack(const uint8_t * restrict cl, - struct V3D42_END_OF_RENDERING * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D42_WAIT_FOR_TRANSFORM_FEEDBACK_opcode 14 -#define V3D42_WAIT_FOR_TRANSFORM_FEEDBACK_header\ - .opcode = 14 - -struct V3D42_WAIT_FOR_TRANSFORM_FEEDBACK { - uint32_t opcode; - uint32_t block_count; -}; - -static inline void -V3D42_WAIT_FOR_TRANSFORM_FEEDBACK_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_WAIT_FOR_TRANSFORM_FEEDBACK * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->block_count, 0, 7); - -} - -#define V3D42_WAIT_FOR_TRANSFORM_FEEDBACK_length 2 -#ifdef __gen_unpack_address -static inline void -V3D42_WAIT_FOR_TRANSFORM_FEEDBACK_unpack(const uint8_t * restrict cl, - struct V3D42_WAIT_FOR_TRANSFORM_FEEDBACK * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->block_count = __gen_unpack_uint(cl, 8, 15); -} -#endif - - -#define V3D42_BRANCH_TO_AUTO_CHAINED_SUB_LIST_opcode 15 -#define V3D42_BRANCH_TO_AUTO_CHAINED_SUB_LIST_header\ - .opcode = 15 - -struct V3D42_BRANCH_TO_AUTO_CHAINED_SUB_LIST { - uint32_t opcode; - __gen_address_type address; -}; - -static inline void -V3D42_BRANCH_TO_AUTO_CHAINED_SUB_LIST_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_BRANCH_TO_AUTO_CHAINED_SUB_LIST * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - __gen_emit_reloc(data, &values->address); - cl[ 1] = __gen_address_offset(&values->address); - - cl[ 2] = __gen_address_offset(&values->address) >> 8; - - cl[ 3] = __gen_address_offset(&values->address) >> 16; - - cl[ 4] = __gen_address_offset(&values->address) >> 24; - -} - -#define V3D42_BRANCH_TO_AUTO_CHAINED_SUB_LIST_length 5 -#ifdef __gen_unpack_address -static inline void -V3D42_BRANCH_TO_AUTO_CHAINED_SUB_LIST_unpack(const uint8_t * restrict cl, - struct V3D42_BRANCH_TO_AUTO_CHAINED_SUB_LIST * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->address = __gen_unpack_address(cl, 8, 39); -} -#endif - - -#define V3D42_BRANCH_opcode 16 -#define V3D42_BRANCH_header \ - .opcode = 16 - -struct V3D42_BRANCH { - uint32_t opcode; - __gen_address_type address; -}; - -static inline void -V3D42_BRANCH_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_BRANCH * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - __gen_emit_reloc(data, &values->address); - cl[ 1] = __gen_address_offset(&values->address); - - cl[ 2] = __gen_address_offset(&values->address) >> 8; - - cl[ 3] = __gen_address_offset(&values->address) >> 16; - - cl[ 4] = __gen_address_offset(&values->address) >> 24; - -} - -#define V3D42_BRANCH_length 5 -#ifdef __gen_unpack_address -static inline void -V3D42_BRANCH_unpack(const uint8_t * restrict cl, - struct V3D42_BRANCH * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->address = __gen_unpack_address(cl, 8, 39); -} -#endif - - -#define V3D42_BRANCH_TO_SUB_LIST_opcode 17 -#define V3D42_BRANCH_TO_SUB_LIST_header \ - .opcode = 17 - -struct V3D42_BRANCH_TO_SUB_LIST { - uint32_t opcode; - __gen_address_type address; -}; - -static inline void -V3D42_BRANCH_TO_SUB_LIST_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_BRANCH_TO_SUB_LIST * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - __gen_emit_reloc(data, &values->address); - cl[ 1] = __gen_address_offset(&values->address); - - cl[ 2] = __gen_address_offset(&values->address) >> 8; - - cl[ 3] = __gen_address_offset(&values->address) >> 16; - - cl[ 4] = __gen_address_offset(&values->address) >> 24; - -} - -#define V3D42_BRANCH_TO_SUB_LIST_length 5 -#ifdef __gen_unpack_address -static inline void -V3D42_BRANCH_TO_SUB_LIST_unpack(const uint8_t * restrict cl, - struct V3D42_BRANCH_TO_SUB_LIST * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->address = __gen_unpack_address(cl, 8, 39); -} -#endif - - -#define V3D42_RETURN_FROM_SUB_LIST_opcode 18 -#define V3D42_RETURN_FROM_SUB_LIST_header \ - .opcode = 18 - -struct V3D42_RETURN_FROM_SUB_LIST { - uint32_t opcode; -}; - -static inline void -V3D42_RETURN_FROM_SUB_LIST_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_RETURN_FROM_SUB_LIST * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D42_RETURN_FROM_SUB_LIST_length 1 -#ifdef __gen_unpack_address -static inline void -V3D42_RETURN_FROM_SUB_LIST_unpack(const uint8_t * restrict cl, - struct V3D42_RETURN_FROM_SUB_LIST * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D42_FLUSH_VCD_CACHE_opcode 19 -#define V3D42_FLUSH_VCD_CACHE_header \ - .opcode = 19 - -struct V3D42_FLUSH_VCD_CACHE { - uint32_t opcode; -}; - -static inline void -V3D42_FLUSH_VCD_CACHE_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_FLUSH_VCD_CACHE * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D42_FLUSH_VCD_CACHE_length 1 -#ifdef __gen_unpack_address -static inline void -V3D42_FLUSH_VCD_CACHE_unpack(const uint8_t * restrict cl, - struct V3D42_FLUSH_VCD_CACHE * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D42_START_ADDRESS_OF_GENERIC_TILE_LIST_opcode 20 -#define V3D42_START_ADDRESS_OF_GENERIC_TILE_LIST_header\ - .opcode = 20 - -struct V3D42_START_ADDRESS_OF_GENERIC_TILE_LIST { - uint32_t opcode; - __gen_address_type start; - __gen_address_type end; -}; - -static inline void -V3D42_START_ADDRESS_OF_GENERIC_TILE_LIST_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_START_ADDRESS_OF_GENERIC_TILE_LIST * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - __gen_emit_reloc(data, &values->start); - cl[ 1] = __gen_address_offset(&values->start); - - cl[ 2] = __gen_address_offset(&values->start) >> 8; - - cl[ 3] = __gen_address_offset(&values->start) >> 16; - - cl[ 4] = __gen_address_offset(&values->start) >> 24; - - __gen_emit_reloc(data, &values->end); - cl[ 5] = __gen_address_offset(&values->end); - - cl[ 6] = __gen_address_offset(&values->end) >> 8; - - cl[ 7] = __gen_address_offset(&values->end) >> 16; - - cl[ 8] = __gen_address_offset(&values->end) >> 24; - -} - -#define V3D42_START_ADDRESS_OF_GENERIC_TILE_LIST_length 9 -#ifdef __gen_unpack_address -static inline void -V3D42_START_ADDRESS_OF_GENERIC_TILE_LIST_unpack(const uint8_t * restrict cl, - struct V3D42_START_ADDRESS_OF_GENERIC_TILE_LIST * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->start = __gen_unpack_address(cl, 8, 39); - values->end = __gen_unpack_address(cl, 40, 71); -} -#endif - - -#define V3D42_BRANCH_TO_IMPLICIT_TILE_LIST_opcode 21 -#define V3D42_BRANCH_TO_IMPLICIT_TILE_LIST_header\ - .opcode = 21 - -struct V3D42_BRANCH_TO_IMPLICIT_TILE_LIST { - uint32_t opcode; - uint32_t tile_list_set_number; -}; - -static inline void -V3D42_BRANCH_TO_IMPLICIT_TILE_LIST_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_BRANCH_TO_IMPLICIT_TILE_LIST * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->tile_list_set_number, 0, 7); - -} - -#define V3D42_BRANCH_TO_IMPLICIT_TILE_LIST_length 2 -#ifdef __gen_unpack_address -static inline void -V3D42_BRANCH_TO_IMPLICIT_TILE_LIST_unpack(const uint8_t * restrict cl, - struct V3D42_BRANCH_TO_IMPLICIT_TILE_LIST * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->tile_list_set_number = __gen_unpack_uint(cl, 8, 15); -} -#endif - - -#define V3D42_BRANCH_TO_EXPLICIT_SUPERTILE_opcode 22 -#define V3D42_BRANCH_TO_EXPLICIT_SUPERTILE_header\ - .opcode = 22 - -struct V3D42_BRANCH_TO_EXPLICIT_SUPERTILE { - uint32_t opcode; - __gen_address_type absolute_address_of_explicit_supertile_render_list; - uint32_t explicit_supertile_number; - uint32_t row_number; - uint32_t column_number; -}; - -static inline void -V3D42_BRANCH_TO_EXPLICIT_SUPERTILE_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_BRANCH_TO_EXPLICIT_SUPERTILE * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->column_number, 0, 7); - - cl[ 2] = __gen_uint(values->row_number, 0, 7); - - cl[ 3] = __gen_uint(values->explicit_supertile_number, 0, 7); - - __gen_emit_reloc(data, &values->absolute_address_of_explicit_supertile_render_list); - cl[ 4] = __gen_address_offset(&values->absolute_address_of_explicit_supertile_render_list); - - cl[ 5] = __gen_address_offset(&values->absolute_address_of_explicit_supertile_render_list) >> 8; - - cl[ 6] = __gen_address_offset(&values->absolute_address_of_explicit_supertile_render_list) >> 16; - - cl[ 7] = __gen_address_offset(&values->absolute_address_of_explicit_supertile_render_list) >> 24; - -} - -#define V3D42_BRANCH_TO_EXPLICIT_SUPERTILE_length 8 -#ifdef __gen_unpack_address -static inline void -V3D42_BRANCH_TO_EXPLICIT_SUPERTILE_unpack(const uint8_t * restrict cl, - struct V3D42_BRANCH_TO_EXPLICIT_SUPERTILE * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->absolute_address_of_explicit_supertile_render_list = __gen_unpack_address(cl, 32, 63); - values->explicit_supertile_number = __gen_unpack_uint(cl, 24, 31); - values->row_number = __gen_unpack_uint(cl, 16, 23); - values->column_number = __gen_unpack_uint(cl, 8, 15); -} -#endif - - -#define V3D42_SUPERTILE_COORDINATES_opcode 23 -#define V3D42_SUPERTILE_COORDINATES_header \ - .opcode = 23 - -struct V3D42_SUPERTILE_COORDINATES { - uint32_t opcode; - uint32_t row_number_in_supertiles; - uint32_t column_number_in_supertiles; -}; - -static inline void -V3D42_SUPERTILE_COORDINATES_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_SUPERTILE_COORDINATES * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->column_number_in_supertiles, 0, 7); - - cl[ 2] = __gen_uint(values->row_number_in_supertiles, 0, 7); - -} - -#define V3D42_SUPERTILE_COORDINATES_length 3 -#ifdef __gen_unpack_address -static inline void -V3D42_SUPERTILE_COORDINATES_unpack(const uint8_t * restrict cl, - struct V3D42_SUPERTILE_COORDINATES * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->row_number_in_supertiles = __gen_unpack_uint(cl, 16, 23); - values->column_number_in_supertiles = __gen_unpack_uint(cl, 8, 15); -} -#endif - - -#define V3D42_CLEAR_TILE_BUFFERS_opcode 25 -#define V3D42_CLEAR_TILE_BUFFERS_header \ - .opcode = 25 - -struct V3D42_CLEAR_TILE_BUFFERS { - uint32_t opcode; - bool clear_z_stencil_buffer; - bool clear_all_render_targets; -}; - -static inline void -V3D42_CLEAR_TILE_BUFFERS_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_CLEAR_TILE_BUFFERS * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->clear_z_stencil_buffer, 1, 1) | - __gen_uint(values->clear_all_render_targets, 0, 0); - -} - -#define V3D42_CLEAR_TILE_BUFFERS_length 2 -#ifdef __gen_unpack_address -static inline void -V3D42_CLEAR_TILE_BUFFERS_unpack(const uint8_t * restrict cl, - struct V3D42_CLEAR_TILE_BUFFERS * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->clear_z_stencil_buffer = __gen_unpack_uint(cl, 9, 9); - values->clear_all_render_targets = __gen_unpack_uint(cl, 8, 8); -} -#endif - - -#define V3D42_END_OF_LOADS_opcode 26 -#define V3D42_END_OF_LOADS_header \ - .opcode = 26 - -struct V3D42_END_OF_LOADS { - uint32_t opcode; -}; - -static inline void -V3D42_END_OF_LOADS_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_END_OF_LOADS * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D42_END_OF_LOADS_length 1 -#ifdef __gen_unpack_address -static inline void -V3D42_END_OF_LOADS_unpack(const uint8_t * restrict cl, - struct V3D42_END_OF_LOADS * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D42_END_OF_TILE_MARKER_opcode 27 -#define V3D42_END_OF_TILE_MARKER_header \ - .opcode = 27 - -struct V3D42_END_OF_TILE_MARKER { - uint32_t opcode; -}; - -static inline void -V3D42_END_OF_TILE_MARKER_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_END_OF_TILE_MARKER * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D42_END_OF_TILE_MARKER_length 1 -#ifdef __gen_unpack_address -static inline void -V3D42_END_OF_TILE_MARKER_unpack(const uint8_t * restrict cl, - struct V3D42_END_OF_TILE_MARKER * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D42_STORE_TILE_BUFFER_GENERAL_opcode 29 -#define V3D42_STORE_TILE_BUFFER_GENERAL_header \ - .opcode = 29 - -struct V3D42_STORE_TILE_BUFFER_GENERAL { - uint32_t opcode; - __gen_address_type address; - uint32_t height; - uint32_t height_in_ub_or_stride; - bool r_b_swap; - bool channel_reverse; - bool clear_buffer_being_stored; - enum V3D42_Output_Image_Format output_image_format; - enum V3D42_Decimate_Mode decimate_mode; - enum V3D42_Dither_Mode dither_mode; - bool flip_y; - enum V3D42_Memory_Format memory_format; - uint32_t buffer_to_store; -#define RENDER_TARGET_0 0 -#define RENDER_TARGET_1 1 -#define RENDER_TARGET_2 2 -#define RENDER_TARGET_3 3 -#define NONE 8 -#define Z 9 -#define STENCIL 10 -#define ZSTENCIL 11 -}; - -static inline void -V3D42_STORE_TILE_BUFFER_GENERAL_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_STORE_TILE_BUFFER_GENERAL * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->flip_y, 7, 7) | - __gen_uint(values->memory_format, 4, 6) | - __gen_uint(values->buffer_to_store, 0, 3); - - cl[ 2] = __gen_uint(values->output_image_format, 4, 9) | - __gen_uint(values->decimate_mode, 2, 3) | - __gen_uint(values->dither_mode, 0, 1); - - cl[ 3] = __gen_uint(values->r_b_swap, 4, 4) | - __gen_uint(values->channel_reverse, 3, 3) | - __gen_uint(values->clear_buffer_being_stored, 2, 2) | - __gen_uint(values->output_image_format, 4, 9) >> 8; - - cl[ 4] = __gen_uint(values->height_in_ub_or_stride, 4, 23); - - cl[ 5] = __gen_uint(values->height_in_ub_or_stride, 4, 23) >> 8; - - cl[ 6] = __gen_uint(values->height_in_ub_or_stride, 4, 23) >> 16; - - cl[ 7] = __gen_uint(values->height, 0, 15); - - cl[ 8] = __gen_uint(values->height, 0, 15) >> 8; - - __gen_emit_reloc(data, &values->address); - cl[ 9] = __gen_address_offset(&values->address); - - cl[10] = __gen_address_offset(&values->address) >> 8; - - cl[11] = __gen_address_offset(&values->address) >> 16; - - cl[12] = __gen_address_offset(&values->address) >> 24; - -} - -#define V3D42_STORE_TILE_BUFFER_GENERAL_length 13 -#ifdef __gen_unpack_address -static inline void -V3D42_STORE_TILE_BUFFER_GENERAL_unpack(const uint8_t * restrict cl, - struct V3D42_STORE_TILE_BUFFER_GENERAL * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->address = __gen_unpack_address(cl, 72, 103); - values->height = __gen_unpack_uint(cl, 56, 71); - values->height_in_ub_or_stride = __gen_unpack_uint(cl, 36, 55); - values->r_b_swap = __gen_unpack_uint(cl, 28, 28); - values->channel_reverse = __gen_unpack_uint(cl, 27, 27); - values->clear_buffer_being_stored = __gen_unpack_uint(cl, 26, 26); - values->output_image_format = __gen_unpack_uint(cl, 20, 25); - values->decimate_mode = __gen_unpack_uint(cl, 18, 19); - values->dither_mode = __gen_unpack_uint(cl, 16, 17); - values->flip_y = __gen_unpack_uint(cl, 15, 15); - values->memory_format = __gen_unpack_uint(cl, 12, 14); - values->buffer_to_store = __gen_unpack_uint(cl, 8, 11); -} -#endif - - -#define V3D42_LOAD_TILE_BUFFER_GENERAL_opcode 30 -#define V3D42_LOAD_TILE_BUFFER_GENERAL_header \ - .opcode = 30 - -struct V3D42_LOAD_TILE_BUFFER_GENERAL { - uint32_t opcode; - __gen_address_type address; - uint32_t height; - uint32_t height_in_ub_or_stride; - bool r_b_swap; - bool channel_reverse; - enum V3D42_Output_Image_Format input_image_format; - enum V3D42_Decimate_Mode decimate_mode; - bool flip_y; - enum V3D42_Memory_Format memory_format; - uint32_t buffer_to_load; -#define RENDER_TARGET_0 0 -#define RENDER_TARGET_1 1 -#define RENDER_TARGET_2 2 -#define RENDER_TARGET_3 3 -#define NONE 8 -#define Z 9 -#define STENCIL 10 -#define ZSTENCIL 11 -}; - -static inline void -V3D42_LOAD_TILE_BUFFER_GENERAL_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_LOAD_TILE_BUFFER_GENERAL * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->flip_y, 7, 7) | - __gen_uint(values->memory_format, 4, 6) | - __gen_uint(values->buffer_to_load, 0, 3); - - cl[ 2] = __gen_uint(values->input_image_format, 4, 9) | - __gen_uint(values->decimate_mode, 2, 3); - - cl[ 3] = __gen_uint(values->r_b_swap, 4, 4) | - __gen_uint(values->channel_reverse, 3, 3) | - __gen_uint(values->input_image_format, 4, 9) >> 8; - - cl[ 4] = __gen_uint(values->height_in_ub_or_stride, 4, 23); - - cl[ 5] = __gen_uint(values->height_in_ub_or_stride, 4, 23) >> 8; - - cl[ 6] = __gen_uint(values->height_in_ub_or_stride, 4, 23) >> 16; - - cl[ 7] = __gen_uint(values->height, 0, 15); - - cl[ 8] = __gen_uint(values->height, 0, 15) >> 8; - - __gen_emit_reloc(data, &values->address); - cl[ 9] = __gen_address_offset(&values->address); - - cl[10] = __gen_address_offset(&values->address) >> 8; - - cl[11] = __gen_address_offset(&values->address) >> 16; - - cl[12] = __gen_address_offset(&values->address) >> 24; - -} - -#define V3D42_LOAD_TILE_BUFFER_GENERAL_length 13 -#ifdef __gen_unpack_address -static inline void -V3D42_LOAD_TILE_BUFFER_GENERAL_unpack(const uint8_t * restrict cl, - struct V3D42_LOAD_TILE_BUFFER_GENERAL * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->address = __gen_unpack_address(cl, 72, 103); - values->height = __gen_unpack_uint(cl, 56, 71); - values->height_in_ub_or_stride = __gen_unpack_uint(cl, 36, 55); - values->r_b_swap = __gen_unpack_uint(cl, 28, 28); - values->channel_reverse = __gen_unpack_uint(cl, 27, 27); - values->input_image_format = __gen_unpack_uint(cl, 20, 25); - values->decimate_mode = __gen_unpack_uint(cl, 18, 19); - values->flip_y = __gen_unpack_uint(cl, 15, 15); - values->memory_format = __gen_unpack_uint(cl, 12, 14); - values->buffer_to_load = __gen_unpack_uint(cl, 8, 11); -} -#endif - - -#define V3D42_TRANSFORM_FEEDBACK_FLUSH_AND_COUNT_opcode 31 -#define V3D42_TRANSFORM_FEEDBACK_FLUSH_AND_COUNT_header\ - .opcode = 31 - -struct V3D42_TRANSFORM_FEEDBACK_FLUSH_AND_COUNT { - uint32_t opcode; -}; - -static inline void -V3D42_TRANSFORM_FEEDBACK_FLUSH_AND_COUNT_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_TRANSFORM_FEEDBACK_FLUSH_AND_COUNT * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D42_TRANSFORM_FEEDBACK_FLUSH_AND_COUNT_length 1 -#ifdef __gen_unpack_address -static inline void -V3D42_TRANSFORM_FEEDBACK_FLUSH_AND_COUNT_unpack(const uint8_t * restrict cl, - struct V3D42_TRANSFORM_FEEDBACK_FLUSH_AND_COUNT * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D42_INDEXED_PRIM_LIST_opcode 32 -#define V3D42_INDEXED_PRIM_LIST_header \ - .opcode = 32 - -struct V3D42_INDEXED_PRIM_LIST { - uint32_t opcode; - uint32_t index_offset; - bool enable_primitive_restarts; - uint32_t length; - uint32_t index_type; -#define INDEX_TYPE_8_BIT 0 -#define INDEX_TYPE_16_BIT 1 -#define INDEX_TYPE_32_BIT 2 - enum V3D42_Primitive mode; -}; - -static inline void -V3D42_INDEXED_PRIM_LIST_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_INDEXED_PRIM_LIST * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->index_type, 6, 7) | - __gen_uint(values->mode, 0, 5); - - cl[ 2] = __gen_uint(values->length, 0, 30); - - cl[ 3] = __gen_uint(values->length, 0, 30) >> 8; - - cl[ 4] = __gen_uint(values->length, 0, 30) >> 16; - - cl[ 5] = __gen_uint(values->enable_primitive_restarts, 7, 7) | - __gen_uint(values->length, 0, 30) >> 24; - - - memcpy(&cl[6], &values->index_offset, sizeof(values->index_offset)); -} - -#define V3D42_INDEXED_PRIM_LIST_length 10 -#ifdef __gen_unpack_address -static inline void -V3D42_INDEXED_PRIM_LIST_unpack(const uint8_t * restrict cl, - struct V3D42_INDEXED_PRIM_LIST * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->index_offset = __gen_unpack_uint(cl, 48, 79); - values->enable_primitive_restarts = __gen_unpack_uint(cl, 47, 47); - values->length = __gen_unpack_uint(cl, 16, 46); - values->index_type = __gen_unpack_uint(cl, 14, 15); - values->mode = __gen_unpack_uint(cl, 8, 13); -} -#endif - - -#define V3D42_INDEXED_INSTANCED_PRIM_LIST_opcode 34 -#define V3D42_INDEXED_INSTANCED_PRIM_LIST_header\ - .opcode = 34 - -struct V3D42_INDEXED_INSTANCED_PRIM_LIST { - uint32_t opcode; - uint32_t index_offset; - uint32_t number_of_instances; - bool enable_primitive_restarts; - uint32_t instance_length; - uint32_t index_type; -#define INDEX_TYPE_8_BIT 0 -#define INDEX_TYPE_16_BIT 1 -#define INDEX_TYPE_32_BIT 2 - enum V3D42_Primitive mode; -}; - -static inline void -V3D42_INDEXED_INSTANCED_PRIM_LIST_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_INDEXED_INSTANCED_PRIM_LIST * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->index_type, 6, 7) | - __gen_uint(values->mode, 0, 5); - - cl[ 2] = __gen_uint(values->instance_length, 0, 30); - - cl[ 3] = __gen_uint(values->instance_length, 0, 30) >> 8; - - cl[ 4] = __gen_uint(values->instance_length, 0, 30) >> 16; - - cl[ 5] = __gen_uint(values->enable_primitive_restarts, 7, 7) | - __gen_uint(values->instance_length, 0, 30) >> 24; - - - memcpy(&cl[6], &values->number_of_instances, sizeof(values->number_of_instances)); - - memcpy(&cl[10], &values->index_offset, sizeof(values->index_offset)); -} - -#define V3D42_INDEXED_INSTANCED_PRIM_LIST_length 14 -#ifdef __gen_unpack_address -static inline void -V3D42_INDEXED_INSTANCED_PRIM_LIST_unpack(const uint8_t * restrict cl, - struct V3D42_INDEXED_INSTANCED_PRIM_LIST * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->index_offset = __gen_unpack_uint(cl, 80, 111); - values->number_of_instances = __gen_unpack_uint(cl, 48, 79); - values->enable_primitive_restarts = __gen_unpack_uint(cl, 47, 47); - values->instance_length = __gen_unpack_uint(cl, 16, 46); - values->index_type = __gen_unpack_uint(cl, 14, 15); - values->mode = __gen_unpack_uint(cl, 8, 13); -} -#endif - - -#define V3D42_VERTEX_ARRAY_PRIMS_opcode 36 -#define V3D42_VERTEX_ARRAY_PRIMS_header \ - .opcode = 36 - -struct V3D42_VERTEX_ARRAY_PRIMS { - uint32_t opcode; - uint32_t index_of_first_vertex; - uint32_t length; - enum V3D42_Primitive mode; -}; - -static inline void -V3D42_VERTEX_ARRAY_PRIMS_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_VERTEX_ARRAY_PRIMS * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->mode, 0, 7); - - - memcpy(&cl[2], &values->length, sizeof(values->length)); - - memcpy(&cl[6], &values->index_of_first_vertex, sizeof(values->index_of_first_vertex)); -} - -#define V3D42_VERTEX_ARRAY_PRIMS_length 10 -#ifdef __gen_unpack_address -static inline void -V3D42_VERTEX_ARRAY_PRIMS_unpack(const uint8_t * restrict cl, - struct V3D42_VERTEX_ARRAY_PRIMS * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->index_of_first_vertex = __gen_unpack_uint(cl, 48, 79); - values->length = __gen_unpack_uint(cl, 16, 47); - values->mode = __gen_unpack_uint(cl, 8, 15); -} -#endif - - -#define V3D42_VERTEX_ARRAY_INSTANCED_PRIMS_opcode 38 -#define V3D42_VERTEX_ARRAY_INSTANCED_PRIMS_header\ - .opcode = 38 - -struct V3D42_VERTEX_ARRAY_INSTANCED_PRIMS { - uint32_t opcode; - uint32_t index_of_first_vertex; - uint32_t number_of_instances; - uint32_t instance_length; - enum V3D42_Primitive mode; -}; - -static inline void -V3D42_VERTEX_ARRAY_INSTANCED_PRIMS_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_VERTEX_ARRAY_INSTANCED_PRIMS * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->mode, 0, 7); - - - memcpy(&cl[2], &values->instance_length, sizeof(values->instance_length)); - - memcpy(&cl[6], &values->number_of_instances, sizeof(values->number_of_instances)); - - memcpy(&cl[10], &values->index_of_first_vertex, sizeof(values->index_of_first_vertex)); -} - -#define V3D42_VERTEX_ARRAY_INSTANCED_PRIMS_length 14 -#ifdef __gen_unpack_address -static inline void -V3D42_VERTEX_ARRAY_INSTANCED_PRIMS_unpack(const uint8_t * restrict cl, - struct V3D42_VERTEX_ARRAY_INSTANCED_PRIMS * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->index_of_first_vertex = __gen_unpack_uint(cl, 80, 111); - values->number_of_instances = __gen_unpack_uint(cl, 48, 79); - values->instance_length = __gen_unpack_uint(cl, 16, 47); - values->mode = __gen_unpack_uint(cl, 8, 15); -} -#endif - - -#define V3D42_BASE_VERTEX_BASE_INSTANCE_opcode 43 -#define V3D42_BASE_VERTEX_BASE_INSTANCE_header \ - .opcode = 43 - -struct V3D42_BASE_VERTEX_BASE_INSTANCE { - uint32_t opcode; - uint32_t base_instance; - uint32_t base_vertex; -}; - -static inline void -V3D42_BASE_VERTEX_BASE_INSTANCE_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_BASE_VERTEX_BASE_INSTANCE * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - - memcpy(&cl[1], &values->base_vertex, sizeof(values->base_vertex)); - - memcpy(&cl[5], &values->base_instance, sizeof(values->base_instance)); -} - -#define V3D42_BASE_VERTEX_BASE_INSTANCE_length 9 -#ifdef __gen_unpack_address -static inline void -V3D42_BASE_VERTEX_BASE_INSTANCE_unpack(const uint8_t * restrict cl, - struct V3D42_BASE_VERTEX_BASE_INSTANCE * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->base_instance = __gen_unpack_uint(cl, 40, 71); - values->base_vertex = __gen_unpack_uint(cl, 8, 39); -} -#endif - - -#define V3D42_INDEX_BUFFER_SETUP_opcode 44 -#define V3D42_INDEX_BUFFER_SETUP_header \ - .opcode = 44 - -struct V3D42_INDEX_BUFFER_SETUP { - uint32_t opcode; - __gen_address_type address; - uint32_t size; -}; - -static inline void -V3D42_INDEX_BUFFER_SETUP_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_INDEX_BUFFER_SETUP * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - __gen_emit_reloc(data, &values->address); - cl[ 1] = __gen_address_offset(&values->address); - - cl[ 2] = __gen_address_offset(&values->address) >> 8; - - cl[ 3] = __gen_address_offset(&values->address) >> 16; - - cl[ 4] = __gen_address_offset(&values->address) >> 24; - - - memcpy(&cl[5], &values->size, sizeof(values->size)); -} - -#define V3D42_INDEX_BUFFER_SETUP_length 9 -#ifdef __gen_unpack_address -static inline void -V3D42_INDEX_BUFFER_SETUP_unpack(const uint8_t * restrict cl, - struct V3D42_INDEX_BUFFER_SETUP * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->address = __gen_unpack_address(cl, 8, 39); - values->size = __gen_unpack_uint(cl, 40, 71); -} -#endif - - -#define V3D42_PRIM_LIST_FORMAT_opcode 56 -#define V3D42_PRIM_LIST_FORMAT_header \ - .opcode = 56 - -struct V3D42_PRIM_LIST_FORMAT { - uint32_t opcode; - bool tri_strip_or_fan; - uint32_t primitive_type; -#define LIST_POINTS 0 -#define LIST_LINES 1 -#define LIST_TRIANGLES 2 -}; - -static inline void -V3D42_PRIM_LIST_FORMAT_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_PRIM_LIST_FORMAT * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->tri_strip_or_fan, 7, 7) | - __gen_uint(values->primitive_type, 0, 5); - -} - -#define V3D42_PRIM_LIST_FORMAT_length 2 -#ifdef __gen_unpack_address -static inline void -V3D42_PRIM_LIST_FORMAT_unpack(const uint8_t * restrict cl, - struct V3D42_PRIM_LIST_FORMAT * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->tri_strip_or_fan = __gen_unpack_uint(cl, 15, 15); - values->primitive_type = __gen_unpack_uint(cl, 8, 13); -} -#endif - - -#define V3D42_GL_SHADER_STATE_opcode 64 -#define V3D42_GL_SHADER_STATE_header \ - .opcode = 64 - -struct V3D42_GL_SHADER_STATE { - uint32_t opcode; - __gen_address_type address; - uint32_t number_of_attribute_arrays; -}; - -static inline void -V3D42_GL_SHADER_STATE_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_GL_SHADER_STATE * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - __gen_emit_reloc(data, &values->address); - cl[ 1] = __gen_address_offset(&values->address) | - __gen_uint(values->number_of_attribute_arrays, 0, 4); - - cl[ 2] = __gen_address_offset(&values->address) >> 8; - - cl[ 3] = __gen_address_offset(&values->address) >> 16; - - cl[ 4] = __gen_address_offset(&values->address) >> 24; - -} - -#define V3D42_GL_SHADER_STATE_length 5 -#ifdef __gen_unpack_address -static inline void -V3D42_GL_SHADER_STATE_unpack(const uint8_t * restrict cl, - struct V3D42_GL_SHADER_STATE * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->address = __gen_unpack_address(cl, 13, 39); - values->number_of_attribute_arrays = __gen_unpack_uint(cl, 8, 12); -} -#endif - - -#define V3D42_VCM_CACHE_SIZE_opcode 71 -#define V3D42_VCM_CACHE_SIZE_header \ - .opcode = 71 - -struct V3D42_VCM_CACHE_SIZE { - uint32_t opcode; - uint32_t number_of_16_vertex_batches_for_rendering; - uint32_t number_of_16_vertex_batches_for_binning; -}; - -static inline void -V3D42_VCM_CACHE_SIZE_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_VCM_CACHE_SIZE * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->number_of_16_vertex_batches_for_rendering, 4, 7) | - __gen_uint(values->number_of_16_vertex_batches_for_binning, 0, 3); - -} - -#define V3D42_VCM_CACHE_SIZE_length 2 -#ifdef __gen_unpack_address -static inline void -V3D42_VCM_CACHE_SIZE_unpack(const uint8_t * restrict cl, - struct V3D42_VCM_CACHE_SIZE * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->number_of_16_vertex_batches_for_rendering = __gen_unpack_uint(cl, 12, 15); - values->number_of_16_vertex_batches_for_binning = __gen_unpack_uint(cl, 8, 11); -} -#endif - - -#define V3D42_TRANSFORM_FEEDBACK_BUFFER_opcode 73 -#define V3D42_TRANSFORM_FEEDBACK_BUFFER_header \ - .opcode = 73 - -struct V3D42_TRANSFORM_FEEDBACK_BUFFER { - uint32_t opcode; - __gen_address_type buffer_address; - uint32_t buffer_size_in_32_bit_words; - uint32_t buffer_number; -}; - -static inline void -V3D42_TRANSFORM_FEEDBACK_BUFFER_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_TRANSFORM_FEEDBACK_BUFFER * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->buffer_size_in_32_bit_words, 2, 31) | - __gen_uint(values->buffer_number, 0, 1); - - cl[ 2] = __gen_uint(values->buffer_size_in_32_bit_words, 2, 31) >> 8; - - cl[ 3] = __gen_uint(values->buffer_size_in_32_bit_words, 2, 31) >> 16; - - cl[ 4] = __gen_uint(values->buffer_size_in_32_bit_words, 2, 31) >> 24; - - __gen_emit_reloc(data, &values->buffer_address); - cl[ 5] = __gen_address_offset(&values->buffer_address); - - cl[ 6] = __gen_address_offset(&values->buffer_address) >> 8; - - cl[ 7] = __gen_address_offset(&values->buffer_address) >> 16; - - cl[ 8] = __gen_address_offset(&values->buffer_address) >> 24; - -} - -#define V3D42_TRANSFORM_FEEDBACK_BUFFER_length 9 -#ifdef __gen_unpack_address -static inline void -V3D42_TRANSFORM_FEEDBACK_BUFFER_unpack(const uint8_t * restrict cl, - struct V3D42_TRANSFORM_FEEDBACK_BUFFER * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->buffer_address = __gen_unpack_address(cl, 40, 71); - values->buffer_size_in_32_bit_words = __gen_unpack_uint(cl, 10, 39); - values->buffer_number = __gen_unpack_uint(cl, 8, 9); -} -#endif - - -#define V3D42_TRANSFORM_FEEDBACK_SPECS_opcode 74 -#define V3D42_TRANSFORM_FEEDBACK_SPECS_header \ - .opcode = 74 - -struct V3D42_TRANSFORM_FEEDBACK_SPECS { - uint32_t opcode; - bool enable; - uint32_t number_of_16_bit_output_data_specs_following; -}; - -static inline void -V3D42_TRANSFORM_FEEDBACK_SPECS_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_TRANSFORM_FEEDBACK_SPECS * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->enable, 7, 7) | - __gen_uint(values->number_of_16_bit_output_data_specs_following, 0, 4); - -} - -#define V3D42_TRANSFORM_FEEDBACK_SPECS_length 2 -#ifdef __gen_unpack_address -static inline void -V3D42_TRANSFORM_FEEDBACK_SPECS_unpack(const uint8_t * restrict cl, - struct V3D42_TRANSFORM_FEEDBACK_SPECS * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->enable = __gen_unpack_uint(cl, 15, 15); - values->number_of_16_bit_output_data_specs_following = __gen_unpack_uint(cl, 8, 12); -} -#endif - - -#define V3D42_FLUSH_TRANSFORM_FEEDBACK_DATA_opcode 75 -#define V3D42_FLUSH_TRANSFORM_FEEDBACK_DATA_header\ - .opcode = 75 - -struct V3D42_FLUSH_TRANSFORM_FEEDBACK_DATA { - uint32_t opcode; -}; - -static inline void -V3D42_FLUSH_TRANSFORM_FEEDBACK_DATA_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_FLUSH_TRANSFORM_FEEDBACK_DATA * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D42_FLUSH_TRANSFORM_FEEDBACK_DATA_length 1 -#ifdef __gen_unpack_address -static inline void -V3D42_FLUSH_TRANSFORM_FEEDBACK_DATA_unpack(const uint8_t * restrict cl, - struct V3D42_FLUSH_TRANSFORM_FEEDBACK_DATA * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D42_TRANSFORM_FEEDBACK_OUTPUT_DATA_SPEC_header\ - - -struct V3D42_TRANSFORM_FEEDBACK_OUTPUT_DATA_SPEC { - uint32_t first_shaded_vertex_value_to_output; - uint32_t number_of_consecutive_vertex_values_to_output_as_32_bit_values; - uint32_t output_buffer_to_write_to; - uint32_t stream_number; -}; - -static inline void -V3D42_TRANSFORM_FEEDBACK_OUTPUT_DATA_SPEC_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_TRANSFORM_FEEDBACK_OUTPUT_DATA_SPEC * restrict values) -{ - assert(values->number_of_consecutive_vertex_values_to_output_as_32_bit_values >= 1); - cl[ 0] = __gen_uint(values->first_shaded_vertex_value_to_output, 0, 7); - - cl[ 1] = __gen_uint(values->number_of_consecutive_vertex_values_to_output_as_32_bit_values - 1, 0, 3) | - __gen_uint(values->output_buffer_to_write_to, 4, 5) | - __gen_uint(values->stream_number, 6, 7); - -} - -#define V3D42_TRANSFORM_FEEDBACK_OUTPUT_DATA_SPEC_length 2 -#ifdef __gen_unpack_address -static inline void -V3D42_TRANSFORM_FEEDBACK_OUTPUT_DATA_SPEC_unpack(const uint8_t * restrict cl, - struct V3D42_TRANSFORM_FEEDBACK_OUTPUT_DATA_SPEC * restrict values) -{ - values->first_shaded_vertex_value_to_output = __gen_unpack_uint(cl, 0, 7); - values->number_of_consecutive_vertex_values_to_output_as_32_bit_values = __gen_unpack_uint(cl, 8, 11) + 1; - values->output_buffer_to_write_to = __gen_unpack_uint(cl, 12, 13); - values->stream_number = __gen_unpack_uint(cl, 14, 15); -} -#endif - - -#define V3D42_TRANSFORM_FEEDBACK_OUTPUT_ADDRESS_header\ - - -struct V3D42_TRANSFORM_FEEDBACK_OUTPUT_ADDRESS { - __gen_address_type address; -}; - -static inline void -V3D42_TRANSFORM_FEEDBACK_OUTPUT_ADDRESS_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_TRANSFORM_FEEDBACK_OUTPUT_ADDRESS * restrict values) -{ - __gen_emit_reloc(data, &values->address); - cl[ 0] = __gen_address_offset(&values->address); - - cl[ 1] = __gen_address_offset(&values->address) >> 8; - - cl[ 2] = __gen_address_offset(&values->address) >> 16; - - cl[ 3] = __gen_address_offset(&values->address) >> 24; - -} - -#define V3D42_TRANSFORM_FEEDBACK_OUTPUT_ADDRESS_length 4 -#ifdef __gen_unpack_address -static inline void -V3D42_TRANSFORM_FEEDBACK_OUTPUT_ADDRESS_unpack(const uint8_t * restrict cl, - struct V3D42_TRANSFORM_FEEDBACK_OUTPUT_ADDRESS * restrict values) -{ - values->address = __gen_unpack_address(cl, 0, 31); -} -#endif - - -#define V3D42_STENCIL_CFG_opcode 80 -#define V3D42_STENCIL_CFG_header \ - .opcode = 80 - -struct V3D42_STENCIL_CFG { - uint32_t opcode; - uint32_t stencil_write_mask; - bool back_config; - bool front_config; - enum V3D42_Stencil_Op stencil_pass_op; - enum V3D42_Stencil_Op depth_test_fail_op; - enum V3D42_Stencil_Op stencil_test_fail_op; - enum V3D42_Compare_Function stencil_test_function; - uint32_t stencil_test_mask; - uint32_t stencil_ref_value; -}; - -static inline void -V3D42_STENCIL_CFG_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_STENCIL_CFG * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->stencil_ref_value, 0, 7); - - cl[ 2] = __gen_uint(values->stencil_test_mask, 0, 7); - - cl[ 3] = __gen_uint(values->depth_test_fail_op, 6, 8) | - __gen_uint(values->stencil_test_fail_op, 3, 5) | - __gen_uint(values->stencil_test_function, 0, 2); - - cl[ 4] = __gen_uint(values->back_config, 5, 5) | - __gen_uint(values->front_config, 4, 4) | - __gen_uint(values->stencil_pass_op, 1, 3) | - __gen_uint(values->depth_test_fail_op, 6, 8) >> 8; - - cl[ 5] = __gen_uint(values->stencil_write_mask, 0, 7); - -} - -#define V3D42_STENCIL_CFG_length 6 -#ifdef __gen_unpack_address -static inline void -V3D42_STENCIL_CFG_unpack(const uint8_t * restrict cl, - struct V3D42_STENCIL_CFG * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->stencil_write_mask = __gen_unpack_uint(cl, 40, 47); - values->back_config = __gen_unpack_uint(cl, 37, 37); - values->front_config = __gen_unpack_uint(cl, 36, 36); - values->stencil_pass_op = __gen_unpack_uint(cl, 33, 35); - values->depth_test_fail_op = __gen_unpack_uint(cl, 30, 32); - values->stencil_test_fail_op = __gen_unpack_uint(cl, 27, 29); - values->stencil_test_function = __gen_unpack_uint(cl, 24, 26); - values->stencil_test_mask = __gen_unpack_uint(cl, 16, 23); - values->stencil_ref_value = __gen_unpack_uint(cl, 8, 15); -} -#endif - - -#define V3D42_BLEND_ENABLES_opcode 83 -#define V3D42_BLEND_ENABLES_header \ - .opcode = 83 - -struct V3D42_BLEND_ENABLES { - uint32_t opcode; - uint32_t mask; -}; - -static inline void -V3D42_BLEND_ENABLES_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_BLEND_ENABLES * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->mask, 0, 7); - -} - -#define V3D42_BLEND_ENABLES_length 2 -#ifdef __gen_unpack_address -static inline void -V3D42_BLEND_ENABLES_unpack(const uint8_t * restrict cl, - struct V3D42_BLEND_ENABLES * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->mask = __gen_unpack_uint(cl, 8, 15); -} -#endif - - -#define V3D42_BLEND_CFG_opcode 84 -#define V3D42_BLEND_CFG_header \ - .opcode = 84 - -struct V3D42_BLEND_CFG { - uint32_t opcode; - uint32_t render_target_mask; - enum V3D42_Blend_Factor color_blend_dst_factor; - enum V3D42_Blend_Factor color_blend_src_factor; - enum V3D42_Blend_Mode color_blend_mode; - enum V3D42_Blend_Factor alpha_blend_dst_factor; - enum V3D42_Blend_Factor alpha_blend_src_factor; - enum V3D42_Blend_Mode alpha_blend_mode; -}; - -static inline void -V3D42_BLEND_CFG_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_BLEND_CFG * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->alpha_blend_src_factor, 4, 7) | - __gen_uint(values->alpha_blend_mode, 0, 3); - - cl[ 2] = __gen_uint(values->color_blend_mode, 4, 7) | - __gen_uint(values->alpha_blend_dst_factor, 0, 3); - - cl[ 3] = __gen_uint(values->color_blend_dst_factor, 4, 7) | - __gen_uint(values->color_blend_src_factor, 0, 3); - - cl[ 4] = __gen_uint(values->render_target_mask, 0, 3); - -} - -#define V3D42_BLEND_CFG_length 5 -#ifdef __gen_unpack_address -static inline void -V3D42_BLEND_CFG_unpack(const uint8_t * restrict cl, - struct V3D42_BLEND_CFG * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->render_target_mask = __gen_unpack_uint(cl, 32, 35); - values->color_blend_dst_factor = __gen_unpack_uint(cl, 28, 31); - values->color_blend_src_factor = __gen_unpack_uint(cl, 24, 27); - values->color_blend_mode = __gen_unpack_uint(cl, 20, 23); - values->alpha_blend_dst_factor = __gen_unpack_uint(cl, 16, 19); - values->alpha_blend_src_factor = __gen_unpack_uint(cl, 12, 15); - values->alpha_blend_mode = __gen_unpack_uint(cl, 8, 11); -} -#endif - - -#define V3D42_BLEND_CONSTANT_COLOR_opcode 86 -#define V3D42_BLEND_CONSTANT_COLOR_header \ - .opcode = 86 - -struct V3D42_BLEND_CONSTANT_COLOR { - uint32_t opcode; - uint32_t alpha_f16; - uint32_t blue_f16; - uint32_t green_f16; - uint32_t red_f16; -}; - -static inline void -V3D42_BLEND_CONSTANT_COLOR_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_BLEND_CONSTANT_COLOR * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->red_f16, 0, 15); - - cl[ 2] = __gen_uint(values->red_f16, 0, 15) >> 8; - - cl[ 3] = __gen_uint(values->green_f16, 0, 15); - - cl[ 4] = __gen_uint(values->green_f16, 0, 15) >> 8; - - cl[ 5] = __gen_uint(values->blue_f16, 0, 15); - - cl[ 6] = __gen_uint(values->blue_f16, 0, 15) >> 8; - - cl[ 7] = __gen_uint(values->alpha_f16, 0, 15); - - cl[ 8] = __gen_uint(values->alpha_f16, 0, 15) >> 8; - -} - -#define V3D42_BLEND_CONSTANT_COLOR_length 9 -#ifdef __gen_unpack_address -static inline void -V3D42_BLEND_CONSTANT_COLOR_unpack(const uint8_t * restrict cl, - struct V3D42_BLEND_CONSTANT_COLOR * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->alpha_f16 = __gen_unpack_uint(cl, 56, 71); - values->blue_f16 = __gen_unpack_uint(cl, 40, 55); - values->green_f16 = __gen_unpack_uint(cl, 24, 39); - values->red_f16 = __gen_unpack_uint(cl, 8, 23); -} -#endif - - -#define V3D42_COLOR_WRITE_MASKS_opcode 87 -#define V3D42_COLOR_WRITE_MASKS_header \ - .opcode = 87 - -struct V3D42_COLOR_WRITE_MASKS { - uint32_t opcode; - uint32_t mask; -}; - -static inline void -V3D42_COLOR_WRITE_MASKS_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_COLOR_WRITE_MASKS * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - - memcpy(&cl[1], &values->mask, sizeof(values->mask)); -} - -#define V3D42_COLOR_WRITE_MASKS_length 5 -#ifdef __gen_unpack_address -static inline void -V3D42_COLOR_WRITE_MASKS_unpack(const uint8_t * restrict cl, - struct V3D42_COLOR_WRITE_MASKS * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->mask = __gen_unpack_uint(cl, 8, 39); -} -#endif - - -#define V3D42_ZERO_ALL_CENTROID_FLAGS_opcode 88 -#define V3D42_ZERO_ALL_CENTROID_FLAGS_header \ - .opcode = 88 - -struct V3D42_ZERO_ALL_CENTROID_FLAGS { - uint32_t opcode; -}; - -static inline void -V3D42_ZERO_ALL_CENTROID_FLAGS_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_ZERO_ALL_CENTROID_FLAGS * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D42_ZERO_ALL_CENTROID_FLAGS_length 1 -#ifdef __gen_unpack_address -static inline void -V3D42_ZERO_ALL_CENTROID_FLAGS_unpack(const uint8_t * restrict cl, - struct V3D42_ZERO_ALL_CENTROID_FLAGS * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D42_CENTROID_FLAGS_opcode 89 -#define V3D42_CENTROID_FLAGS_header \ - .opcode = 89 - -struct V3D42_CENTROID_FLAGS { - uint32_t opcode; - uint32_t centroid_flags_for_varyings_v024; - enum V3D42_Varying_Flags_Action action_for_centroid_flags_of_higher_numbered_varyings; - enum V3D42_Varying_Flags_Action action_for_centroid_flags_of_lower_numbered_varyings; - uint32_t varying_offset_v0; -}; - -static inline void -V3D42_CENTROID_FLAGS_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_CENTROID_FLAGS * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->action_for_centroid_flags_of_higher_numbered_varyings, 6, 7) | - __gen_uint(values->action_for_centroid_flags_of_lower_numbered_varyings, 4, 5) | - __gen_uint(values->varying_offset_v0, 0, 3); - - cl[ 2] = __gen_uint(values->centroid_flags_for_varyings_v024, 0, 23); - - cl[ 3] = __gen_uint(values->centroid_flags_for_varyings_v024, 0, 23) >> 8; - - cl[ 4] = __gen_uint(values->centroid_flags_for_varyings_v024, 0, 23) >> 16; - -} - -#define V3D42_CENTROID_FLAGS_length 5 -#ifdef __gen_unpack_address -static inline void -V3D42_CENTROID_FLAGS_unpack(const uint8_t * restrict cl, - struct V3D42_CENTROID_FLAGS * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->centroid_flags_for_varyings_v024 = __gen_unpack_uint(cl, 16, 39); - values->action_for_centroid_flags_of_higher_numbered_varyings = __gen_unpack_uint(cl, 14, 15); - values->action_for_centroid_flags_of_lower_numbered_varyings = __gen_unpack_uint(cl, 12, 13); - values->varying_offset_v0 = __gen_unpack_uint(cl, 8, 11); -} -#endif - - -#define V3D42_SAMPLE_STATE_opcode 91 -#define V3D42_SAMPLE_STATE_header \ - .opcode = 91 - -struct V3D42_SAMPLE_STATE { - uint32_t opcode; - float coverage; - uint32_t mask; -}; - -static inline void -V3D42_SAMPLE_STATE_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_SAMPLE_STATE * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->mask, 0, 3); - - cl[ 2] = 0; - cl[ 3] = __gen_uint(fui(values->coverage) >> 16, 0, 15); - - cl[ 4] = __gen_uint(fui(values->coverage) >> 16, 0, 15) >> 8; - -} - -#define V3D42_SAMPLE_STATE_length 5 -#ifdef __gen_unpack_address -static inline void -V3D42_SAMPLE_STATE_unpack(const uint8_t * restrict cl, - struct V3D42_SAMPLE_STATE * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->coverage = __gen_unpack_f187(cl, 24, 39); - values->mask = __gen_unpack_uint(cl, 8, 11); -} -#endif - - -#define V3D42_OCCLUSION_QUERY_COUNTER_opcode 92 -#define V3D42_OCCLUSION_QUERY_COUNTER_header \ - .opcode = 92 - -struct V3D42_OCCLUSION_QUERY_COUNTER { - uint32_t opcode; - __gen_address_type address; -}; - -static inline void -V3D42_OCCLUSION_QUERY_COUNTER_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_OCCLUSION_QUERY_COUNTER * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - __gen_emit_reloc(data, &values->address); - cl[ 1] = __gen_address_offset(&values->address); - - cl[ 2] = __gen_address_offset(&values->address) >> 8; - - cl[ 3] = __gen_address_offset(&values->address) >> 16; - - cl[ 4] = __gen_address_offset(&values->address) >> 24; - -} - -#define V3D42_OCCLUSION_QUERY_COUNTER_length 5 -#ifdef __gen_unpack_address -static inline void -V3D42_OCCLUSION_QUERY_COUNTER_unpack(const uint8_t * restrict cl, - struct V3D42_OCCLUSION_QUERY_COUNTER * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->address = __gen_unpack_address(cl, 8, 39); -} -#endif - - -#define V3D42_CFG_BITS_opcode 96 -#define V3D42_CFG_BITS_header \ - .opcode = 96 - -struct V3D42_CFG_BITS { - uint32_t opcode; - bool direct3d_provoking_vertex; - bool direct3d_point_fill_mode; - bool blend_enable; - bool stencil_enable; - bool early_z_updates_enable; - bool early_z_enable; - bool z_updates_enable; - enum V3D42_Compare_Function depth_test_function; - bool direct3d_wireframe_triangles_mode; - uint32_t rasterizer_oversample_mode; - uint32_t line_rasterization; - bool enable_depth_offset; - bool clockwise_primitives; - bool enable_reverse_facing_primitive; - bool enable_forward_facing_primitive; -}; - -static inline void -V3D42_CFG_BITS_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_CFG_BITS * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->rasterizer_oversample_mode, 6, 7) | - __gen_uint(values->line_rasterization, 4, 5) | - __gen_uint(values->enable_depth_offset, 3, 3) | - __gen_uint(values->clockwise_primitives, 2, 2) | - __gen_uint(values->enable_reverse_facing_primitive, 1, 1) | - __gen_uint(values->enable_forward_facing_primitive, 0, 0); - - cl[ 2] = __gen_uint(values->z_updates_enable, 7, 7) | - __gen_uint(values->depth_test_function, 4, 6) | - __gen_uint(values->direct3d_wireframe_triangles_mode, 3, 3); - - cl[ 3] = __gen_uint(values->direct3d_provoking_vertex, 5, 5) | - __gen_uint(values->direct3d_point_fill_mode, 4, 4) | - __gen_uint(values->blend_enable, 3, 3) | - __gen_uint(values->stencil_enable, 2, 2) | - __gen_uint(values->early_z_updates_enable, 1, 1) | - __gen_uint(values->early_z_enable, 0, 0); - -} - -#define V3D42_CFG_BITS_length 4 -#ifdef __gen_unpack_address -static inline void -V3D42_CFG_BITS_unpack(const uint8_t * restrict cl, - struct V3D42_CFG_BITS * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->direct3d_provoking_vertex = __gen_unpack_uint(cl, 29, 29); - values->direct3d_point_fill_mode = __gen_unpack_uint(cl, 28, 28); - values->blend_enable = __gen_unpack_uint(cl, 27, 27); - values->stencil_enable = __gen_unpack_uint(cl, 26, 26); - values->early_z_updates_enable = __gen_unpack_uint(cl, 25, 25); - values->early_z_enable = __gen_unpack_uint(cl, 24, 24); - values->z_updates_enable = __gen_unpack_uint(cl, 23, 23); - values->depth_test_function = __gen_unpack_uint(cl, 20, 22); - values->direct3d_wireframe_triangles_mode = __gen_unpack_uint(cl, 19, 19); - values->rasterizer_oversample_mode = __gen_unpack_uint(cl, 14, 15); - values->line_rasterization = __gen_unpack_uint(cl, 12, 13); - values->enable_depth_offset = __gen_unpack_uint(cl, 11, 11); - values->clockwise_primitives = __gen_unpack_uint(cl, 10, 10); - values->enable_reverse_facing_primitive = __gen_unpack_uint(cl, 9, 9); - values->enable_forward_facing_primitive = __gen_unpack_uint(cl, 8, 8); -} -#endif - - -#define V3D42_ZERO_ALL_FLAT_SHADE_FLAGS_opcode 97 -#define V3D42_ZERO_ALL_FLAT_SHADE_FLAGS_header \ - .opcode = 97 - -struct V3D42_ZERO_ALL_FLAT_SHADE_FLAGS { - uint32_t opcode; -}; - -static inline void -V3D42_ZERO_ALL_FLAT_SHADE_FLAGS_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_ZERO_ALL_FLAT_SHADE_FLAGS * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D42_ZERO_ALL_FLAT_SHADE_FLAGS_length 1 -#ifdef __gen_unpack_address -static inline void -V3D42_ZERO_ALL_FLAT_SHADE_FLAGS_unpack(const uint8_t * restrict cl, - struct V3D42_ZERO_ALL_FLAT_SHADE_FLAGS * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D42_FLAT_SHADE_FLAGS_opcode 98 -#define V3D42_FLAT_SHADE_FLAGS_header \ - .opcode = 98 - -struct V3D42_FLAT_SHADE_FLAGS { - uint32_t opcode; - uint32_t flat_shade_flags_for_varyings_v024; - enum V3D42_Varying_Flags_Action action_for_flat_shade_flags_of_higher_numbered_varyings; - enum V3D42_Varying_Flags_Action action_for_flat_shade_flags_of_lower_numbered_varyings; - uint32_t varying_offset_v0; -}; - -static inline void -V3D42_FLAT_SHADE_FLAGS_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_FLAT_SHADE_FLAGS * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->action_for_flat_shade_flags_of_higher_numbered_varyings, 6, 7) | - __gen_uint(values->action_for_flat_shade_flags_of_lower_numbered_varyings, 4, 5) | - __gen_uint(values->varying_offset_v0, 0, 3); - - cl[ 2] = __gen_uint(values->flat_shade_flags_for_varyings_v024, 0, 23); - - cl[ 3] = __gen_uint(values->flat_shade_flags_for_varyings_v024, 0, 23) >> 8; - - cl[ 4] = __gen_uint(values->flat_shade_flags_for_varyings_v024, 0, 23) >> 16; - -} - -#define V3D42_FLAT_SHADE_FLAGS_length 5 -#ifdef __gen_unpack_address -static inline void -V3D42_FLAT_SHADE_FLAGS_unpack(const uint8_t * restrict cl, - struct V3D42_FLAT_SHADE_FLAGS * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->flat_shade_flags_for_varyings_v024 = __gen_unpack_uint(cl, 16, 39); - values->action_for_flat_shade_flags_of_higher_numbered_varyings = __gen_unpack_uint(cl, 14, 15); - values->action_for_flat_shade_flags_of_lower_numbered_varyings = __gen_unpack_uint(cl, 12, 13); - values->varying_offset_v0 = __gen_unpack_uint(cl, 8, 11); -} -#endif - - -#define V3D42_ZERO_ALL_NON_PERSPECTIVE_FLAGS_opcode 99 -#define V3D42_ZERO_ALL_NON_PERSPECTIVE_FLAGS_header\ - .opcode = 99 - -struct V3D42_ZERO_ALL_NON_PERSPECTIVE_FLAGS { - uint32_t opcode; -}; - -static inline void -V3D42_ZERO_ALL_NON_PERSPECTIVE_FLAGS_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_ZERO_ALL_NON_PERSPECTIVE_FLAGS * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D42_ZERO_ALL_NON_PERSPECTIVE_FLAGS_length 1 -#ifdef __gen_unpack_address -static inline void -V3D42_ZERO_ALL_NON_PERSPECTIVE_FLAGS_unpack(const uint8_t * restrict cl, - struct V3D42_ZERO_ALL_NON_PERSPECTIVE_FLAGS * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D42_NON_PERSPECTIVE_FLAGS_opcode 100 -#define V3D42_NON_PERSPECTIVE_FLAGS_header \ - .opcode = 100 - -struct V3D42_NON_PERSPECTIVE_FLAGS { - uint32_t opcode; - uint32_t non_perspective_flags_for_varyings_v024; - enum V3D42_Varying_Flags_Action action_for_non_perspective_flags_of_higher_numbered_varyings; - enum V3D42_Varying_Flags_Action action_for_non_perspective_flags_of_lower_numbered_varyings; - uint32_t varying_offset_v0; -}; - -static inline void -V3D42_NON_PERSPECTIVE_FLAGS_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_NON_PERSPECTIVE_FLAGS * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->action_for_non_perspective_flags_of_higher_numbered_varyings, 6, 7) | - __gen_uint(values->action_for_non_perspective_flags_of_lower_numbered_varyings, 4, 5) | - __gen_uint(values->varying_offset_v0, 0, 3); - - cl[ 2] = __gen_uint(values->non_perspective_flags_for_varyings_v024, 0, 23); - - cl[ 3] = __gen_uint(values->non_perspective_flags_for_varyings_v024, 0, 23) >> 8; - - cl[ 4] = __gen_uint(values->non_perspective_flags_for_varyings_v024, 0, 23) >> 16; - -} - -#define V3D42_NON_PERSPECTIVE_FLAGS_length 5 -#ifdef __gen_unpack_address -static inline void -V3D42_NON_PERSPECTIVE_FLAGS_unpack(const uint8_t * restrict cl, - struct V3D42_NON_PERSPECTIVE_FLAGS * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->non_perspective_flags_for_varyings_v024 = __gen_unpack_uint(cl, 16, 39); - values->action_for_non_perspective_flags_of_higher_numbered_varyings = __gen_unpack_uint(cl, 14, 15); - values->action_for_non_perspective_flags_of_lower_numbered_varyings = __gen_unpack_uint(cl, 12, 13); - values->varying_offset_v0 = __gen_unpack_uint(cl, 8, 11); -} -#endif - - -#define V3D42_POINT_SIZE_opcode 104 -#define V3D42_POINT_SIZE_header \ - .opcode = 104 - -struct V3D42_POINT_SIZE { - uint32_t opcode; - float point_size; -}; - -static inline void -V3D42_POINT_SIZE_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_POINT_SIZE * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - - memcpy(&cl[1], &values->point_size, sizeof(values->point_size)); -} - -#define V3D42_POINT_SIZE_length 5 -#ifdef __gen_unpack_address -static inline void -V3D42_POINT_SIZE_unpack(const uint8_t * restrict cl, - struct V3D42_POINT_SIZE * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->point_size = __gen_unpack_float(cl, 8, 39); -} -#endif - - -#define V3D42_LINE_WIDTH_opcode 105 -#define V3D42_LINE_WIDTH_header \ - .opcode = 105 - -struct V3D42_LINE_WIDTH { - uint32_t opcode; - float line_width; -}; - -static inline void -V3D42_LINE_WIDTH_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_LINE_WIDTH * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - - memcpy(&cl[1], &values->line_width, sizeof(values->line_width)); -} - -#define V3D42_LINE_WIDTH_length 5 -#ifdef __gen_unpack_address -static inline void -V3D42_LINE_WIDTH_unpack(const uint8_t * restrict cl, - struct V3D42_LINE_WIDTH * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->line_width = __gen_unpack_float(cl, 8, 39); -} -#endif - - -#define V3D42_DEPTH_OFFSET_opcode 106 -#define V3D42_DEPTH_OFFSET_header \ - .opcode = 106 - -struct V3D42_DEPTH_OFFSET { - uint32_t opcode; - float limit; - float depth_offset_units; - float depth_offset_factor; -}; - -static inline void -V3D42_DEPTH_OFFSET_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_DEPTH_OFFSET * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(fui(values->depth_offset_factor) >> 16, 0, 15); - - cl[ 2] = __gen_uint(fui(values->depth_offset_factor) >> 16, 0, 15) >> 8; - - cl[ 3] = __gen_uint(fui(values->depth_offset_units) >> 16, 0, 15); - - cl[ 4] = __gen_uint(fui(values->depth_offset_units) >> 16, 0, 15) >> 8; - - - memcpy(&cl[5], &values->limit, sizeof(values->limit)); -} - -#define V3D42_DEPTH_OFFSET_length 9 -#ifdef __gen_unpack_address -static inline void -V3D42_DEPTH_OFFSET_unpack(const uint8_t * restrict cl, - struct V3D42_DEPTH_OFFSET * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->limit = __gen_unpack_float(cl, 40, 71); - values->depth_offset_units = __gen_unpack_f187(cl, 24, 39); - values->depth_offset_factor = __gen_unpack_f187(cl, 8, 23); -} -#endif - - -#define V3D42_CLIP_WINDOW_opcode 107 -#define V3D42_CLIP_WINDOW_header \ - .opcode = 107 - -struct V3D42_CLIP_WINDOW { - uint32_t opcode; - uint32_t clip_window_height_in_pixels; - uint32_t clip_window_width_in_pixels; - uint32_t clip_window_bottom_pixel_coordinate; - uint32_t clip_window_left_pixel_coordinate; -}; - -static inline void -V3D42_CLIP_WINDOW_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_CLIP_WINDOW * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->clip_window_left_pixel_coordinate, 0, 15); - - cl[ 2] = __gen_uint(values->clip_window_left_pixel_coordinate, 0, 15) >> 8; - - cl[ 3] = __gen_uint(values->clip_window_bottom_pixel_coordinate, 0, 15); - - cl[ 4] = __gen_uint(values->clip_window_bottom_pixel_coordinate, 0, 15) >> 8; - - cl[ 5] = __gen_uint(values->clip_window_width_in_pixels, 0, 15); - - cl[ 6] = __gen_uint(values->clip_window_width_in_pixels, 0, 15) >> 8; - - cl[ 7] = __gen_uint(values->clip_window_height_in_pixels, 0, 15); - - cl[ 8] = __gen_uint(values->clip_window_height_in_pixels, 0, 15) >> 8; - -} - -#define V3D42_CLIP_WINDOW_length 9 -#ifdef __gen_unpack_address -static inline void -V3D42_CLIP_WINDOW_unpack(const uint8_t * restrict cl, - struct V3D42_CLIP_WINDOW * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->clip_window_height_in_pixels = __gen_unpack_uint(cl, 56, 71); - values->clip_window_width_in_pixels = __gen_unpack_uint(cl, 40, 55); - values->clip_window_bottom_pixel_coordinate = __gen_unpack_uint(cl, 24, 39); - values->clip_window_left_pixel_coordinate = __gen_unpack_uint(cl, 8, 23); -} -#endif - - -#define V3D42_VIEWPORT_OFFSET_opcode 108 -#define V3D42_VIEWPORT_OFFSET_header \ - .opcode = 108 - -struct V3D42_VIEWPORT_OFFSET { - uint32_t opcode; - uint32_t coarse_y; - float viewport_centre_y_coordinate; - uint32_t coarse_x; - float viewport_centre_x_coordinate; -}; - -static inline void -V3D42_VIEWPORT_OFFSET_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_VIEWPORT_OFFSET * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_sfixed(values->viewport_centre_x_coordinate, 0, 21, 8); - - cl[ 2] = __gen_sfixed(values->viewport_centre_x_coordinate, 0, 21, 8) >> 8; - - cl[ 3] = __gen_uint(values->coarse_x, 6, 15) | - __gen_sfixed(values->viewport_centre_x_coordinate, 0, 21, 8) >> 16; - - cl[ 4] = __gen_uint(values->coarse_x, 6, 15) >> 8; - - cl[ 5] = __gen_sfixed(values->viewport_centre_y_coordinate, 0, 21, 8); - - cl[ 6] = __gen_sfixed(values->viewport_centre_y_coordinate, 0, 21, 8) >> 8; - - cl[ 7] = __gen_uint(values->coarse_y, 6, 15) | - __gen_sfixed(values->viewport_centre_y_coordinate, 0, 21, 8) >> 16; - - cl[ 8] = __gen_uint(values->coarse_y, 6, 15) >> 8; - -} - -#define V3D42_VIEWPORT_OFFSET_length 9 -#ifdef __gen_unpack_address -static inline void -V3D42_VIEWPORT_OFFSET_unpack(const uint8_t * restrict cl, - struct V3D42_VIEWPORT_OFFSET * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->coarse_y = __gen_unpack_uint(cl, 62, 71); - values->viewport_centre_y_coordinate = __gen_unpack_sfixed(cl, 40, 61, 8); - values->coarse_x = __gen_unpack_uint(cl, 30, 39); - values->viewport_centre_x_coordinate = __gen_unpack_sfixed(cl, 8, 29, 8); -} -#endif - - -#define V3D42_CLIPPER_Z_MIN_MAX_CLIPPING_PLANES_opcode 109 -#define V3D42_CLIPPER_Z_MIN_MAX_CLIPPING_PLANES_header\ - .opcode = 109 - -struct V3D42_CLIPPER_Z_MIN_MAX_CLIPPING_PLANES { - uint32_t opcode; - float maximum_zw; - float minimum_zw; -}; - -static inline void -V3D42_CLIPPER_Z_MIN_MAX_CLIPPING_PLANES_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_CLIPPER_Z_MIN_MAX_CLIPPING_PLANES * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - - memcpy(&cl[1], &values->minimum_zw, sizeof(values->minimum_zw)); - - memcpy(&cl[5], &values->maximum_zw, sizeof(values->maximum_zw)); -} - -#define V3D42_CLIPPER_Z_MIN_MAX_CLIPPING_PLANES_length 9 -#ifdef __gen_unpack_address -static inline void -V3D42_CLIPPER_Z_MIN_MAX_CLIPPING_PLANES_unpack(const uint8_t * restrict cl, - struct V3D42_CLIPPER_Z_MIN_MAX_CLIPPING_PLANES * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->maximum_zw = __gen_unpack_float(cl, 40, 71); - values->minimum_zw = __gen_unpack_float(cl, 8, 39); -} -#endif - - -#define V3D42_CLIPPER_XY_SCALING_opcode 110 -#define V3D42_CLIPPER_XY_SCALING_header \ - .opcode = 110 - -struct V3D42_CLIPPER_XY_SCALING { - uint32_t opcode; - float viewport_half_height_in_1_256th_of_pixel; - float viewport_half_width_in_1_256th_of_pixel; -}; - -static inline void -V3D42_CLIPPER_XY_SCALING_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_CLIPPER_XY_SCALING * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - - memcpy(&cl[1], &values->viewport_half_width_in_1_256th_of_pixel, sizeof(values->viewport_half_width_in_1_256th_of_pixel)); - - memcpy(&cl[5], &values->viewport_half_height_in_1_256th_of_pixel, sizeof(values->viewport_half_height_in_1_256th_of_pixel)); -} - -#define V3D42_CLIPPER_XY_SCALING_length 9 -#ifdef __gen_unpack_address -static inline void -V3D42_CLIPPER_XY_SCALING_unpack(const uint8_t * restrict cl, - struct V3D42_CLIPPER_XY_SCALING * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->viewport_half_height_in_1_256th_of_pixel = __gen_unpack_float(cl, 40, 71); - values->viewport_half_width_in_1_256th_of_pixel = __gen_unpack_float(cl, 8, 39); -} -#endif - - -#define V3D42_CLIPPER_Z_SCALE_AND_OFFSET_opcode 111 -#define V3D42_CLIPPER_Z_SCALE_AND_OFFSET_header \ - .opcode = 111 - -struct V3D42_CLIPPER_Z_SCALE_AND_OFFSET { - uint32_t opcode; - float viewport_z_offset_zc_to_zs; - float viewport_z_scale_zc_to_zs; -}; - -static inline void -V3D42_CLIPPER_Z_SCALE_AND_OFFSET_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_CLIPPER_Z_SCALE_AND_OFFSET * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - - memcpy(&cl[1], &values->viewport_z_scale_zc_to_zs, sizeof(values->viewport_z_scale_zc_to_zs)); - - memcpy(&cl[5], &values->viewport_z_offset_zc_to_zs, sizeof(values->viewport_z_offset_zc_to_zs)); -} - -#define V3D42_CLIPPER_Z_SCALE_AND_OFFSET_length 9 -#ifdef __gen_unpack_address -static inline void -V3D42_CLIPPER_Z_SCALE_AND_OFFSET_unpack(const uint8_t * restrict cl, - struct V3D42_CLIPPER_Z_SCALE_AND_OFFSET * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->viewport_z_offset_zc_to_zs = __gen_unpack_float(cl, 40, 71); - values->viewport_z_scale_zc_to_zs = __gen_unpack_float(cl, 8, 39); -} -#endif - - -#define V3D42_NUMBER_OF_LAYERS_opcode 119 -#define V3D42_NUMBER_OF_LAYERS_header \ - .opcode = 119 - -struct V3D42_NUMBER_OF_LAYERS { - uint32_t opcode; - uint32_t number_of_layers; -}; - -static inline void -V3D42_NUMBER_OF_LAYERS_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_NUMBER_OF_LAYERS * restrict values) -{ - assert(values->number_of_layers >= 1); - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->number_of_layers - 1, 0, 7); - -} - -#define V3D42_NUMBER_OF_LAYERS_length 2 -#ifdef __gen_unpack_address -static inline void -V3D42_NUMBER_OF_LAYERS_unpack(const uint8_t * restrict cl, - struct V3D42_NUMBER_OF_LAYERS * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->number_of_layers = __gen_unpack_uint(cl, 8, 15) + 1; -} -#endif - - -#define V3D42_TILE_BINNING_MODE_CFG_opcode 120 -#define V3D42_TILE_BINNING_MODE_CFG_header \ - .opcode = 120 - -struct V3D42_TILE_BINNING_MODE_CFG { - uint32_t opcode; - uint32_t height_in_pixels; - uint32_t width_in_pixels; - bool double_buffer_in_non_ms_mode; - bool multisample_mode_4x; - uint32_t maximum_bpp_of_all_render_targets; -#define RENDER_TARGET_MAXIMUM_32BPP 0 -#define RENDER_TARGET_MAXIMUM_64BPP 1 -#define RENDER_TARGET_MAXIMUM_128BPP 2 - uint32_t number_of_render_targets; - uint32_t tile_allocation_block_size; -#define TILE_ALLOCATION_BLOCK_SIZE_64B 0 -#define TILE_ALLOCATION_BLOCK_SIZE_128B 1 -#define TILE_ALLOCATION_BLOCK_SIZE_256B 2 - uint32_t tile_allocation_initial_block_size; -#define TILE_ALLOCATION_INITIAL_BLOCK_SIZE_64B 0 -#define TILE_ALLOCATION_INITIAL_BLOCK_SIZE_128B 1 -#define TILE_ALLOCATION_INITIAL_BLOCK_SIZE_256B 2 -}; - -static inline void -V3D42_TILE_BINNING_MODE_CFG_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_TILE_BINNING_MODE_CFG * restrict values) -{ - assert(values->height_in_pixels >= 1); - assert(values->width_in_pixels >= 1); - assert(values->number_of_render_targets >= 1); - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->tile_allocation_block_size, 4, 5) | - __gen_uint(values->tile_allocation_initial_block_size, 2, 3); - - cl[ 2] = __gen_uint(values->double_buffer_in_non_ms_mode, 7, 7) | - __gen_uint(values->multisample_mode_4x, 6, 6) | - __gen_uint(values->maximum_bpp_of_all_render_targets, 4, 5) | - __gen_uint(values->number_of_render_targets - 1, 0, 3); - - cl[ 3] = 0; - cl[ 4] = 0; - cl[ 5] = __gen_uint(values->width_in_pixels - 1, 0, 11); - - cl[ 6] = __gen_uint(values->width_in_pixels - 1, 0, 11) >> 8; - - cl[ 7] = __gen_uint(values->height_in_pixels - 1, 0, 11); - - cl[ 8] = __gen_uint(values->height_in_pixels - 1, 0, 11) >> 8; - -} - -#define V3D42_TILE_BINNING_MODE_CFG_length 9 -#ifdef __gen_unpack_address -static inline void -V3D42_TILE_BINNING_MODE_CFG_unpack(const uint8_t * restrict cl, - struct V3D42_TILE_BINNING_MODE_CFG * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->height_in_pixels = __gen_unpack_uint(cl, 56, 67) + 1; - values->width_in_pixels = __gen_unpack_uint(cl, 40, 51) + 1; - values->double_buffer_in_non_ms_mode = __gen_unpack_uint(cl, 23, 23); - values->multisample_mode_4x = __gen_unpack_uint(cl, 22, 22); - values->maximum_bpp_of_all_render_targets = __gen_unpack_uint(cl, 20, 21); - values->number_of_render_targets = __gen_unpack_uint(cl, 16, 19) + 1; - values->tile_allocation_block_size = __gen_unpack_uint(cl, 12, 13); - values->tile_allocation_initial_block_size = __gen_unpack_uint(cl, 10, 11); -} -#endif - - -#define V3D42_TILE_RENDERING_MODE_CFG_COMMON_opcode 121 -#define V3D42_TILE_RENDERING_MODE_CFG_COMMON_header\ - .opcode = 121, \ - .sub_id = 0 - -struct V3D42_TILE_RENDERING_MODE_CFG_COMMON { - uint32_t opcode; - uint32_t pad; - bool early_depth_stencil_clear; - enum V3D42_Internal_Depth_Type internal_depth_type; - bool early_z_disable; - uint32_t early_z_test_and_update_direction; -#define EARLY_Z_DIRECTION_LT_LE 0 -#define EARLY_Z_DIRECTION_GT_GE 1 - bool double_buffer_in_non_ms_mode; - bool multisample_mode_4x; - enum V3D42_Internal_BPP maximum_bpp_of_all_render_targets; - uint32_t image_height_pixels; - uint32_t image_width_pixels; - uint32_t number_of_render_targets; - uint32_t sub_id; -}; - -static inline void -V3D42_TILE_RENDERING_MODE_CFG_COMMON_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_TILE_RENDERING_MODE_CFG_COMMON * restrict values) -{ - assert(values->number_of_render_targets >= 1); - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->number_of_render_targets - 1, 4, 7) | - __gen_uint(values->sub_id, 0, 3); - - cl[ 2] = __gen_uint(values->image_width_pixels, 0, 15); - - cl[ 3] = __gen_uint(values->image_width_pixels, 0, 15) >> 8; - - cl[ 4] = __gen_uint(values->image_height_pixels, 0, 15); - - cl[ 5] = __gen_uint(values->image_height_pixels, 0, 15) >> 8; - - cl[ 6] = __gen_uint(values->internal_depth_type, 7, 10) | - __gen_uint(values->early_z_disable, 6, 6) | - __gen_uint(values->early_z_test_and_update_direction, 5, 5) | - __gen_uint(values->double_buffer_in_non_ms_mode, 3, 3) | - __gen_uint(values->multisample_mode_4x, 2, 2) | - __gen_uint(values->maximum_bpp_of_all_render_targets, 0, 1); - - cl[ 7] = __gen_uint(values->pad, 4, 15) | - __gen_uint(values->early_depth_stencil_clear, 3, 3) | - __gen_uint(values->internal_depth_type, 7, 10) >> 8; - - cl[ 8] = __gen_uint(values->pad, 4, 15) >> 8; - -} - -#define V3D42_TILE_RENDERING_MODE_CFG_COMMON_length 9 -#ifdef __gen_unpack_address -static inline void -V3D42_TILE_RENDERING_MODE_CFG_COMMON_unpack(const uint8_t * restrict cl, - struct V3D42_TILE_RENDERING_MODE_CFG_COMMON * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->pad = __gen_unpack_uint(cl, 60, 71); - values->early_depth_stencil_clear = __gen_unpack_uint(cl, 59, 59); - values->internal_depth_type = __gen_unpack_uint(cl, 55, 58); - values->early_z_disable = __gen_unpack_uint(cl, 54, 54); - values->early_z_test_and_update_direction = __gen_unpack_uint(cl, 53, 53); - values->double_buffer_in_non_ms_mode = __gen_unpack_uint(cl, 51, 51); - values->multisample_mode_4x = __gen_unpack_uint(cl, 50, 50); - values->maximum_bpp_of_all_render_targets = __gen_unpack_uint(cl, 48, 49); - values->image_height_pixels = __gen_unpack_uint(cl, 32, 47); - values->image_width_pixels = __gen_unpack_uint(cl, 16, 31); - values->number_of_render_targets = __gen_unpack_uint(cl, 12, 15) + 1; - values->sub_id = __gen_unpack_uint(cl, 8, 11); -} -#endif - - -#define V3D42_TILE_RENDERING_MODE_CFG_COLOR_opcode 121 -#define V3D42_TILE_RENDERING_MODE_CFG_COLOR_header\ - .opcode = 121, \ - .sub_id = 1 - -struct V3D42_TILE_RENDERING_MODE_CFG_COLOR { - uint32_t opcode; - uint32_t pad; - enum V3D42_Render_Target_Clamp render_target_3_clamp; - enum V3D42_Internal_Type render_target_3_internal_type; - enum V3D42_Internal_BPP render_target_3_internal_bpp; - enum V3D42_Render_Target_Clamp render_target_2_clamp; - enum V3D42_Internal_Type render_target_2_internal_type; - enum V3D42_Internal_BPP render_target_2_internal_bpp; - enum V3D42_Render_Target_Clamp render_target_1_clamp; - enum V3D42_Internal_Type render_target_1_internal_type; - enum V3D42_Internal_BPP render_target_1_internal_bpp; - enum V3D42_Render_Target_Clamp render_target_0_clamp; - enum V3D42_Internal_Type render_target_0_internal_type; - enum V3D42_Internal_BPP render_target_0_internal_bpp; - uint32_t sub_id; -}; - -static inline void -V3D42_TILE_RENDERING_MODE_CFG_COLOR_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_TILE_RENDERING_MODE_CFG_COLOR * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->render_target_0_internal_type, 6, 9) | - __gen_uint(values->render_target_0_internal_bpp, 4, 5) | - __gen_uint(values->sub_id, 0, 3); - - cl[ 2] = __gen_uint(values->render_target_1_internal_type, 6, 9) | - __gen_uint(values->render_target_1_internal_bpp, 4, 5) | - __gen_uint(values->render_target_0_clamp, 2, 3) | - __gen_uint(values->render_target_0_internal_type, 6, 9) >> 8; - - cl[ 3] = __gen_uint(values->render_target_2_internal_type, 6, 9) | - __gen_uint(values->render_target_2_internal_bpp, 4, 5) | - __gen_uint(values->render_target_1_clamp, 2, 3) | - __gen_uint(values->render_target_1_internal_type, 6, 9) >> 8; - - cl[ 4] = __gen_uint(values->render_target_3_internal_type, 6, 9) | - __gen_uint(values->render_target_3_internal_bpp, 4, 5) | - __gen_uint(values->render_target_2_clamp, 2, 3) | - __gen_uint(values->render_target_2_internal_type, 6, 9) >> 8; - - cl[ 5] = __gen_uint(values->pad, 2, 29) | - __gen_uint(values->render_target_3_clamp, 0, 1) | - __gen_uint(values->render_target_3_internal_type, 6, 9) >> 8; - - cl[ 6] = __gen_uint(values->pad, 2, 29) >> 8; - - cl[ 7] = __gen_uint(values->pad, 2, 29) >> 16; - - cl[ 8] = __gen_uint(values->pad, 2, 29) >> 24; - -} - -#define V3D42_TILE_RENDERING_MODE_CFG_COLOR_length 9 -#ifdef __gen_unpack_address -static inline void -V3D42_TILE_RENDERING_MODE_CFG_COLOR_unpack(const uint8_t * restrict cl, - struct V3D42_TILE_RENDERING_MODE_CFG_COLOR * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->pad = __gen_unpack_uint(cl, 42, 69); - values->render_target_3_clamp = __gen_unpack_uint(cl, 40, 41); - values->render_target_3_internal_type = __gen_unpack_uint(cl, 38, 41); - values->render_target_3_internal_bpp = __gen_unpack_uint(cl, 36, 37); - values->render_target_2_clamp = __gen_unpack_uint(cl, 34, 35); - values->render_target_2_internal_type = __gen_unpack_uint(cl, 30, 33); - values->render_target_2_internal_bpp = __gen_unpack_uint(cl, 28, 29); - values->render_target_1_clamp = __gen_unpack_uint(cl, 26, 27); - values->render_target_1_internal_type = __gen_unpack_uint(cl, 22, 25); - values->render_target_1_internal_bpp = __gen_unpack_uint(cl, 20, 21); - values->render_target_0_clamp = __gen_unpack_uint(cl, 18, 19); - values->render_target_0_internal_type = __gen_unpack_uint(cl, 14, 17); - values->render_target_0_internal_bpp = __gen_unpack_uint(cl, 12, 13); - values->sub_id = __gen_unpack_uint(cl, 8, 11); -} -#endif - - -#define V3D42_TILE_RENDERING_MODE_CFG_ZS_CLEAR_VALUES_opcode 121 -#define V3D42_TILE_RENDERING_MODE_CFG_ZS_CLEAR_VALUES_header\ - .opcode = 121, \ - .sub_id = 2 - -struct V3D42_TILE_RENDERING_MODE_CFG_ZS_CLEAR_VALUES { - uint32_t opcode; - uint32_t unused; - float z_clear_value; - uint32_t stencil_clear_value; - uint32_t sub_id; -}; - -static inline void -V3D42_TILE_RENDERING_MODE_CFG_ZS_CLEAR_VALUES_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_TILE_RENDERING_MODE_CFG_ZS_CLEAR_VALUES * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->sub_id, 0, 3); - - cl[ 2] = __gen_uint(values->stencil_clear_value, 0, 7); - - - memcpy(&cl[3], &values->z_clear_value, sizeof(values->z_clear_value)); - cl[ 7] = __gen_uint(values->unused, 0, 15); - - cl[ 8] = __gen_uint(values->unused, 0, 15) >> 8; - -} - -#define V3D42_TILE_RENDERING_MODE_CFG_ZS_CLEAR_VALUES_length 9 -#ifdef __gen_unpack_address -static inline void -V3D42_TILE_RENDERING_MODE_CFG_ZS_CLEAR_VALUES_unpack(const uint8_t * restrict cl, - struct V3D42_TILE_RENDERING_MODE_CFG_ZS_CLEAR_VALUES * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->unused = __gen_unpack_uint(cl, 56, 71); - values->z_clear_value = __gen_unpack_float(cl, 24, 55); - values->stencil_clear_value = __gen_unpack_uint(cl, 16, 23); - values->sub_id = __gen_unpack_uint(cl, 8, 11); -} -#endif - - -#define V3D42_TILE_RENDERING_MODE_CFG_CLEAR_COLORS_PART1_opcode 121 -#define V3D42_TILE_RENDERING_MODE_CFG_CLEAR_COLORS_PART1_header\ - .opcode = 121, \ - .sub_id = 3 - -struct V3D42_TILE_RENDERING_MODE_CFG_CLEAR_COLORS_PART1 { - uint32_t opcode; - uint32_t clear_color_next_24_bits; - uint32_t clear_color_low_32_bits; - uint32_t render_target_number; - uint32_t sub_id; -}; - -static inline void -V3D42_TILE_RENDERING_MODE_CFG_CLEAR_COLORS_PART1_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_TILE_RENDERING_MODE_CFG_CLEAR_COLORS_PART1 * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->render_target_number, 4, 7) | - __gen_uint(values->sub_id, 0, 3); - - - memcpy(&cl[2], &values->clear_color_low_32_bits, sizeof(values->clear_color_low_32_bits)); - cl[ 6] = __gen_uint(values->clear_color_next_24_bits, 0, 23); - - cl[ 7] = __gen_uint(values->clear_color_next_24_bits, 0, 23) >> 8; - - cl[ 8] = __gen_uint(values->clear_color_next_24_bits, 0, 23) >> 16; - -} - -#define V3D42_TILE_RENDERING_MODE_CFG_CLEAR_COLORS_PART1_length 9 -#ifdef __gen_unpack_address -static inline void -V3D42_TILE_RENDERING_MODE_CFG_CLEAR_COLORS_PART1_unpack(const uint8_t * restrict cl, - struct V3D42_TILE_RENDERING_MODE_CFG_CLEAR_COLORS_PART1 * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->clear_color_next_24_bits = __gen_unpack_uint(cl, 48, 71); - values->clear_color_low_32_bits = __gen_unpack_uint(cl, 16, 47); - values->render_target_number = __gen_unpack_uint(cl, 12, 15); - values->sub_id = __gen_unpack_uint(cl, 8, 11); -} -#endif - - -#define V3D42_TILE_RENDERING_MODE_CFG_CLEAR_COLORS_PART2_opcode 121 -#define V3D42_TILE_RENDERING_MODE_CFG_CLEAR_COLORS_PART2_header\ - .opcode = 121, \ - .sub_id = 4 - -struct V3D42_TILE_RENDERING_MODE_CFG_CLEAR_COLORS_PART2 { - uint32_t opcode; - uint32_t clear_color_mid_high_24_bits; - uint32_t clear_color_mid_low_32_bits; - uint32_t render_target_number; - uint32_t sub_id; -}; - -static inline void -V3D42_TILE_RENDERING_MODE_CFG_CLEAR_COLORS_PART2_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_TILE_RENDERING_MODE_CFG_CLEAR_COLORS_PART2 * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->render_target_number, 4, 7) | - __gen_uint(values->sub_id, 0, 3); - - - memcpy(&cl[2], &values->clear_color_mid_low_32_bits, sizeof(values->clear_color_mid_low_32_bits)); - cl[ 6] = __gen_uint(values->clear_color_mid_high_24_bits, 0, 23); - - cl[ 7] = __gen_uint(values->clear_color_mid_high_24_bits, 0, 23) >> 8; - - cl[ 8] = __gen_uint(values->clear_color_mid_high_24_bits, 0, 23) >> 16; - -} - -#define V3D42_TILE_RENDERING_MODE_CFG_CLEAR_COLORS_PART2_length 9 -#ifdef __gen_unpack_address -static inline void -V3D42_TILE_RENDERING_MODE_CFG_CLEAR_COLORS_PART2_unpack(const uint8_t * restrict cl, - struct V3D42_TILE_RENDERING_MODE_CFG_CLEAR_COLORS_PART2 * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->clear_color_mid_high_24_bits = __gen_unpack_uint(cl, 48, 71); - values->clear_color_mid_low_32_bits = __gen_unpack_uint(cl, 16, 47); - values->render_target_number = __gen_unpack_uint(cl, 12, 15); - values->sub_id = __gen_unpack_uint(cl, 8, 11); -} -#endif - - -#define V3D42_TILE_RENDERING_MODE_CFG_CLEAR_COLORS_PART3_opcode 121 -#define V3D42_TILE_RENDERING_MODE_CFG_CLEAR_COLORS_PART3_header\ - .opcode = 121, \ - .sub_id = 5 - -struct V3D42_TILE_RENDERING_MODE_CFG_CLEAR_COLORS_PART3 { - uint32_t opcode; - uint32_t pad; - uint32_t uif_padded_height_in_uif_blocks; - uint32_t raster_row_stride_or_image_height_in_pixels; - uint32_t clear_color_high_16_bits; - uint32_t render_target_number; - uint32_t sub_id; -}; - -static inline void -V3D42_TILE_RENDERING_MODE_CFG_CLEAR_COLORS_PART3_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_TILE_RENDERING_MODE_CFG_CLEAR_COLORS_PART3 * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->render_target_number, 4, 7) | - __gen_uint(values->sub_id, 0, 3); - - cl[ 2] = __gen_uint(values->clear_color_high_16_bits, 0, 15); - - cl[ 3] = __gen_uint(values->clear_color_high_16_bits, 0, 15) >> 8; - - cl[ 4] = __gen_uint(values->raster_row_stride_or_image_height_in_pixels, 0, 15); - - cl[ 5] = __gen_uint(values->raster_row_stride_or_image_height_in_pixels, 0, 15) >> 8; - - cl[ 6] = __gen_uint(values->uif_padded_height_in_uif_blocks, 0, 12); - - cl[ 7] = __gen_uint(values->pad, 5, 15) | - __gen_uint(values->uif_padded_height_in_uif_blocks, 0, 12) >> 8; - - cl[ 8] = __gen_uint(values->pad, 5, 15) >> 8; - -} - -#define V3D42_TILE_RENDERING_MODE_CFG_CLEAR_COLORS_PART3_length 9 -#ifdef __gen_unpack_address -static inline void -V3D42_TILE_RENDERING_MODE_CFG_CLEAR_COLORS_PART3_unpack(const uint8_t * restrict cl, - struct V3D42_TILE_RENDERING_MODE_CFG_CLEAR_COLORS_PART3 * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->pad = __gen_unpack_uint(cl, 61, 71); - values->uif_padded_height_in_uif_blocks = __gen_unpack_uint(cl, 48, 60); - values->raster_row_stride_or_image_height_in_pixels = __gen_unpack_uint(cl, 32, 47); - values->clear_color_high_16_bits = __gen_unpack_uint(cl, 16, 31); - values->render_target_number = __gen_unpack_uint(cl, 12, 15); - values->sub_id = __gen_unpack_uint(cl, 8, 11); -} -#endif - - -#define V3D42_TILE_COORDINATES_opcode 124 -#define V3D42_TILE_COORDINATES_header \ - .opcode = 124 - -struct V3D42_TILE_COORDINATES { - uint32_t opcode; - uint32_t tile_row_number; - uint32_t tile_column_number; -}; - -static inline void -V3D42_TILE_COORDINATES_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_TILE_COORDINATES * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->tile_column_number, 0, 11); - - cl[ 2] = __gen_uint(values->tile_row_number, 4, 15) | - __gen_uint(values->tile_column_number, 0, 11) >> 8; - - cl[ 3] = __gen_uint(values->tile_row_number, 4, 15) >> 8; - -} - -#define V3D42_TILE_COORDINATES_length 4 -#ifdef __gen_unpack_address -static inline void -V3D42_TILE_COORDINATES_unpack(const uint8_t * restrict cl, - struct V3D42_TILE_COORDINATES * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->tile_row_number = __gen_unpack_uint(cl, 20, 31); - values->tile_column_number = __gen_unpack_uint(cl, 8, 19); -} -#endif - - -#define V3D42_MULTICORE_RENDERING_SUPERTILE_CFG_opcode 122 -#define V3D42_MULTICORE_RENDERING_SUPERTILE_CFG_header\ - .opcode = 122 - -struct V3D42_MULTICORE_RENDERING_SUPERTILE_CFG { - uint32_t opcode; - uint32_t number_of_bin_tile_lists; - bool supertile_raster_order; - bool multicore_enable; - uint32_t total_frame_height_in_tiles; - uint32_t total_frame_width_in_tiles; - uint32_t total_frame_height_in_supertiles; - uint32_t total_frame_width_in_supertiles; - uint32_t supertile_height_in_tiles; - uint32_t supertile_width_in_tiles; -}; - -static inline void -V3D42_MULTICORE_RENDERING_SUPERTILE_CFG_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_MULTICORE_RENDERING_SUPERTILE_CFG * restrict values) -{ - assert(values->number_of_bin_tile_lists >= 1); - assert(values->supertile_height_in_tiles >= 1); - assert(values->supertile_width_in_tiles >= 1); - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->supertile_width_in_tiles - 1, 0, 7); - - cl[ 2] = __gen_uint(values->supertile_height_in_tiles - 1, 0, 7); - - cl[ 3] = __gen_uint(values->total_frame_width_in_supertiles, 0, 7); - - cl[ 4] = __gen_uint(values->total_frame_height_in_supertiles, 0, 7); - - cl[ 5] = __gen_uint(values->total_frame_width_in_tiles, 0, 11); - - cl[ 6] = __gen_uint(values->total_frame_height_in_tiles, 4, 15) | - __gen_uint(values->total_frame_width_in_tiles, 0, 11) >> 8; - - cl[ 7] = __gen_uint(values->total_frame_height_in_tiles, 4, 15) >> 8; - - cl[ 8] = __gen_uint(values->number_of_bin_tile_lists - 1, 5, 7) | - __gen_uint(values->supertile_raster_order, 4, 4) | - __gen_uint(values->multicore_enable, 0, 0); - -} - -#define V3D42_MULTICORE_RENDERING_SUPERTILE_CFG_length 9 -#ifdef __gen_unpack_address -static inline void -V3D42_MULTICORE_RENDERING_SUPERTILE_CFG_unpack(const uint8_t * restrict cl, - struct V3D42_MULTICORE_RENDERING_SUPERTILE_CFG * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->number_of_bin_tile_lists = __gen_unpack_uint(cl, 69, 71) + 1; - values->supertile_raster_order = __gen_unpack_uint(cl, 68, 68); - values->multicore_enable = __gen_unpack_uint(cl, 64, 64); - values->total_frame_height_in_tiles = __gen_unpack_uint(cl, 52, 63); - values->total_frame_width_in_tiles = __gen_unpack_uint(cl, 40, 51); - values->total_frame_height_in_supertiles = __gen_unpack_uint(cl, 32, 39); - values->total_frame_width_in_supertiles = __gen_unpack_uint(cl, 24, 31); - values->supertile_height_in_tiles = __gen_unpack_uint(cl, 16, 23) + 1; - values->supertile_width_in_tiles = __gen_unpack_uint(cl, 8, 15) + 1; -} -#endif - - -#define V3D42_MULTICORE_RENDERING_TILE_LIST_SET_BASE_opcode 123 -#define V3D42_MULTICORE_RENDERING_TILE_LIST_SET_BASE_header\ - .opcode = 123 - -struct V3D42_MULTICORE_RENDERING_TILE_LIST_SET_BASE { - uint32_t opcode; - __gen_address_type address; - uint32_t tile_list_set_number; -}; - -static inline void -V3D42_MULTICORE_RENDERING_TILE_LIST_SET_BASE_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_MULTICORE_RENDERING_TILE_LIST_SET_BASE * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - __gen_emit_reloc(data, &values->address); - cl[ 1] = __gen_address_offset(&values->address) | - __gen_uint(values->tile_list_set_number, 0, 3); - - cl[ 2] = __gen_address_offset(&values->address) >> 8; - - cl[ 3] = __gen_address_offset(&values->address) >> 16; - - cl[ 4] = __gen_address_offset(&values->address) >> 24; - -} - -#define V3D42_MULTICORE_RENDERING_TILE_LIST_SET_BASE_length 5 -#ifdef __gen_unpack_address -static inline void -V3D42_MULTICORE_RENDERING_TILE_LIST_SET_BASE_unpack(const uint8_t * restrict cl, - struct V3D42_MULTICORE_RENDERING_TILE_LIST_SET_BASE * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->address = __gen_unpack_address(cl, 14, 39); - values->tile_list_set_number = __gen_unpack_uint(cl, 8, 11); -} -#endif - - -#define V3D42_TILE_COORDINATES_IMPLICIT_opcode 125 -#define V3D42_TILE_COORDINATES_IMPLICIT_header \ - .opcode = 125 - -struct V3D42_TILE_COORDINATES_IMPLICIT { - uint32_t opcode; -}; - -static inline void -V3D42_TILE_COORDINATES_IMPLICIT_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_TILE_COORDINATES_IMPLICIT * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - -} - -#define V3D42_TILE_COORDINATES_IMPLICIT_length 1 -#ifdef __gen_unpack_address -static inline void -V3D42_TILE_COORDINATES_IMPLICIT_unpack(const uint8_t * restrict cl, - struct V3D42_TILE_COORDINATES_IMPLICIT * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); -} -#endif - - -#define V3D42_TILE_LIST_INITIAL_BLOCK_SIZE_opcode 126 -#define V3D42_TILE_LIST_INITIAL_BLOCK_SIZE_header\ - .opcode = 126 - -struct V3D42_TILE_LIST_INITIAL_BLOCK_SIZE { - uint32_t opcode; - bool use_auto_chained_tile_lists; - uint32_t size_of_first_block_in_chained_tile_lists; -#define TILE_ALLOCATION_BLOCK_SIZE_64B 0 -#define TILE_ALLOCATION_BLOCK_SIZE_128B 1 -#define TILE_ALLOCATION_BLOCK_SIZE_256B 2 -}; - -static inline void -V3D42_TILE_LIST_INITIAL_BLOCK_SIZE_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_TILE_LIST_INITIAL_BLOCK_SIZE * restrict values) -{ - cl[ 0] = __gen_uint(values->opcode, 0, 7); - - cl[ 1] = __gen_uint(values->use_auto_chained_tile_lists, 2, 2) | - __gen_uint(values->size_of_first_block_in_chained_tile_lists, 0, 1); - -} - -#define V3D42_TILE_LIST_INITIAL_BLOCK_SIZE_length 2 -#ifdef __gen_unpack_address -static inline void -V3D42_TILE_LIST_INITIAL_BLOCK_SIZE_unpack(const uint8_t * restrict cl, - struct V3D42_TILE_LIST_INITIAL_BLOCK_SIZE * restrict values) -{ - values->opcode = __gen_unpack_uint(cl, 0, 7); - values->use_auto_chained_tile_lists = __gen_unpack_uint(cl, 10, 10); - values->size_of_first_block_in_chained_tile_lists = __gen_unpack_uint(cl, 8, 9); -} -#endif - - -#define V3D42_GL_SHADER_STATE_RECORD_header \ - - -struct V3D42_GL_SHADER_STATE_RECORD { - bool point_size_in_shaded_vertex_data; - bool enable_clipping; - bool vertex_id_read_by_coordinate_shader; - bool instance_id_read_by_coordinate_shader; - bool base_instance_id_read_by_coordinate_shader; - bool vertex_id_read_by_vertex_shader; - bool instance_id_read_by_vertex_shader; - bool base_instance_id_read_by_vertex_shader; - bool fragment_shader_does_z_writes; - bool turn_off_early_z_test; - bool coordinate_shader_has_separate_input_and_output_vpm_blocks; - bool vertex_shader_has_separate_input_and_output_vpm_blocks; - bool fragment_shader_uses_real_pixel_centre_w_in_addition_to_centroid_w2; - bool enable_sample_rate_shading; - bool any_shader_reads_hardware_written_primitive_id; - bool insert_primitive_id_as_first_varying_to_fragment_shader; - bool turn_off_scoreboard; - bool do_scoreboard_wait_on_first_thread_switch; - bool disable_implicit_point_line_varyings; - bool no_prim_pack; - uint32_t number_of_varyings_in_fragment_shader; - uint32_t coordinate_shader_output_vpm_segment_size; - uint32_t min_coord_shader_output_segments_required_in_play_in_addition_to_vcm_cache_size; - uint32_t coordinate_shader_input_vpm_segment_size; - uint32_t min_coord_shader_input_segments_required_in_play; - uint32_t vertex_shader_output_vpm_segment_size; - uint32_t min_vertex_shader_output_segments_required_in_play_in_addition_to_vcm_cache_size; - uint32_t vertex_shader_input_vpm_segment_size; - uint32_t min_vertex_shader_input_segments_required_in_play; - __gen_address_type address_of_default_attribute_values; - __gen_address_type fragment_shader_code_address; - bool fragment_shader_4_way_threadable; - bool fragment_shader_start_in_final_thread_section; - bool fragment_shader_propagate_nans; - __gen_address_type fragment_shader_uniforms_address; - __gen_address_type vertex_shader_code_address; - bool vertex_shader_4_way_threadable; - bool vertex_shader_start_in_final_thread_section; - bool vertex_shader_propagate_nans; - __gen_address_type vertex_shader_uniforms_address; - __gen_address_type coordinate_shader_code_address; - bool coordinate_shader_4_way_threadable; - bool coordinate_shader_start_in_final_thread_section; - bool coordinate_shader_propagate_nans; - __gen_address_type coordinate_shader_uniforms_address; -}; - -static inline void -V3D42_GL_SHADER_STATE_RECORD_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_GL_SHADER_STATE_RECORD * restrict values) -{ - assert(values->min_coord_shader_input_segments_required_in_play >= 1); - assert(values->min_vertex_shader_input_segments_required_in_play >= 1); - cl[ 0] = __gen_uint(values->point_size_in_shaded_vertex_data, 0, 0) | - __gen_uint(values->enable_clipping, 1, 1) | - __gen_uint(values->vertex_id_read_by_coordinate_shader, 2, 2) | - __gen_uint(values->instance_id_read_by_coordinate_shader, 3, 3) | - __gen_uint(values->base_instance_id_read_by_coordinate_shader, 4, 4) | - __gen_uint(values->vertex_id_read_by_vertex_shader, 5, 5) | - __gen_uint(values->instance_id_read_by_vertex_shader, 6, 6) | - __gen_uint(values->base_instance_id_read_by_vertex_shader, 7, 7); - - cl[ 1] = __gen_uint(values->fragment_shader_does_z_writes, 0, 0) | - __gen_uint(values->turn_off_early_z_test, 1, 1) | - __gen_uint(values->coordinate_shader_has_separate_input_and_output_vpm_blocks, 2, 2) | - __gen_uint(values->vertex_shader_has_separate_input_and_output_vpm_blocks, 3, 3) | - __gen_uint(values->fragment_shader_uses_real_pixel_centre_w_in_addition_to_centroid_w2, 4, 4) | - __gen_uint(values->enable_sample_rate_shading, 5, 5) | - __gen_uint(values->any_shader_reads_hardware_written_primitive_id, 6, 6) | - __gen_uint(values->insert_primitive_id_as_first_varying_to_fragment_shader, 7, 7); - - cl[ 2] = __gen_uint(values->turn_off_scoreboard, 0, 0) | - __gen_uint(values->do_scoreboard_wait_on_first_thread_switch, 1, 1) | - __gen_uint(values->disable_implicit_point_line_varyings, 2, 2) | - __gen_uint(values->no_prim_pack, 3, 3); - - cl[ 3] = __gen_uint(values->number_of_varyings_in_fragment_shader, 0, 7); - - cl[ 4] = __gen_uint(values->coordinate_shader_output_vpm_segment_size, 0, 3) | - __gen_uint(values->min_coord_shader_output_segments_required_in_play_in_addition_to_vcm_cache_size, 4, 7); - - cl[ 5] = __gen_uint(values->coordinate_shader_input_vpm_segment_size, 0, 3) | - __gen_uint(values->min_coord_shader_input_segments_required_in_play - 1, 4, 7); - - cl[ 6] = __gen_uint(values->vertex_shader_output_vpm_segment_size, 0, 3) | - __gen_uint(values->min_vertex_shader_output_segments_required_in_play_in_addition_to_vcm_cache_size, 4, 7); - - cl[ 7] = __gen_uint(values->vertex_shader_input_vpm_segment_size, 0, 3) | - __gen_uint(values->min_vertex_shader_input_segments_required_in_play - 1, 4, 7); - - __gen_emit_reloc(data, &values->address_of_default_attribute_values); - cl[ 8] = __gen_address_offset(&values->address_of_default_attribute_values); - - cl[ 9] = __gen_address_offset(&values->address_of_default_attribute_values) >> 8; - - cl[10] = __gen_address_offset(&values->address_of_default_attribute_values) >> 16; - - cl[11] = __gen_address_offset(&values->address_of_default_attribute_values) >> 24; - - __gen_emit_reloc(data, &values->fragment_shader_code_address); - cl[12] = __gen_address_offset(&values->fragment_shader_code_address) | - __gen_uint(values->fragment_shader_4_way_threadable, 0, 0) | - __gen_uint(values->fragment_shader_start_in_final_thread_section, 1, 1) | - __gen_uint(values->fragment_shader_propagate_nans, 2, 2); - - cl[13] = __gen_address_offset(&values->fragment_shader_code_address) >> 8; - - cl[14] = __gen_address_offset(&values->fragment_shader_code_address) >> 16; - - cl[15] = __gen_address_offset(&values->fragment_shader_code_address) >> 24; - - __gen_emit_reloc(data, &values->fragment_shader_uniforms_address); - cl[16] = __gen_address_offset(&values->fragment_shader_uniforms_address); - - cl[17] = __gen_address_offset(&values->fragment_shader_uniforms_address) >> 8; - - cl[18] = __gen_address_offset(&values->fragment_shader_uniforms_address) >> 16; - - cl[19] = __gen_address_offset(&values->fragment_shader_uniforms_address) >> 24; - - __gen_emit_reloc(data, &values->vertex_shader_code_address); - cl[20] = __gen_address_offset(&values->vertex_shader_code_address) | - __gen_uint(values->vertex_shader_4_way_threadable, 0, 0) | - __gen_uint(values->vertex_shader_start_in_final_thread_section, 1, 1) | - __gen_uint(values->vertex_shader_propagate_nans, 2, 2); - - cl[21] = __gen_address_offset(&values->vertex_shader_code_address) >> 8; - - cl[22] = __gen_address_offset(&values->vertex_shader_code_address) >> 16; - - cl[23] = __gen_address_offset(&values->vertex_shader_code_address) >> 24; - - __gen_emit_reloc(data, &values->vertex_shader_uniforms_address); - cl[24] = __gen_address_offset(&values->vertex_shader_uniforms_address); - - cl[25] = __gen_address_offset(&values->vertex_shader_uniforms_address) >> 8; - - cl[26] = __gen_address_offset(&values->vertex_shader_uniforms_address) >> 16; - - cl[27] = __gen_address_offset(&values->vertex_shader_uniforms_address) >> 24; - - __gen_emit_reloc(data, &values->coordinate_shader_code_address); - cl[28] = __gen_address_offset(&values->coordinate_shader_code_address) | - __gen_uint(values->coordinate_shader_4_way_threadable, 0, 0) | - __gen_uint(values->coordinate_shader_start_in_final_thread_section, 1, 1) | - __gen_uint(values->coordinate_shader_propagate_nans, 2, 2); - - cl[29] = __gen_address_offset(&values->coordinate_shader_code_address) >> 8; - - cl[30] = __gen_address_offset(&values->coordinate_shader_code_address) >> 16; - - cl[31] = __gen_address_offset(&values->coordinate_shader_code_address) >> 24; - - __gen_emit_reloc(data, &values->coordinate_shader_uniforms_address); - cl[32] = __gen_address_offset(&values->coordinate_shader_uniforms_address); - - cl[33] = __gen_address_offset(&values->coordinate_shader_uniforms_address) >> 8; - - cl[34] = __gen_address_offset(&values->coordinate_shader_uniforms_address) >> 16; - - cl[35] = __gen_address_offset(&values->coordinate_shader_uniforms_address) >> 24; - -} - -#define V3D42_GL_SHADER_STATE_RECORD_length 36 -#ifdef __gen_unpack_address -static inline void -V3D42_GL_SHADER_STATE_RECORD_unpack(const uint8_t * restrict cl, - struct V3D42_GL_SHADER_STATE_RECORD * restrict values) -{ - values->point_size_in_shaded_vertex_data = __gen_unpack_uint(cl, 0, 0); - values->enable_clipping = __gen_unpack_uint(cl, 1, 1); - values->vertex_id_read_by_coordinate_shader = __gen_unpack_uint(cl, 2, 2); - values->instance_id_read_by_coordinate_shader = __gen_unpack_uint(cl, 3, 3); - values->base_instance_id_read_by_coordinate_shader = __gen_unpack_uint(cl, 4, 4); - values->vertex_id_read_by_vertex_shader = __gen_unpack_uint(cl, 5, 5); - values->instance_id_read_by_vertex_shader = __gen_unpack_uint(cl, 6, 6); - values->base_instance_id_read_by_vertex_shader = __gen_unpack_uint(cl, 7, 7); - values->fragment_shader_does_z_writes = __gen_unpack_uint(cl, 8, 8); - values->turn_off_early_z_test = __gen_unpack_uint(cl, 9, 9); - values->coordinate_shader_has_separate_input_and_output_vpm_blocks = __gen_unpack_uint(cl, 10, 10); - values->vertex_shader_has_separate_input_and_output_vpm_blocks = __gen_unpack_uint(cl, 11, 11); - values->fragment_shader_uses_real_pixel_centre_w_in_addition_to_centroid_w2 = __gen_unpack_uint(cl, 12, 12); - values->enable_sample_rate_shading = __gen_unpack_uint(cl, 13, 13); - values->any_shader_reads_hardware_written_primitive_id = __gen_unpack_uint(cl, 14, 14); - values->insert_primitive_id_as_first_varying_to_fragment_shader = __gen_unpack_uint(cl, 15, 15); - values->turn_off_scoreboard = __gen_unpack_uint(cl, 16, 16); - values->do_scoreboard_wait_on_first_thread_switch = __gen_unpack_uint(cl, 17, 17); - values->disable_implicit_point_line_varyings = __gen_unpack_uint(cl, 18, 18); - values->no_prim_pack = __gen_unpack_uint(cl, 19, 19); - values->number_of_varyings_in_fragment_shader = __gen_unpack_uint(cl, 24, 31); - values->coordinate_shader_output_vpm_segment_size = __gen_unpack_uint(cl, 32, 35); - values->min_coord_shader_output_segments_required_in_play_in_addition_to_vcm_cache_size = __gen_unpack_uint(cl, 36, 39); - values->coordinate_shader_input_vpm_segment_size = __gen_unpack_uint(cl, 40, 43); - values->min_coord_shader_input_segments_required_in_play = __gen_unpack_uint(cl, 44, 47) + 1; - values->vertex_shader_output_vpm_segment_size = __gen_unpack_uint(cl, 48, 51); - values->min_vertex_shader_output_segments_required_in_play_in_addition_to_vcm_cache_size = __gen_unpack_uint(cl, 52, 55); - values->vertex_shader_input_vpm_segment_size = __gen_unpack_uint(cl, 56, 59); - values->min_vertex_shader_input_segments_required_in_play = __gen_unpack_uint(cl, 60, 63) + 1; - values->address_of_default_attribute_values = __gen_unpack_address(cl, 64, 95); - values->fragment_shader_code_address = __gen_unpack_address(cl, 99, 127); - values->fragment_shader_4_way_threadable = __gen_unpack_uint(cl, 96, 96); - values->fragment_shader_start_in_final_thread_section = __gen_unpack_uint(cl, 97, 97); - values->fragment_shader_propagate_nans = __gen_unpack_uint(cl, 98, 98); - values->fragment_shader_uniforms_address = __gen_unpack_address(cl, 128, 159); - values->vertex_shader_code_address = __gen_unpack_address(cl, 163, 191); - values->vertex_shader_4_way_threadable = __gen_unpack_uint(cl, 160, 160); - values->vertex_shader_start_in_final_thread_section = __gen_unpack_uint(cl, 161, 161); - values->vertex_shader_propagate_nans = __gen_unpack_uint(cl, 162, 162); - values->vertex_shader_uniforms_address = __gen_unpack_address(cl, 192, 223); - values->coordinate_shader_code_address = __gen_unpack_address(cl, 227, 255); - values->coordinate_shader_4_way_threadable = __gen_unpack_uint(cl, 224, 224); - values->coordinate_shader_start_in_final_thread_section = __gen_unpack_uint(cl, 225, 225); - values->coordinate_shader_propagate_nans = __gen_unpack_uint(cl, 226, 226); - values->coordinate_shader_uniforms_address = __gen_unpack_address(cl, 256, 287); -} -#endif - - -#define V3D42_GEOMETRY_SHADER_STATE_RECORD_header\ - - -struct V3D42_GEOMETRY_SHADER_STATE_RECORD { - __gen_address_type geometry_bin_mode_shader_code_address; - bool _4_way_threadable; - bool start_in_final_thread_section; - bool propagate_nans; - __gen_address_type geometry_bin_mode_shader_uniforms_address; - __gen_address_type geometry_render_mode_shader_code_address; - __gen_address_type geometry_render_mode_shader_uniforms_address; -}; - -static inline void -V3D42_GEOMETRY_SHADER_STATE_RECORD_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_GEOMETRY_SHADER_STATE_RECORD * restrict values) -{ - __gen_emit_reloc(data, &values->geometry_bin_mode_shader_code_address); - cl[ 0] = __gen_address_offset(&values->geometry_bin_mode_shader_code_address) | - __gen_uint(values->_4_way_threadable, 0, 0) | - __gen_uint(values->start_in_final_thread_section, 1, 1) | - __gen_uint(values->propagate_nans, 2, 2); - - cl[ 1] = __gen_address_offset(&values->geometry_bin_mode_shader_code_address) >> 8; - - cl[ 2] = __gen_address_offset(&values->geometry_bin_mode_shader_code_address) >> 16; - - cl[ 3] = __gen_address_offset(&values->geometry_bin_mode_shader_code_address) >> 24; - - __gen_emit_reloc(data, &values->geometry_bin_mode_shader_uniforms_address); - cl[ 4] = __gen_address_offset(&values->geometry_bin_mode_shader_uniforms_address); - - cl[ 5] = __gen_address_offset(&values->geometry_bin_mode_shader_uniforms_address) >> 8; - - cl[ 6] = __gen_address_offset(&values->geometry_bin_mode_shader_uniforms_address) >> 16; - - cl[ 7] = __gen_address_offset(&values->geometry_bin_mode_shader_uniforms_address) >> 24; - - __gen_emit_reloc(data, &values->geometry_render_mode_shader_code_address); - cl[ 8] = __gen_address_offset(&values->geometry_render_mode_shader_code_address); - - cl[ 9] = __gen_address_offset(&values->geometry_render_mode_shader_code_address) >> 8; - - cl[10] = __gen_address_offset(&values->geometry_render_mode_shader_code_address) >> 16; - - cl[11] = __gen_address_offset(&values->geometry_render_mode_shader_code_address) >> 24; - - __gen_emit_reloc(data, &values->geometry_render_mode_shader_uniforms_address); - cl[12] = __gen_address_offset(&values->geometry_render_mode_shader_uniforms_address); - - cl[13] = __gen_address_offset(&values->geometry_render_mode_shader_uniforms_address) >> 8; - - cl[14] = __gen_address_offset(&values->geometry_render_mode_shader_uniforms_address) >> 16; - - cl[15] = __gen_address_offset(&values->geometry_render_mode_shader_uniforms_address) >> 24; - -} - -#define V3D42_GEOMETRY_SHADER_STATE_RECORD_length 16 -#ifdef __gen_unpack_address -static inline void -V3D42_GEOMETRY_SHADER_STATE_RECORD_unpack(const uint8_t * restrict cl, - struct V3D42_GEOMETRY_SHADER_STATE_RECORD * restrict values) -{ - values->geometry_bin_mode_shader_code_address = __gen_unpack_address(cl, 0, 31); - values->_4_way_threadable = __gen_unpack_uint(cl, 0, 0); - values->start_in_final_thread_section = __gen_unpack_uint(cl, 1, 1); - values->propagate_nans = __gen_unpack_uint(cl, 2, 2); - values->geometry_bin_mode_shader_uniforms_address = __gen_unpack_address(cl, 32, 63); - values->geometry_render_mode_shader_code_address = __gen_unpack_address(cl, 64, 95); - values->geometry_render_mode_shader_uniforms_address = __gen_unpack_address(cl, 96, 127); -} -#endif - - -#define V3D42_TESSELLATION_SHADER_STATE_RECORD_header\ - - -struct V3D42_TESSELLATION_SHADER_STATE_RECORD { - __gen_address_type tessellation_bin_mode_control_shader_code_address; - __gen_address_type tessellation_bin_mode_control_shader_uniforms_address; - __gen_address_type tessellation_render_mode_control_shader_code_address; - __gen_address_type tessellation_render_mode_control_shader_uniforms_address; - __gen_address_type tessellation_bin_mode_evaluation_shader_code_address; - __gen_address_type tessellation_bin_mode_evaluation_shader_uniforms_address; - __gen_address_type tessellation_render_mode_evaluation_shader_code_address; - __gen_address_type tessellation_render_mode_evaluation_shader_uniforms_address; -}; - -static inline void -V3D42_TESSELLATION_SHADER_STATE_RECORD_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_TESSELLATION_SHADER_STATE_RECORD * restrict values) -{ - __gen_emit_reloc(data, &values->tessellation_bin_mode_control_shader_code_address); - cl[ 0] = __gen_address_offset(&values->tessellation_bin_mode_control_shader_code_address); - - cl[ 1] = __gen_address_offset(&values->tessellation_bin_mode_control_shader_code_address) >> 8; - - cl[ 2] = __gen_address_offset(&values->tessellation_bin_mode_control_shader_code_address) >> 16; - - cl[ 3] = __gen_address_offset(&values->tessellation_bin_mode_control_shader_code_address) >> 24; - - __gen_emit_reloc(data, &values->tessellation_bin_mode_control_shader_uniforms_address); - cl[ 4] = __gen_address_offset(&values->tessellation_bin_mode_control_shader_uniforms_address); - - cl[ 5] = __gen_address_offset(&values->tessellation_bin_mode_control_shader_uniforms_address) >> 8; - - cl[ 6] = __gen_address_offset(&values->tessellation_bin_mode_control_shader_uniforms_address) >> 16; - - cl[ 7] = __gen_address_offset(&values->tessellation_bin_mode_control_shader_uniforms_address) >> 24; - - __gen_emit_reloc(data, &values->tessellation_render_mode_control_shader_code_address); - cl[ 8] = __gen_address_offset(&values->tessellation_render_mode_control_shader_code_address); - - cl[ 9] = __gen_address_offset(&values->tessellation_render_mode_control_shader_code_address) >> 8; - - cl[10] = __gen_address_offset(&values->tessellation_render_mode_control_shader_code_address) >> 16; - - cl[11] = __gen_address_offset(&values->tessellation_render_mode_control_shader_code_address) >> 24; - - __gen_emit_reloc(data, &values->tessellation_render_mode_control_shader_uniforms_address); - cl[12] = __gen_address_offset(&values->tessellation_render_mode_control_shader_uniforms_address); - - cl[13] = __gen_address_offset(&values->tessellation_render_mode_control_shader_uniforms_address) >> 8; - - cl[14] = __gen_address_offset(&values->tessellation_render_mode_control_shader_uniforms_address) >> 16; - - cl[15] = __gen_address_offset(&values->tessellation_render_mode_control_shader_uniforms_address) >> 24; - - __gen_emit_reloc(data, &values->tessellation_bin_mode_evaluation_shader_code_address); - cl[16] = __gen_address_offset(&values->tessellation_bin_mode_evaluation_shader_code_address); - - cl[17] = __gen_address_offset(&values->tessellation_bin_mode_evaluation_shader_code_address) >> 8; - - cl[18] = __gen_address_offset(&values->tessellation_bin_mode_evaluation_shader_code_address) >> 16; - - cl[19] = __gen_address_offset(&values->tessellation_bin_mode_evaluation_shader_code_address) >> 24; - - __gen_emit_reloc(data, &values->tessellation_bin_mode_evaluation_shader_uniforms_address); - cl[20] = __gen_address_offset(&values->tessellation_bin_mode_evaluation_shader_uniforms_address); - - cl[21] = __gen_address_offset(&values->tessellation_bin_mode_evaluation_shader_uniforms_address) >> 8; - - cl[22] = __gen_address_offset(&values->tessellation_bin_mode_evaluation_shader_uniforms_address) >> 16; - - cl[23] = __gen_address_offset(&values->tessellation_bin_mode_evaluation_shader_uniforms_address) >> 24; - - __gen_emit_reloc(data, &values->tessellation_render_mode_evaluation_shader_code_address); - cl[24] = __gen_address_offset(&values->tessellation_render_mode_evaluation_shader_code_address); - - cl[25] = __gen_address_offset(&values->tessellation_render_mode_evaluation_shader_code_address) >> 8; - - cl[26] = __gen_address_offset(&values->tessellation_render_mode_evaluation_shader_code_address) >> 16; - - cl[27] = __gen_address_offset(&values->tessellation_render_mode_evaluation_shader_code_address) >> 24; - - __gen_emit_reloc(data, &values->tessellation_render_mode_evaluation_shader_uniforms_address); - cl[28] = __gen_address_offset(&values->tessellation_render_mode_evaluation_shader_uniforms_address); - - cl[29] = __gen_address_offset(&values->tessellation_render_mode_evaluation_shader_uniforms_address) >> 8; - - cl[30] = __gen_address_offset(&values->tessellation_render_mode_evaluation_shader_uniforms_address) >> 16; - - cl[31] = __gen_address_offset(&values->tessellation_render_mode_evaluation_shader_uniforms_address) >> 24; - -} - -#define V3D42_TESSELLATION_SHADER_STATE_RECORD_length 32 -#ifdef __gen_unpack_address -static inline void -V3D42_TESSELLATION_SHADER_STATE_RECORD_unpack(const uint8_t * restrict cl, - struct V3D42_TESSELLATION_SHADER_STATE_RECORD * restrict values) -{ - values->tessellation_bin_mode_control_shader_code_address = __gen_unpack_address(cl, 0, 31); - values->tessellation_bin_mode_control_shader_uniforms_address = __gen_unpack_address(cl, 32, 63); - values->tessellation_render_mode_control_shader_code_address = __gen_unpack_address(cl, 64, 95); - values->tessellation_render_mode_control_shader_uniforms_address = __gen_unpack_address(cl, 96, 127); - values->tessellation_bin_mode_evaluation_shader_code_address = __gen_unpack_address(cl, 128, 159); - values->tessellation_bin_mode_evaluation_shader_uniforms_address = __gen_unpack_address(cl, 160, 191); - values->tessellation_render_mode_evaluation_shader_code_address = __gen_unpack_address(cl, 192, 223); - values->tessellation_render_mode_evaluation_shader_uniforms_address = __gen_unpack_address(cl, 224, 255); -} -#endif - - -#define V3D42_GL_SHADER_STATE_ATTRIBUTE_RECORD_header\ - - -struct V3D42_GL_SHADER_STATE_ATTRIBUTE_RECORD { - __gen_address_type address; - uint32_t vec_size; - uint32_t type; -#define ATTRIBUTE_HALF_FLOAT 1 -#define ATTRIBUTE_FLOAT 2 -#define ATTRIBUTE_FIXED 3 -#define ATTRIBUTE_BYTE 4 -#define ATTRIBUTE_SHORT 5 -#define ATTRIBUTE_INT 6 -#define ATTRIBUTE_INT2_10_10_10 7 - bool signed_int_type; - bool normalized_int_type; - bool read_as_int_uint; - uint32_t number_of_values_read_by_coordinate_shader; - uint32_t number_of_values_read_by_vertex_shader; - uint32_t instance_divisor; - uint32_t stride; - uint32_t maximum_index; -}; - -static inline void -V3D42_GL_SHADER_STATE_ATTRIBUTE_RECORD_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_GL_SHADER_STATE_ATTRIBUTE_RECORD * restrict values) -{ - __gen_emit_reloc(data, &values->address); - cl[ 0] = __gen_address_offset(&values->address); - - cl[ 1] = __gen_address_offset(&values->address) >> 8; - - cl[ 2] = __gen_address_offset(&values->address) >> 16; - - cl[ 3] = __gen_address_offset(&values->address) >> 24; - - cl[ 4] = __gen_uint(values->vec_size, 0, 1) | - __gen_uint(values->type, 2, 4) | - __gen_uint(values->signed_int_type, 5, 5) | - __gen_uint(values->normalized_int_type, 6, 6) | - __gen_uint(values->read_as_int_uint, 7, 7); - - cl[ 5] = __gen_uint(values->number_of_values_read_by_coordinate_shader, 0, 3) | - __gen_uint(values->number_of_values_read_by_vertex_shader, 4, 7); - - cl[ 6] = __gen_uint(values->instance_divisor, 0, 15); - - cl[ 7] = __gen_uint(values->instance_divisor, 0, 15) >> 8; - - - memcpy(&cl[8], &values->stride, sizeof(values->stride)); - - memcpy(&cl[12], &values->maximum_index, sizeof(values->maximum_index)); -} - -#define V3D42_GL_SHADER_STATE_ATTRIBUTE_RECORD_length 16 -#ifdef __gen_unpack_address -static inline void -V3D42_GL_SHADER_STATE_ATTRIBUTE_RECORD_unpack(const uint8_t * restrict cl, - struct V3D42_GL_SHADER_STATE_ATTRIBUTE_RECORD * restrict values) -{ - values->address = __gen_unpack_address(cl, 0, 31); - values->vec_size = __gen_unpack_uint(cl, 32, 33); - values->type = __gen_unpack_uint(cl, 34, 36); - values->signed_int_type = __gen_unpack_uint(cl, 37, 37); - values->normalized_int_type = __gen_unpack_uint(cl, 38, 38); - values->read_as_int_uint = __gen_unpack_uint(cl, 39, 39); - values->number_of_values_read_by_coordinate_shader = __gen_unpack_uint(cl, 40, 43); - values->number_of_values_read_by_vertex_shader = __gen_unpack_uint(cl, 44, 47); - values->instance_divisor = __gen_unpack_uint(cl, 48, 63); - values->stride = __gen_unpack_uint(cl, 64, 95); - values->maximum_index = __gen_unpack_uint(cl, 96, 127); -} -#endif - - -#define V3D42_VPM_GENERIC_BLOCK_WRITE_SETUP_header\ - .id = 0, \ - .id0 = 0 - -struct V3D42_VPM_GENERIC_BLOCK_WRITE_SETUP { - uint32_t id; - uint32_t id0; - bool horiz; - bool laned; - bool segs; - int32_t stride; - uint32_t size; -#define VPM_SETUP_SIZE_8_BIT 0 -#define VPM_SETUP_SIZE_16_BIT 1 -#define VPM_SETUP_SIZE_32_BIT 2 - uint32_t addr; -}; - -static inline void -V3D42_VPM_GENERIC_BLOCK_WRITE_SETUP_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_VPM_GENERIC_BLOCK_WRITE_SETUP * restrict values) -{ - cl[ 0] = __gen_uint(values->addr, 0, 12); - - cl[ 1] = __gen_sint(values->stride, 7, 13) | - __gen_uint(values->size, 5, 6) | - __gen_uint(values->addr, 0, 12) >> 8; - - cl[ 2] = __gen_uint(values->laned, 7, 7) | - __gen_uint(values->segs, 6, 6) | - __gen_sint(values->stride, 7, 13) >> 8; - - cl[ 3] = __gen_uint(values->id, 6, 7) | - __gen_uint(values->id0, 3, 5) | - __gen_uint(values->horiz, 0, 0); - -} - -#define V3D42_VPM_GENERIC_BLOCK_WRITE_SETUP_length 4 -#ifdef __gen_unpack_address -static inline void -V3D42_VPM_GENERIC_BLOCK_WRITE_SETUP_unpack(const uint8_t * restrict cl, - struct V3D42_VPM_GENERIC_BLOCK_WRITE_SETUP * restrict values) -{ - values->id = __gen_unpack_uint(cl, 30, 31); - values->id0 = __gen_unpack_uint(cl, 27, 29); - values->horiz = __gen_unpack_uint(cl, 24, 24); - values->laned = __gen_unpack_uint(cl, 23, 23); - values->segs = __gen_unpack_uint(cl, 22, 22); - values->stride = __gen_unpack_sint(cl, 15, 21); - values->size = __gen_unpack_uint(cl, 13, 14); - values->addr = __gen_unpack_uint(cl, 0, 12); -} -#endif - - -#define V3D42_VPM_GENERIC_BLOCK_READ_SETUP_header\ - .id = 1 - -struct V3D42_VPM_GENERIC_BLOCK_READ_SETUP { - uint32_t id; - bool horiz; - bool laned; - bool segs; - uint32_t num; - int32_t stride; - uint32_t size; -#define VPM_SETUP_SIZE_8_BIT 0 -#define VPM_SETUP_SIZE_16_BIT 1 -#define VPM_SETUP_SIZE_32_BIT 2 - uint32_t addr; -}; - -static inline void -V3D42_VPM_GENERIC_BLOCK_READ_SETUP_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_VPM_GENERIC_BLOCK_READ_SETUP * restrict values) -{ - cl[ 0] = __gen_uint(values->addr, 0, 12); - - cl[ 1] = __gen_sint(values->stride, 7, 13) | - __gen_uint(values->size, 5, 6) | - __gen_uint(values->addr, 0, 12) >> 8; - - cl[ 2] = __gen_uint(values->num, 6, 10) | - __gen_sint(values->stride, 7, 13) >> 8; - - cl[ 3] = __gen_uint(values->id, 6, 7) | - __gen_uint(values->horiz, 5, 5) | - __gen_uint(values->laned, 4, 4) | - __gen_uint(values->segs, 3, 3) | - __gen_uint(values->num, 6, 10) >> 8; - -} - -#define V3D42_VPM_GENERIC_BLOCK_READ_SETUP_length 4 -#ifdef __gen_unpack_address -static inline void -V3D42_VPM_GENERIC_BLOCK_READ_SETUP_unpack(const uint8_t * restrict cl, - struct V3D42_VPM_GENERIC_BLOCK_READ_SETUP * restrict values) -{ - values->id = __gen_unpack_uint(cl, 30, 31); - values->horiz = __gen_unpack_uint(cl, 29, 29); - values->laned = __gen_unpack_uint(cl, 28, 28); - values->segs = __gen_unpack_uint(cl, 27, 27); - values->num = __gen_unpack_uint(cl, 22, 26); - values->stride = __gen_unpack_sint(cl, 15, 21); - values->size = __gen_unpack_uint(cl, 13, 14); - values->addr = __gen_unpack_uint(cl, 0, 12); -} -#endif - - -#define V3D42_TMU_CONFIG_PARAMETER_0_header \ - - -struct V3D42_TMU_CONFIG_PARAMETER_0 { - __gen_address_type texture_state_address; - uint32_t return_words_of_texture_data; -}; - -static inline void -V3D42_TMU_CONFIG_PARAMETER_0_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_TMU_CONFIG_PARAMETER_0 * restrict values) -{ - __gen_emit_reloc(data, &values->texture_state_address); - cl[ 0] = __gen_address_offset(&values->texture_state_address) | - __gen_uint(values->return_words_of_texture_data, 0, 3); - - cl[ 1] = __gen_address_offset(&values->texture_state_address) >> 8; - - cl[ 2] = __gen_address_offset(&values->texture_state_address) >> 16; - - cl[ 3] = __gen_address_offset(&values->texture_state_address) >> 24; - -} - -#define V3D42_TMU_CONFIG_PARAMETER_0_length 4 -#ifdef __gen_unpack_address -static inline void -V3D42_TMU_CONFIG_PARAMETER_0_unpack(const uint8_t * restrict cl, - struct V3D42_TMU_CONFIG_PARAMETER_0 * restrict values) -{ - values->texture_state_address = __gen_unpack_address(cl, 0, 31); - values->return_words_of_texture_data = __gen_unpack_uint(cl, 0, 3); -} -#endif - - -#define V3D42_TMU_CONFIG_PARAMETER_1_header \ - - -struct V3D42_TMU_CONFIG_PARAMETER_1 { - __gen_address_type sampler_state_address; - bool per_pixel_mask_enable; - bool unnormalized_coordinates; - bool output_type_32_bit; -}; - -static inline void -V3D42_TMU_CONFIG_PARAMETER_1_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_TMU_CONFIG_PARAMETER_1 * restrict values) -{ - __gen_emit_reloc(data, &values->sampler_state_address); - cl[ 0] = __gen_address_offset(&values->sampler_state_address) | - __gen_uint(values->per_pixel_mask_enable, 2, 2) | - __gen_uint(values->unnormalized_coordinates, 1, 1) | - __gen_uint(values->output_type_32_bit, 0, 0); - - cl[ 1] = __gen_address_offset(&values->sampler_state_address) >> 8; - - cl[ 2] = __gen_address_offset(&values->sampler_state_address) >> 16; - - cl[ 3] = __gen_address_offset(&values->sampler_state_address) >> 24; - -} - -#define V3D42_TMU_CONFIG_PARAMETER_1_length 4 -#ifdef __gen_unpack_address -static inline void -V3D42_TMU_CONFIG_PARAMETER_1_unpack(const uint8_t * restrict cl, - struct V3D42_TMU_CONFIG_PARAMETER_1 * restrict values) -{ - values->sampler_state_address = __gen_unpack_address(cl, 0, 31); - values->per_pixel_mask_enable = __gen_unpack_uint(cl, 2, 2); - values->unnormalized_coordinates = __gen_unpack_uint(cl, 1, 1); - values->output_type_32_bit = __gen_unpack_uint(cl, 0, 0); -} -#endif - - -#define V3D42_TMU_CONFIG_PARAMETER_2_header \ - - -struct V3D42_TMU_CONFIG_PARAMETER_2 { - uint32_t pad; - bool lod_query; - enum V3D42_TMU_Op op; - int32_t offset_r; - int32_t offset_t; - int32_t offset_s; - bool gather_mode; - uint32_t gather_component; - bool coefficient_mode; - uint32_t sample_number; - bool disable_autolod; - bool offset_format_8; -}; - -static inline void -V3D42_TMU_CONFIG_PARAMETER_2_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_TMU_CONFIG_PARAMETER_2 * restrict values) -{ - cl[ 0] = __gen_uint(values->gather_mode, 7, 7) | - __gen_uint(values->gather_component, 5, 6) | - __gen_uint(values->coefficient_mode, 4, 4) | - __gen_uint(values->sample_number, 2, 3) | - __gen_uint(values->disable_autolod, 1, 1) | - __gen_uint(values->offset_format_8, 0, 0); - - cl[ 1] = __gen_uint(values->pad, 1, 23) | - __gen_uint(values->lod_query, 0, 0) | - __gen_sint(values->offset_t, 4, 7) | - __gen_sint(values->offset_s, 0, 3); - - cl[ 2] = __gen_uint(values->pad, 1, 23) >> 8 | - __gen_uint(values->op, 4, 7) | - __gen_sint(values->offset_r, 0, 3); - - cl[ 3] = __gen_uint(values->pad, 1, 23) >> 16; - -} - -#define V3D42_TMU_CONFIG_PARAMETER_2_length 4 -#ifdef __gen_unpack_address -static inline void -V3D42_TMU_CONFIG_PARAMETER_2_unpack(const uint8_t * restrict cl, - struct V3D42_TMU_CONFIG_PARAMETER_2 * restrict values) -{ - values->pad = __gen_unpack_uint(cl, 9, 31); - values->lod_query = __gen_unpack_uint(cl, 8, 8); - values->op = __gen_unpack_uint(cl, 20, 23); - values->offset_r = __gen_unpack_sint(cl, 16, 19); - values->offset_t = __gen_unpack_sint(cl, 12, 15); - values->offset_s = __gen_unpack_sint(cl, 8, 11); - values->gather_mode = __gen_unpack_uint(cl, 7, 7); - values->gather_component = __gen_unpack_uint(cl, 5, 6); - values->coefficient_mode = __gen_unpack_uint(cl, 4, 4); - values->sample_number = __gen_unpack_uint(cl, 2, 3); - values->disable_autolod = __gen_unpack_uint(cl, 1, 1); - values->offset_format_8 = __gen_unpack_uint(cl, 0, 0); -} -#endif - - -#define V3D42_TEXTURE_SHADER_STATE_header \ - - -struct V3D42_TEXTURE_SHADER_STATE { - uint64_t pad; - bool uif_xor_disable; - bool level_0_is_strictly_uif; - bool level_0_xor_enable; - uint32_t level_0_ub_pad; - uint32_t base_level; - uint32_t max_level; - uint32_t swizzle_a; -#define SWIZZLE_ZERO 0 -#define SWIZZLE_ONE 1 -#define SWIZZLE_RED 2 -#define SWIZZLE_GREEN 3 -#define SWIZZLE_BLUE 4 -#define SWIZZLE_ALPHA 5 - uint32_t swizzle_b; - uint32_t swizzle_g; - uint32_t swizzle_r; - bool extended; - uint32_t texture_type; - uint32_t image_depth; - uint32_t image_height; - uint32_t image_width; - uint32_t array_stride_64_byte_aligned; - __gen_address_type texture_base_pointer; - bool reverse_standard_border_color; - bool ahdr; - bool srgb; - bool flip_s_and_t_on_incoming_request; - bool flip_texture_y_axis; - bool flip_texture_x_axis; -}; - -static inline void -V3D42_TEXTURE_SHADER_STATE_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_TEXTURE_SHADER_STATE * restrict values) -{ - __gen_emit_reloc(data, &values->texture_base_pointer); - cl[ 0] = __gen_address_offset(&values->texture_base_pointer) | - __gen_uint(values->reverse_standard_border_color, 5, 5) | - __gen_uint(values->ahdr, 4, 4) | - __gen_uint(values->srgb, 3, 3) | - __gen_uint(values->flip_s_and_t_on_incoming_request, 2, 2) | - __gen_uint(values->flip_texture_y_axis, 1, 1) | - __gen_uint(values->flip_texture_x_axis, 0, 0); - - cl[ 1] = __gen_address_offset(&values->texture_base_pointer) >> 8; - - cl[ 2] = __gen_address_offset(&values->texture_base_pointer) >> 16; - - cl[ 3] = __gen_address_offset(&values->texture_base_pointer) >> 24; - - cl[ 4] = __gen_uint(values->array_stride_64_byte_aligned, 0, 25); - - cl[ 5] = __gen_uint(values->array_stride_64_byte_aligned, 0, 25) >> 8; - - cl[ 6] = __gen_uint(values->array_stride_64_byte_aligned, 0, 25) >> 16; - - cl[ 7] = __gen_uint(values->image_width, 2, 15) | - __gen_uint(values->array_stride_64_byte_aligned, 0, 25) >> 24; - - cl[ 8] = __gen_uint(values->image_width, 2, 15) >> 8; - - cl[ 9] = __gen_uint(values->image_height, 0, 13); - - cl[10] = __gen_uint(values->image_depth, 6, 19) | - __gen_uint(values->image_height, 0, 13) >> 8; - - cl[11] = __gen_uint(values->image_depth, 6, 19) >> 8; - - cl[12] = __gen_uint(values->texture_type, 4, 10) | - __gen_uint(values->image_depth, 6, 19) >> 16; - - cl[13] = __gen_uint(values->swizzle_g, 7, 9) | - __gen_uint(values->swizzle_r, 4, 6) | - __gen_uint(values->extended, 3, 3) | - __gen_uint(values->texture_type, 4, 10) >> 8; - - cl[14] = __gen_uint(values->swizzle_a, 5, 7) | - __gen_uint(values->swizzle_b, 2, 4) | - __gen_uint(values->swizzle_g, 7, 9) >> 8; - - cl[15] = __gen_uint(values->base_level, 4, 7) | - __gen_uint(values->max_level, 0, 3); - - cl[16] = __gen_uint(values->uif_xor_disable, 7, 7) | - __gen_uint(values->level_0_is_strictly_uif, 6, 6) | - __gen_uint(values->level_0_xor_enable, 4, 4) | - __gen_uint(values->level_0_ub_pad, 0, 3); - - cl[17] = __gen_uint(values->pad, 0, 55); - - cl[18] = __gen_uint(values->pad, 0, 55) >> 8; - - cl[19] = __gen_uint(values->pad, 0, 55) >> 16; - - cl[20] = __gen_uint(values->pad, 0, 55) >> 24; - - cl[21] = __gen_uint(values->pad, 0, 55) >> 32; - - cl[22] = __gen_uint(values->pad, 0, 55) >> 40; - - cl[23] = __gen_uint(values->pad, 0, 55) >> 48; - -} - -#define V3D42_TEXTURE_SHADER_STATE_length 24 -#ifdef __gen_unpack_address -static inline void -V3D42_TEXTURE_SHADER_STATE_unpack(const uint8_t * restrict cl, - struct V3D42_TEXTURE_SHADER_STATE * restrict values) -{ - values->pad = __gen_unpack_uint(cl, 136, 191); - values->uif_xor_disable = __gen_unpack_uint(cl, 135, 135); - values->level_0_is_strictly_uif = __gen_unpack_uint(cl, 134, 134); - values->level_0_xor_enable = __gen_unpack_uint(cl, 132, 132); - values->level_0_ub_pad = __gen_unpack_uint(cl, 128, 131); - values->base_level = __gen_unpack_uint(cl, 124, 127); - values->max_level = __gen_unpack_uint(cl, 120, 123); - values->swizzle_a = __gen_unpack_uint(cl, 117, 119); - values->swizzle_b = __gen_unpack_uint(cl, 114, 116); - values->swizzle_g = __gen_unpack_uint(cl, 111, 113); - values->swizzle_r = __gen_unpack_uint(cl, 108, 110); - values->extended = __gen_unpack_uint(cl, 107, 107); - values->texture_type = __gen_unpack_uint(cl, 100, 106); - values->image_depth = __gen_unpack_uint(cl, 86, 99); - values->image_height = __gen_unpack_uint(cl, 72, 85); - values->image_width = __gen_unpack_uint(cl, 58, 71); - values->array_stride_64_byte_aligned = __gen_unpack_uint(cl, 32, 57); - values->texture_base_pointer = __gen_unpack_address(cl, 0, 31); - values->reverse_standard_border_color = __gen_unpack_uint(cl, 5, 5); - values->ahdr = __gen_unpack_uint(cl, 4, 4); - values->srgb = __gen_unpack_uint(cl, 3, 3); - values->flip_s_and_t_on_incoming_request = __gen_unpack_uint(cl, 2, 2); - values->flip_texture_y_axis = __gen_unpack_uint(cl, 1, 1); - values->flip_texture_x_axis = __gen_unpack_uint(cl, 0, 0); -} -#endif - - -#define V3D42_SAMPLER_STATE_header \ - - -struct V3D42_SAMPLER_STATE { - uint32_t border_color_alpha; - uint32_t border_color_blue; - uint32_t border_color_green; - uint32_t border_color_red; - uint32_t maximum_anisotropy; - enum V3D42_Border_Color_Mode border_color_mode; - bool wrap_i_border; - enum V3D42_Wrap_Mode wrap_r; - enum V3D42_Wrap_Mode wrap_t; - enum V3D42_Wrap_Mode wrap_s; - float fixed_bias; - float max_level_of_detail; - float min_level_of_detail; - bool srgb_disable; - enum V3D42_Compare_Function depth_compare_function; - bool anisotropy_enable; - bool mip_filter_nearest; - bool min_filter_nearest; - bool mag_filter_nearest; -}; - -static inline void -V3D42_SAMPLER_STATE_pack(__gen_user_data *data, uint8_t * restrict cl, - const struct V3D42_SAMPLER_STATE * restrict values) -{ - cl[ 0] = __gen_uint(values->srgb_disable, 7, 7) | - __gen_uint(values->depth_compare_function, 4, 6) | - __gen_uint(values->anisotropy_enable, 3, 3) | - __gen_uint(values->mip_filter_nearest, 2, 2) | - __gen_uint(values->min_filter_nearest, 1, 1) | - __gen_uint(values->mag_filter_nearest, 0, 0); - - cl[ 1] = __gen_ufixed(values->min_level_of_detail, 0, 11, 8); - - cl[ 2] = __gen_ufixed(values->max_level_of_detail, 4, 15, 8) | - __gen_ufixed(values->min_level_of_detail, 0, 11, 8) >> 8; - - cl[ 3] = __gen_ufixed(values->max_level_of_detail, 4, 15, 8) >> 8; - - cl[ 4] = __gen_sfixed(values->fixed_bias, 0, 15, 8); - - cl[ 5] = __gen_sfixed(values->fixed_bias, 0, 15, 8) >> 8; - - cl[ 6] = __gen_uint(values->wrap_r, 6, 8) | - __gen_uint(values->wrap_t, 3, 5) | - __gen_uint(values->wrap_s, 0, 2); - - cl[ 7] = __gen_uint(values->maximum_anisotropy, 5, 6) | - __gen_uint(values->border_color_mode, 2, 4) | - __gen_uint(values->wrap_i_border, 1, 1) | - __gen_uint(values->wrap_r, 6, 8) >> 8; - - - memcpy(&cl[8], &values->border_color_red, sizeof(values->border_color_red)); - - memcpy(&cl[12], &values->border_color_green, sizeof(values->border_color_green)); - - memcpy(&cl[16], &values->border_color_blue, sizeof(values->border_color_blue)); - - memcpy(&cl[20], &values->border_color_alpha, sizeof(values->border_color_alpha)); -} - -#define V3D42_SAMPLER_STATE_length 24 -#ifdef __gen_unpack_address -static inline void -V3D42_SAMPLER_STATE_unpack(const uint8_t * restrict cl, - struct V3D42_SAMPLER_STATE * restrict values) -{ - values->border_color_alpha = __gen_unpack_uint(cl, 160, 191); - values->border_color_blue = __gen_unpack_uint(cl, 128, 159); - values->border_color_green = __gen_unpack_uint(cl, 96, 127); - values->border_color_red = __gen_unpack_uint(cl, 64, 95); - values->maximum_anisotropy = __gen_unpack_uint(cl, 61, 62); - values->border_color_mode = __gen_unpack_uint(cl, 58, 60); - values->wrap_i_border = __gen_unpack_uint(cl, 57, 57); - values->wrap_r = __gen_unpack_uint(cl, 54, 56); - values->wrap_t = __gen_unpack_uint(cl, 51, 53); - values->wrap_s = __gen_unpack_uint(cl, 48, 50); - values->fixed_bias = __gen_unpack_sfixed(cl, 32, 47, 8); - values->max_level_of_detail = __gen_unpack_ufixed(cl, 20, 31, 8); - values->min_level_of_detail = __gen_unpack_ufixed(cl, 8, 19, 8); - values->srgb_disable = __gen_unpack_uint(cl, 7, 7); - values->depth_compare_function = __gen_unpack_uint(cl, 4, 6); - values->anisotropy_enable = __gen_unpack_uint(cl, 3, 3); - values->mip_filter_nearest = __gen_unpack_uint(cl, 2, 2); - values->min_filter_nearest = __gen_unpack_uint(cl, 1, 1); - values->mag_filter_nearest = __gen_unpack_uint(cl, 0, 0); -} -#endif - - -enum V3D42_Texture_Data_Formats { - TEXTURE_DATA_FORMAT_R8 = 0, - TEXTURE_DATA_FORMAT_R8_SNORM = 1, - TEXTURE_DATA_FORMAT_RG8 = 2, - TEXTURE_DATA_FORMAT_RG8_SNORM = 3, - TEXTURE_DATA_FORMAT_RGBA8 = 4, - TEXTURE_DATA_FORMAT_RGBA8_SNORM = 5, - TEXTURE_DATA_FORMAT_RGB565 = 6, - TEXTURE_DATA_FORMAT_RGBA4 = 7, - TEXTURE_DATA_FORMAT_RGB5_A1 = 8, - TEXTURE_DATA_FORMAT_RGB10_A2 = 9, - TEXTURE_DATA_FORMAT_R16 = 10, - TEXTURE_DATA_FORMAT_R16_SNORM = 11, - TEXTURE_DATA_FORMAT_RG16 = 12, - TEXTURE_DATA_FORMAT_RG16_SNORM = 13, - TEXTURE_DATA_FORMAT_RGBA16 = 14, - TEXTURE_DATA_FORMAT_RGBA16_SNORM = 15, - TEXTURE_DATA_FORMAT_R16F = 16, - TEXTURE_DATA_FORMAT_RG16F = 17, - TEXTURE_DATA_FORMAT_RGBA16F = 18, - TEXTURE_DATA_FORMAT_R11F_G11F_B10F = 19, - TEXTURE_DATA_FORMAT_RGB9_E5 = 20, - TEXTURE_DATA_FORMAT_DEPTH_COMP16 = 21, - TEXTURE_DATA_FORMAT_DEPTH_COMP24 = 22, - TEXTURE_DATA_FORMAT_DEPTH_COMP32F = 23, - TEXTURE_DATA_FORMAT_DEPTH24_X8 = 24, - TEXTURE_DATA_FORMAT_R4 = 25, - TEXTURE_DATA_FORMAT_R1 = 26, - TEXTURE_DATA_FORMAT_S8 = 27, - TEXTURE_DATA_FORMAT_S16 = 28, - TEXTURE_DATA_FORMAT_R32F = 29, - TEXTURE_DATA_FORMAT_RG32F = 30, - TEXTURE_DATA_FORMAT_RGBA32F = 31, - TEXTURE_DATA_FORMAT_RGB8_ETC2 = 32, - TEXTURE_DATA_FORMAT_RGB8_PUNCHTHROUGH_ALPHA1 = 33, - TEXTURE_DATA_FORMAT_R11_EAC = 34, - TEXTURE_DATA_FORMAT_SIGNED_R11_EAC = 35, - TEXTURE_DATA_FORMAT_RG11_EAC = 36, - TEXTURE_DATA_FORMAT_SIGNED_RG11_EAC = 37, - TEXTURE_DATA_FORMAT_RGBA8_ETC2_EAC = 38, - TEXTURE_DATA_FORMAT_YCBCR_LUMA = 39, - TEXTURE_DATA_FORMAT_YCBCR_420_CHROMA = 40, - TEXTURE_DATA_FORMAT_BC1 = 48, - TEXTURE_DATA_FORMAT_BC2 = 49, - TEXTURE_DATA_FORMAT_BC3 = 50, - TEXTURE_DATA_FORMAT_ASTC_4X4 = 64, - TEXTURE_DATA_FORMAT_ASTC_5X4 = 65, - TEXTURE_DATA_FORMAT_ASTC_5X5 = 66, - TEXTURE_DATA_FORMAT_ASTC_6X5 = 67, - TEXTURE_DATA_FORMAT_ASTC_6X6 = 68, - TEXTURE_DATA_FORMAT_ASTC_8X5 = 69, - TEXTURE_DATA_FORMAT_ASTC_8X6 = 70, - TEXTURE_DATA_FORMAT_ASTC_8X8 = 71, - TEXTURE_DATA_FORMAT_ASTC_10X5 = 72, - TEXTURE_DATA_FORMAT_ASTC_10X6 = 73, - TEXTURE_DATA_FORMAT_ASTC_10X8 = 74, - TEXTURE_DATA_FORMAT_ASTC_10X10 = 75, - TEXTURE_DATA_FORMAT_ASTC_12X10 = 76, - TEXTURE_DATA_FORMAT_ASTC_12X12 = 77, - TEXTURE_DATA_FORMAT_R8I = 96, - TEXTURE_DATA_FORMAT_R8UI = 97, - TEXTURE_DATA_FORMAT_RG8I = 98, - TEXTURE_DATA_FORMAT_RG8UI = 99, - TEXTURE_DATA_FORMAT_RGBA8I = 100, - TEXTURE_DATA_FORMAT_RGBA8UI = 101, - TEXTURE_DATA_FORMAT_R16I = 102, - TEXTURE_DATA_FORMAT_R16UI = 103, - TEXTURE_DATA_FORMAT_RG16I = 104, - TEXTURE_DATA_FORMAT_RG16UI = 105, - TEXTURE_DATA_FORMAT_RGBA16I = 106, - TEXTURE_DATA_FORMAT_RGBA16UI = 107, - TEXTURE_DATA_FORMAT_R32I = 108, - TEXTURE_DATA_FORMAT_R32UI = 109, - TEXTURE_DATA_FORMAT_RG32I = 110, - TEXTURE_DATA_FORMAT_RG32UI = 111, - TEXTURE_DATA_FORMAT_RGBA32I = 112, - TEXTURE_DATA_FORMAT_RGBA32UI = 113, - TEXTURE_DATA_FORMAT_RGB10_A2UI = 114, -}; - -#endif /* V3D42_PACK_H */ diff --git a/lib/mesa/src/broadcom/cle/v3d_xml.h b/lib/mesa/src/broadcom/cle/v3d_xml.h deleted file mode 100644 index a940429c1..000000000 --- a/lib/mesa/src/broadcom/cle/v3d_xml.h +++ /dev/null @@ -1,719 +0,0 @@ -static const struct { - uint32_t gen_10; - uint32_t offset; - uint32_t length; -} genxml_files_table[] = { - { 21, 0, 15431 }, - { 33, 15431, 42910 }, -}; - -static const uint8_t compress_genxmls[] = { - 0x78, 0x9c, 0xed, 0x5d, 0x5b, 0x73, 0xe3, 0xb6, 0x92, 0x7e, 0xcf, 0xaf, - 0xc0, 0xce, 0xcb, 0xf1, 0xec, 0xae, 0x62, 0x91, 0xba, 0x58, 0xae, 0x4a, - 0xb2, 0xa5, 0x9b, 0x3d, 0xae, 0x23, 0x5b, 0x5a, 0x49, 0xf6, 0xcc, 0xf8, - 0x45, 0x45, 0x49, 0x94, 0xcd, 0x8a, 0x44, 0xea, 0x90, 0x94, 0x2f, 0xf9, - 0xf5, 0x8b, 0x0b, 0x49, 0x00, 0x64, 0x83, 0x00, 0x35, 0x9e, 0x49, 0xb2, - 0xc7, 0xa7, 0x4e, 0x25, 0x8e, 0xdd, 0x68, 0x00, 0xdd, 0x8d, 0x46, 0xa3, - 0xd1, 0xf8, 0xf8, 0xcb, 0xd3, 0xea, 0x65, 0xb7, 0x45, 0x0f, 0xae, 0xff, - 0xeb, 0x07, 0xfb, 0x67, 0xeb, 0xc3, 0x6f, 0x3f, 0x21, 0xf4, 0xcb, 0xde, - 0x59, 0xfd, 0xee, 0xc6, 0xc8, 0x77, 0x76, 0xee, 0xaf, 0x1f, 0x3e, 0x39, - 0xdb, 0xf8, 0x03, 0x5a, 0x05, 0x6b, 0xfc, 0x73, 0xfd, 0xc3, 0x69, 0x91, - 0xe0, 0x66, 0x3c, 0x49, 0xff, 0x6e, 0x41, 0x7f, 0xbf, 0xd8, 0x1e, 0xa2, - 0xc7, 0x94, 0xa2, 0x89, 0x7f, 0xd8, 0xfe, 0xfa, 0xa1, 0xa7, 0x24, 0x44, - 0xdd, 0xed, 0x16, 0xcd, 0x62, 0x27, 0x76, 0xd3, 0x26, 0xad, 0x92, 0x26, - 0x98, 0x30, 0x8c, 0xd1, 0xdc, 0xdb, 0xba, 0xa8, 0xe7, 0xf9, 0xbe, 0xe7, - 0x3f, 0xa4, 0xad, 0xda, 0x25, 0xad, 0xae, 0xfc, 0x55, 0xe8, 0xee, 0x5c, - 0x3f, 0x46, 0x33, 0x77, 0xe7, 0xec, 0x1f, 0x83, 0x30, 0xeb, 0xec, 0x0c, - 0xa2, 0xff, 0xec, 0x78, 0x31, 0x0a, 0xfc, 0x22, 0x75, 0x07, 0xa2, 0xee, - 0x85, 0x8e, 0xbf, 0xca, 0x26, 0x6c, 0xb5, 0xa9, 0x4c, 0x31, 0xd1, 0xc6, - 0x73, 0xb7, 0xeb, 0x84, 0xa6, 0xbb, 0x5e, 0x87, 0x6e, 0x14, 0x7d, 0x40, - 0x91, 0xf7, 0x07, 0xfe, 0xcf, 0x86, 0x8d, 0x7f, 0x22, 0x53, 0x21, 0x22, - 0x46, 0xf1, 0xeb, 0x1e, 0xff, 0xce, 0x49, 0x48, 0x58, 0x0f, 0xa7, 0xac, - 0x0b, 0x55, 0x6f, 0x28, 0x0e, 0x50, 0x74, 0x58, 0xd6, 0xb6, 0x5e, 0x94, - 0x29, 0xcb, 0x3a, 0xfb, 0xbe, 0x3d, 0x4f, 0xdd, 0xf8, 0x10, 0xfa, 0x68, - 0x13, 0x06, 0xbb, 0x62, 0xdf, 0x54, 0x32, 0x80, 0xba, 0xb0, 0xf0, 0xd0, - 0xf5, 0x61, 0x1b, 0x7b, 0xb5, 0xc8, 0xd9, 0xed, 0xb1, 0xda, 0xa6, 0x6e, - 0x14, 0x6c, 0x9f, 0xdc, 0x35, 0x53, 0x62, 0x3f, 0xd8, 0x06, 0x21, 0xea, - 0x1d, 0x36, 0x1b, 0x37, 0x4c, 0x79, 0xd9, 0x89, 0xcd, 0x4c, 0x61, 0x03, - 0xa8, 0xc0, 0x11, 0x39, 0xfe, 0x1a, 0x0d, 0xc7, 0x17, 0x19, 0xe7, 0x96, - 0xc0, 0x59, 0xc1, 0xfa, 0xe2, 0x80, 0xed, 0x91, 0xb2, 0x3c, 0xc4, 0x1e, - 0xb6, 0x01, 0x66, 0x6b, 0xe9, 0x00, 0x69, 0xe3, 0x94, 0x9b, 0x89, 0xa6, - 0xed, 0x4e, 0x26, 0xef, 0x26, 0x28, 0xef, 0x5c, 0xf3, 0x91, 0x13, 0x31, - 0xfb, 0x4e, 0x19, 0x58, 0x59, 0xfb, 0x46, 0xda, 0x7e, 0x19, 0x04, 0x5b, - 0xb0, 0xf1, 0xc0, 0x8b, 0x9c, 0x25, 0x91, 0xc1, 0xd6, 0x75, 0x42, 0x62, - 0xc0, 0x9f, 0x43, 0x2f, 0x06, 0x38, 0xd9, 0xc6, 0x9c, 0xee, 0x4f, 0x67, - 0xb1, 0xeb, 0xaf, 0xbc, 0x6d, 0x2a, 0xd1, 0x67, 0x98, 0xa3, 0x65, 0x3e, - 0x36, 0x51, 0x3f, 0x0a, 0x6e, 0xf5, 0x22, 0x37, 0x6e, 0x96, 0x80, 0x5d, - 0xd6, 0xb6, 0x81, 0xb3, 0xae, 0xa2, 0x39, 0x93, 0x95, 0x52, 0x55, 0x73, - 0x4a, 0x91, 0x85, 0xae, 0xb3, 0x7e, 0x33, 0x89, 0xc1, 0xcc, 0xaa, 0x09, - 0x8c, 0x19, 0xba, 0x20, 0x1e, 0x74, 0xe9, 0xfa, 0x6e, 0xe8, 0x6c, 0x33, - 0xf9, 0x74, 0x52, 0x81, 0x01, 0xc3, 0xba, 0x76, 0x77, 0x41, 0xf8, 0x8a, - 0x96, 0x4e, 0xe4, 0xa2, 0x44, 0x1e, 0x28, 0xd8, 0x60, 0xb7, 0x80, 0xff, - 0x7a, 0x1a, 0x13, 0xa6, 0xeb, 0xc3, 0x6e, 0x8f, 0x96, 0x89, 0xe0, 0x0b, - 0xc2, 0xb4, 0x61, 0xbf, 0xa3, 0x5a, 0x07, 0x84, 0xf7, 0x05, 0xe1, 0x0d, - 0x88, 0xf0, 0xdc, 0x58, 0x86, 0x77, 0x97, 0xb5, 0x6b, 0x27, 0xfa, 0x3d, - 0x19, 0x15, 0x1d, 0x21, 0xc0, 0xaf, 0x73, 0xc4, 0xba, 0x28, 0xe7, 0x78, - 0x56, 0x51, 0xcb, 0xe5, 0xdc, 0xda, 0xc7, 0xce, 0x77, 0x95, 0x3a, 0x84, - 0x88, 0xa8, 0xfe, 0x54, 0xc1, 0xbe, 0x75, 0xfc, 0xf4, 0xcd, 0x3a, 0x68, - 0x1e, 0x27, 0x0d, 0x33, 0xe6, 0x05, 0xf7, 0x58, 0xe4, 0x3e, 0xf1, 0x5e, - 0xdc, 0x6d, 0xc2, 0xfb, 0x22, 0x08, 0x77, 0x4e, 0x9c, 0xd9, 0x67, 0xc6, - 0x27, 0xb3, 0x81, 0x83, 0xe7, 0xc7, 0x89, 0xfd, 0x63, 0x36, 0x4f, 0xce, - 0xf6, 0xe0, 0x26, 0x6c, 0xc2, 0x87, 0xa5, 0xd3, 0xc1, 0xff, 0xfb, 0x80, - 0xe8, 0x6f, 0xb3, 0x30, 0xa9, 0x40, 0xb8, 0x7c, 0x08, 0x5b, 0xed, 0x16, - 0x5a, 0x7b, 0xf1, 0xa3, 0x1b, 0xba, 0xeb, 0x8c, 0xde, 0x2a, 0xa7, 0xf7, - 0x83, 0xa4, 0x49, 0xd6, 0xc0, 0xce, 0x84, 0x75, 0x4a, 0xe7, 0x03, 0x4d, - 0xee, 0x1a, 0x2f, 0xdd, 0xe2, 0x74, 0xda, 0xfa, 0xe9, 0xcc, 0xd8, 0x36, - 0x5a, 0xd7, 0x4e, 0x67, 0xe0, 0xae, 0x3c, 0x2c, 0x33, 0x17, 0xbd, 0x34, - 0xb5, 0x53, 0xe1, 0xb4, 0xc4, 0x6a, 0x2b, 0x4c, 0x43, 0xa5, 0x97, 0xa6, - 0x7e, 0x22, 0x53, 0xec, 0x33, 0x04, 0xa1, 0xa9, 0xa6, 0x31, 0xd7, 0x0e, - 0x7e, 0x34, 0xaf, 0x34, 0xe4, 0xc4, 0x89, 0xe2, 0x90, 0x8c, 0x7a, 0xd6, - 0x2c, 0xd4, 0x2a, 0xba, 0x67, 0xf5, 0xd8, 0x6f, 0x02, 0xdf, 0xd5, 0x8e, - 0x9c, 0x5a, 0xae, 0x76, 0xf4, 0xf7, 0xa7, 0x11, 0x5b, 0x9c, 0xc5, 0x49, - 0xe4, 0x29, 0x33, 0x8a, 0x86, 0x82, 0x22, 0xf1, 0x23, 0x19, 0x5d, 0xb3, - 0x20, 0x8e, 0xd2, 0x9d, 0x66, 0x44, 0xf6, 0xe5, 0xb2, 0x8d, 0xe6, 0xfc, - 0x4f, 0xdf, 0x68, 0x14, 0x1e, 0x93, 0x44, 0x14, 0x6f, 0xbb, 0x43, 0x28, - 0x38, 0x1e, 0xb9, 0x43, 0x28, 0xb8, 0x15, 0x76, 0x88, 0x77, 0x27, 0xf8, - 0xee, 0x04, 0xdf, 0x9d, 0xe0, 0x9f, 0xea, 0x04, 0xaf, 0xfc, 0xb5, 0xfb, - 0x82, 0x8f, 0xa7, 0x93, 0xd0, 0xdb, 0x79, 0xb1, 0xf7, 0xe4, 0xa2, 0x91, - 0x70, 0x72, 0xc6, 0x07, 0x72, 0xc8, 0xf7, 0x39, 0x2f, 0xde, 0xee, 0xb0, - 0x43, 0xb4, 0x2d, 0x70, 0x76, 0x3f, 0xb3, 0x25, 0x69, 0x42, 0x6e, 0xa3, - 0xcb, 0x5d, 0x26, 0xe6, 0xe2, 0xad, 0xdc, 0x28, 0xe9, 0xb7, 0xc0, 0xac, - 0x59, 0xd7, 0x32, 0x1b, 0xb9, 0xfe, 0x43, 0xfc, 0x08, 0xb4, 0xed, 0x68, - 0x9b, 0xd2, 0x29, 0x50, 0xa2, 0xb4, 0x79, 0xb3, 0x8a, 0x3d, 0x77, 0x6a, - 0x4b, 0x2f, 0xd6, 0x1a, 0x85, 0xd5, 0x96, 0xc8, 0x2c, 0x40, 0x43, 0x79, - 0x37, 0x98, 0x69, 0x63, 0x27, 0xf8, 0x8c, 0x66, 0x15, 0x73, 0xdd, 0x07, - 0xf8, 0x4f, 0x91, 0x76, 0x6c, 0x5b, 0xcf, 0x77, 0x23, 0xad, 0xc1, 0x12, - 0x2a, 0xec, 0xd5, 0x83, 0xbd, 0xd6, 0x60, 0x29, 0x65, 0x14, 0x87, 0xde, - 0x5e, 0x6b, 0xb9, 0x98, 0xc8, 0xf1, 0x1f, 0xb6, 0x42, 0xf7, 0x4d, 0x1d, - 0x65, 0x8e, 0x73, 0x4b, 0x4b, 0xbf, 0x71, 0xfc, 0x8c, 0xba, 0x5d, 0x6d, - 0x65, 0xdc, 0xb9, 0x61, 0x8c, 0x6d, 0xa3, 0x1b, 0x86, 0xce, 0x2b, 0x5f, - 0x1e, 0x51, 0xb6, 0x34, 0x1a, 0xd0, 0xd2, 0x60, 0xf6, 0x44, 0x4e, 0x85, - 0x5e, 0x88, 0xcf, 0x88, 0x8c, 0xc7, 0x0f, 0xb7, 0xea, 0x77, 0xf3, 0xf9, - 0xf3, 0xcd, 0x47, 0x76, 0xa8, 0x59, 0x30, 0x23, 0xa5, 0x7a, 0x5a, 0x60, - 0x92, 0x6e, 0xe0, 0xc4, 0x0e, 0x9a, 0x1f, 0xeb, 0x92, 0x98, 0xb3, 0x41, - 0x1e, 0xf3, 0xcd, 0x1a, 0xc5, 0x34, 0x6c, 0x4a, 0xfc, 0x72, 0xfa, 0x5a, - 0x14, 0x77, 0xc9, 0x76, 0xca, 0xe7, 0x06, 0x0f, 0xd3, 0xc0, 0xbe, 0x26, - 0xd4, 0xbe, 0x12, 0xa7, 0xaf, 0x31, 0xb2, 0x11, 0x31, 0x32, 0x99, 0x54, - 0x35, 0xa1, 0x79, 0xa6, 0x3a, 0x89, 0x5c, 0x65, 0x6e, 0xd3, 0x4f, 0x5f, - 0x65, 0xc2, 0xe2, 0xec, 0x4b, 0x95, 0x7c, 0x39, 0x42, 0xb3, 0x47, 0x67, - 0x8d, 0x43, 0x0b, 0xe9, 0x92, 0xa0, 0xdd, 0x4c, 0xf5, 0xfa, 0x1f, 0xb5, - 0x1a, 0x9a, 0x3f, 0xf2, 0x23, 0x02, 0x93, 0xe2, 0xb3, 0xb7, 0xc5, 0x91, - 0xb7, 0x8b, 0xff, 0x6b, 0xbb, 0xc5, 0x7b, 0xaf, 0xe7, 0xa3, 0xe5, 0x2b, - 0xfa, 0xdd, 0x0d, 0x7d, 0x1c, 0xfb, 0xe2, 0x81, 0x78, 0x6b, 0x87, 0xe6, - 0x08, 0x09, 0xb3, 0x9f, 0x51, 0xad, 0x56, 0x29, 0x1d, 0xa8, 0x77, 0x2c, - 0xc3, 0x17, 0x1c, 0x7c, 0xac, 0x71, 0xbf, 0x11, 0x1b, 0x7a, 0xe8, 0xae, - 0x82, 0x10, 0x88, 0xd7, 0xf5, 0x29, 0xdd, 0x9b, 0xc3, 0x6e, 0x89, 0x19, - 0x60, 0x77, 0xe7, 0xc4, 0x78, 0xd1, 0x2c, 0x0f, 0x38, 0x9a, 0x74, 0x88, - 0xbf, 0x8c, 0x74, 0x11, 0x96, 0x2e, 0x0b, 0xc8, 0x92, 0xc4, 0x34, 0x9a, - 0x8a, 0x72, 0x8b, 0xc6, 0xb2, 0x9a, 0xd0, 0xaa, 0x61, 0x2d, 0x66, 0x69, - 0x5c, 0xc5, 0xba, 0xe7, 0x62, 0x39, 0x6f, 0x6b, 0xe5, 0xc2, 0x38, 0xdc, - 0x5d, 0x22, 0x16, 0x4f, 0xe5, 0x39, 0x74, 0xf4, 0x7e, 0x97, 0x71, 0xb8, - 0x9f, 0x65, 0x6a, 0xe1, 0x4b, 0xa2, 0xdd, 0x34, 0x6c, 0x9d, 0x44, 0x90, - 0x8c, 0x41, 0x5b, 0xb5, 0xa6, 0xb4, 0xf2, 0x0b, 0xfc, 0x8d, 0xf7, 0x70, - 0x08, 0x99, 0x21, 0xf5, 0xbc, 0x38, 0xdb, 0xb7, 0xce, 0x41, 0x9f, 0x33, - 0x74, 0xc2, 0xed, 0x2b, 0xba, 0x47, 0x87, 0x3d, 0xb6, 0x3d, 0xbc, 0x7a, - 0x5c, 0x9f, 0x9c, 0xea, 0x8e, 0x3a, 0x11, 0xa6, 0xac, 0x94, 0x2c, 0xf4, - 0x89, 0x42, 0x83, 0x71, 0x18, 0xa4, 0x03, 0xdd, 0x7d, 0xfc, 0x58, 0x9b, - 0xbb, 0xc4, 0xf9, 0x1e, 0xfc, 0x15, 0x11, 0x44, 0xd1, 0x2a, 0x2d, 0x38, - 0x54, 0x25, 0xcb, 0x16, 0x2f, 0x59, 0xe6, 0x15, 0x22, 0x78, 0x09, 0xf6, - 0x83, 0x27, 0x37, 0x74, 0x1e, 0xc8, 0x15, 0x8f, 0xb3, 0x46, 0xe2, 0xd9, - 0x4e, 0x18, 0xa6, 0xf5, 0xed, 0xec, 0x27, 0xde, 0xde, 0x45, 0x33, 0x77, - 0xeb, 0xae, 0xe2, 0x62, 0x07, 0xfa, 0x23, 0x3f, 0x3b, 0x72, 0x79, 0x11, - 0x5e, 0xa7, 0x63, 0xcc, 0x31, 0xb9, 0x96, 0xd2, 0x1c, 0x45, 0x25, 0x6e, - 0xd5, 0x85, 0x21, 0xee, 0x0a, 0x7c, 0xac, 0xad, 0xa3, 0x65, 0xd1, 0xf5, - 0x63, 0x0f, 0xbb, 0x45, 0x27, 0x22, 0x07, 0x15, 0xb6, 0x71, 0x90, 0xcb, - 0xb3, 0x11, 0x0b, 0x3e, 0xf2, 0xfd, 0xe8, 0x13, 0xb9, 0x43, 0x6a, 0x55, - 0x88, 0x5a, 0x08, 0x1a, 0x6f, 0x36, 0x91, 0x0b, 0x88, 0x56, 0xef, 0xfe, - 0xfa, 0xdb, 0x60, 0xf5, 0xfb, 0x33, 0x16, 0xad, 0x14, 0x1e, 0x56, 0xbf, - 0xcf, 0x4a, 0x86, 0x33, 0x75, 0x89, 0x7e, 0x5c, 0x74, 0xe1, 0xac, 0x3c, - 0xff, 0x81, 0xf3, 0x3c, 0xe6, 0x7a, 0x26, 0x61, 0x89, 0xa3, 0x8e, 0x67, - 0x27, 0x5c, 0x1b, 0xb0, 0xac, 0x76, 0x49, 0x73, 0xb1, 0x75, 0x62, 0xb6, - 0xf3, 0x21, 0xfc, 0xe3, 0x03, 0x77, 0x2e, 0xe0, 0xdd, 0x15, 0xa1, 0xae, - 0x91, 0xcd, 0x86, 0x8c, 0x21, 0xa1, 0x57, 0x5f, 0xf8, 0x1a, 0xf9, 0x37, - 0x6a, 0x05, 0x94, 0x49, 0xd6, 0x75, 0x07, 0xea, 0x9a, 0xd1, 0xcd, 0x28, - 0x9d, 0xba, 0xcb, 0xcd, 0x36, 0x70, 0xf4, 0x7d, 0x12, 0x73, 0xc3, 0x5b, - 0xf7, 0x3a, 0xce, 0xae, 0xd3, 0xcf, 0xcf, 0xa1, 0x3e, 0x45, 0xba, 0x6f, - 0xed, 0x73, 0xfa, 0x69, 0x8e, 0xbe, 0xa0, 0x65, 0x70, 0xf0, 0xd7, 0x4e, - 0xf8, 0x9a, 0x6d, 0x81, 0xf5, 0x3a, 0xd4, 0x31, 0x21, 0xde, 0x67, 0xa1, - 0x99, 0xd8, 0x2c, 0xd1, 0x76, 0xbb, 0x38, 0x0c, 0x13, 0x61, 0xcb, 0xeb, - 0x24, 0x1d, 0x82, 0x25, 0xc6, 0x38, 0xf1, 0xa3, 0x1b, 0xb9, 0x2c, 0xba, - 0xc1, 0x6b, 0x33, 0x74, 0x71, 0xdf, 0xb8, 0x09, 0x9d, 0x63, 0xcd, 0xaa, - 0x75, 0x6a, 0x67, 0xd8, 0x93, 0x93, 0x86, 0x6b, 0x74, 0x12, 0x07, 0x7b, - 0x64, 0xb5, 0x11, 0x8e, 0x3b, 0xe9, 0xf1, 0xdf, 0x61, 0x54, 0x0d, 0xfb, - 0x23, 0xbc, 0xf6, 0xc5, 0xce, 0xd1, 0xad, 0x4f, 0x77, 0xb2, 0xc2, 0x74, - 0x2c, 0xfd, 0xee, 0x2e, 0xf1, 0xc1, 0xeb, 0x21, 0xe6, 0xbb, 0x2c, 0x24, - 0x17, 0xc3, 0x28, 0xc5, 0xdb, 0xa3, 0xcf, 0x38, 0xd4, 0x0e, 0x9e, 0xb9, - 0x5c, 0xc0, 0x94, 0x89, 0x40, 0x89, 0x3e, 0xb9, 0xde, 0xc3, 0x23, 0x89, - 0xd0, 0xd1, 0x9e, 0x64, 0x3b, 0xa1, 0xf9, 0x34, 0x4d, 0x62, 0x0d, 0xce, - 0xf1, 0x33, 0x31, 0xb6, 0x52, 0x86, 0x0d, 0x7d, 0x4a, 0x46, 0x64, 0xd8, - 0x0b, 0xe2, 0x38, 0xd8, 0xa1, 0x34, 0x1b, 0x8b, 0xc3, 0x43, 0xcf, 0x77, - 0x84, 0xcb, 0xf0, 0x4a, 0x92, 0x17, 0x19, 0x8f, 0xdc, 0x4d, 0x6c, 0xc2, - 0xb6, 0x9a, 0x1e, 0xee, 0x3c, 0xf7, 0x79, 0x1f, 0x84, 0x71, 0xc1, 0x46, - 0xc1, 0x33, 0x7a, 0x46, 0xdd, 0x77, 0xfd, 0x18, 0x9b, 0xea, 0xd7, 0xda, - 0xca, 0x6c, 0x86, 0x91, 0x65, 0xff, 0xdc, 0x04, 0xa7, 0x98, 0x67, 0xf9, - 0xa5, 0x9c, 0x65, 0x1d, 0xe0, 0x58, 0x32, 0xbd, 0x7b, 0xb4, 0xc3, 0xba, - 0x25, 0x3b, 0xde, 0xce, 0x79, 0xc1, 0xc1, 0xb0, 0xb7, 0xdf, 0x13, 0x4f, - 0xba, 0xdf, 0x3a, 0x3e, 0xcf, 0x47, 0x58, 0x75, 0x30, 0x2c, 0x4e, 0x73, - 0x75, 0xf7, 0xcf, 0x80, 0x33, 0xe2, 0x56, 0x21, 0x78, 0xa3, 0x3c, 0x03, - 0xcf, 0x57, 0x33, 0xa8, 0xe8, 0xcd, 0x88, 0x25, 0xec, 0x71, 0x20, 0xf2, - 0xe5, 0x2b, 0x9a, 0xad, 0xf0, 0x86, 0xce, 0x0b, 0xa4, 0xac, 0x7a, 0x56, - 0x58, 0x55, 0x26, 0xde, 0x4f, 0xce, 0x76, 0x53, 0xe3, 0xeb, 0xc7, 0x3a, - 0xb5, 0xda, 0xd8, 0xf0, 0xb1, 0x17, 0xa1, 0x86, 0x7f, 0xe4, 0x0c, 0x65, - 0xee, 0xd9, 0x5a, 0xd2, 0x33, 0x3f, 0x72, 0xf6, 0xf7, 0x74, 0xf2, 0x2e, - 0x55, 0x68, 0xde, 0x60, 0xdb, 0x26, 0x52, 0xb8, 0x4f, 0xdd, 0xd8, 0xc9, - 0xfd, 0x8a, 0xe4, 0xb4, 0xef, 0xa3, 0x8f, 0xdf, 0x3a, 0xf5, 0x74, 0x4c, - 0xa5, 0x1c, 0x2b, 0xce, 0x57, 0x2c, 0x84, 0xa3, 0x01, 0x27, 0x92, 0x4e, - 0x25, 0xfc, 0x3c, 0x67, 0x97, 0x4c, 0x7a, 0x10, 0x1c, 0x70, 0x20, 0x53, - 0x4b, 0x2e, 0x96, 0xb0, 0x5a, 0xfc, 0xc0, 0xaf, 0xed, 0x22, 0x29, 0xb1, - 0x25, 0xc6, 0xdb, 0x85, 0xaa, 0x8b, 0x22, 0x4b, 0x3a, 0xae, 0xee, 0x16, - 0x07, 0x6f, 0xc9, 0xe9, 0x88, 0x84, 0x71, 0x52, 0x8c, 0x60, 0x0b, 0x0c, - 0xcf, 0x24, 0x4f, 0x04, 0x5f, 0x0a, 0x51, 0x06, 0xa4, 0x29, 0x22, 0xd2, - 0xd2, 0x5d, 0x39, 0x71, 0xea, 0xb6, 0xfe, 0x96, 0x46, 0xa0, 0xb6, 0xec, - 0x8e, 0x36, 0xa1, 0x21, 0x90, 0xdb, 0xad, 0x76, 0xa5, 0xa4, 0x4e, 0x5e, - 0x2c, 0x57, 0x78, 0xaf, 0xc5, 0x51, 0xb7, 0x46, 0x3c, 0xad, 0x7f, 0x17, - 0xf1, 0x74, 0x0f, 0x71, 0x50, 0xf3, 0x98, 0x4c, 0x48, 0xc8, 0x4f, 0xc5, - 0x45, 0xb3, 0x3e, 0x88, 0x26, 0xec, 0x68, 0x9e, 0x18, 0xb2, 0x48, 0xfd, - 0x71, 0x44, 0xbc, 0x83, 0x6e, 0x37, 0x69, 0x46, 0x8e, 0xdd, 0x80, 0xd2, - 0x98, 0x05, 0xe2, 0xa9, 0x3f, 0x9b, 0xd0, 0x22, 0x44, 0xe1, 0xb0, 0x87, - 0x4e, 0x9a, 0x2f, 0x1f, 0x21, 0x56, 0x85, 0xe3, 0x49, 0x91, 0x57, 0xe2, - 0x70, 0x4f, 0xf0, 0xea, 0x23, 0x37, 0xdb, 0xdc, 0x37, 0xf0, 0xe4, 0x08, - 0xd9, 0x7d, 0x74, 0x71, 0x00, 0xf3, 0xac, 0x65, 0x5c, 0x8a, 0x49, 0x1a, - 0x85, 0xb0, 0xf2, 0x72, 0x47, 0xea, 0x42, 0x52, 0x83, 0xc4, 0x4b, 0xde, - 0xf2, 0x77, 0xec, 0x6e, 0x3f, 0x82, 0x4f, 0x0d, 0x06, 0xa1, 0x94, 0x82, - 0xa1, 0xa3, 0xaf, 0x76, 0x15, 0xe6, 0xad, 0xf3, 0xac, 0x53, 0x92, 0xc4, - 0x0b, 0x75, 0xbe, 0xb5, 0x51, 0x52, 0xc3, 0x50, 0xcd, 0xb7, 0x9e, 0xe9, - 0xf3, 0x36, 0x34, 0xf5, 0x53, 0xbb, 0x3f, 0x65, 0xff, 0xee, 0x07, 0x4f, - 0x68, 0xcd, 0xca, 0x03, 0x00, 0x6e, 0xfa, 0x04, 0x4e, 0xc2, 0x0d, 0xdd, - 0xd2, 0x5c, 0x10, 0x1a, 0x78, 0xa1, 0x4b, 0xb3, 0x38, 0xe8, 0x72, 0x7e, - 0x7a, 0x39, 0x04, 0x58, 0xea, 0x57, 0x1a, 0x4b, 0xa3, 0xa0, 0x2c, 0x5b, - 0x01, 0x67, 0x6d, 0xce, 0xf4, 0xcb, 0x2b, 0x39, 0x5f, 0x27, 0xc9, 0xc2, - 0xac, 0x90, 0xb3, 0xc0, 0x49, 0x7f, 0xf8, 0x4f, 0x0a, 0x49, 0x54, 0x97, - 0xea, 0x67, 0x06, 0xb9, 0xf4, 0x1f, 0x73, 0xab, 0x0e, 0x9c, 0xa8, 0x92, - 0x02, 0x02, 0x45, 0x32, 0xa9, 0x70, 0x86, 0x01, 0x12, 0xc8, 0xd8, 0xe0, - 0x3e, 0x0d, 0xa6, 0xac, 0x86, 0x32, 0x75, 0x81, 0xe5, 0xd5, 0x1f, 0x6d, - 0x83, 0x7a, 0x89, 0x30, 0x5b, 0x1a, 0x2b, 0xba, 0x2a, 0x90, 0xaa, 0xcc, - 0x43, 0x25, 0xaa, 0x02, 0x83, 0x42, 0x41, 0x89, 0x4a, 0x84, 0xaa, 0xae, - 0x8f, 0xab, 0x18, 0xa9, 0xba, 0x33, 0xb4, 0xf5, 0xab, 0xca, 0x70, 0x63, - 0x68, 0xeb, 0x17, 0x53, 0xba, 0x2d, 0xb0, 0x43, 0x27, 0xe7, 0x51, 0xe9, - 0x18, 0x9b, 0x6c, 0x0a, 0x6a, 0x1e, 0x06, 0xee, 0x36, 0x59, 0x42, 0xc7, - 0x3f, 0x26, 0x80, 0x1d, 0x2c, 0x3f, 0xa0, 0xf2, 0x43, 0x96, 0xd5, 0x2a, - 0xf1, 0xa7, 0xcc, 0x2d, 0xe3, 0x53, 0x2e, 0xbb, 0x17, 0x01, 0xae, 0x10, - 0xcc, 0x76, 0x0e, 0xac, 0xe2, 0xc3, 0xce, 0x57, 0x72, 0xa9, 0x76, 0x36, - 0xbe, 0x74, 0x77, 0x78, 0xab, 0x48, 0xb7, 0xa2, 0x6c, 0x26, 0x76, 0xab, - 0x59, 0x12, 0x75, 0x27, 0x5b, 0x82, 0x75, 0xdc, 0xf6, 0x97, 0xb4, 0xae, - 0x1f, 0x93, 0xe5, 0x8b, 0xe2, 0xf0, 0xb0, 0xca, 0x6a, 0xc1, 0xd9, 0x05, - 0xd5, 0x94, 0x5d, 0x50, 0x41, 0x99, 0x45, 0xec, 0xc5, 0xd9, 0xd3, 0x19, - 0x46, 0xe9, 0x45, 0xb8, 0x4b, 0x72, 0xff, 0x87, 0xe2, 0x47, 0x52, 0x8c, - 0xee, 0x9a, 0x95, 0xa3, 0x2b, 0x93, 0x86, 0x78, 0x53, 0x5c, 0x6d, 0x0f, - 0x6b, 0x76, 0x47, 0x47, 0xaf, 0xcb, 0xd6, 0xe8, 0x89, 0xd5, 0x05, 0xe0, - 0x3d, 0xc9, 0xf9, 0x86, 0xcc, 0x6c, 0x3f, 0x39, 0xc5, 0x1b, 0xe4, 0x8b, - 0xf5, 0xd3, 0xe6, 0xf7, 0x70, 0xb7, 0xbe, 0xb7, 0xc1, 0x8e, 0x33, 0x42, - 0x27, 0x7e, 0x10, 0xa3, 0x03, 0x49, 0x98, 0xaf, 0x0e, 0x21, 0x76, 0x4a, - 0xf1, 0xf6, 0x15, 0x5a, 0x5d, 0xf6, 0x52, 0xab, 0x4d, 0x75, 0x67, 0x77, - 0x4e, 0xf8, 0x8a, 0xa7, 0x10, 0x15, 0x4d, 0xb4, 0x51, 0x9d, 0x6d, 0x9f, - 0xf8, 0x22, 0xf5, 0x12, 0x6e, 0x2e, 0xc1, 0x35, 0x9c, 0xa4, 0x1f, 0xc9, - 0x61, 0xf8, 0xb0, 0x27, 0xb7, 0xa8, 0xd8, 0xc5, 0xa6, 0x37, 0xa9, 0x60, - 0x3a, 0x31, 0xdf, 0x6d, 0x26, 0x30, 0x75, 0xd7, 0x9d, 0xc2, 0x64, 0x80, - 0x83, 0x34, 0x33, 0x8a, 0x6f, 0xd6, 0x87, 0x65, 0xa0, 0x10, 0xb9, 0xaf, - 0x6e, 0x76, 0xf3, 0xca, 0x22, 0xe1, 0x88, 0x85, 0x38, 0x4b, 0x21, 0x51, - 0x2a, 0x84, 0xe9, 0xcd, 0xaa, 0xec, 0xe7, 0x41, 0x8c, 0xcf, 0x80, 0x59, - 0x27, 0x91, 0x74, 0x10, 0x14, 0x18, 0xb7, 0xaa, 0x32, 0xd6, 0xe8, 0xdb, - 0x6a, 0xbf, 0x91, 0xc2, 0xe5, 0x5e, 0x0d, 0xd4, 0x2d, 0xf4, 0xac, 0xd6, - 0x37, 0xdf, 0x1b, 0xde, 0x60, 0x0d, 0x1a, 0x28, 0xa5, 0xd8, 0x5f, 0x25, - 0xbd, 0xdb, 0xc5, 0x39, 0x19, 0x74, 0x61, 0xa8, 0x7b, 0xfb, 0xec, 0x18, - 0xe6, 0x1a, 0xfd, 0xdb, 0x9d, 0x37, 0xd2, 0x7f, 0xb1, 0x67, 0x03, 0x1b, - 0x68, 0x40, 0xcb, 0xf0, 0x97, 0x53, 0xb6, 0x39, 0x01, 0x1b, 0x15, 0x57, - 0x86, 0x7a, 0xaf, 0x2a, 0x09, 0x4f, 0x94, 0x53, 0x85, 0x8b, 0x2d, 0x7a, - 0xaf, 0x44, 0x19, 0x3b, 0xcf, 0x3f, 0x44, 0x7c, 0x8b, 0xee, 0x00, 0xae, - 0x52, 0xa9, 0x8e, 0x19, 0x1e, 0xee, 0x1a, 0x50, 0x65, 0xe5, 0x55, 0x7c, - 0x37, 0xb9, 0xc6, 0x23, 0x12, 0x2f, 0x50, 0x39, 0xb3, 0xa3, 0x6c, 0xae, - 0x8c, 0x21, 0x64, 0x67, 0x82, 0x52, 0x7e, 0x39, 0xa5, 0xcf, 0x87, 0x7f, - 0xfb, 0xe9, 0x17, 0xe1, 0x19, 0x71, 0xe3, 0x67, 0x72, 0x07, 0x40, 0x08, - 0x5d, 0xff, 0xb0, 0xcb, 0xba, 0xdd, 0xed, 0x1d, 0xfa, 0x9c, 0x32, 0xad, - 0x0b, 0xd8, 0x87, 0xee, 0xc6, 0x7b, 0xc1, 0xb3, 0x6b, 0x0c, 0x16, 0xfd, - 0xf1, 0xf5, 0xa4, 0x3b, 0x1d, 0x2e, 0x2e, 0x6e, 0x6f, 0xfa, 0xa9, 0x22, - 0xa5, 0x42, 0xe0, 0xe1, 0xdd, 0x70, 0x5a, 0x3c, 0x42, 0xc8, 0x27, 0xa9, - 0xe1, 0x6c, 0x06, 0x14, 0x7c, 0x8a, 0x24, 0xc3, 0xff, 0xbd, 0xed, 0x8e, - 0x80, 0xd3, 0x80, 0xcc, 0x46, 0x22, 0x6a, 0x80, 0x44, 0x97, 0xd3, 0x61, - 0x77, 0x2e, 0x8c, 0xa8, 0x09, 0x52, 0xdd, 0x8c, 0xe7, 0x32, 0xb3, 0x16, - 0xcc, 0x4c, 0x26, 0x6a, 0x83, 0x44, 0xdd, 0xd1, 0xe7, 0xee, 0x57, 0x3e, - 0xbf, 0xf4, 0x99, 0xf2, 0x29, 0x11, 0x71, 0x41, 0xd8, 0xbd, 0x2d, 0x3e, - 0x12, 0x65, 0x37, 0x6e, 0xa2, 0xa0, 0x7b, 0xa3, 0xe1, 0xcd, 0x60, 0x71, - 0xd1, 0xed, 0xcf, 0xc7, 0x53, 0x48, 0xd0, 0xf7, 0xc3, 0xe9, 0x58, 0x23, - 0xe7, 0xf1, 0xcd, 0x50, 0x23, 0xe6, 0xd9, 0xb4, 0x8f, 0x35, 0x3a, 0x1a, - 0x4f, 0x35, 0xa2, 0xbe, 0xba, 0xb9, 0x5b, 0x14, 0x69, 0x61, 0x89, 0x0f, - 0x66, 0xf3, 0x1c, 0x1d, 0x2c, 0x73, 0xc2, 0xb3, 0x48, 0x0b, 0x0b, 0x9e, - 0xf4, 0xdd, 0x1d, 0x4d, 0x3e, 0x75, 0x35, 0xb2, 0x4f, 0xc7, 0x29, 0xd3, - 0x9e, 0x29, 0xc7, 0x29, 0xd3, 0x75, 0x4a, 0xc7, 0x29, 0xd3, 0x9e, 0x83, - 0xb4, 0xfd, 0xf1, 0x4d, 0x61, 0x46, 0x16, 0xac, 0x1c, 0xc2, 0x16, 0x24, - 0x87, 0x35, 0xc5, 0x48, 0xe5, 0x31, 0x58, 0x6a, 0x65, 0x81, 0xe4, 0xb0, - 0xbe, 0x32, 0x79, 0x2d, 0x66, 0xdd, 0xf9, 0xed, 0x14, 0xaf, 0x16, 0xde, - 0xa2, 0x69, 0x60, 0xbc, 0x2c, 0xc1, 0x51, 0x34, 0xdd, 0xeb, 0xf1, 0x60, - 0x08, 0x19, 0x6e, 0x77, 0x30, 0xd0, 0xd8, 0xed, 0xec, 0xb6, 0xa7, 0xb1, - 0xdb, 0xa9, 0x48, 0x02, 0x4b, 0xe1, 0xfa, 0xea, 0x46, 0x63, 0xa8, 0xd7, - 0xdd, 0x2f, 0x1a, 0x13, 0xbd, 0xbe, 0xd5, 0x79, 0x84, 0x59, 0x7f, 0x3a, - 0x1c, 0xde, 0x68, 0xac, 0x72, 0xd0, 0x9d, 0xfe, 0x53, 0x20, 0x82, 0xcd, - 0x71, 0x74, 0x75, 0xf9, 0x69, 0x2e, 0x50, 0x75, 0x4a, 0x45, 0x9f, 0xbe, - 0x50, 0x1a, 0xef, 0x65, 0xd1, 0xcf, 0x30, 0x8b, 0xfe, 0xd5, 0x68, 0x31, - 0x9e, 0x1c, 0xe9, 0x33, 0xfe, 0x39, 0x1c, 0x4e, 0x74, 0xc2, 0x1f, 0x4e, - 0x46, 0xdd, 0xfe, 0x50, 0xeb, 0x32, 0xfa, 0x5a, 0x4f, 0x31, 0xec, 0x1b, - 0x38, 0x89, 0xe1, 0x74, 0xae, 0x51, 0x02, 0xee, 0xea, 0xf3, 0xb4, 0x3b, - 0xd1, 0x69, 0x61, 0x28, 0x53, 0x95, 0x3b, 0x66, 0xa1, 0x1a, 0x48, 0x94, - 0xef, 0x64, 0x7a, 0x75, 0x0d, 0x49, 0x76, 0x32, 0xbe, 0xba, 0x99, 0xcf, - 0x34, 0xb2, 0x1d, 0x5d, 0xdd, 0x0c, 0x75, 0x1b, 0x1f, 0xa1, 0x59, 0x8c, - 0xc6, 0xe3, 0x89, 0x46, 0xbc, 0x94, 0x6e, 0x36, 0x9f, 0x5e, 0x4d, 0x34, - 0x42, 0xc6, 0x24, 0xdd, 0x9b, 0xcb, 0x91, 0xd0, 0x31, 0x2c, 0xe9, 0x94, - 0x2e, 0xc7, 0x14, 0x96, 0x78, 0x46, 0x7c, 0xd1, 0xd5, 0x19, 0x3f, 0x93, - 0xcc, 0x62, 0x7e, 0xc1, 0x27, 0x0e, 0x13, 0x52, 0xe9, 0x48, 0x74, 0xaa, - 0x85, 0x92, 0x48, 0x48, 0xa2, 0x85, 0x7d, 0x37, 0x97, 0x92, 0x44, 0x0c, - 0x3b, 0xef, 0x4c, 0x52, 0x22, 0xad, 0x0d, 0xab, 0x52, 0x96, 0x96, 0xd4, - 0x00, 0xd6, 0xab, 0x28, 0x31, 0x89, 0xdc, 0x2e, 0x9a, 0x61, 0x92, 0xa2, - 0x4a, 0x81, 0x5c, 0xd2, 0x8c, 0x22, 0x41, 0x77, 0x61, 0xb4, 0x12, 0x81, - 0x95, 0x12, 0x10, 0x74, 0x17, 0xe0, 0xef, 0xcd, 0xf4, 0xef, 0x0c, 0xdd, - 0x05, 0xa0, 0x68, 0x49, 0x14, 0x02, 0xac, 0x0b, 0x40, 0xdb, 0xfe, 0x90, - 0x79, 0x20, 0x27, 0x8f, 0xe7, 0x02, 0x90, 0x9f, 0xa5, 0xe4, 0x10, 0x90, - 0x0b, 0x40, 0xdf, 0x49, 0xe9, 0x8b, 0x40, 0x2e, 0x00, 0xf5, 0xb9, 0x44, - 0x8d, 0xcf, 0x2d, 0x64, 0xad, 0x3e, 0x79, 0x01, 0x0e, 0xfd, 0xe9, 0x5b, - 0x53, 0x50, 0x5c, 0x99, 0x40, 0x93, 0x64, 0xd3, 0x7d, 0x2d, 0xf0, 0xb7, - 0xaf, 0x28, 0xcb, 0x4d, 0x83, 0x10, 0x26, 0x69, 0x86, 0x33, 0x6d, 0x9b, - 0xbd, 0x15, 0xad, 0xd0, 0xd8, 0xe6, 0x1d, 0xaf, 0xc9, 0x49, 0x25, 0xdf, - 0x96, 0xa4, 0xd1, 0xd4, 0xc3, 0x6e, 0xe4, 0x5a, 0xf3, 0x2e, 0x4f, 0x01, - 0xab, 0xb1, 0x9a, 0x05, 0xd1, 0xc4, 0xa1, 0xe3, 0x47, 0xe4, 0x6c, 0x87, - 0x36, 0xae, 0xbb, 0x5e, 0x62, 0xea, 0x92, 0x1c, 0x27, 0xbb, 0xd7, 0x5e, - 0x05, 0x07, 0x1f, 0x38, 0x6a, 0x98, 0xe6, 0x58, 0x93, 0xa1, 0x64, 0xe6, - 0xc5, 0x01, 0x70, 0x1c, 0x72, 0x5f, 0xbc, 0x7a, 0x74, 0x3c, 0x9f, 0x54, - 0xda, 0xa7, 0x88, 0x34, 0xc0, 0x38, 0x0c, 0x6e, 0x05, 0xf5, 0x69, 0xeb, - 0x0c, 0xde, 0x47, 0x1a, 0xc7, 0xf7, 0xee, 0xee, 0xac, 0x38, 0xed, 0xd9, - 0x0f, 0x9a, 0x69, 0xb6, 0x8a, 0x40, 0xe0, 0x1f, 0xc8, 0xba, 0xce, 0x65, - 0x17, 0x70, 0xd7, 0x1f, 0xa0, 0x95, 0xb3, 0x7a, 0x74, 0x41, 0xe3, 0xb2, - 0xeb, 0xb2, 0x13, 0x10, 0xde, 0x2b, 0xd2, 0x57, 0xe2, 0xde, 0x8a, 0xf9, - 0x85, 0x91, 0x62, 0xaa, 0x74, 0x5e, 0xc6, 0x13, 0xcd, 0x35, 0xc6, 0x66, - 0x5f, 0x9a, 0x78, 0x37, 0x15, 0x92, 0x6d, 0x15, 0xf5, 0x73, 0xb5, 0xdb, - 0x6f, 0xbd, 0x95, 0x17, 0x97, 0x0f, 0x9f, 0x3e, 0x60, 0x27, 0x92, 0xa4, - 0x89, 0x16, 0xff, 0x1b, 0x2f, 0x22, 0x92, 0xd1, 0xd8, 0xc5, 0xd1, 0x0c, - 0x5f, 0x92, 0xd1, 0xcc, 0x0e, 0x7b, 0x37, 0x24, 0xbd, 0x82, 0x99, 0x93, - 0x25, 0x85, 0xcd, 0x91, 0x1e, 0xda, 0xbb, 0x69, 0xcb, 0x28, 0x6d, 0x99, - 0xb8, 0x0b, 0xb4, 0x85, 0xdf, 0x91, 0xda, 0x46, 0x38, 0x39, 0x00, 0x5b, - 0xd5, 0xec, 0x0d, 0x2a, 0x1f, 0xc3, 0xe0, 0x59, 0xd9, 0x5c, 0x7f, 0x17, - 0xb4, 0x62, 0xd7, 0x40, 0x6f, 0x24, 0xfd, 0xcc, 0xb9, 0x66, 0xa2, 0x96, - 0x2e, 0xb8, 0x4a, 0x47, 0x4f, 0x6f, 0x3f, 0xd2, 0x66, 0x40, 0x7a, 0xb1, - 0xe2, 0x5c, 0x74, 0xec, 0x2a, 0xce, 0xac, 0xc9, 0x97, 0x2a, 0x87, 0xdf, - 0x9a, 0x19, 0x00, 0x7a, 0x01, 0x60, 0x5b, 0x1c, 0x8a, 0xeb, 0x08, 0x96, - 0xe8, 0xc4, 0x4d, 0x9e, 0x56, 0x7d, 0x2c, 0xab, 0xba, 0xd0, 0x62, 0x4d, - 0x55, 0x11, 0x6c, 0xba, 0xc3, 0xab, 0xd0, 0xaa, 0x0c, 0xde, 0xeb, 0x30, - 0x0e, 0xe9, 0x71, 0x4b, 0xc1, 0x47, 0xfd, 0x34, 0x84, 0x5c, 0x4a, 0xb7, - 0xd0, 0xc1, 0xa7, 0x89, 0x6e, 0xb8, 0x84, 0x5b, 0x98, 0xf1, 0x21, 0x05, - 0x89, 0x38, 0x89, 0x3e, 0x72, 0xec, 0x1c, 0x45, 0xa7, 0xe6, 0x90, 0x3c, - 0x2a, 0xc4, 0x1f, 0x05, 0x63, 0x73, 0xb4, 0xb2, 0x7b, 0x53, 0x96, 0xe6, - 0xb0, 0x65, 0x1b, 0x82, 0x1e, 0x15, 0xec, 0x49, 0xdd, 0xe5, 0xc1, 0xc7, - 0xce, 0x0a, 0xef, 0x25, 0x94, 0x27, 0x0a, 0x0e, 0xb4, 0xaa, 0x75, 0x27, - 0xdc, 0xd0, 0x2b, 0xca, 0x1c, 0xb5, 0x7d, 0x99, 0x20, 0x54, 0x99, 0x3e, - 0xf9, 0xc8, 0x00, 0xe5, 0xb2, 0x1d, 0x77, 0x9b, 0x21, 0xa7, 0x24, 0x2a, - 0x95, 0x97, 0x94, 0xde, 0x04, 0x7a, 0x45, 0x9c, 0x90, 0xa3, 0x8c, 0x1e, - 0x06, 0x1a, 0xa9, 0x6c, 0xf3, 0x30, 0x1b, 0xc0, 0xe4, 0xcb, 0xe4, 0x73, - 0x96, 0x8b, 0x5e, 0xa9, 0x7c, 0xae, 0x9d, 0xf0, 0x77, 0x8d, 0xaf, 0x39, - 0x97, 0x7d, 0x0d, 0x0c, 0x48, 0xa3, 0x92, 0x6b, 0xd9, 0x35, 0x96, 0xc9, - 0x7e, 0x37, 0xc1, 0x7f, 0xc4, 0xcb, 0xf6, 0x91, 0x95, 0x72, 0xe0, 0x51, - 0x63, 0x1b, 0xdc, 0x13, 0x33, 0xdc, 0x91, 0xf2, 0x28, 0x6c, 0x8c, 0xb7, - 0x57, 0x17, 0x88, 0x56, 0x4d, 0xf2, 0x57, 0x05, 0xc2, 0xeb, 0x39, 0xf8, - 0x79, 0x9b, 0xd8, 0xc1, 0x97, 0xf1, 0x94, 0xf0, 0x00, 0x6c, 0x58, 0x7f, - 0x0f, 0x6f, 0x62, 0xc4, 0xe6, 0x98, 0x37, 0x95, 0xbd, 0x8f, 0x39, 0xf8, - 0x4d, 0x45, 0xef, 0x63, 0x8e, 0x94, 0x66, 0xec, 0x7d, 0xf4, 0x75, 0x3f, - 0x53, 0xe7, 0x59, 0x51, 0xee, 0xa6, 0xf7, 0xb2, 0x0a, 0xf8, 0x94, 0x4a, - 0x0f, 0xbe, 0x59, 0xb9, 0x22, 0xc2, 0xf4, 0x0f, 0xd8, 0xf6, 0xf5, 0x50, - 0x36, 0x32, 0xbd, 0xa5, 0x2d, 0xbc, 0x92, 0xe9, 0xed, 0x62, 0x6e, 0xa9, - 0x94, 0xbe, 0xa1, 0x85, 0x1b, 0x90, 0xe0, 0x5f, 0x3a, 0x0a, 0x22, 0x0e, - 0xd7, 0x72, 0xae, 0xa0, 0x98, 0xe5, 0x80, 0x5f, 0x2c, 0xd5, 0xfc, 0xef, - 0xff, 0xab, 0x40, 0x0a, 0x01, 0x87, 0x94, 0x78, 0xa4, 0x46, 0x76, 0x86, - 0x29, 0x41, 0xba, 0x32, 0x74, 0x2c, 0xc2, 0x4b, 0x66, 0xb3, 0x40, 0xfa, - 0x2f, 0xed, 0x58, 0xde, 0x66, 0x2d, 0x8c, 0x84, 0x5d, 0xe3, 0x7d, 0x29, - 0xfc, 0xb5, 0x97, 0x82, 0xcd, 0x93, 0x74, 0x0a, 0xbc, 0x23, 0x55, 0x9a, - 0x28, 0x7d, 0xff, 0xe4, 0x29, 0xc0, 0x8e, 0x4c, 0x2a, 0xdf, 0x93, 0x70, - 0x83, 0xf7, 0x89, 0xcf, 0x10, 0xa4, 0x35, 0xf0, 0x5a, 0x98, 0xbc, 0x59, - 0xd3, 0x96, 0x70, 0x26, 0x6f, 0xba, 0xe4, 0x21, 0x41, 0x55, 0xc7, 0x6f, - 0x8a, 0xbf, 0x54, 0x8a, 0x88, 0x6a, 0x0c, 0x56, 0x53, 0x6c, 0x5b, 0xc4, - 0x60, 0xaa, 0x04, 0x8e, 0xc6, 0x9b, 0x23, 0x33, 0x38, 0x26, 0xa1, 0x81, - 0x0a, 0x99, 0x49, 0xdd, 0x82, 0x21, 0xa6, 0x54, 0x2a, 0xe2, 0x15, 0x63, - 0xf8, 0x56, 0xa9, 0x9f, 0x30, 0x34, 0xe6, 0x66, 0xde, 0x98, 0xaf, 0x7c, - 0xcc, 0xd4, 0x5f, 0x55, 0x31, 0xeb, 0x2a, 0x26, 0xd9, 0x30, 0xa8, 0x2a, - 0xd6, 0x98, 0xa4, 0xc9, 0x2a, 0x31, 0xb7, 0xc9, 0x33, 0x38, 0x15, 0x96, - 0xe3, 0xc7, 0x0b, 0x66, 0x52, 0xf9, 0x80, 0x85, 0x85, 0x7a, 0xc0, 0x94, - 0xb4, 0x39, 0x7a, 0xb7, 0xf2, 0xa3, 0xad, 0x9c, 0x5f, 0x36, 0xea, 0x0e, - 0x52, 0x8d, 0xec, 0xa0, 0xa9, 0x46, 0xe0, 0x52, 0x59, 0xf5, 0x9f, 0x02, - 0xbf, 0x55, 0x2e, 0x0b, 0x20, 0xad, 0x55, 0x41, 0x16, 0x1d, 0x50, 0x16, - 0xc0, 0x7a, 0x7f, 0x0b, 0xa9, 0x18, 0xec, 0x1b, 0x7f, 0xad, 0x35, 0xf5, - 0x66, 0x72, 0x6e, 0x66, 0xd9, 0xd1, 0x1e, 0x01, 0x74, 0x4d, 0x84, 0x4d, - 0x7f, 0x4e, 0x07, 0x5a, 0x76, 0x93, 0x24, 0xd3, 0x19, 0x94, 0xcc, 0x2b, - 0x78, 0x28, 0x35, 0x53, 0x2d, 0x23, 0xda, 0xca, 0x56, 0x10, 0x0c, 0x42, - 0x06, 0x4c, 0x81, 0x54, 0xb3, 0x4b, 0xce, 0x09, 0x38, 0xad, 0xaa, 0x9d, - 0x13, 0x65, 0x9e, 0x6c, 0x46, 0x06, 0x68, 0x5e, 0x98, 0x38, 0x01, 0x1e, - 0xfb, 0x72, 0xfa, 0xb5, 0x0a, 0x2c, 0x22, 0x07, 0xb7, 0x10, 0x87, 0xaa, - 0x42, 0x0d, 0x50, 0xf7, 0x3e, 0x31, 0x03, 0xb7, 0xa3, 0xb4, 0x23, 0x23, - 0x84, 0x3b, 0x4a, 0x3a, 0x2f, 0x20, 0xd2, 0x41, 0xaf, 0xa8, 0x4a, 0x14, - 0xd7, 0xce, 0x76, 0xf6, 0x3c, 0xb0, 0x98, 0xfe, 0x36, 0x8d, 0xe4, 0x9f, - 0xf2, 0xc9, 0x80, 0xb2, 0xdd, 0xd1, 0xd7, 0x62, 0x77, 0xa9, 0x62, 0x15, - 0x9d, 0xf9, 0x9d, 0x65, 0xb3, 0x98, 0x67, 0xf7, 0xb1, 0x17, 0xc9, 0x7d, - 0x2c, 0x62, 0x71, 0x07, 0x34, 0x1f, 0x3e, 0xa0, 0xc4, 0x38, 0xc6, 0xec, - 0xc4, 0x98, 0x1c, 0xb8, 0xd2, 0xe8, 0x60, 0x13, 0x6c, 0xb7, 0xc1, 0xb3, - 0xf0, 0x72, 0xa2, 0xa1, 0xf6, 0x18, 0x25, 0x7d, 0x24, 0x30, 0x79, 0x49, - 0x1f, 0xf4, 0x25, 0xe9, 0x6c, 0xef, 0xae, 0x00, 0xfe, 0x5c, 0x0c, 0xd0, - 0xa9, 0xb4, 0x4c, 0x0e, 0xb9, 0xa2, 0x03, 0x40, 0x1a, 0xa4, 0xdf, 0x34, - 0x2b, 0x28, 0x15, 0x14, 0x03, 0xb4, 0xf9, 0xa1, 0x82, 0xef, 0x61, 0xa8, - 0x83, 0x9f, 0xb1, 0x87, 0x2a, 0x89, 0x17, 0xbb, 0xa3, 0x66, 0x8a, 0xcf, - 0xab, 0xec, 0x04, 0x6e, 0x74, 0xdd, 0xa2, 0xf4, 0xfa, 0xab, 0xc0, 0x8f, - 0xdc, 0xd5, 0x81, 0xae, 0x41, 0x91, 0x7f, 0xc4, 0x3b, 0x40, 0x4e, 0x94, - 0x6a, 0xf0, 0x89, 0xfd, 0x29, 0x57, 0xa9, 0xdc, 0xac, 0xa0, 0x30, 0xd9, - 0x06, 0x70, 0x1f, 0x2c, 0x53, 0x1e, 0x07, 0xc5, 0x20, 0x0a, 0x82, 0xf2, - 0x2a, 0x29, 0xd9, 0x56, 0x4b, 0x38, 0x4d, 0x7d, 0xbc, 0xc9, 0x0d, 0xb6, - 0xd8, 0xbf, 0x5c, 0x06, 0x22, 0xdc, 0x30, 0xb3, 0xec, 0x21, 0x7b, 0xc1, - 0x0b, 0x75, 0x9b, 0x52, 0xd0, 0x2f, 0xa6, 0x28, 0xe0, 0xe9, 0x0c, 0xde, - 0x65, 0xf5, 0xc8, 0x24, 0x93, 0x5e, 0x8a, 0xf7, 0x17, 0xfa, 0xef, 0x55, - 0x5c, 0x84, 0x81, 0x1f, 0xab, 0x19, 0xe8, 0x53, 0xb1, 0xe9, 0x3c, 0x26, - 0x0e, 0x5e, 0xc8, 0xe3, 0x7d, 0x71, 0x05, 0xdb, 0x99, 0xeb, 0x12, 0xaa, - 0xff, 0xc0, 0x04, 0x29, 0x45, 0xf3, 0x61, 0xe0, 0x6e, 0x4e, 0x52, 0x24, - 0x58, 0x60, 0x66, 0x1b, 0x32, 0x4b, 0xff, 0x5c, 0xce, 0x8e, 0x43, 0x4b, - 0x54, 0x62, 0xa7, 0x86, 0x9e, 0xcb, 0x36, 0xd6, 0x42, 0x39, 0xba, 0x96, - 0xab, 0x02, 0xa1, 0xd0, 0xa0, 0xee, 0x9f, 0x31, 0x99, 0xba, 0x1b, 0xb6, - 0x6e, 0x8d, 0xbc, 0x41, 0x89, 0x8f, 0xeb, 0x64, 0xbe, 0x9e, 0x55, 0xca, - 0xaa, 0x6d, 0xf8, 0xee, 0x52, 0x7e, 0x76, 0x1d, 0x15, 0x57, 0xb0, 0xad, - 0x9f, 0x40, 0x9a, 0xc4, 0xa7, 0x9d, 0xad, 0xb1, 0x24, 0x36, 0x12, 0x92, - 0x93, 0x90, 0xa5, 0xcc, 0xe6, 0x21, 0xd5, 0x9f, 0x6b, 0x79, 0x46, 0xe1, - 0x4a, 0xc9, 0x93, 0x6b, 0xac, 0x1a, 0x4f, 0x18, 0x84, 0x97, 0xfb, 0x2b, - 0xa1, 0xc8, 0x18, 0x3c, 0x17, 0x6f, 0xf7, 0x8f, 0x8e, 0xc1, 0x94, 0x3b, - 0xc6, 0xa3, 0x13, 0x39, 0x96, 0x4d, 0xb8, 0x79, 0x14, 0x47, 0x0d, 0xe6, - 0x70, 0x7e, 0xb6, 0x65, 0xd6, 0xd5, 0x2e, 0x58, 0x17, 0x09, 0xb2, 0xe3, - 0xe4, 0x2e, 0x07, 0xcc, 0x5b, 0xd3, 0x81, 0x9c, 0x5c, 0x58, 0xed, 0x23, - 0x1f, 0x24, 0xf7, 0xc8, 0x6e, 0xa9, 0x6a, 0x6f, 0xe0, 0x64, 0x2f, 0x43, - 0xd7, 0xf5, 0x95, 0x0c, 0x0c, 0x8a, 0x46, 0xa6, 0x04, 0x24, 0x4d, 0xd1, - 0xbc, 0xe2, 0xe2, 0xcc, 0xae, 0x24, 0x13, 0x73, 0xe4, 0xfb, 0x07, 0xb8, - 0xbb, 0x4d, 0xdd, 0xc8, 0x0d, 0x9f, 0x84, 0x37, 0xb3, 0x15, 0xc7, 0x4d, - 0xb3, 0xc8, 0xf3, 0x24, 0x8b, 0x8c, 0x08, 0xd4, 0xd1, 0x8a, 0xf5, 0xbb, - 0xc2, 0x0e, 0x2e, 0xf0, 0x49, 0x65, 0x24, 0xdb, 0xbe, 0x77, 0x74, 0x04, - 0x25, 0x2b, 0xc2, 0xb0, 0x13, 0xfb, 0x88, 0x4e, 0xf4, 0x16, 0x20, 0xf7, - 0x61, 0x1d, 0xd1, 0x87, 0x3e, 0xd7, 0x25, 0xf7, 0x51, 0x3f, 0xa2, 0x8f, - 0x6a, 0xa6, 0x70, 0xde, 0xe6, 0xa6, 0x50, 0x40, 0x86, 0x05, 0x2f, 0x20, - 0x09, 0xd8, 0x46, 0x63, 0x80, 0x26, 0x61, 0xf0, 0x14, 0xfc, 0x4e, 0x4a, - 0x37, 0xe5, 0xc3, 0xa9, 0xb0, 0xef, 0x9b, 0x7c, 0x2c, 0x2c, 0xe1, 0xf6, - 0x0f, 0x7a, 0xf2, 0xaa, 0x11, 0xdc, 0xe3, 0x7f, 0x28, 0x6a, 0x1b, 0x6c, - 0xfd, 0xf5, 0x0d, 0x73, 0x06, 0x4a, 0x68, 0x58, 0x7d, 0x20, 0x93, 0x6e, - 0x83, 0x4a, 0x16, 0xfa, 0x50, 0xe6, 0x1d, 0x30, 0xd7, 0x28, 0x6a, 0xc9, - 0x34, 0xff, 0x19, 0xff, 0x40, 0x2b, 0x7f, 0x11, 0x47, 0x57, 0x57, 0x61, - 0x78, 0x69, 0x47, 0x9a, 0x05, 0x12, 0x09, 0x34, 0x0c, 0x0c, 0x40, 0x72, - 0x6e, 0x10, 0x4d, 0xbc, 0x29, 0xc6, 0xee, 0x1f, 0x95, 0x30, 0x76, 0xd5, - 0x99, 0x47, 0x82, 0x1f, 0x9a, 0xb2, 0x74, 0x44, 0x35, 0xa8, 0xbe, 0xb5, - 0x52, 0x72, 0xe7, 0xf4, 0x8e, 0x71, 0x7b, 0x6c, 0xc1, 0xd3, 0x79, 0xb6, - 0x7b, 0xde, 0xbb, 0x61, 0x40, 0x9f, 0x0c, 0x14, 0x60, 0x6f, 0xa1, 0x82, - 0x9e, 0xf3, 0x0e, 0x3f, 0xf6, 0xe7, 0xc8, 0xa1, 0x33, 0x55, 0x8e, 0x86, - 0xd6, 0xb1, 0x3f, 0x25, 0xc0, 0x0a, 0xe8, 0xae, 0xfe, 0x9f, 0xf4, 0xe6, - 0x3d, 0x7f, 0x07, 0xaf, 0xdf, 0xc4, 0xba, 0x0c, 0x2a, 0x89, 0x70, 0x2b, - 0x74, 0x81, 0xcf, 0xf1, 0x8f, 0xde, 0xc3, 0x23, 0xb6, 0x56, 0x96, 0x0f, - 0x21, 0xa0, 0x16, 0x39, 0x28, 0x87, 0x2a, 0xf6, 0xaa, 0xe9, 0x6a, 0x1b, - 0x3c, 0x9b, 0xf5, 0xa4, 0xb7, 0xe9, 0x04, 0x70, 0x22, 0x79, 0x20, 0x8c, - 0xa5, 0xf3, 0xad, 0xdb, 0x22, 0xbd, 0x96, 0x4a, 0x52, 0xa5, 0x1c, 0x51, - 0x18, 0x2a, 0x67, 0x78, 0x13, 0x1c, 0x61, 0x01, 0xeb, 0x52, 0x58, 0xea, - 0x0c, 0x2a, 0x58, 0xe5, 0x08, 0xde, 0x08, 0x48, 0x18, 0xc6, 0xf0, 0xcd, - 0xb0, 0xe0, 0xdf, 0x31, 0x7c, 0x25, 0x0c, 0x5f, 0x10, 0xc6, 0xfa, 0x1d, - 0xc3, 0xf7, 0x4f, 0xc1, 0xf0, 0x05, 0x71, 0xbd, 0x4d, 0x30, 0x7c, 0xc1, - 0x1b, 0x98, 0xc8, 0x6e, 0xfe, 0xdc, 0x81, 0x9d, 0x8b, 0x01, 0x86, 0x2f, - 0xb4, 0xfe, 0x04, 0x8e, 0x46, 0xe0, 0xaf, 0x3b, 0xcf, 0x3f, 0x2d, 0xc5, - 0xf1, 0x05, 0x41, 0xc5, 0xff, 0x2e, 0x38, 0xbe, 0xa4, 0xfa, 0xea, 0x08, - 0x1c, 0x5f, 0xbb, 0xf5, 0x3d, 0x81, 0x7c, 0xb5, 0xdc, 0xdf, 0x1e, 0xc9, - 0x97, 0x44, 0xb1, 0xff, 0x0f, 0x90, 0x7c, 0xd3, 0x77, 0x7d, 0x59, 0xb2, - 0x5a, 0x03, 0xea, 0x8b, 0x4e, 0x26, 0xb8, 0x03, 0xeb, 0xe3, 0xb7, 0xc3, - 0x4d, 0xb6, 0xdf, 0x0c, 0xe3, 0xb4, 0x6d, 0x80, 0xa8, 0x95, 0x2e, 0xaf, - 0xde, 0x64, 0x42, 0x37, 0x34, 0x1c, 0xec, 0x85, 0x62, 0x55, 0x1c, 0x14, - 0x18, 0x55, 0xae, 0xf4, 0xdb, 0x25, 0x9d, 0x34, 0xec, 0xe5, 0x7e, 0x5f, - 0xb1, 0xea, 0x2f, 0x6d, 0xdb, 0x6e, 0x8a, 0x6d, 0xcd, 0x2a, 0x00, 0xd3, - 0xb6, 0x96, 0xdd, 0x11, 0x1b, 0x9b, 0x54, 0x75, 0xf0, 0x9b, 0x1f, 0x29, - 0x63, 0x01, 0xe4, 0x23, 0x5a, 0xfa, 0x4d, 0x44, 0x89, 0x23, 0x6b, 0x09, - 0x41, 0xe0, 0xf1, 0x38, 0xb2, 0x16, 0xb4, 0x62, 0xaa, 0x02, 0xc9, 0xd2, - 0x7b, 0xf8, 0x6a, 0x48, 0x82, 0x45, 0xd6, 0xf4, 0x75, 0x95, 0xc3, 0xf1, - 0x5f, 0x39, 0xec, 0xb0, 0x2e, 0xea, 0x05, 0xb5, 0xa9, 0x66, 0x47, 0xcc, - 0x41, 0x6b, 0x48, 0x25, 0xcd, 0x2d, 0x0a, 0xb3, 0xa4, 0x31, 0xa6, 0x92, - 0xf6, 0xd8, 0xb1, 0x2e, 0x4b, 0x2f, 0xbb, 0x35, 0x82, 0x49, 0xf0, 0x94, - 0x4b, 0x05, 0x64, 0x57, 0x17, 0x50, 0x91, 0xed, 0x51, 0x82, 0x02, 0xd8, - 0x1c, 0x25, 0x30, 0x80, 0x4f, 0x55, 0xc1, 0x39, 0x22, 0xfa, 0x34, 0x6e, - 0x4f, 0xbb, 0x88, 0xa8, 0xf1, 0xd2, 0xd2, 0x0d, 0x47, 0x81, 0x3e, 0x2d, - 0x79, 0x3e, 0xb4, 0x76, 0x37, 0x0e, 0xf6, 0x99, 0x62, 0xad, 0x85, 0xd8, - 0x09, 0x79, 0x3e, 0xeb, 0x95, 0x21, 0x26, 0x52, 0x0d, 0x70, 0x2e, 0xf5, - 0x37, 0xdf, 0x38, 0xec, 0x8f, 0x25, 0xbb, 0x66, 0x1e, 0x55, 0x59, 0x0b, - 0xfb, 0xa9, 0x78, 0x31, 0x6b, 0xc6, 0x56, 0x77, 0xd6, 0x53, 0x3b, 0x96, - 0xaa, 0x62, 0xb4, 0x0c, 0xc4, 0x68, 0x49, 0x62, 0x2c, 0x83, 0x7e, 0x46, - 0x27, 0xfd, 0x60, 0xb7, 0xc3, 0xff, 0x96, 0x7e, 0x6b, 0xf2, 0x20, 0x51, - 0xce, 0x49, 0xd3, 0x97, 0x1e, 0xc0, 0xe3, 0x4c, 0x03, 0x3f, 0x9f, 0x3d, - 0xcf, 0x92, 0x5e, 0x8b, 0x08, 0x8f, 0x55, 0x0c, 0xb0, 0x9f, 0xe5, 0x07, - 0x5a, 0x2a, 0x46, 0x85, 0x72, 0x7d, 0x45, 0x76, 0xb5, 0x76, 0xaf, 0x46, - 0xa2, 0x6e, 0x1a, 0x7c, 0x96, 0x3a, 0x65, 0x42, 0x93, 0xa3, 0x24, 0xda, - 0xcb, 0x63, 0x52, 0x03, 0x6c, 0x0d, 0x90, 0xf1, 0xf9, 0xd8, 0x52, 0x68, - 0xeb, 0xd1, 0xfc, 0x74, 0x34, 0xd4, 0x3a, 0xaa, 0x62, 0xbb, 0x04, 0x12, - 0x5b, 0x59, 0x4a, 0x05, 0xe4, 0xc0, 0x8d, 0xa0, 0xb0, 0x9b, 0x05, 0x09, - 0x7f, 0x63, 0x58, 0xd7, 0x7c, 0xb3, 0xb0, 0xae, 0xf9, 0x7d, 0xc2, 0xba, - 0xe6, 0xbf, 0x43, 0x58, 0x77, 0x45, 0x5f, 0xe1, 0xe8, 0x01, 0x9c, 0x6d, - 0x7d, 0x34, 0xc6, 0x58, 0x69, 0x61, 0x9c, 0xf5, 0xc9, 0x10, 0x55, 0xa8, - 0x89, 0xae, 0x55, 0xe5, 0x43, 0x85, 0xc1, 0xe9, 0x7c, 0xb1, 0x2a, 0x4d, - 0x58, 0x6d, 0x4b, 0xab, 0xe2, 0x8b, 0x65, 0x9f, 0xca, 0x20, 0xc1, 0xcb, - 0x7c, 0x71, 0xc5, 0xcd, 0x0c, 0x48, 0x54, 0x42, 0x6f, 0x92, 0x8a, 0x85, - 0x15, 0x50, 0x22, 0xda, 0xdb, 0xa3, 0xaf, 0x40, 0x6a, 0xbf, 0x70, 0x81, - 0x05, 0x2c, 0x33, 0x08, 0xc3, 0xbe, 0xa1, 0xb2, 0xa2, 0x0c, 0x6d, 0x4a, - 0x6e, 0x06, 0x5b, 0xbc, 0x19, 0xb4, 0x3d, 0xc9, 0x94, 0x3a, 0x0c, 0x3f, - 0x42, 0xb7, 0x86, 0x6e, 0x7b, 0xb5, 0x2d, 0xa5, 0x46, 0x27, 0x16, 0x7f, - 0x84, 0x46, 0xd2, 0xac, 0xee, 0x47, 0xed, 0x4b, 0x29, 0xa1, 0xb1, 0x2d, - 0xbc, 0x60, 0xcb, 0xb5, 0x56, 0xbd, 0x9b, 0x22, 0x0d, 0x4e, 0x6e, 0x02, - 0xf4, 0x65, 0x3c, 0xe5, 0xc4, 0xcd, 0x32, 0x62, 0x89, 0xb2, 0x65, 0xb0, - 0xb0, 0xbb, 0x02, 0xc6, 0x7d, 0x41, 0x93, 0x7a, 0xd7, 0xdb, 0xbb, 0x9c, - 0x96, 0x31, 0x30, 0xf0, 0xb8, 0x63, 0xf1, 0x99, 0xdf, 0x46, 0x32, 0x08, - 0x65, 0xc2, 0x31, 0x33, 0x88, 0xa4, 0x31, 0x73, 0x29, 0x65, 0x66, 0x11, - 0x85, 0x0f, 0xcb, 0xce, 0xc2, 0x21, 0xb5, 0x1e, 0x1d, 0xad, 0x71, 0x10, - 0x62, 0x3d, 0x6e, 0xff, 0xc3, 0xd2, 0xaa, 0x2f, 0x1c, 0xfb, 0xe0, 0x69, - 0x8d, 0x20, 0x25, 0xd5, 0xea, 0xdb, 0x59, 0x3e, 0x84, 0x56, 0x8b, 0x44, - 0x3b, 0x1a, 0x5d, 0xd3, 0x89, 0xd4, 0xc8, 0x45, 0xbf, 0xbb, 0x46, 0x85, - 0x56, 0xaa, 0xcf, 0x54, 0x13, 0xc2, 0x66, 0xb3, 0xc9, 0x3f, 0x92, 0xd3, - 0x56, 0x10, 0xb2, 0x4f, 0x10, 0x14, 0xc1, 0xf9, 0xf2, 0xf3, 0xb2, 0xac, - 0xcd, 0xe2, 0x81, 0xfc, 0x03, 0xcf, 0x6f, 0xa3, 0x7d, 0xe0, 0x47, 0x3e, - 0x89, 0xd0, 0xb0, 0x31, 0x9d, 0xee, 0x9d, 0x5f, 0xf8, 0xc0, 0xc8, 0x32, - 0x42, 0xe5, 0x43, 0xbf, 0x30, 0x25, 0x2c, 0xbe, 0xf3, 0x03, 0x3b, 0xf7, - 0x78, 0xe7, 0x96, 0x5a, 0x5b, 0x8c, 0x8e, 0x53, 0xaa, 0xd4, 0x15, 0xa6, - 0x84, 0x79, 0x6c, 0x48, 0x45, 0xef, 0x82, 0xa9, 0x58, 0x2a, 0x1d, 0x91, - 0xde, 0x0f, 0x94, 0x6b, 0x4a, 0xa9, 0x52, 0x52, 0x98, 0x12, 0x16, 0xb1, - 0xe1, 0x80, 0xde, 0xad, 0xb6, 0x20, 0x78, 0x4b, 0xad, 0x22, 0x46, 0xc7, - 0x29, 0x95, 0x3a, 0x4a, 0x09, 0x8b, 0xa0, 0x70, 0x60, 0xef, 0x82, 0xe4, - 0x6d, 0xb5, 0x8e, 0x18, 0x1d, 0xa7, 0x54, 0xea, 0x28, 0x25, 0xcc, 0x28, - 0x95, 0x3a, 0xa2, 0xbd, 0x8b, 0x8b, 0x54, 0xad, 0x23, 0x46, 0xc7, 0x79, - 0x2a, 0x75, 0x94, 0x12, 0x66, 0x94, 0x4a, 0x1d, 0x91, 0xaf, 0x80, 0x48, - 0x94, 0x25, 0x3a, 0xea, 0xc8, 0x33, 0x52, 0xeb, 0x28, 0x21, 0xcc, 0x28, - 0x95, 0x3a, 0x4a, 0x09, 0x33, 0xbf, 0x53, 0xa6, 0xa3, 0x8e, 0x38, 0xf7, - 0x86, 0x5a, 0x47, 0x1d, 0x59, 0xf2, 0x0d, 0xa5, 0x8e, 0x52, 0xc2, 0x8c, - 0xb2, 0x4c, 0x47, 0x9d, 0x83, 0x60, 0x21, 0x0d, 0xb5, 0x8e, 0x3a, 0xb2, - 0xe4, 0x1b, 0x4a, 0x1d, 0xa5, 0x84, 0x19, 0xa5, 0x4a, 0x47, 0xc4, 0xdb, - 0xbf, 0x74, 0xc4, 0xb9, 0x97, 0xe8, 0xe8, 0x45, 0xd2, 0x66, 0x83, 0x5f, - 0x0c, 0xa9, 0x77, 0xd8, 0xec, 0xab, 0x37, 0x3b, 0xb0, 0xbc, 0xc3, 0x32, - 0x08, 0x4a, 0xaf, 0x7c, 0x1c, 0xd3, 0xf8, 0xce, 0x56, 0xfa, 0x4e, 0xb2, - 0x50, 0x06, 0x57, 0x87, 0x77, 0x47, 0xb9, 0x19, 0x38, 0xa5, 0x8e, 0xa7, - 0xdd, 0x0d, 0x3b, 0xa2, 0xdb, 0x52, 0xd1, 0x68, 0xf7, 0x40, 0xba, 0x60, - 0x35, 0xbb, 0x9a, 0xb4, 0x4e, 0x55, 0x8a, 0xa5, 0x7e, 0x47, 0xb3, 0x7f, - 0x51, 0xbf, 0xac, 0xd9, 0x8d, 0x24, 0x77, 0xac, 0x5a, 0x41, 0x74, 0x7b, - 0x29, 0x6c, 0x42, 0x65, 0xe7, 0xa4, 0x54, 0xe4, 0xf8, 0x00, 0x59, 0xd4, - 0x75, 0x47, 0xa3, 0xa7, 0x1e, 0x3e, 0x95, 0x29, 0xc6, 0xa1, 0x55, 0x93, - 0xc1, 0xb7, 0xef, 0xc0, 0x0f, 0xde, 0xa9, 0x53, 0x88, 0xf2, 0x51, 0x44, - 0xfe, 0xb8, 0x4c, 0x95, 0xd2, 0xc5, 0xaa, 0x47, 0xaa, 0x0c, 0xfd, 0xf3, - 0x8d, 0x8e, 0x54, 0xf7, 0xa7, 0x69, 0x56, 0xe8, 0xc7, 0x1c, 0xa7, 0xbe, - 0x01, 0xc6, 0xc2, 0x2e, 0x7c, 0xf2, 0xbc, 0xfa, 0xd9, 0xc9, 0x7e, 0x3f, - 0x3b, 0xfd, 0xa0, 0xb3, 0xd3, 0x8f, 0x39, 0xba, 0xac, 0x49, 0x0d, 0xcb, - 0x22, 0x2b, 0xf2, 0x15, 0x5d, 0x92, 0x4a, 0x43, 0xb9, 0x26, 0xb6, 0xde, - 0x35, 0xe4, 0x5a, 0x58, 0x6d, 0xad, 0x76, 0x68, 0x0b, 0xbb, 0xb9, 0x88, - 0xd8, 0xda, 0xea, 0x14, 0x15, 0xf2, 0x77, 0xdd, 0x13, 0x99, 0x2c, 0xcc, - 0xe5, 0x6c, 0x2c, 0x5e, 0x48, 0xaa, 0x86, 0x7b, 0x09, 0x3a, 0xf1, 0x1e, - 0xfc, 0x20, 0xa4, 0x40, 0x81, 0xe5, 0xbb, 0x4a, 0xca, 0x97, 0x7d, 0xf4, - 0x84, 0xa4, 0x6c, 0x23, 0xb4, 0x74, 0xe3, 0x67, 0xf2, 0xc8, 0x20, 0xef, - 0x09, 0x51, 0xe2, 0x55, 0x49, 0x82, 0x7a, 0xe6, 0xee, 0x9d, 0x90, 0x7e, - 0x57, 0x23, 0x21, 0x61, 0x7f, 0xfb, 0x19, 0x2e, 0xd0, 0xe2, 0x9c, 0xae, - 0x06, 0xba, 0x3d, 0xa1, 0x90, 0x2c, 0xfb, 0xc6, 0xfd, 0xe1, 0xad, 0xaf, - 0x3f, 0xee, 0xb3, 0x29, 0xf7, 0x29, 0x68, 0xd6, 0x1d, 0x51, 0x51, 0x54, - 0xb6, 0x4b, 0x30, 0xec, 0x42, 0xa3, 0x12, 0x2e, 0x40, 0x74, 0x62, 0x37, - 0xc0, 0x46, 0xc3, 0x1d, 0x46, 0x56, 0x6b, 0x01, 0x24, 0xe3, 0xd9, 0x88, - 0x4f, 0xd3, 0xef, 0x49, 0x02, 0x2c, 0xab, 0x3c, 0xf3, 0xaa, 0xaa, 0x82, - 0xc6, 0x5b, 0xdf, 0x40, 0xd1, 0xe1, 0x53, 0x80, 0xcb, 0x08, 0x25, 0x05, - 0x21, 0xb2, 0xf8, 0x89, 0x39, 0x0f, 0x5f, 0xf6, 0xf4, 0x45, 0x6f, 0xfc, - 0xe8, 0x45, 0xe4, 0xd1, 0xa8, 0x83, 0x5a, 0xec, 0x51, 0x2e, 0x9d, 0xca, - 0xff, 0x28, 0x3e, 0xe7, 0xc3, 0x59, 0x23, 0xdf, 0x7d, 0x89, 0x91, 0xdd, - 0x94, 0xbe, 0x79, 0x24, 0x14, 0xc9, 0x1a, 0xa0, 0x10, 0x88, 0xdc, 0xb6, - 0xc1, 0x33, 0x6a, 0xd8, 0x12, 0xb3, 0x6a, 0x68, 0x04, 0x72, 0x80, 0xe5, - 0xff, 0xb0, 0x00, 0xab, 0xf9, 0xbd, 0xb5, 0x67, 0x7f, 0x17, 0xed, 0xed, - 0xbc, 0x75, 0x8d, 0x94, 0x21, 0xbf, 0x9d, 0x06, 0x09, 0xc7, 0xbf, 0xad, - 0x16, 0x5b, 0xdf, 0x5b, 0x8b, 0x8d, 0x32, 0x17, 0xb8, 0x17, 0x00, 0x30, - 0x85, 0xfb, 0xd5, 0x86, 0x76, 0x9a, 0x24, 0xd4, 0xda, 0x4b, 0x41, 0xb2, - 0x2e, 0x28, 0x56, 0x28, 0x95, 0xd8, 0x14, 0x0b, 0xbd, 0x52, 0x3e, 0xac, - 0x16, 0xfe, 0x2b, 0xda, 0xa4, 0x85, 0x92, 0xa0, 0x49, 0xb1, 0x28, 0x97, - 0x7e, 0x76, 0x93, 0x7d, 0xd5, 0x0a, 0xe1, 0x46, 0xd2, 0xfd, 0x16, 0x1e, - 0xd0, 0x44, 0x55, 0x53, 0x6b, 0x70, 0xc1, 0x25, 0x5a, 0x18, 0xb5, 0xd7, - 0xa4, 0xf0, 0xd9, 0xe4, 0x92, 0xeb, 0xaf, 0x63, 0x5e, 0x6d, 0x03, 0xf3, - 0x6a, 0x4a, 0xe6, 0xa5, 0x41, 0x87, 0x66, 0x90, 0xdb, 0x05, 0x80, 0x6b, - 0xa1, 0x08, 0xcb, 0xe0, 0x39, 0x1f, 0x65, 0x02, 0xe2, 0x5c, 0x5b, 0x25, - 0x25, 0x17, 0x9a, 0x69, 0x64, 0x58, 0x6f, 0xf4, 0x22, 0x79, 0x45, 0x40, - 0x55, 0xf9, 0x52, 0x11, 0xd1, 0xaf, 0xe5, 0x0f, 0x66, 0xab, 0x96, 0x06, - 0x6f, 0x91, 0x98, 0xda, 0x38, 0x5c, 0x43, 0xdf, 0x7a, 0xe6, 0xf5, 0x80, - 0xe5, 0x37, 0xdb, 0x74, 0x40, 0x43, 0xc5, 0x33, 0xad, 0x96, 0x41, 0x31, - 0x02, 0xfb, 0x2c, 0x1f, 0xfb, 0x64, 0x32, 0x37, 0xf1, 0xb9, 0x88, 0xa5, - 0x5d, 0xad, 0xa0, 0x4e, 0x64, 0x98, 0x55, 0xcd, 0xaa, 0xf8, 0x19, 0x95, - 0xd6, 0x81, 0x23, 0x9c, 0x95, 0x40, 0x7e, 0x1b, 0xac, 0x43, 0x70, 0x94, - 0x65, 0x3c, 0x8b, 0x65, 0xed, 0x65, 0xca, 0xcd, 0x49, 0x52, 0xfd, 0x79, - 0x3d, 0x83, 0x57, 0xf6, 0x19, 0x53, 0x59, 0x9a, 0x6a, 0x9e, 0x55, 0x4d, - 0xbc, 0x51, 0x66, 0xe2, 0x19, 0xb2, 0x3f, 0x3e, 0x04, 0xc4, 0xb4, 0xa0, - 0xb1, 0xc4, 0xba, 0xf3, 0x28, 0x32, 0xdc, 0x99, 0x19, 0xe1, 0x07, 0xcb, - 0x7d, 0xa9, 0x92, 0x4a, 0xda, 0xe9, 0x11, 0xe7, 0x8f, 0xbb, 0x49, 0x1f, - 0x9f, 0x30, 0x47, 0x9f, 0x9f, 0x74, 0x4b, 0xe5, 0x9e, 0xb2, 0x8f, 0x1a, - 0x24, 0x3a, 0xce, 0x37, 0x6c, 0x7f, 0x28, 0x8c, 0xf6, 0x2a, 0x29, 0xc9, - 0x63, 0x1f, 0x01, 0x99, 0x29, 0x5e, 0xfd, 0xdc, 0x46, 0xae, 0xfc, 0x1d, - 0x8f, 0xec, 0xbb, 0x08, 0x26, 0x6f, 0xe0, 0x00, 0xc3, 0x20, 0xa5, 0x7b, - 0xc1, 0x06, 0x4f, 0x93, 0xc0, 0xb4, 0xb0, 0xe4, 0x09, 0x36, 0x0e, 0x35, - 0x77, 0x95, 0x13, 0x04, 0x4f, 0xa5, 0x7f, 0xe3, 0x32, 0xd1, 0x92, 0x6f, - 0x40, 0xe7, 0x90, 0x90, 0x4a, 0x3e, 0xb0, 0xc9, 0x5f, 0x70, 0x99, 0x7e, - 0xad, 0x59, 0xef, 0xb1, 0x93, 0x3a, 0xb4, 0x95, 0xf2, 0x6b, 0xcd, 0xfa, - 0x67, 0x8a, 0x09, 0x4c, 0xce, 0xd5, 0x00, 0x91, 0x2f, 0x52, 0x93, 0x4f, - 0x96, 0xf2, 0x77, 0x25, 0x6c, 0x94, 0xc0, 0x66, 0xa2, 0x7f, 0x50, 0x99, - 0x01, 0xa8, 0x55, 0x63, 0xac, 0xaf, 0x01, 0x28, 0x8e, 0x37, 0x91, 0xa1, - 0x8a, 0xa5, 0xbe, 0x44, 0x0c, 0x1a, 0xab, 0x86, 0xa9, 0xbe, 0x44, 0x30, - 0xfb, 0x92, 0x33, 0x63, 0x81, 0xd6, 0x01, 0xf6, 0x04, 0xc9, 0x77, 0x10, - 0x80, 0xe5, 0xa9, 0x7f, 0x44, 0x3d, 0x27, 0xdf, 0x91, 0x09, 0x36, 0x1b, - 0xe4, 0xd2, 0xf2, 0xba, 0x3f, 0x10, 0xe6, 0x03, 0xbc, 0x99, 0xd5, 0x3f, - 0xe8, 0xee, 0xe7, 0xd5, 0x80, 0x1e, 0xf1, 0x01, 0x29, 0x4a, 0x33, 0x32, - 0x9e, 0x4f, 0x51, 0x92, 0x08, 0x4a, 0x3c, 0x4b, 0x1a, 0x92, 0x6f, 0x9e, - 0xe6, 0xc2, 0xe5, 0xe2, 0x6e, 0xa3, 0xd3, 0xd7, 0x37, 0xf7, 0x64, 0x82, - 0xff, 0x23, 0x4b, 0xfc, 0x10, 0x61, 0x89, 0x63, 0x7d, 0x6e, 0xd9, 0xbb, - 0x1a, 0xb4, 0x62, 0x0f, 0xa7, 0x3e, 0x93, 0xe5, 0x87, 0xbd, 0xb9, 0x47, - 0xdd, 0x40, 0x1c, 0xb0, 0xdf, 0x07, 0xde, 0x1a, 0x7d, 0xb6, 0x81, 0x05, - 0x54, 0x58, 0x84, 0xc5, 0x8e, 0x79, 0x69, 0x58, 0xf6, 0x32, 0x16, 0x77, - 0x91, 0xfb, 0x94, 0x37, 0x10, 0x54, 0x1c, 0xf3, 0x01, 0x5a, 0x41, 0x52, - 0x91, 0x9b, 0x4c, 0xd7, 0x83, 0x3e, 0x7b, 0x7c, 0xd4, 0x57, 0x9b, 0x99, - 0x46, 0xf4, 0xcc, 0x2b, 0x7f, 0x88, 0xd7, 0x78, 0xd8, 0x06, 0x5f, 0xe5, - 0x95, 0x39, 0x9b, 0x0e, 0xd9, 0xe0, 0x2b, 0xd0, 0x02, 0xc2, 0x6b, 0x72, - 0x30, 0x11, 0xc0, 0xe7, 0xe8, 0xf6, 0x50, 0xfe, 0xfd, 0xf5, 0xb2, 0x48, - 0xc4, 0xe4, 0x7b, 0xf2, 0x04, 0xe3, 0x2a, 0xb5, 0xf6, 0x73, 0x13, 0xa6, - 0x76, 0xed, 0xd9, 0x21, 0x9f, 0x98, 0x26, 0x4e, 0x0b, 0x0e, 0xd8, 0xcf, - 0xf5, 0x7e, 0xa5, 0xa9, 0x67, 0xa2, 0xf7, 0x29, 0x93, 0x30, 0xd8, 0x3b, - 0x0f, 0xc4, 0x92, 0x6e, 0x9c, 0x1b, 0x68, 0xf5, 0xea, 0x1d, 0x45, 0x5e, - 0x42, 0xd5, 0xbe, 0x85, 0x5e, 0x26, 0xa6, 0x4a, 0x5f, 0x76, 0xb7, 0xcd, - 0x3e, 0x77, 0x5d, 0xf9, 0xbb, 0xed, 0xc2, 0x67, 0xd4, 0xcb, 0xf8, 0xbe, - 0xe5, 0x97, 0xc8, 0xcb, 0xf9, 0x56, 0xfb, 0xce, 0x78, 0x09, 0x6e, 0x5c, - 0x69, 0x3c, 0xf4, 0x8d, 0x9f, 0x1e, 0x37, 0xba, 0x05, 0xbd, 0x73, 0x57, - 0x8a, 0xc7, 0x39, 0x06, 0x6f, 0x92, 0xc5, 0x0b, 0x1d, 0x9e, 0x05, 0x6a, - 0x18, 0xbc, 0x7b, 0xe2, 0x53, 0x7b, 0x24, 0x0f, 0x3a, 0x59, 0xfe, 0x5c, - 0x17, 0x86, 0xf2, 0x46, 0x32, 0xbd, 0xea, 0xe2, 0x4b, 0xa0, 0xf7, 0x44, - 0xf8, 0x52, 0xd5, 0x45, 0x24, 0xa7, 0x5f, 0xbe, 0xc6, 0xae, 0xf6, 0x2a, - 0x92, 0x93, 0x47, 0x8f, 0x41, 0x18, 0x6b, 0xeb, 0x21, 0x38, 0x3d, 0xcd, - 0xdf, 0x68, 0x2a, 0x23, 0x24, 0x6a, 0x7b, 0x61, 0xd5, 0xd9, 0xff, 0x81, - 0xef, 0xf0, 0x2a, 0xcb, 0x02, 0x66, 0xde, 0x03, 0x39, 0x7b, 0x90, 0xd0, - 0x39, 0x7e, 0x85, 0xf0, 0x5f, 0x1b, 0x7a, 0xe7, 0x74, 0x43, 0xee, 0x3b, - 0xc9, 0xbb, 0xa4, 0x52, 0x3e, 0x06, 0x38, 0x2a, 0x24, 0x36, 0x74, 0xc8, - 0xe6, 0x1e, 0x9f, 0xb2, 0xfc, 0x55, 0x81, 0x49, 0x21, 0x4a, 0x29, 0x8f, - 0x16, 0xc8, 0x96, 0x92, 0x85, 0x9c, 0x85, 0xb8, 0x0c, 0x48, 0xbc, 0x55, - 0x01, 0xc3, 0xcc, 0xb1, 0xbf, 0x83, 0x22, 0x5a, 0x81, 0xb5, 0xd1, 0x2d, - 0x68, 0x12, 0x28, 0x0f, 0xbc, 0x27, 0x2f, 0x02, 0xd1, 0x0d, 0x0c, 0xf6, - 0x6f, 0x96, 0x07, 0x2d, 0xdd, 0x49, 0x8d, 0x20, 0x32, 0xc9, 0x9e, 0xff, - 0x90, 0x7c, 0xed, 0x30, 0xb9, 0xe9, 0xa7, 0x88, 0x54, 0x91, 0x1b, 0x1f, - 0xf6, 0x90, 0x9f, 0xe1, 0x09, 0x49, 0xc1, 0x43, 0x68, 0x4a, 0xed, 0x0b, - 0x2c, 0xea, 0x45, 0x67, 0xc1, 0x6b, 0xd0, 0x21, 0x1e, 0x45, 0x26, 0x78, - 0xa5, 0x79, 0x7f, 0x00, 0x87, 0x2a, 0xfd, 0x49, 0x85, 0x3c, 0xc5, 0x3f, - 0xae, 0x74, 0x1a, 0x07, 0x47, 0x50, 0x52, 0x40, 0x7f, 0x90, 0x8b, 0x24, - 0x6d, 0x71, 0x14, 0x5f, 0x8e, 0xd8, 0xa4, 0x7e, 0xdd, 0x00, 0xfa, 0x64, - 0xab, 0xa1, 0x77, 0xad, 0x2c, 0x9c, 0xc3, 0x6a, 0x64, 0xe7, 0x65, 0x33, - 0x48, 0xf9, 0x5c, 0x23, 0x43, 0x58, 0xf9, 0x5c, 0xab, 0x23, 0xa0, 0xe5, - 0xc9, 0xde, 0x04, 0x5c, 0x24, 0x80, 0x59, 0xa5, 0x0a, 0xc6, 0x4c, 0xd7, - 0xed, 0xdb, 0xd8, 0xb2, 0x55, 0xcd, 0x0e, 0xf5, 0x47, 0x2d, 0x95, 0x1d, - 0xea, 0x7d, 0xa8, 0xc2, 0x0e, 0xf5, 0x4e, 0xdc, 0x3f, 0xec, 0xd2, 0x76, - 0x2d, 0xc0, 0x7e, 0xd5, 0x37, 0x11, 0xef, 0xf6, 0xfb, 0x23, 0xec, 0x77, - 0xee, 0xbe, 0xc4, 0x07, 0x7c, 0xba, 0x4e, 0xa2, 0x4a, 0x72, 0xa5, 0x87, - 0x7f, 0x4f, 0xee, 0x23, 0xea, 0xa8, 0x7f, 0x71, 0xb9, 0xb8, 0x1e, 0x0f, - 0x86, 0xbf, 0x5a, 0x60, 0x5e, 0xcc, 0x0d, 0x6b, 0xec, 0x80, 0x4e, 0x5e, - 0x18, 0x28, 0x11, 0xe2, 0x1a, 0x85, 0x54, 0x16, 0x10, 0xcb, 0xb9, 0x84, - 0x4d, 0x02, 0xbf, 0x44, 0x6e, 0xe7, 0x42, 0x54, 0x04, 0x49, 0x69, 0x02, - 0x56, 0xa7, 0x0c, 0x0e, 0xf3, 0x0c, 0xe3, 0x72, 0x86, 0x8d, 0xca, 0x0c, - 0xa3, 0x52, 0x86, 0x1c, 0x2c, 0x50, 0x7d, 0x63, 0x87, 0x3e, 0x87, 0xce, - 0x5e, 0x7a, 0x1f, 0x09, 0x81, 0xf8, 0xaa, 0x6d, 0x95, 0x36, 0x27, 0x95, - 0x51, 0x68, 0x3a, 0x9c, 0x0c, 0xbb, 0x73, 0xad, 0x9d, 0xf2, 0x06, 0xfd, - 0x51, 0xf7, 0x7a, 0xa2, 0xb5, 0x50, 0x4e, 0x7f, 0x7d, 0x35, 0x9d, 0x8e, - 0xa7, 0xda, 0x98, 0x97, 0x37, 0xe8, 0x8d, 0xa7, 0x83, 0xe1, 0x54, 0x1b, - 0xf4, 0xe6, 0x7b, 0x58, 0x8c, 0x6f, 0xfa, 0xc3, 0x62, 0xec, 0x5b, 0xb2, - 0x06, 0xe6, 0xa5, 0x52, 0x34, 0x58, 0xf1, 0xef, 0x52, 0x24, 0x91, 0x5d, - 0xa9, 0x14, 0x0d, 0xee, 0x08, 0xde, 0xa5, 0x48, 0x22, 0x78, 0xf7, 0x39, - 0xa9, 0x98, 0x4b, 0xab, 0x25, 0xe0, 0xb7, 0xca, 0xf2, 0x36, 0xad, 0xdd, - 0xed, 0xc9, 0xb1, 0x3c, 0x78, 0x2e, 0xb2, 0xd1, 0xef, 0xd9, 0xfd, 0xc0, - 0xdd, 0x6c, 0xbc, 0x95, 0x47, 0x92, 0x33, 0xdb, 0x20, 0xf8, 0xfd, 0xb0, - 0x57, 0x8c, 0xc8, 0xfc, 0x93, 0x94, 0xdd, 0x43, 0x1c, 0x8c, 0xc6, 0x83, - 0xff, 0x26, 0x49, 0x5a, 0xb4, 0xf4, 0xf0, 0xa1, 0x2a, 0xf0, 0xb7, 0x00, - 0x42, 0x84, 0x3e, 0x7d, 0xd5, 0x23, 0x8d, 0xa3, 0xc3, 0x7e, 0xbf, 0xf5, - 0xa0, 0x90, 0x44, 0x9f, 0xa8, 0xbf, 0x74, 0xc8, 0x83, 0x42, 0x54, 0xfa, - 0x45, 0x5b, 0x7d, 0x64, 0x7e, 0xe1, 0xc6, 0xab, 0xc7, 0x72, 0x26, 0x85, - 0x20, 0xbd, 0xc8, 0x65, 0xc4, 0xa4, 0x0b, 0xe7, 0x24, 0xe4, 0x4c, 0x34, - 0x68, 0x7c, 0xe9, 0x2e, 0x6c, 0x0f, 0xb4, 0x2b, 0x87, 0x93, 0xa6, 0xe8, - 0x1c, 0x9a, 0xa5, 0x93, 0x36, 0x68, 0x0c, 0xb4, 0x8b, 0x26, 0x25, 0xed, - 0x1f, 0x96, 0x04, 0xcf, 0x79, 0xaf, 0x5d, 0x34, 0x69, 0x03, 0x6b, 0xa0, - 0xcd, 0x58, 0x70, 0x52, 0x06, 0x89, 0xa3, 0x4d, 0x59, 0x64, 0x83, 0x79, - 0xf4, 0xb0, 0x9c, 0x69, 0xe9, 0x4d, 0x31, 0x71, 0x21, 0x5d, 0xf6, 0x1d, - 0x11, 0xe4, 0x58, 0x9a, 0x20, 0x27, 0x6d, 0x19, 0xd1, 0xa4, 0x58, 0x48, - 0x53, 0x61, 0x68, 0x49, 0xc0, 0x7c, 0xaa, 0x7e, 0xb3, 0xa1, 0x90, 0x93, - 0x88, 0xc9, 0xbd, 0xd0, 0x33, 0xe1, 0xd7, 0x20, 0xa7, 0xfe, 0x38, 0xe9, - 0x09, 0xbe, 0x52, 0xd4, 0x1f, 0x14, 0x45, 0x86, 0xb6, 0x9e, 0xa1, 0xfe, - 0x00, 0x29, 0x32, 0xb4, 0xf4, 0x0c, 0xf5, 0x37, 0x96, 0x22, 0xc3, 0xba, - 0x9e, 0x21, 0x08, 0xab, 0xaa, 0x55, 0xb1, 0xee, 0xf3, 0x36, 0x23, 0xf7, - 0x09, 0x07, 0x72, 0x75, 0x52, 0x06, 0x46, 0x4e, 0x18, 0xab, 0x78, 0xfb, - 0x0a, 0x7f, 0xef, 0xd3, 0x2e, 0xa2, 0x80, 0x28, 0x99, 0x91, 0x8f, 0x86, - 0xaa, 0xe2, 0x5f, 0xbb, 0xa5, 0x17, 0x75, 0xca, 0xe7, 0xb6, 0xb7, 0x98, - 0x74, 0x81, 0x4a, 0x69, 0xdb, 0xa4, 0x62, 0x98, 0x42, 0x4c, 0x51, 0x4e, - 0x10, 0x03, 0x7d, 0x02, 0xea, 0x82, 0xe4, 0x29, 0x11, 0x71, 0xcb, 0x40, - 0x7a, 0xc8, 0xe6, 0x49, 0x8e, 0xa8, 0xa3, 0x40, 0x3a, 0xbc, 0x76, 0x5e, - 0x58, 0xff, 0xb5, 0x60, 0x53, 0x1b, 0xb8, 0xb1, 0xe3, 0x6d, 0x21, 0x4e, - 0xf5, 0x8e, 0x9e, 0x93, 0xe7, 0x1b, 0x70, 0xb2, 0xce, 0xed, 0x3c, 0x27, - 0x40, 0x2a, 0x41, 0xc8, 0x92, 0xf1, 0xa4, 0xce, 0x8e, 0x3e, 0x88, 0x86, - 0x38, 0x9d, 0xe9, 0xd1, 0x67, 0x24, 0x46, 0x4b, 0xa1, 0x82, 0x5a, 0x42, - 0xbc, 0xd4, 0x8b, 0x59, 0xe2, 0xf3, 0x40, 0x50, 0xfd, 0x21, 0x46, 0x06, - 0xe5, 0x55, 0x12, 0xa3, 0x10, 0x86, 0xd7, 0x37, 0x46, 0x68, 0x98, 0xd1, - 0xeb, 0xdc, 0x39, 0xa2, 0xb0, 0x52, 0xab, 0x60, 0x47, 0x0a, 0x7e, 0x42, - 0xf7, 0x5f, 0x07, 0xf0, 0xaa, 0xda, 0x32, 0x38, 0xf6, 0x53, 0xae, 0xc3, - 0x79, 0x1f, 0xc2, 0x7e, 0xa0, 0xa5, 0x33, 0xea, 0x10, 0x08, 0xe6, 0x95, - 0x3a, 0x8b, 0xaf, 0xa8, 0xfb, 0xe2, 0x41, 0x9f, 0x93, 0xb4, 0x0d, 0xee, - 0xf6, 0x45, 0x46, 0x5f, 0x94, 0x8c, 0x0c, 0xe0, 0x7f, 0x66, 0xcf, 0xde, - 0x1f, 0x7f, 0x90, 0x78, 0x08, 0x88, 0x97, 0x39, 0x72, 0xbd, 0x3a, 0x60, - 0x4e, 0xdb, 0x13, 0x0c, 0x68, 0xed, 0x96, 0x9f, 0x12, 0x8f, 0x85, 0xef, - 0xe3, 0xaa, 0x76, 0xfb, 0x94, 0x76, 0x2a, 0xdc, 0x39, 0xa8, 0xb6, 0xfb, - 0x94, 0xf6, 0x92, 0x59, 0xa1, 0x66, 0xaf, 0x4f, 0xa9, 0x7b, 0xd4, 0xf6, - 0x35, 0xbb, 0x7d, 0x26, 0x1f, 0xb6, 0xe2, 0x2a, 0x3c, 0x97, 0xca, 0xba, - 0x01, 0x24, 0x6b, 0x19, 0x14, 0xc9, 0xa5, 0x73, 0x82, 0x9a, 0x17, 0xde, - 0xcd, 0x29, 0x9b, 0x4f, 0xa1, 0xe6, 0x06, 0x25, 0x8a, 0x0c, 0x4a, 0xb8, - 0x80, 0x61, 0x0f, 0x1c, 0xaa, 0xb2, 0x53, 0x00, 0x04, 0x78, 0x0f, 0xe4, - 0xb4, 0xa6, 0x97, 0x3d, 0xc0, 0x56, 0xeb, 0x06, 0x30, 0x2a, 0xe9, 0xd6, - 0x28, 0xde, 0x9f, 0x08, 0xf9, 0xb4, 0xba, 0x01, 0xf6, 0x18, 0x2b, 0x7c, - 0xa6, 0x93, 0xcb, 0x06, 0x21, 0xc0, 0x86, 0xeb, 0xbd, 0xa7, 0x58, 0x39, - 0x0d, 0x70, 0x30, 0xf8, 0x44, 0xa4, 0x00, 0x08, 0x04, 0x30, 0x68, 0x19, - 0x38, 0x3a, 0x86, 0xc4, 0x98, 0x54, 0x73, 0x9f, 0xb4, 0x9b, 0x35, 0x72, - 0xd3, 0x86, 0xf7, 0x04, 0x7a, 0x53, 0xc5, 0x5f, 0x4c, 0x95, 0x21, 0x23, - 0xab, 0x85, 0x4b, 0x63, 0xc2, 0x3d, 0x29, 0x15, 0xe3, 0x97, 0x34, 0x95, - 0x2f, 0x44, 0x09, 0x98, 0x2e, 0x3e, 0xb0, 0xb1, 0xc3, 0xe3, 0x85, 0xb7, - 0x15, 0x79, 0x15, 0x03, 0x2d, 0xa5, 0xa8, 0xae, 0x9d, 0x07, 0x25, 0x1f, - 0x15, 0x6e, 0x1c, 0x10, 0x5f, 0xb9, 0xfe, 0x61, 0x97, 0x9b, 0x25, 0x45, - 0xb4, 0x64, 0xcf, 0x10, 0xb3, 0xea, 0x6d, 0x28, 0x66, 0x17, 0xe8, 0xd0, - 0x14, 0x80, 0x52, 0x31, 0x68, 0x84, 0x66, 0x37, 0xe3, 0xe9, 0x35, 0x80, - 0x3d, 0xa6, 0x6d, 0x7a, 0x09, 0xbd, 0x5f, 0x36, 0x68, 0x95, 0xeb, 0xb1, - 0x51, 0xa1, 0x6d, 0xaf, 0xdb, 0x01, 0x52, 0x05, 0x46, 0xed, 0x72, 0xbd, - 0xb6, 0xaa, 0xb4, 0x16, 0xe1, 0x57, 0xda, 0x95, 0xba, 0xe5, 0x8f, 0x11, - 0xcf, 0x2a, 0x75, 0xb8, 0xe8, 0xf2, 0xef, 0xc4, 0x77, 0xaa, 0xb4, 0xb4, - 0xea, 0x8b, 0x2e, 0x7f, 0x9e, 0x7e, 0x6e, 0xde, 0x54, 0x78, 0x0e, 0x69, - 0x55, 0xb0, 0x1f, 0xab, 0x9d, 0x37, 0xa0, 0x2a, 0x16, 0x24, 0x76, 0x5a, - 0xc5, 0x86, 0x8a, 0xbd, 0x56, 0xb3, 0x22, 0xb1, 0xdf, 0x6a, 0x76, 0x54, - 0xec, 0xb9, 0x82, 0x25, 0x59, 0xed, 0x0b, 0xde, 0xae, 0x8a, 0x21, 0x49, - 0x0d, 0x2b, 0x59, 0x52, 0x57, 0x6a, 0x5a, 0xc1, 0x94, 0x2c, 0xeb, 0x62, - 0x71, 0x49, 0xfe, 0x81, 0x4d, 0x4a, 0xe0, 0x50, 0xc1, 0xa2, 0x2e, 0x7b, - 0xe7, 0x8b, 0x21, 0x5f, 0x38, 0xb6, 0xb9, 0x55, 0x0d, 0x86, 0x93, 0xf9, - 0x27, 0xd4, 0x1f, 0x5f, 0x4f, 0xc4, 0x47, 0xba, 0xe6, 0x86, 0xc5, 0xdb, - 0x0b, 0xaf, 0x81, 0x6d, 0x73, 0x03, 0xe3, 0xed, 0x1b, 0x36, 0x9f, 0xbb, - 0x6d, 0x6e, 0x63, 0x94, 0x81, 0xdd, 0x5c, 0x7c, 0x11, 0x5c, 0x64, 0x05, - 0x3b, 0x13, 0x06, 0x5d, 0xc5, 0xba, 0x78, 0x2b, 0x6e, 0x5b, 0xa4, 0x34, - 0x3f, 0xbd, 0x37, 0x3d, 0xf8, 0x1b, 0xba, 0x47, 0xe1, 0xe3, 0x27, 0xbd, - 0x71, 0x4b, 0xd3, 0x71, 0xd9, 0xc3, 0x2c, 0x5d, 0x17, 0x33, 0x61, 0x3a, - 0x67, 0xba, 0x2e, 0x92, 0x4f, 0xb4, 0x56, 0xee, 0x43, 0x54, 0x79, 0x47, - 0xd7, 0x49, 0xf2, 0xa5, 0xd2, 0xaa, 0x9d, 0x4c, 0x25, 0xbd, 0x9e, 0xeb, - 0x7a, 0x21, 0x31, 0xcc, 0x31, 0xbd, 0x5c, 0x8a, 0xdd, 0x70, 0xb8, 0x1f, - 0xa5, 0xc4, 0xec, 0xe3, 0xd4, 0x42, 0x96, 0xb9, 0xd4, 0x93, 0x90, 0xe1, - 0x36, 0x68, 0xdb, 0x59, 0xe0, 0xf3, 0xa3, 0x00, 0x87, 0x56, 0xc5, 0x11, - 0xe3, 0xc6, 0x93, 0xdb, 0x9b, 0xfe, 0xa7, 0xf9, 0xa7, 0xe9, 0xf8, 0xf6, - 0xf2, 0xd3, 0xa2, 0x3b, 0x9a, 0x7c, 0x12, 0xb6, 0x2e, 0x06, 0x32, 0x64, - 0xec, 0x71, 0x16, 0xc3, 0x6e, 0x9f, 0xb7, 0x35, 0x5f, 0x30, 0xb3, 0xab, - 0xcb, 0x9b, 0xe1, 0x60, 0x51, 0xe0, 0x50, 0x65, 0x93, 0xcf, 0xb7, 0x35, - 0x77, 0xcf, 0x69, 0xef, 0x05, 0x16, 0x67, 0x95, 0xd4, 0xd0, 0x65, 0x7a, - 0x90, 0x59, 0x98, 0x3b, 0xec, 0xaf, 0xfd, 0x5e, 0x7f, 0xba, 0x18, 0xdd, - 0x5e, 0x77, 0x79, 0x6b, 0x73, 0x67, 0xcd, 0x5a, 0x37, 0xed, 0xfa, 0xa2, - 0x8f, 0x35, 0x29, 0xf0, 0x68, 0xd6, 0xcd, 0x27, 0xd1, 0xeb, 0x73, 0xcd, - 0x37, 0xcd, 0x47, 0xde, 0x13, 0x8c, 0xaf, 0x69, 0x3e, 0xe4, 0x5e, 0xbf, - 0xc1, 0xa3, 0xb9, 0x0a, 0xa3, 0xec, 0xce, 0xe6, 0xfd, 0x45, 0xf3, 0x45, - 0xc0, 0xdd, 0x33, 0x37, 0x34, 0xda, 0xb6, 0x25, 0xb6, 0x35, 0x37, 0xb1, - 0xa4, 0xad, 0x10, 0x49, 0x9a, 0x9b, 0x18, 0x6d, 0xdb, 0x16, 0xdb, 0x9a, - 0x07, 0x01, 0x49, 0x5b, 0xee, 0x55, 0xdb, 0xe6, 0xaa, 0xa1, 0x6d, 0x3b, - 0x62, 0xbf, 0xe6, 0xfa, 0x49, 0xda, 0xf2, 0x7e, 0xcf, 0xcc, 0x03, 0x80, - 0xa4, 0x2d, 0xdf, 0x6e, 0xce, 0xcc, 0x37, 0x7f, 0xda, 0xd6, 0xaa, 0x0b, - 0x83, 0x3e, 0x33, 0xf7, 0x68, 0x69, 0x63, 0x61, 0xd4, 0xe6, 0xbb, 0x7e, - 0xda, 0x58, 0x18, 0x76, 0x45, 0xd3, 0xc2, 0x8d, 0xc5, 0xf2, 0xcf, 0x8a, - 0xc6, 0x65, 0xd9, 0x52, 0xeb, 0x8a, 0xe6, 0x45, 0x5a, 0xf3, 0x85, 0x78, - 0x76, 0x96, 0x1e, 0x55, 0xc9, 0xf1, 0xf4, 0xb7, 0x9f, 0x7e, 0x39, 0x7d, - 0x5a, 0xbd, 0xec, 0xb6, 0xbf, 0xfd, 0xf4, 0x7f, 0xf9, 0x0b, 0x6a, 0x39, - -}; diff --git a/lib/mesa/src/broadcom/common/v3d_device_info.h b/lib/mesa/src/broadcom/common/v3d_device_info.h index b0a2a0215..97abd9b8d 100644 --- a/lib/mesa/src/broadcom/common/v3d_device_info.h +++ b/lib/mesa/src/broadcom/common/v3d_device_info.h @@ -24,6 +24,7 @@ #ifndef V3D_CHIP_H #define V3D_CHIP_H +#include <stdbool.h> #include <stdint.h> /** @@ -35,6 +36,14 @@ struct v3d_device_info { /** Size of the VPM, in bytes. */ int vpm_size; + + /* NSLC * QUPS from the core's IDENT registers. */ + int qpu_count; }; +typedef int (*v3d_ioctl_fun)(int fd, unsigned long request, void *arg); + +bool +v3d_get_device_info(int fd, struct v3d_device_info* devinfo, v3d_ioctl_fun fun); + #endif diff --git a/lib/mesa/src/broadcom/compiler/vir_lower_uniforms.c b/lib/mesa/src/broadcom/compiler/vir_lower_uniforms.c deleted file mode 100644 index 7f3bb8460..000000000 --- a/lib/mesa/src/broadcom/compiler/vir_lower_uniforms.c +++ /dev/null @@ -1,209 +0,0 @@ -/* - * Copyright © 2014 Broadcom - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * 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. - */ - -/** - * @file v3d_vir_lower_uniforms.c - * - * This is the pre-code-generation pass for fixing up instructions that try to - * read from multiple uniform values. - */ - -#include "v3d_compiler.h" -#include "util/hash_table.h" -#include "util/u_math.h" - -static inline uint32_t -index_hash(const void *key) -{ - return (uintptr_t)key; -} - -static inline bool -index_compare(const void *a, const void *b) -{ - return a == b; -} - -static void -add_uniform(struct hash_table *ht, struct qreg reg) -{ - struct hash_entry *entry; - void *key = (void *)(uintptr_t)(reg.index + 1); - - entry = _mesa_hash_table_search(ht, key); - if (entry) { - entry->data++; - } else { - _mesa_hash_table_insert(ht, key, (void *)(uintptr_t)1); - } -} - -static void -remove_uniform(struct hash_table *ht, struct qreg reg) -{ - struct hash_entry *entry; - void *key = (void *)(uintptr_t)(reg.index + 1); - - entry = _mesa_hash_table_search(ht, key); - assert(entry); - entry->data = (void *)(((uintptr_t) entry->data) - 1); - if (entry->data == NULL) - _mesa_hash_table_remove(ht, entry); -} - -static bool -is_lowerable_uniform(struct qinst *inst, int i) -{ - if (inst->src[i].file != QFILE_UNIF) - return false; - if (vir_has_implicit_uniform(inst)) - return i != vir_get_implicit_uniform_src(inst); - return true; -} - -/* Returns the number of different uniform values referenced by the - * instruction. - */ -static uint32_t -vir_get_instruction_uniform_count(struct qinst *inst) -{ - uint32_t count = 0; - - for (int i = 0; i < vir_get_nsrc(inst); i++) { - if (inst->src[i].file != QFILE_UNIF) - continue; - - bool is_duplicate = false; - for (int j = 0; j < i; j++) { - if (inst->src[j].file == QFILE_UNIF && - inst->src[j].index == inst->src[i].index) { - is_duplicate = true; - break; - } - } - if (!is_duplicate) - count++; - } - - return count; -} - -void -vir_lower_uniforms(struct v3d_compile *c) -{ - struct hash_table *ht = - _mesa_hash_table_create(c, index_hash, index_compare); - - /* Walk the instruction list, finding which instructions have more - * than one uniform referenced, and add those uniform values to the - * ht. - */ - vir_for_each_inst_inorder(inst, c) { - uint32_t nsrc = vir_get_nsrc(inst); - - if (vir_get_instruction_uniform_count(inst) <= 1) - continue; - - for (int i = 0; i < nsrc; i++) { - if (is_lowerable_uniform(inst, i)) - add_uniform(ht, inst->src[i]); - } - } - - while (ht->entries) { - /* Find the most commonly used uniform in instructions that - * need a uniform lowered. - */ - uint32_t max_count = 0; - uint32_t max_index = 0; - struct hash_entry *entry; - hash_table_foreach(ht, entry) { - uint32_t count = (uintptr_t)entry->data; - uint32_t index = (uintptr_t)entry->key - 1; - if (count > max_count) { - max_count = count; - max_index = index; - } - } - - struct qreg unif = vir_reg(QFILE_UNIF, max_index); - - /* Now, find the instructions using this uniform and make them - * reference a temp instead. - */ - vir_for_each_block(block, c) { - struct qinst *mov = NULL; - - vir_for_each_inst(inst, block) { - uint32_t nsrc = vir_get_nsrc(inst); - - uint32_t count = vir_get_instruction_uniform_count(inst); - - if (count <= 1) - continue; - - /* If the block doesn't have a load of the - * uniform yet, add it. We could potentially - * do better and CSE MOVs from multiple blocks - * into dominating blocks, except that may - * cause troubles for register allocation. - */ - if (!mov) { - mov = vir_mul_inst(V3D_QPU_M_MOV, - vir_get_temp(c), - unif, c->undef); - list_add(&mov->link, - &block->instructions); - c->defs[mov->dst.index] = mov; - } - - bool removed = false; - for (int i = 0; i < nsrc; i++) { - if (is_lowerable_uniform(inst, i) && - inst->src[i].index == max_index) { - inst->src[i].file = - mov->dst.file; - inst->src[i].index = - mov->dst.index; - remove_uniform(ht, unif); - removed = true; - } - } - if (removed) - count--; - - /* If the instruction doesn't need lowering any more, - * then drop it from the list. - */ - if (count <= 1) { - for (int i = 0; i < nsrc; i++) { - if (is_lowerable_uniform(inst, i)) - remove_uniform(ht, inst->src[i]); - } - } - } - } - } - - _mesa_hash_table_destroy(ht, NULL); -} |