Update headers from rnndb
diff --git a/src/cmdstream.xml.h b/src/cmdstream.xml.h
index 09591d2..7cef950 100644
--- a/src/cmdstream.xml.h
+++ b/src/cmdstream.xml.h
@@ -8,11 +8,11 @@
git clone git://0x04.net/rules-ng-ng
The rules-ng-ng source files this header was generated from are:
-- cmdstream.xml ( 14313 bytes, from 2016-11-17 18:46:23)
+- cmdstream.xml ( 16929 bytes, from 2017-10-13 12:22:46)
- copyright.xml ( 1597 bytes, from 2016-10-29 07:29:22)
-- common.xml ( 23529 bytes, from 2017-05-10 12:36:01)
+- common.xml ( 26193 bytes, from 2017-10-13 12:18:24)
-Copyright (C) 2012-2016 by the following authors:
+Copyright (C) 2012-2017 by the following authors:
- Wladimir J. van der Laan <laanwj@gmail.com>
- Christian Gmeiner <christian.gmeiner@gmail.com>
- Lucas Stach <l.stach@pengutronix.de>
@@ -52,6 +52,9 @@
#define FE_OPCODE_RETURN 0x0000000b
#define FE_OPCODE_DRAW_INSTANCED 0x0000000c
#define FE_OPCODE_CHIP_SELECT 0x0000000d
+#define FE_OPCODE_WAIT_FENCE 0x0000000f
+#define FE_OPCODE_DRAW_INDIRECT 0x00000010
+#define FE_OPCODE_SNAP_PAGES 0x00000013
#define PRIMITIVE_TYPE_POINTS 0x00000001
#define PRIMITIVE_TYPE_LINES 0x00000002
#define PRIMITIVE_TYPE_LINE_STRIP 0x00000003
@@ -192,6 +195,9 @@
#define VIV_FE_STALL_TOKEN_TO__MASK 0x00001f00
#define VIV_FE_STALL_TOKEN_TO__SHIFT 8
#define VIV_FE_STALL_TOKEN_TO(x) (((x) << VIV_FE_STALL_TOKEN_TO__SHIFT) & VIV_FE_STALL_TOKEN_TO__MASK)
+#define VIV_FE_STALL_TOKEN_UNK28__MASK 0x30000000
+#define VIV_FE_STALL_TOKEN_UNK28__SHIFT 28
+#define VIV_FE_STALL_TOKEN_UNK28(x) (((x) << VIV_FE_STALL_TOKEN_UNK28__SHIFT) & VIV_FE_STALL_TOKEN_UNK28__MASK)
#define VIV_FE_CALL 0x00000000
@@ -266,5 +272,43 @@
#define VIV_FE_DRAW_INSTANCED_START_INDEX__SHIFT 0
#define VIV_FE_DRAW_INSTANCED_START_INDEX(x) (((x) << VIV_FE_DRAW_INSTANCED_START_INDEX__SHIFT) & VIV_FE_DRAW_INSTANCED_START_INDEX__MASK)
+#define VIV_FE_WAIT_FENCE 0x00000000
+
+#define VIV_FE_WAIT_FENCE_HEADER 0x00000000
+#define VIV_FE_WAIT_FENCE_HEADER_OP__MASK 0xf8000000
+#define VIV_FE_WAIT_FENCE_HEADER_OP__SHIFT 27
+#define VIV_FE_WAIT_FENCE_HEADER_OP_WAIT_FENCE 0x78000000
+#define VIV_FE_WAIT_FENCE_HEADER_UNK16__MASK 0x00030000
+#define VIV_FE_WAIT_FENCE_HEADER_UNK16__SHIFT 16
+#define VIV_FE_WAIT_FENCE_HEADER_UNK16(x) (((x) << VIV_FE_WAIT_FENCE_HEADER_UNK16__SHIFT) & VIV_FE_WAIT_FENCE_HEADER_UNK16__MASK)
+#define VIV_FE_WAIT_FENCE_HEADER_WAITCOUNT__MASK 0x0000ffff
+#define VIV_FE_WAIT_FENCE_HEADER_WAITCOUNT__SHIFT 0
+#define VIV_FE_WAIT_FENCE_HEADER_WAITCOUNT(x) (((x) << VIV_FE_WAIT_FENCE_HEADER_WAITCOUNT__SHIFT) & VIV_FE_WAIT_FENCE_HEADER_WAITCOUNT__MASK)
+
+#define VIV_FE_WAIT_FENCE_ADDRESS 0x00000004
+
+#define VIV_FE_DRAW_INDIRECT 0x00000000
+
+#define VIV_FE_DRAW_INDIRECT_HEADER 0x00000000
+#define VIV_FE_DRAW_INDIRECT_HEADER_OP__MASK 0xf8000000
+#define VIV_FE_DRAW_INDIRECT_HEADER_OP__SHIFT 27
+#define VIV_FE_DRAW_INDIRECT_HEADER_OP_DRAW_INDIRECT 0x80000000
+#define VIV_FE_DRAW_INDIRECT_HEADER_UNK8 0x00000100
+#define VIV_FE_DRAW_INDIRECT_HEADER_TYPE__MASK 0x0000000f
+#define VIV_FE_DRAW_INDIRECT_HEADER_TYPE__SHIFT 0
+#define VIV_FE_DRAW_INDIRECT_HEADER_TYPE(x) (((x) << VIV_FE_DRAW_INDIRECT_HEADER_TYPE__SHIFT) & VIV_FE_DRAW_INDIRECT_HEADER_TYPE__MASK)
+
+#define VIV_FE_DRAW_INDIRECT_ADDRESS 0x00000004
+
+#define VIV_FE_SNAP_PAGES 0x00000000
+
+#define VIV_FE_SNAP_PAGES_HEADER 0x00000000
+#define VIV_FE_SNAP_PAGES_HEADER_OP__MASK 0xf8000000
+#define VIV_FE_SNAP_PAGES_HEADER_OP__SHIFT 27
+#define VIV_FE_SNAP_PAGES_HEADER_OP_SNAP_PAGES 0x98000000
+#define VIV_FE_SNAP_PAGES_HEADER_UNK0__MASK 0x0000001f
+#define VIV_FE_SNAP_PAGES_HEADER_UNK0__SHIFT 0
+#define VIV_FE_SNAP_PAGES_HEADER_UNK0(x) (((x) << VIV_FE_SNAP_PAGES_HEADER_UNK0__SHIFT) & VIV_FE_SNAP_PAGES_HEADER_UNK0__MASK)
+
#endif /* CMDSTREAM_XML */
diff --git a/src/common.xml.h b/src/common.xml.h
index b4732cc..b85bd8a 100644
--- a/src/common.xml.h
+++ b/src/common.xml.h
@@ -8,13 +8,10 @@
git clone git://0x04.net/rules-ng-ng
The rules-ng-ng source files this header was generated from are:
-- state.xml ( 19930 bytes, from 2017-01-07 14:27:54)
-- common.xml ( 23529 bytes, from 2017-05-10 12:36:01)
-- state_hi.xml ( 26403 bytes, from 2017-01-07 14:27:54)
-- copyright.xml ( 1597 bytes, from 2016-10-29 07:29:22)
-- state_2d.xml ( 51552 bytes, from 2016-10-29 07:29:22)
-- state_3d.xml ( 67197 bytes, from 2017-07-23 10:53:21)
-- state_vg.xml ( 5975 bytes, from 2016-10-29 07:29:22)
+- texdesc_3d.xml ( 3146 bytes, from 2017-10-13 12:18:33)
+- copyright.xml ( 1597 bytes, from 2016-10-29 07:29:22)
+- common.xml ( 26193 bytes, from 2017-10-13 12:18:24)
+- common_3d.xml ( 12531 bytes, from 2017-10-13 11:04:24)
Copyright (C) 2012-2017 by the following authors:
- Wladimir J. van der Laan <laanwj@gmail.com>
@@ -49,12 +46,7 @@
#define SYNC_RECIPIENT_RA 0x00000005
#define SYNC_RECIPIENT_PE 0x00000007
#define SYNC_RECIPIENT_DE 0x0000000b
-#define SYNC_RECIPIENT_VG 0x0000000f
-#define SYNC_RECIPIENT_TESSELATOR 0x00000010
-#define SYNC_RECIPIENT_VG2 0x00000011
-#define SYNC_RECIPIENT_TESSELATOR2 0x00000012
-#define SYNC_RECIPIENT_VG3 0x00000013
-#define SYNC_RECIPIENT_TESSELATOR3 0x00000014
+#define SYNC_RECIPIENT_BLT 0x00000010
#define ENDIAN_MODE_NO_SWAP 0x00000000
#define ENDIAN_MODE_SWAP_16 0x00000001
#define ENDIAN_MODE_SWAP_32 0x00000002
@@ -77,6 +69,7 @@
#define chipModel_GC800 0x00000800
#define chipModel_GC860 0x00000860
#define chipModel_GC880 0x00000880
+#define chipModel_GC900 0x00000900
#define chipModel_GC1000 0x00001000
#define chipModel_GC1500 0x00001500
#define chipModel_GC2000 0x00002000
@@ -88,6 +81,12 @@
#define chipModel_GC5000 0x00005000
#define chipModel_GC5200 0x00005200
#define chipModel_GC6400 0x00006400
+#define chipModel_GC7000 0x00007000
+#define chipModel_GC7400 0x00007400
+#define chipModel_GC8000 0x00008000
+#define chipModel_GC8100 0x00008100
+#define chipModel_GC8200 0x00008200
+#define chipModel_GC8400 0x00008400
#define RGBA_BITS_R 0x00000001
#define RGBA_BITS_G 0x00000002
#define RGBA_BITS_B 0x00000004
@@ -203,7 +202,7 @@
#define chipMinorFeatures2_RGB888 0x00001000
#define chipMinorFeatures2_TX__YUV_ASSEMBLER 0x00002000
#define chipMinorFeatures2_DYNAMIC_FREQUENCY_SCALING 0x00004000
-#define chipMinorFeatures2_EXTRA_TEXTURE_STATE 0x00008000
+#define chipMinorFeatures2_TX_FILTER 0x00008000
#define chipMinorFeatures2_FULL_DIRECTFB 0x00010000
#define chipMinorFeatures2_2D_TILING 0x00020000
#define chipMinorFeatures2_THREAD_WALKER_IN_PS 0x00040000
@@ -242,36 +241,36 @@
#define chipMinorFeatures3_TX_ENHANCEMENTS1 0x00080000
#define chipMinorFeatures3_SH_ENHANCEMENTS1 0x00100000
#define chipMinorFeatures3_SH_ENHANCEMENTS2 0x00200000
-#define chipMinorFeatures3_UNK22 0x00400000
+#define chipMinorFeatures3_PE_ENHANCEMENTS1 0x00400000
#define chipMinorFeatures3_2D_FC_SOURCE 0x00800000
-#define chipMinorFeatures3_UNK24 0x01000000
-#define chipMinorFeatures3_UNK25 0x02000000
+#define chipMinorFeatures3_BUG_FIXES_14 0x01000000
+#define chipMinorFeatures3_POWER_OPTIMIZATIONS_0 0x02000000
#define chipMinorFeatures3_NEW_HZ 0x04000000
#define chipMinorFeatures3_PE_DITHER_FIX 0x08000000
-#define chipMinorFeatures3_UNK28 0x10000000
+#define chipMinorFeatures3_DE_ENHANCEMENTS3 0x10000000
#define chipMinorFeatures3_SH_ENHANCEMENTS3 0x20000000
-#define chipMinorFeatures3_UNK30 0x40000000
-#define chipMinorFeatures3_UNK31 0x80000000
-#define chipMinorFeatures4_UNK0 0x00000001
+#define chipMinorFeatures3_SH_ENHANCEMENTS4 0x40000000
+#define chipMinorFeatures3_TX_ENHANCEMENTS2 0x80000000
+#define chipMinorFeatures4_FE_ENHANCEMENTS1 0x00000001
#define chipMinorFeatures4_PE_ENHANCEMENTS2 0x00000002
#define chipMinorFeatures4_FRUSTUM_CLIP_FIX 0x00000004
-#define chipMinorFeatures4_UNK3 0x00000008
-#define chipMinorFeatures4_UNK4 0x00000010
+#define chipMinorFeatures4_DE_NO_GAMMA 0x00000008
+#define chipMinorFeatures4_PA_ENHANCEMENTS_2 0x00000010
#define chipMinorFeatures4_2D_GAMMA 0x00000020
#define chipMinorFeatures4_SINGLE_BUFFER 0x00000040
-#define chipMinorFeatures4_UNK7 0x00000080
-#define chipMinorFeatures4_UNK8 0x00000100
-#define chipMinorFeatures4_UNK9 0x00000200
-#define chipMinorFeatures4_UNK10 0x00000400
+#define chipMinorFeatures4_HI_ENHANCEMENTS_1 0x00000080
+#define chipMinorFeatures4_TX_ENHANCEMENTS_3 0x00000100
+#define chipMinorFeatures4_SH_ENHANCEMENTS_5 0x00000200
+#define chipMinorFeatures4_FE_ENHANCEMENTS_2 0x00000400
#define chipMinorFeatures4_TX_LERP_PRECISION_FIX 0x00000800
#define chipMinorFeatures4_2D_COLOR_SPACE_CONVERSION 0x00001000
#define chipMinorFeatures4_TEXTURE_ASTC 0x00002000
-#define chipMinorFeatures4_UNK14 0x00004000
-#define chipMinorFeatures4_UNK15 0x00008000
+#define chipMinorFeatures4_PE_ENHANCEMENTS_4 0x00004000
+#define chipMinorFeatures4_MC_ENHANCEMENTS_1 0x00008000
#define chipMinorFeatures4_HALTI2 0x00010000
#define chipMinorFeatures4_2D_MIRROR_EXTENSION 0x00020000
#define chipMinorFeatures4_SMALL_MSAA 0x00040000
-#define chipMinorFeatures4_UNK19 0x00080000
+#define chipMinorFeatures4_BUG_FIXES_17 0x00080000
#define chipMinorFeatures4_NEW_RA 0x00100000
#define chipMinorFeatures4_2D_OPF_YUV_OUTPUT 0x00200000
#define chipMinorFeatures4_2D_MULTI_SOURCE_BLT_EX2 0x00400000
@@ -280,41 +279,46 @@
#define chipMinorFeatures4_BUG_FIXES18 0x02000000
#define chipMinorFeatures4_2D_COMPRESSION 0x04000000
#define chipMinorFeatures4_PROBE 0x08000000
-#define chipMinorFeatures4_UNK28 0x10000000
+#define chipMinorFeatures4_MEDIUM_PRECISION 0x10000000
#define chipMinorFeatures4_2D_SUPER_TILE_VERSION 0x20000000
-#define chipMinorFeatures4_UNK30 0x40000000
-#define chipMinorFeatures4_UNK31 0x80000000
-#define chipMinorFeatures5_UNK0 0x00000001
-#define chipMinorFeatures5_UNK1 0x00000002
-#define chipMinorFeatures5_UNK2 0x00000004
-#define chipMinorFeatures5_UNK3 0x00000008
+#define chipMinorFeatures4_BUG_FIXES19 0x40000000
+#define chipMinorFeatures4_SH_ENHANCEMENTS6 0x80000000
+#define chipMinorFeatures5_SH_ENHANCEMENTS7 0x00000001
+#define chipMinorFeatures5_BUG_FIXES20 0x00000002
+#define chipMinorFeatures5_DE_ADDRESS_40 0x00000004
+#define chipMinorFeatures5_MINI_MMU_FIX 0x00000008
#define chipMinorFeatures5_EEZ 0x00000010
-#define chipMinorFeatures5_UNK5 0x00000020
-#define chipMinorFeatures5_UNK6 0x00000040
-#define chipMinorFeatures5_UNK7 0x00000080
-#define chipMinorFeatures5_UNK8 0x00000100
+#define chipMinorFeatures5_BUG_FIXES21 0x00000020
+#define chipMinorFeatures5_EXTRA_VG_CAPS 0x00000040
+#define chipMinorFeatures5_MULTI_SRC_V15 0x00000080
+#define chipMinorFeatures5_BUG_FIXES22 0x00000100
#define chipMinorFeatures5_HALTI3 0x00000200
-#define chipMinorFeatures5_UNK10 0x00000400
+#define chipMinorFeatures5_TESSELATION_SHADERS 0x00000400
#define chipMinorFeatures5_2D_ONE_PASS_FILTER_TAP 0x00000800
-#define chipMinorFeatures5_UNK12 0x00001000
+#define chipMinorFeatures5_MULTI_SRC_V2_STR_QUAD 0x00001000
#define chipMinorFeatures5_SEPARATE_SRC_DST 0x00002000
#define chipMinorFeatures5_HALTI4 0x00004000
-#define chipMinorFeatures5_UNK15 0x00008000
+#define chipMinorFeatures5_RA_WRITE_DEPTH 0x00008000
#define chipMinorFeatures5_ANDROID_ONLY 0x00010000
#define chipMinorFeatures5_HAS_PRODUCTID 0x00020000
-#define chipMinorFeatures5_UNK18 0x00040000
-#define chipMinorFeatures5_UNK19 0x00080000
+#define chipMinorFeatures5_TX_SUPPORT_DEC 0x00040000
+#define chipMinorFeatures5_S8_MSAA_COMPRESSION 0x00080000
#define chipMinorFeatures5_PE_DITHER_FIX2 0x00100000
-#define chipMinorFeatures5_UNK21 0x00200000
-#define chipMinorFeatures5_UNK22 0x00400000
-#define chipMinorFeatures5_UNK23 0x00800000
-#define chipMinorFeatures5_UNK24 0x01000000
-#define chipMinorFeatures5_UNK25 0x02000000
-#define chipMinorFeatures5_UNK26 0x04000000
+#define chipMinorFeatures5_L2_CACHE_REMOVE 0x00200000
+#define chipMinorFeatures5_FE_ALLOW_RND_VTX_CNT 0x00400000
+#define chipMinorFeatures5_CUBE_MAP_FL28 0x00800000
+#define chipMinorFeatures5_TX_6BIT_FRAC 0x01000000
+#define chipMinorFeatures5_FE_ALLOW_STALL_PREFETCH_ENG 0x02000000
+#define chipMinorFeatures5_THIRD_PARTY_COMPRESSION 0x04000000
#define chipMinorFeatures5_RS_DEPTHSTENCIL_NATIVE_SUPPORT 0x08000000
#define chipMinorFeatures5_V2_MSAA_COMP_FIX 0x10000000
-#define chipMinorFeatures5_UNK29 0x20000000
-#define chipMinorFeatures5_UNK30 0x40000000
-#define chipMinorFeatures5_UNK31 0x80000000
+#define chipMinorFeatures5_HALTI5 0x20000000
+#define chipMinorFeatures5_EVIS 0x40000000
+#define chipMinorFeatures5_BLT_ENGINE 0x80000000
+#define chipMinorFeatures6_BUG_FIXES_23 0x00000001
+#define chipMinorFeatures6_BUG_FIXES_24 0x00000002
+#define chipMinorFeatures6_DEC 0x00000004
+#define chipMinorFeatures6_VS_TILE_NV12 0x00000008
+#define chipMinorFeatures6_VS_TILE_NV12_10BIT 0x00000010
#endif /* COMMON_XML */
diff --git a/src/common_3d.xml.h b/src/common_3d.xml.h
new file mode 100644
index 0000000..1832655
--- /dev/null
+++ b/src/common_3d.xml.h
@@ -0,0 +1,140 @@
+#ifndef COMMON_3D_XML
+#define COMMON_3D_XML
+
+/* Autogenerated file, DO NOT EDIT manually!
+
+This file was generated by the rules-ng-ng headergen tool in this git repository:
+http://0x04.net/cgit/index.cgi/rules-ng-ng
+git clone git://0x04.net/rules-ng-ng
+
+The rules-ng-ng source files this header was generated from are:
+- texdesc_3d.xml ( 3146 bytes, from 2017-10-13 12:18:33)
+- copyright.xml ( 1597 bytes, from 2016-10-29 07:29:22)
+- common.xml ( 26193 bytes, from 2017-10-13 12:18:24)
+- common_3d.xml ( 12531 bytes, from 2017-10-13 11:04:24)
+
+Copyright (C) 2012-2017 by the following authors:
+- Wladimir J. van der Laan <laanwj@gmail.com>
+- Christian Gmeiner <christian.gmeiner@gmail.com>
+- Lucas Stach <l.stach@pengutronix.de>
+- Russell King <rmk@arm.linux.org.uk>
+
+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, sub license,
+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 NON-INFRINGEMENT. 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.
+*/
+
+
+#define TEXTURE_FORMAT_NONE 0x00000000
+#define TEXTURE_FORMAT_A8 0x00000001
+#define TEXTURE_FORMAT_L8 0x00000002
+#define TEXTURE_FORMAT_I8 0x00000003
+#define TEXTURE_FORMAT_A8L8 0x00000004
+#define TEXTURE_FORMAT_A4R4G4B4 0x00000005
+#define TEXTURE_FORMAT_X4R4G4B4 0x00000006
+#define TEXTURE_FORMAT_A8R8G8B8 0x00000007
+#define TEXTURE_FORMAT_X8R8G8B8 0x00000008
+#define TEXTURE_FORMAT_A8B8G8R8 0x00000009
+#define TEXTURE_FORMAT_X8B8G8R8 0x0000000a
+#define TEXTURE_FORMAT_R5G6B5 0x0000000b
+#define TEXTURE_FORMAT_A1R5G5B5 0x0000000c
+#define TEXTURE_FORMAT_X1R5G5B5 0x0000000d
+#define TEXTURE_FORMAT_YUY2 0x0000000e
+#define TEXTURE_FORMAT_UYVY 0x0000000f
+#define TEXTURE_FORMAT_D16 0x00000010
+#define TEXTURE_FORMAT_D24S8 0x00000011
+#define TEXTURE_FORMAT_DXT1 0x00000013
+#define TEXTURE_FORMAT_DXT2_DXT3 0x00000014
+#define TEXTURE_FORMAT_DXT4_DXT5 0x00000015
+#define TEXTURE_FORMAT_E5B9G9R9 0x0000001d
+#define TEXTURE_FORMAT_ETC1 0x0000001e
+#define TEXTURE_FORMAT_EXT_NONE 0x00000000
+#define TEXTURE_FORMAT_EXT_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x00000001
+#define TEXTURE_FORMAT_EXT_RGBA8_ETC2_EAC 0x00000002
+#define TEXTURE_FORMAT_EXT_R11_EAC 0x00000003
+#define TEXTURE_FORMAT_EXT_RG11_EAC 0x00000004
+#define TEXTURE_FORMAT_EXT_SIGNED_RG11_EAC 0x00000005
+#define TEXTURE_FORMAT_EXT_G8R8 0x00000006
+#define TEXTURE_FORMAT_EXT_R16F 0x00000007
+#define TEXTURE_FORMAT_EXT_G16R16F 0x00000008
+#define TEXTURE_FORMAT_EXT_A16B16G16R16F 0x00000009
+#define TEXTURE_FORMAT_EXT_R32F 0x0000000a
+#define TEXTURE_FORMAT_EXT_G32R32F 0x0000000b
+#define TEXTURE_FORMAT_EXT_A2B10G10R10 0x0000000c
+#define TEXTURE_FORMAT_EXT_SIGNED_R11_EAC 0x0000000d
+#define TEXTURE_FORMAT_EXT_R8_SNORM 0x0000000e
+#define TEXTURE_FORMAT_EXT_G8R8_SNORM 0x0000000f
+#define TEXTURE_FORMAT_EXT_X8B8G8R8_SNORM 0x00000010
+#define TEXTURE_FORMAT_EXT_A8B8G8R8_SNORM 0x00000011
+#define TEXTURE_FORMAT_EXT_ASTC 0x00000014
+#define TEXTURE_FORMAT_EXT_R8I 0x00000015
+#define TEXTURE_FORMAT_EXT_G8R8I 0x00000016
+#define TEXTURE_FORMAT_EXT_A8B8G8R8I 0x00000017
+#define TEXTURE_FORMAT_EXT_R16I 0x00000018
+#define TEXTURE_FORMAT_EXT_G16R16I 0x00000019
+#define TEXTURE_FORMAT_EXT_A16B16G16R16I 0x0000001a
+#define TEXTURE_FORMAT_EXT_B10G11R11F 0x0000001b
+#define TEXTURE_FORMAT_EXT_A2B10G10R10UI 0x0000001c
+#define TEXTURE_FORMAT_EXT_R8 0x00000021
+#define TEXTURE_FORMAT_EXT_D24S8 0x00000022
+#define TEXTURE_FORMAT_EXT_R32I 0x00000023
+#define TEXTURE_FORMAT_EXT_G32R32I 0x00000024
+#define TEXTURE_FORMAT_EXT_AYUV 0x00000025
+#define TEXTURE_FILTER_NONE 0x00000000
+#define TEXTURE_FILTER_NEAREST 0x00000001
+#define TEXTURE_FILTER_LINEAR 0x00000002
+#define TEXTURE_FILTER_ANISOTROPIC 0x00000003
+#define TEXTURE_TYPE_NONE 0x00000000
+#define TEXTURE_TYPE_1D 0x00000001
+#define TEXTURE_TYPE_2D 0x00000002
+#define TEXTURE_TYPE_3D 0x00000003
+#define TEXTURE_TYPE_CUBE_MAP 0x00000005
+#define TEXTURE_WRAPMODE_REPEAT 0x00000000
+#define TEXTURE_WRAPMODE_MIRRORED_REPEAT 0x00000001
+#define TEXTURE_WRAPMODE_CLAMP_TO_EDGE 0x00000002
+#define TEXTURE_WRAPMODE_CLAMP_TO_BORDER 0x00000003
+#define TEXTURE_FACE_POS_X 0x00000000
+#define TEXTURE_FACE_NEG_X 0x00000001
+#define TEXTURE_FACE_POS_Y 0x00000002
+#define TEXTURE_FACE_NEG_Y 0x00000003
+#define TEXTURE_FACE_POS_Z 0x00000004
+#define TEXTURE_FACE_NEG_Z 0x00000005
+#define TEXTURE_SWIZZLE_RED 0x00000000
+#define TEXTURE_SWIZZLE_GREEN 0x00000001
+#define TEXTURE_SWIZZLE_BLUE 0x00000002
+#define TEXTURE_SWIZZLE_ALPHA 0x00000003
+#define TEXTURE_SWIZZLE_ZERO 0x00000004
+#define TEXTURE_SWIZZLE_ONE 0x00000005
+#define TEXTURE_HALIGN_FOUR 0x00000000
+#define TEXTURE_HALIGN_SIXTEEN 0x00000001
+#define TEXTURE_HALIGN_SUPER_TILED 0x00000002
+#define TEXTURE_HALIGN_SPLIT_TILED 0x00000003
+#define TEXTURE_HALIGN_SPLIT_SUPER_TILED 0x00000004
+#define COLOR_COMPRESSION_FORMAT_A4R4G4B4 0x00000000
+#define COLOR_COMPRESSION_FORMAT_A1R5G5B5 0x00000001
+#define COLOR_COMPRESSION_FORMAT_R5G6B5 0x00000002
+#define COLOR_COMPRESSION_FORMAT_A8R8G8B8 0x00000003
+#define COLOR_COMPRESSION_FORMAT_X8R8G8B8 0x00000004
+#define TE_SAMPLER_CONFIG2_UNK16 0x00010000
+#define TE_SAMPLER_CONFIG2_UNK17 0x00020000
+#define TE_SAMPLER_CONFIG2_UNK18 0x00040000
+#define TE_SAMPLER_CONFIG2_UNK19 0x00080000
+#define TE_SAMPLER_CONFIG2_UNK23 0x00800000
+#define TE_SAMPLER_CONFIG3_MSAA 0x00000008
+
+#endif /* COMMON_3D_XML */
diff --git a/src/etnaviv_cl_bench.c b/src/etnaviv_cl_bench.c
index ac962a3..2503cc6 100644
--- a/src/etnaviv_cl_bench.c
+++ b/src/etnaviv_cl_bench.c
@@ -181,7 +181,7 @@
static void gen_cmd_stream_gc3000(struct etna_cmd_stream *stream, struct gpu_code *gpu_code,
struct etna_bo *bmp, uint32_t out_gpu_addr)
{
- etna_set_state(stream, VIVS_PA_SYSTEM_MODE, VIVS_PA_SYSTEM_MODE_UNK0 | VIVS_PA_SYSTEM_MODE_UNK4);
+ etna_set_state(stream, VIVS_PA_SYSTEM_MODE, VIVS_PA_SYSTEM_MODE_PROVOKING_VERTEX_LAST | VIVS_PA_SYSTEM_MODE_HALF_PIXEL_CENTER);
etna_set_state(stream, VIVS_GL_API_MODE, VIVS_GL_API_MODE_OPENCL);
etna_set_state(stream, VIVS_VS_UNIFORM_CACHE, 0x1000);
@@ -243,7 +243,7 @@
static void gen_cmd_stream_gc2000(struct etna_cmd_stream *stream, struct gpu_code *gpu_code,
struct etna_bo *bmp, uint32_t out_gpu_addr)
{
- etna_set_state(stream, VIVS_PA_SYSTEM_MODE, VIVS_PA_SYSTEM_MODE_UNK0 | VIVS_PA_SYSTEM_MODE_UNK4);
+ etna_set_state(stream, VIVS_PA_SYSTEM_MODE, VIVS_PA_SYSTEM_MODE_PROVOKING_VERTEX_LAST | VIVS_PA_SYSTEM_MODE_HALF_PIXEL_CENTER);
etna_set_state(stream, VIVS_GL_API_MODE, VIVS_GL_API_MODE_OPENCL);
etna_set_state(stream, VIVS_VS_INPUT_COUNT, VIVS_VS_INPUT_COUNT_COUNT(1) | VIVS_VS_INPUT_COUNT_UNK8(31));
diff --git a/src/etnaviv_cl_test_gc2000.c b/src/etnaviv_cl_test_gc2000.c
index 1ae836c..3752999 100644
--- a/src/etnaviv_cl_test_gc2000.c
+++ b/src/etnaviv_cl_test_gc2000.c
@@ -24,7 +24,7 @@
static void gen_cmd_stream(struct etna_cmd_stream *stream, struct etna_bo *bmp)
{
- etna_set_state(stream, VIVS_PA_SYSTEM_MODE, VIVS_PA_SYSTEM_MODE_UNK0 | VIVS_PA_SYSTEM_MODE_UNK4);
+ etna_set_state(stream, VIVS_PA_SYSTEM_MODE, VIVS_PA_SYSTEM_MODE_PROVOKING_VERTEX_LAST | VIVS_PA_SYSTEM_MODE_HALF_PIXEL_CENTER);
etna_set_state(stream, VIVS_GL_API_MODE, VIVS_GL_API_MODE_OPENCL);
etna_set_state(stream, VIVS_VS_INPUT_COUNT, VIVS_VS_INPUT_COUNT_COUNT(1) | VIVS_VS_INPUT_COUNT_UNK8(31));
etna_set_state(stream, VIVS_VS_INPUT(0), VIVS_VS_INPUT_I0(0) | VIVS_VS_INPUT_I1(1) | VIVS_VS_INPUT_I2(2) | VIVS_VS_INPUT_I3(3));
diff --git a/src/etnaviv_cl_test_gc3000.c b/src/etnaviv_cl_test_gc3000.c
index d8336b0..3180c67 100644
--- a/src/etnaviv_cl_test_gc3000.c
+++ b/src/etnaviv_cl_test_gc3000.c
@@ -45,7 +45,7 @@
static void gen_cmd_stream(struct etna_cmd_stream *stream, struct etna_bo *code, struct etna_bo *bmp)
{
- etna_set_state(stream, VIVS_PA_SYSTEM_MODE, VIVS_PA_SYSTEM_MODE_UNK0 | VIVS_PA_SYSTEM_MODE_UNK4);
+ etna_set_state(stream, VIVS_PA_SYSTEM_MODE, VIVS_PA_SYSTEM_MODE_PROVOKING_VERTEX_LAST | VIVS_PA_SYSTEM_MODE_HALF_PIXEL_CENTER);
etna_set_state(stream, VIVS_GL_API_MODE, VIVS_GL_API_MODE_OPENCL);
etna_set_state(stream, VIVS_VS_UNIFORM_CACHE, 0x1000);
diff --git a/src/etnaviv_verifyops.c b/src/etnaviv_verifyops.c
index 2aa0445..588d5d8 100644
--- a/src/etnaviv_verifyops.c
+++ b/src/etnaviv_verifyops.c
@@ -69,7 +69,7 @@
unsigned uniform_base = 0;
unsigned inst_range_max = gpu_code->size / 4 - 2;
- etna_set_state(stream, VIVS_PA_SYSTEM_MODE, VIVS_PA_SYSTEM_MODE_UNK0 | VIVS_PA_SYSTEM_MODE_UNK4);
+ etna_set_state(stream, VIVS_PA_SYSTEM_MODE, VIVS_PA_SYSTEM_MODE_PROVOKING_VERTEX_LAST | VIVS_PA_SYSTEM_MODE_HALF_PIXEL_CENTER);
etna_set_state(stream, VIVS_GL_API_MODE, VIVS_GL_API_MODE_OPENCL);
if (hwt == HWT_GC2000) {
diff --git a/src/isa.xml.h b/src/isa.xml.h
index 98dbbb6..80964db 100644
--- a/src/isa.xml.h
+++ b/src/isa.xml.h
@@ -8,7 +8,7 @@
git clone git://0x04.net/rules-ng-ng
The rules-ng-ng source files this header was generated from are:
-- isa.xml ( 34708 bytes, from 2017-07-11 11:56:17)
+- isa.xml ( 35432 bytes, from 2017-10-01 09:57:00)
- copyright.xml ( 1597 bytes, from 2016-10-29 07:29:22)
Copyright (C) 2012-2017 by the following authors:
diff --git a/src/state.xml.h b/src/state.xml.h
index 9705bad..94adff7 100644
--- a/src/state.xml.h
+++ b/src/state.xml.h
@@ -8,12 +8,14 @@
git clone git://0x04.net/rules-ng-ng
The rules-ng-ng source files this header was generated from are:
-- state.xml ( 19930 bytes, from 2017-01-07 14:27:54)
-- common.xml ( 23529 bytes, from 2017-05-10 12:36:01)
-- state_hi.xml ( 26403 bytes, from 2017-01-07 14:27:54)
+- state.xml ( 25532 bytes, from 2017-10-13 12:19:04)
+- common.xml ( 26193 bytes, from 2017-10-13 12:18:24)
+- common_3d.xml ( 12531 bytes, from 2017-10-13 11:04:24)
+- state_hi.xml ( 27733 bytes, from 2017-10-02 19:00:30)
- copyright.xml ( 1597 bytes, from 2016-10-29 07:29:22)
- state_2d.xml ( 51552 bytes, from 2016-10-29 07:29:22)
-- state_3d.xml ( 67197 bytes, from 2017-07-23 10:53:21)
+- state_3d.xml ( 74317 bytes, from 2017-10-13 12:43:31)
+- state_blt.xml ( 11153 bytes, from 2017-10-13 12:39:38)
- state_vg.xml ( 5975 bytes, from 2016-10-29 07:29:22)
Copyright (C) 2012-2017 by the following authors:
@@ -47,6 +49,19 @@
#define VARYING_COMPONENT_USE_USED 0x00000001
#define VARYING_COMPONENT_USE_POINTCOORD_X 0x00000002
#define VARYING_COMPONENT_USE_POINTCOORD_Y 0x00000003
+#define FE_DATA_TYPE_BYTE 0x00000000
+#define FE_DATA_TYPE_UNSIGNED_BYTE 0x00000001
+#define FE_DATA_TYPE_SHORT 0x00000002
+#define FE_DATA_TYPE_UNSIGNED_SHORT 0x00000003
+#define FE_DATA_TYPE_INT 0x00000004
+#define FE_DATA_TYPE_UNSIGNED_INT 0x00000005
+#define FE_DATA_TYPE_FLOAT 0x00000008
+#define FE_DATA_TYPE_HALF_FLOAT 0x00000009
+#define FE_DATA_TYPE_FIXED 0x0000000b
+#define FE_DATA_TYPE_INT_10_10_10_2 0x0000000c
+#define FE_DATA_TYPE_UNSIGNED_INT_10_10_10_2 0x0000000d
+#define FE_DATA_TYPE_BYTE_I 0x0000000e
+#define FE_DATA_TYPE_SHORT_I 0x0000000f
#define FE_VERTEX_STREAM_CONTROL_VERTEX_STRIDE__MASK 0x000000ff
#define FE_VERTEX_STREAM_CONTROL_VERTEX_STRIDE__SHIFT 0
#define FE_VERTEX_STREAM_CONTROL_VERTEX_STRIDE(x) (((x) << FE_VERTEX_STREAM_CONTROL_VERTEX_STRIDE__SHIFT) & FE_VERTEX_STREAM_CONTROL_VERTEX_STRIDE__MASK)
@@ -60,17 +75,7 @@
#define VIVS_FE_VERTEX_ELEMENT_CONFIG__LEN 0x00000010
#define VIVS_FE_VERTEX_ELEMENT_CONFIG_TYPE__MASK 0x0000000f
#define VIVS_FE_VERTEX_ELEMENT_CONFIG_TYPE__SHIFT 0
-#define VIVS_FE_VERTEX_ELEMENT_CONFIG_TYPE_BYTE 0x00000000
-#define VIVS_FE_VERTEX_ELEMENT_CONFIG_TYPE_UNSIGNED_BYTE 0x00000001
-#define VIVS_FE_VERTEX_ELEMENT_CONFIG_TYPE_SHORT 0x00000002
-#define VIVS_FE_VERTEX_ELEMENT_CONFIG_TYPE_UNSIGNED_SHORT 0x00000003
-#define VIVS_FE_VERTEX_ELEMENT_CONFIG_TYPE_INT 0x00000004
-#define VIVS_FE_VERTEX_ELEMENT_CONFIG_TYPE_UNSIGNED_INT 0x00000005
-#define VIVS_FE_VERTEX_ELEMENT_CONFIG_TYPE_FLOAT 0x00000008
-#define VIVS_FE_VERTEX_ELEMENT_CONFIG_TYPE_HALF_FLOAT 0x00000009
-#define VIVS_FE_VERTEX_ELEMENT_CONFIG_TYPE_FIXED 0x0000000b
-#define VIVS_FE_VERTEX_ELEMENT_CONFIG_TYPE_INT_10_10_10_2 0x0000000c
-#define VIVS_FE_VERTEX_ELEMENT_CONFIG_TYPE_UNSIGNED_INT_10_10_10_2 0x0000000d
+#define VIVS_FE_VERTEX_ELEMENT_CONFIG_TYPE(x) (((x) << VIVS_FE_VERTEX_ELEMENT_CONFIG_TYPE__SHIFT) & VIVS_FE_VERTEX_ELEMENT_CONFIG_TYPE__MASK)
#define VIVS_FE_VERTEX_ELEMENT_CONFIG_ENDIAN__MASK 0x00000030
#define VIVS_FE_VERTEX_ELEMENT_CONFIG_ENDIAN__SHIFT 4
#define VIVS_FE_VERTEX_ELEMENT_CONFIG_ENDIAN(x) (((x) << VIVS_FE_VERTEX_ELEMENT_CONFIG_ENDIAN__SHIFT) & VIVS_FE_VERTEX_ELEMENT_CONFIG_ENDIAN__MASK)
@@ -192,17 +197,40 @@
#define VIVS_FE_VERTEX_STREAMS_CONTROL(i0) (0x000006a0 + 0x4*(i0))
-#define VIVS_FE_UNK00700(i0) (0x00000700 + 0x4*(i0))
-#define VIVS_FE_UNK00700__ESIZE 0x00000004
-#define VIVS_FE_UNK00700__LEN 0x00000010
+#define VIVS_FE_GENERIC_ATTRIB(i0) (0x00000000 + 0x4*(i0))
+#define VIVS_FE_GENERIC_ATTRIB__ESIZE 0x00000004
+#define VIVS_FE_GENERIC_ATTRIB__LEN 0x00000010
-#define VIVS_FE_UNK00740(i0) (0x00000740 + 0x4*(i0))
-#define VIVS_FE_UNK00740__ESIZE 0x00000004
-#define VIVS_FE_UNK00740__LEN 0x00000010
+#define VIVS_FE_GENERIC_ATTRIB_UNK006C0(i0) (0x000006c0 + 0x4*(i0))
-#define VIVS_FE_UNK00780(i0) (0x00000780 + 0x4*(i0))
-#define VIVS_FE_UNK00780__ESIZE 0x00000004
-#define VIVS_FE_UNK00780__LEN 0x00000010
+#define VIVS_FE_GENERIC_ATTRIB_UNK00700(i0) (0x00000700 + 0x4*(i0))
+
+#define VIVS_FE_GENERIC_ATTRIB_UNK00740(i0) (0x00000740 + 0x4*(i0))
+
+#define VIVS_FE_GENERIC_ATTRIB_SCALE(i0) (0x00000780 + 0x4*(i0))
+
+#define VIVS_FE_HALTI5_UNK007C4 0x000007c4
+
+#define VIVS_FE_HALTI5_UNK007D0(i0) (0x000007d0 + 0x4*(i0))
+#define VIVS_FE_HALTI5_UNK007D0__ESIZE 0x00000004
+#define VIVS_FE_HALTI5_UNK007D0__LEN 0x00000002
+
+#define VIVS_FE_HALTI5_UNK007D8 0x000007d8
+
+#define VIVS_FE_DESC_START 0x000007dc
+
+#define VIVS_FE_DESC_END 0x000007e0
+
+#define VIVS_FE_DESC_AVAIL 0x000007e4
+#define VIVS_FE_DESC_AVAIL_COUNT__MASK 0x0000007f
+#define VIVS_FE_DESC_AVAIL_COUNT__SHIFT 0
+#define VIVS_FE_DESC_AVAIL_COUNT(x) (((x) << VIVS_FE_DESC_AVAIL_COUNT__SHIFT) & VIVS_FE_DESC_AVAIL_COUNT__MASK)
+
+#define VIVS_FE_FENCE_WAIT_DATA_LOW 0x000007e8
+
+#define VIVS_FE_FENCE_WAIT_DATA_HIGH 0x000007f4
+
+#define VIVS_FE_ROBUSTNESS_UNK007F8 0x000007f8
#define VIVS_GL 0x00000000
@@ -228,6 +256,9 @@
#define VIVS_GL_SEMAPHORE_TOKEN_TO__MASK 0x00001f00
#define VIVS_GL_SEMAPHORE_TOKEN_TO__SHIFT 8
#define VIVS_GL_SEMAPHORE_TOKEN_TO(x) (((x) << VIVS_GL_SEMAPHORE_TOKEN_TO__SHIFT) & VIVS_GL_SEMAPHORE_TOKEN_TO__MASK)
+#define VIVS_GL_SEMAPHORE_TOKEN_UNK28__MASK 0x30000000
+#define VIVS_GL_SEMAPHORE_TOKEN_UNK28__SHIFT 28
+#define VIVS_GL_SEMAPHORE_TOKEN_UNK28(x) (((x) << VIVS_GL_SEMAPHORE_TOKEN_UNK28__SHIFT) & VIVS_GL_SEMAPHORE_TOKEN_UNK28__MASK)
#define VIVS_GL_FLUSH_CACHE 0x0000380c
#define VIVS_GL_FLUSH_CACHE_DEPTH 0x00000001
@@ -237,6 +268,10 @@
#define VIVS_GL_FLUSH_CACHE_TEXTUREVS 0x00000010
#define VIVS_GL_FLUSH_CACHE_SHADER_L1 0x00000020
#define VIVS_GL_FLUSH_CACHE_SHADER_L2 0x00000040
+#define VIVS_GL_FLUSH_CACHE_UNK10 0x00000400
+#define VIVS_GL_FLUSH_CACHE_UNK11 0x00000800
+#define VIVS_GL_FLUSH_CACHE_DESCRIPTOR_UNK12 0x00001000
+#define VIVS_GL_FLUSH_CACHE_DESCRIPTOR_UNK13 0x00002000
#define VIVS_GL_FLUSH_MMU 0x00003810
#define VIVS_GL_FLUSH_MMU_FLUSH_FEMMU 0x00000001
@@ -298,6 +333,8 @@
#define VIVS_GL_VARYING_NUM_COMPONENTS_VAR7__SHIFT 28
#define VIVS_GL_VARYING_NUM_COMPONENTS_VAR7(x) (((x) << VIVS_GL_VARYING_NUM_COMPONENTS_VAR7__SHIFT) & VIVS_GL_VARYING_NUM_COMPONENTS_VAR7__MASK)
+#define VIVS_GL_OCCLUSION_QUERY_ADDR 0x00003824
+
#define VIVS_GL_VARYING_COMPONENT_USE(i0) (0x00003828 + 0x4*(i0))
#define VIVS_GL_VARYING_COMPONENT_USE__ESIZE 0x00000004
#define VIVS_GL_VARYING_COMPONENT_USE__LEN 0x00000002
@@ -350,6 +387,10 @@
#define VIVS_GL_VARYING_COMPONENT_USE_COMP15__SHIFT 30
#define VIVS_GL_VARYING_COMPONENT_USE_COMP15(x) (((x) << VIVS_GL_VARYING_COMPONENT_USE_COMP15__SHIFT) & VIVS_GL_VARYING_COMPONENT_USE_COMP15__MASK)
+#define VIVS_GL_UNK0382C 0x0000382c
+
+#define VIVS_GL_OCCLUSION_QUERY_CONTROL 0x00003830
+
#define VIVS_GL_UNK03834 0x00003834
#define VIVS_GL_UNK03838 0x00003838
@@ -363,8 +404,44 @@
#define VIVS_GL_UNK03854 0x00003854
+#define VIVS_GL_BUG_FIXES 0x00003860
+
+#define VIVS_GL_FENCE_OUT_ADDRESS 0x00003868
+
+#define VIVS_GL_FENCE_OUT_DATA_LOW 0x0000386c
+
+#define VIVS_GL_HALTI5_UNK03884 0x00003884
+
+#define VIVS_GL_HALTI5_UNK03888 0x00003888
+
+#define VIVS_GL_GS_UNK0388C 0x0000388c
+
+#define VIVS_GL_FENCE_OUT_DATA_HIGH 0x00003898
+
+#define VIVS_GL_SHADER_INDEX 0x0000389c
+
+#define VIVS_GL_GS_UNK038A0(i0) (0x000038a0 + 0x4*(i0))
+#define VIVS_GL_GS_UNK038A0__ESIZE 0x00000004
+#define VIVS_GL_GS_UNK038A0__LEN 0x00000008
+
+#define VIVS_GL_HALTI5_UNK038C0(i0) (0x000038c0 + 0x4*(i0))
+#define VIVS_GL_HALTI5_UNK038C0__ESIZE 0x00000004
+#define VIVS_GL_HALTI5_UNK038C0__LEN 0x00000010
+
+#define VIVS_GL_SECURITY_UNK3900 0x00003900
+
+#define VIVS_GL_SECURITY_UNK3904 0x00003904
+
#define VIVS_GL_UNK03A00 0x00003a00
+#define VIVS_GL_UNK03A04 0x00003a04
+
+#define VIVS_GL_UNK03A08 0x00003a08
+
+#define VIVS_GL_UNK03A0C 0x00003a0c
+
+#define VIVS_GL_UNK03A10 0x00003a10
+
#define VIVS_GL_STALL_TOKEN 0x00003c00
#define VIVS_GL_STALL_TOKEN_FROM__MASK 0x0000001f
#define VIVS_GL_STALL_TOKEN_FROM__SHIFT 0
@@ -387,6 +464,47 @@
#define VIVS_NFE_VERTEX_STREAMS_UNK14680(i0) (0x00014680 + 0x4*(i0))
+#define VIVS_NFE_VERTEX_STREAMS_ROBUSTNESS_UNK146C0(i0) (0x000146c0 + 0x4*(i0))
+
+#define VIVS_NFE_GENERIC_ATTRIB(i0) (0x00000000 + 0x4*(i0))
+#define VIVS_NFE_GENERIC_ATTRIB__ESIZE 0x00000004
+#define VIVS_NFE_GENERIC_ATTRIB__LEN 0x00000020
+
+#define VIVS_NFE_GENERIC_ATTRIB_CONFIG0(i0) (0x00017800 + 0x4*(i0))
+#define VIVS_NFE_GENERIC_ATTRIB_CONFIG0_TYPE__MASK 0x0000000f
+#define VIVS_NFE_GENERIC_ATTRIB_CONFIG0_TYPE__SHIFT 0
+#define VIVS_NFE_GENERIC_ATTRIB_CONFIG0_TYPE(x) (((x) << VIVS_NFE_GENERIC_ATTRIB_CONFIG0_TYPE__SHIFT) & VIVS_NFE_GENERIC_ATTRIB_CONFIG0_TYPE__MASK)
+#define VIVS_NFE_GENERIC_ATTRIB_CONFIG0_ENDIAN__MASK 0x00000030
+#define VIVS_NFE_GENERIC_ATTRIB_CONFIG0_ENDIAN__SHIFT 4
+#define VIVS_NFE_GENERIC_ATTRIB_CONFIG0_ENDIAN(x) (((x) << VIVS_NFE_GENERIC_ATTRIB_CONFIG0_ENDIAN__SHIFT) & VIVS_NFE_GENERIC_ATTRIB_CONFIG0_ENDIAN__MASK)
+#define VIVS_NFE_GENERIC_ATTRIB_CONFIG0_STREAM__MASK 0x00000700
+#define VIVS_NFE_GENERIC_ATTRIB_CONFIG0_STREAM__SHIFT 8
+#define VIVS_NFE_GENERIC_ATTRIB_CONFIG0_STREAM(x) (((x) << VIVS_NFE_GENERIC_ATTRIB_CONFIG0_STREAM__SHIFT) & VIVS_NFE_GENERIC_ATTRIB_CONFIG0_STREAM__MASK)
+#define VIVS_NFE_GENERIC_ATTRIB_CONFIG0_NUM__MASK 0x00003000
+#define VIVS_NFE_GENERIC_ATTRIB_CONFIG0_NUM__SHIFT 12
+#define VIVS_NFE_GENERIC_ATTRIB_CONFIG0_NUM(x) (((x) << VIVS_NFE_GENERIC_ATTRIB_CONFIG0_NUM__SHIFT) & VIVS_NFE_GENERIC_ATTRIB_CONFIG0_NUM__MASK)
+#define VIVS_NFE_GENERIC_ATTRIB_CONFIG0_NORMALIZE__MASK 0x0000c000
+#define VIVS_NFE_GENERIC_ATTRIB_CONFIG0_NORMALIZE__SHIFT 14
+#define VIVS_NFE_GENERIC_ATTRIB_CONFIG0_NORMALIZE_OFF 0x00000000
+#define VIVS_NFE_GENERIC_ATTRIB_CONFIG0_NORMALIZE_ON 0x00008000
+#define VIVS_NFE_GENERIC_ATTRIB_CONFIG0_START__MASK 0x00ff0000
+#define VIVS_NFE_GENERIC_ATTRIB_CONFIG0_START__SHIFT 16
+#define VIVS_NFE_GENERIC_ATTRIB_CONFIG0_START(x) (((x) << VIVS_NFE_GENERIC_ATTRIB_CONFIG0_START__SHIFT) & VIVS_NFE_GENERIC_ATTRIB_CONFIG0_START__MASK)
+
+#define VIVS_NFE_GENERIC_ATTRIB_UNK17880(i0) (0x00017880 + 0x4*(i0))
+
+#define VIVS_NFE_GENERIC_ATTRIB_UNK17900(i0) (0x00017900 + 0x4*(i0))
+
+#define VIVS_NFE_GENERIC_ATTRIB_UNK17980(i0) (0x00017980 + 0x4*(i0))
+
+#define VIVS_NFE_GENERIC_ATTRIB_SCALE(i0) (0x00017a00 + 0x4*(i0))
+
+#define VIVS_NFE_GENERIC_ATTRIB_CONFIG1(i0) (0x00017a80 + 0x4*(i0))
+#define VIVS_NFE_GENERIC_ATTRIB_CONFIG1_END__MASK 0x000000ff
+#define VIVS_NFE_GENERIC_ATTRIB_CONFIG1_END__SHIFT 0
+#define VIVS_NFE_GENERIC_ATTRIB_CONFIG1_END(x) (((x) << VIVS_NFE_GENERIC_ATTRIB_CONFIG1_END__SHIFT) & VIVS_NFE_GENERIC_ATTRIB_CONFIG1_END__MASK)
+#define VIVS_NFE_GENERIC_ATTRIB_CONFIG1_NONCONSECUTIVE 0x00000800
+
#define VIVS_DUMMY 0x00000000
#define VIVS_DUMMY_DUMMY 0x0003fffc
diff --git a/src/state_2d.xml.h b/src/state_2d.xml.h
index f035a68..7e4e12e 100644
--- a/src/state_2d.xml.h
+++ b/src/state_2d.xml.h
@@ -8,12 +8,14 @@
git clone git://0x04.net/rules-ng-ng
The rules-ng-ng source files this header was generated from are:
-- state.xml ( 19930 bytes, from 2017-01-07 14:27:54)
-- common.xml ( 23529 bytes, from 2017-05-10 12:36:01)
-- state_hi.xml ( 26403 bytes, from 2017-01-07 14:27:54)
+- state.xml ( 25532 bytes, from 2017-10-13 12:19:04)
+- common.xml ( 26193 bytes, from 2017-10-13 12:18:24)
+- common_3d.xml ( 12531 bytes, from 2017-10-13 11:04:24)
+- state_hi.xml ( 27733 bytes, from 2017-10-02 19:00:30)
- copyright.xml ( 1597 bytes, from 2016-10-29 07:29:22)
- state_2d.xml ( 51552 bytes, from 2016-10-29 07:29:22)
-- state_3d.xml ( 67197 bytes, from 2017-07-23 10:53:21)
+- state_3d.xml ( 74317 bytes, from 2017-10-13 12:43:31)
+- state_blt.xml ( 11153 bytes, from 2017-10-13 12:39:38)
- state_vg.xml ( 5975 bytes, from 2016-10-29 07:29:22)
Copyright (C) 2012-2016 by the following authors:
diff --git a/src/state_3d.xml.h b/src/state_3d.xml.h
index d8b7a94..a9d5bfd 100644
--- a/src/state_3d.xml.h
+++ b/src/state_3d.xml.h
@@ -8,12 +8,14 @@
git clone git://0x04.net/rules-ng-ng
The rules-ng-ng source files this header was generated from are:
-- state.xml ( 19930 bytes, from 2017-01-07 14:27:54)
-- common.xml ( 23529 bytes, from 2017-05-10 12:36:01)
-- state_hi.xml ( 26403 bytes, from 2017-01-07 14:27:54)
+- state.xml ( 25532 bytes, from 2017-10-13 12:19:04)
+- common.xml ( 26193 bytes, from 2017-10-13 12:18:24)
+- common_3d.xml ( 12531 bytes, from 2017-10-13 11:04:24)
+- state_hi.xml ( 27733 bytes, from 2017-10-02 19:00:30)
- copyright.xml ( 1597 bytes, from 2016-10-29 07:29:22)
- state_2d.xml ( 51552 bytes, from 2016-10-29 07:29:22)
-- state_3d.xml ( 67197 bytes, from 2017-07-23 10:53:21)
+- state_3d.xml ( 74317 bytes, from 2017-10-13 12:43:31)
+- state_blt.xml ( 11153 bytes, from 2017-10-13 12:39:38)
- state_vg.xml ( 5975 bytes, from 2016-10-29 07:29:22)
Copyright (C) 2012-2017 by the following authors:
@@ -87,6 +89,7 @@
#define RS_FORMAT_X8R8G8B8 0x00000005
#define RS_FORMAT_A8R8G8B8 0x00000006
#define RS_FORMAT_YUY2 0x00000007
+#define RS_FORMAT_A8 0x00000010
#define RS_FORMAT_R16F 0x00000011
#define RS_FORMAT_G16R16F 0x00000012
#define RS_FORMAT_A16B16G16R16F 0x00000013
@@ -102,83 +105,7 @@
#define RS_FORMAT_B10G11R11F 0x0000001d
#define RS_FORMAT_A2B10G10R10UI 0x0000001e
#define RS_FORMAT_G8R8 0x0000001f
-#define TEXTURE_FORMAT_NONE 0x00000000
-#define TEXTURE_FORMAT_A8 0x00000001
-#define TEXTURE_FORMAT_L8 0x00000002
-#define TEXTURE_FORMAT_I8 0x00000003
-#define TEXTURE_FORMAT_A8L8 0x00000004
-#define TEXTURE_FORMAT_A4R4G4B4 0x00000005
-#define TEXTURE_FORMAT_X4R4G4B4 0x00000006
-#define TEXTURE_FORMAT_A8R8G8B8 0x00000007
-#define TEXTURE_FORMAT_X8R8G8B8 0x00000008
-#define TEXTURE_FORMAT_A8B8G8R8 0x00000009
-#define TEXTURE_FORMAT_X8B8G8R8 0x0000000a
-#define TEXTURE_FORMAT_R5G6B5 0x0000000b
-#define TEXTURE_FORMAT_A1R5G5B5 0x0000000c
-#define TEXTURE_FORMAT_X1R5G5B5 0x0000000d
-#define TEXTURE_FORMAT_YUY2 0x0000000e
-#define TEXTURE_FORMAT_UYVY 0x0000000f
-#define TEXTURE_FORMAT_D16 0x00000010
-#define TEXTURE_FORMAT_D24S8 0x00000011
-#define TEXTURE_FORMAT_DXT1 0x00000013
-#define TEXTURE_FORMAT_DXT2_DXT3 0x00000014
-#define TEXTURE_FORMAT_DXT4_DXT5 0x00000015
-#define TEXTURE_FORMAT_E5B9G9R9 0x0000001d
-#define TEXTURE_FORMAT_ETC1 0x0000001e
-#define TEXTURE_FORMAT_EXT_NONE 0x00000000
-#define TEXTURE_FORMAT_EXT_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x00000001
-#define TEXTURE_FORMAT_EXT_RGBA8_ETC2_EAC 0x00000002
-#define TEXTURE_FORMAT_EXT_R11_EAC 0x00000003
-#define TEXTURE_FORMAT_EXT_RG11_EAC 0x00000004
-#define TEXTURE_FORMAT_EXT_SIGNED_RG11_EAC 0x00000005
-#define TEXTURE_FORMAT_EXT_G8R8 0x00000006
-#define TEXTURE_FORMAT_EXT_R16F 0x00000007
-#define TEXTURE_FORMAT_EXT_G16R16F 0x00000008
-#define TEXTURE_FORMAT_EXT_A16B16G16R16F 0x00000009
-#define TEXTURE_FORMAT_EXT_R32F 0x0000000a
-#define TEXTURE_FORMAT_EXT_G32R32F 0x0000000b
-#define TEXTURE_FORMAT_EXT_A2B10G10R10 0x0000000c
-#define TEXTURE_FORMAT_EXT_SIGNED_R11_EAC 0x0000000d
-#define TEXTURE_FORMAT_EXT_R8_SNORM 0x0000000e
-#define TEXTURE_FORMAT_EXT_G8R8_SNORM 0x0000000f
-#define TEXTURE_FORMAT_EXT_X8B8G8R8_SNORM 0x00000010
-#define TEXTURE_FORMAT_EXT_A8B8G8R8_SNORM 0x00000011
-#define TEXTURE_FORMAT_EXT_ASTC 0x00000014
-#define TEXTURE_FORMAT_EXT_R8I 0x00000015
-#define TEXTURE_FORMAT_EXT_G8R8I 0x00000016
-#define TEXTURE_FORMAT_EXT_A8B8G8R8I 0x00000017
-#define TEXTURE_FORMAT_EXT_R16I 0x00000018
-#define TEXTURE_FORMAT_EXT_G16R16I 0x00000019
-#define TEXTURE_FORMAT_EXT_A16B16G16R16I 0x0000001a
-#define TEXTURE_FORMAT_EXT_B10G11R11F 0x0000001b
-#define TEXTURE_FORMAT_EXT_A2B10G10R10UI 0x0000001c
-#define TEXTURE_FILTER_NONE 0x00000000
-#define TEXTURE_FILTER_NEAREST 0x00000001
-#define TEXTURE_FILTER_LINEAR 0x00000002
-#define TEXTURE_FILTER_ANISOTROPIC 0x00000003
-#define TEXTURE_TYPE_NONE 0x00000000
-#define TEXTURE_TYPE_2D 0x00000002
-#define TEXTURE_TYPE_CUBE_MAP 0x00000005
-#define TEXTURE_WRAPMODE_REPEAT 0x00000000
-#define TEXTURE_WRAPMODE_MIRRORED_REPEAT 0x00000001
-#define TEXTURE_WRAPMODE_CLAMP_TO_EDGE 0x00000002
-#define TEXTURE_FACE_POS_X 0x00000000
-#define TEXTURE_FACE_NEG_X 0x00000001
-#define TEXTURE_FACE_POS_Y 0x00000002
-#define TEXTURE_FACE_NEG_Y 0x00000003
-#define TEXTURE_FACE_POS_Z 0x00000004
-#define TEXTURE_FACE_NEG_Z 0x00000005
-#define TEXTURE_SWIZZLE_RED 0x00000000
-#define TEXTURE_SWIZZLE_GREEN 0x00000001
-#define TEXTURE_SWIZZLE_BLUE 0x00000002
-#define TEXTURE_SWIZZLE_ALPHA 0x00000003
-#define TEXTURE_SWIZZLE_ZERO 0x00000004
-#define TEXTURE_SWIZZLE_ONE 0x00000005
-#define TEXTURE_HALIGN_FOUR 0x00000000
-#define TEXTURE_HALIGN_SIXTEEN 0x00000001
-#define TEXTURE_HALIGN_SUPER_TILED 0x00000002
-#define TEXTURE_HALIGN_SPLIT_TILED 0x00000003
-#define TEXTURE_HALIGN_SPLIT_SUPER_TILED 0x00000004
+#define RS_FORMAT_R8 0x00000023
#define LOGIC_OP_CLEAR 0x00000000
#define LOGIC_OP_NOR 0x00000001
#define LOGIC_OP_AND_INVERTED 0x00000002
@@ -292,6 +219,47 @@
#define VIVS_VS_INST_ADDR 0x0000086c
+#define VIVS_VS_HALTI5_UNK00870 0x00000870
+
+#define VIVS_VS_NEWRANGE_LOW 0x00000874
+
+#define VIVS_VS_HALTI5_UNK00878 0x00000878
+
+#define VIVS_VS_HALTI5_UNK00880 0x00000880
+
+#define VIVS_VS_HALTI1_UNK00884 0x00000884
+
+#define VIVS_VS_UNK0088C 0x0000088c
+
+#define VIVS_VS_ICACHE_UNK00890 0x00000890
+
+#define VIVS_VS_HALTI5_UNK00898(i0) (0x00000898 + 0x4*(i0))
+#define VIVS_VS_HALTI5_UNK00898__ESIZE 0x00000004
+#define VIVS_VS_HALTI5_UNK00898__LEN 0x00000002
+
+#define VIVS_VS_HALTI5_UNK008A0 0x000008a0
+
+#define VIVS_VS_HALTI5_UNK008A8 0x000008a8
+
+#define VIVS_VS_ICACHE_INVALIDATE 0x000008b0
+#define VIVS_VS_ICACHE_INVALIDATE_UNK0 0x00000001
+#define VIVS_VS_ICACHE_INVALIDATE_UNK1 0x00000002
+#define VIVS_VS_ICACHE_INVALIDATE_UNK2 0x00000004
+#define VIVS_VS_ICACHE_INVALIDATE_UNK3 0x00000008
+#define VIVS_VS_ICACHE_INVALIDATE_UNK4 0x00000010
+
+#define VIVS_VS_HALTI5_UNK008B8 0x000008b8
+
+#define VIVS_VS_NEWRANGE_HIGH 0x000008bc
+
+#define VIVS_VS_HALTI5_UNK008C0(i0) (0x000008c0 + 0x4*(i0))
+#define VIVS_VS_HALTI5_UNK008C0__ESIZE 0x00000004
+#define VIVS_VS_HALTI5_UNK008C0__LEN 0x00000008
+
+#define VIVS_VS_HALTI5_UNK008E0(i0) (0x000008e0 + 0x4*(i0))
+#define VIVS_VS_HALTI5_UNK008E0__ESIZE 0x00000004
+#define VIVS_VS_HALTI5_UNK008E0__LEN 0x00000008
+
#define VIVS_VS_INST_MEM(i0) (0x00004000 + 0x4*(i0))
#define VIVS_VS_INST_MEM__ESIZE 0x00000004
#define VIVS_VS_INST_MEM__LEN 0x00000400
@@ -300,6 +268,10 @@
#define VIVS_VS_UNIFORMS__ESIZE 0x00000004
#define VIVS_VS_UNIFORMS__LEN 0x00000400
+#define VIVS_VS_HALTI5_UNK15600 0x00015600
+
+#define VIVS_VS_HALTI5_UNK15604 0x00015604
+
#define VIVS_CL 0x00000000
#define VIVS_CL_CONFIG 0x00000900
@@ -391,6 +363,12 @@
#define VIVS_CL_UNK00954 0x00000954
+#define VIVS_CL_HALTI5_UNK00958 0x00000958
+
+#define VIVS_CL_HALTI5_UNK0095C 0x0000095c
+
+#define VIVS_CL_HALTI5_UNK00960 0x00000960
+
#define VIVS_PA 0x00000000
#define VIVS_PA_VIEWPORT_SCALE_X 0x00000a00
@@ -409,9 +387,11 @@
#define VIVS_PA_POINT_SIZE 0x00000a1c
+#define VIVS_PA_UNK00A24 0x00000a24
+
#define VIVS_PA_SYSTEM_MODE 0x00000a28
-#define VIVS_PA_SYSTEM_MODE_UNK0 0x00000001
-#define VIVS_PA_SYSTEM_MODE_UNK4 0x00000010
+#define VIVS_PA_SYSTEM_MODE_PROVOKING_VERTEX_LAST 0x00000001
+#define VIVS_PA_SYSTEM_MODE_HALF_PIXEL_CENTER 0x00000010
#define VIVS_PA_W_CLIP_LIMIT 0x00000a2c
@@ -473,6 +453,12 @@
#define VIVS_PA_ZFARCLIPPING 0x00000a8c
+#define VIVS_PA_HALTI5_UNK00A90(i0) (0x00000a90 + 0x4*(i0))
+#define VIVS_PA_HALTI5_UNK00A90__ESIZE 0x00000004
+#define VIVS_PA_HALTI5_UNK00A90__LEN 0x00000004
+
+#define VIVS_PA_HALTI5_UNK00AA8 0x00000aa8
+
#define VIVS_SE 0x00000000
#define VIVS_SE_SCISSOR_LEFT 0x00000c00
@@ -518,6 +504,10 @@
#define VIVS_RA_HDEPTH_CONTROL_COMPARE__SHIFT 12
#define VIVS_RA_HDEPTH_CONTROL_COMPARE(x) (((x) << VIVS_RA_HDEPTH_CONTROL_COMPARE__SHIFT) & VIVS_RA_HDEPTH_CONTROL_COMPARE__MASK)
+#define VIVS_RA_UNK00E24 0x00000e24
+
+#define VIVS_RA_HALTI5_UNK00E34 0x00000e34
+
#define VIVS_RA_CENTROID_TABLE(i0) (0x00000e40 + 0x4*(i0))
#define VIVS_RA_CENTROID_TABLE__ESIZE 0x00000004
#define VIVS_RA_CENTROID_TABLE__LEN 0x00000010
@@ -561,11 +551,43 @@
#define VIVS_PS_INST_ADDR 0x00001028
+#define VIVS_PS_UNK0102C 0x0000102c
+
#define VIVS_PS_CONTROL_EXT 0x00001030
#define VIVS_PS_CONTROL_EXT_COLOR_OUTPUT_COUNT__MASK 0x00000003
#define VIVS_PS_CONTROL_EXT_COLOR_OUTPUT_COUNT__SHIFT 0
#define VIVS_PS_CONTROL_EXT_COLOR_OUTPUT_COUNT(x) (((x) << VIVS_PS_CONTROL_EXT_COLOR_OUTPUT_COUNT__SHIFT) & VIVS_PS_CONTROL_EXT_COLOR_OUTPUT_COUNT__MASK)
+#define VIVS_PS_UNK01034 0x00001034
+
+#define VIVS_PS_UNK01038 0x00001038
+
+#define VIVS_PS_HALTI3_UNK0103C 0x0000103c
+
+#define VIVS_PS_UNK01040(i0) (0x00001040 + 0x4*(i0))
+#define VIVS_PS_UNK01040__ESIZE 0x00000004
+#define VIVS_PS_UNK01040__LEN 0x00000002
+
+#define VIVS_PS_UNK01048 0x00001048
+
+#define VIVS_PS_ICACHE_UNK0104C 0x0000104c
+
+#define VIVS_PS_HALTI4_UNK01054 0x00001054
+
+#define VIVS_PS_HALTI5_UNK01058 0x00001058
+
+#define VIVS_PS_HALTI5_UNK01080(i0) (0x00001080 + 0x4*(i0))
+#define VIVS_PS_HALTI5_UNK01080__ESIZE 0x00000004
+#define VIVS_PS_HALTI5_UNK01080__LEN 0x00000004
+
+#define VIVS_PS_NEWRANGE_LOW 0x0000087c
+
+#define VIVS_PS_NEWRANGE_HIGH 0x00001090
+
+#define VIVS_PS_HALTI5_UNK01094 0x00001094
+
+#define VIVS_PS_HALTI5_UNK01098 0x00001098
+
#define VIVS_PS_INST_MEM(i0) (0x00006000 + 0x4*(i0))
#define VIVS_PS_INST_MEM__ESIZE 0x00000004
#define VIVS_PS_INST_MEM__LEN 0x00000400
@@ -574,6 +596,122 @@
#define VIVS_PS_UNIFORMS__ESIZE 0x00000004
#define VIVS_PS_UNIFORMS__LEN 0x00000400
+#define VIVS_GS 0x00000000
+
+#define VIVS_GS_UNK01100 0x00001100
+
+#define VIVS_GS_UNK01104 0x00001104
+
+#define VIVS_GS_UNK01108 0x00001108
+
+#define VIVS_GS_UNK0110C 0x0000110c
+
+#define VIVS_GS_UNK01110 0x00001110
+
+#define VIVS_GS_UNK01114 0x00001114
+
+#define VIVS_GS_UNK0111C 0x0000111c
+
+#define VIVS_GS_UNK01120(i0) (0x00001120 + 0x4*(i0))
+#define VIVS_GS_UNK01120__ESIZE 0x00000004
+#define VIVS_GS_UNK01120__LEN 0x00000008
+
+#define VIVS_GS_UNK01140 0x00001140
+
+#define VIVS_GS_UNK01144 0x00001144
+
+#define VIVS_GS_UNK01148 0x00001148
+
+#define VIVS_GS_UNK0114C 0x0000114c
+
+#define VIVS_GS_UNK01154 0x00001154
+
+#define VIVS_TCS 0x00000000
+
+#define VIVS_TCS_UNK007C0 0x000007c0
+
+#define VIVS_TCS_UNK14A00 0x00014a00
+
+#define VIVS_TCS_UNK14A04 0x00014a04
+
+#define VIVS_TCS_UNK14A08 0x00014a08
+
+#define VIVS_TCS_UNK14A10 0x00014a10
+
+#define VIVS_TCS_UNK14A14 0x00014a14
+
+#define VIVS_TCS_UNK14A18 0x00014a18
+
+#define VIVS_TCS_UNK14A1C 0x00014a1c
+
+#define VIVS_TCS_UNK14A20(i0) (0x00014a20 + 0x4*(i0))
+#define VIVS_TCS_UNK14A20__ESIZE 0x00000004
+#define VIVS_TCS_UNK14A20__LEN 0x00000008
+
+#define VIVS_TCS_UNK14A40 0x00014a40
+
+#define VIVS_TCS_UNK14A44 0x00014a44
+
+#define VIVS_TCS_UNK14A4C 0x00014a4c
+
+#define VIVS_TES 0x00000000
+
+#define VIVS_TES_UNK14B00 0x00014b00
+
+#define VIVS_TES_UNK14B04 0x00014b04
+
+#define VIVS_TES_UNK14B08 0x00014b08
+
+#define VIVS_TES_UNK14B0C 0x00014b0c
+
+#define VIVS_TES_UNK14B14 0x00014b14
+
+#define VIVS_TES_UNK14B18 0x00014b18
+
+#define VIVS_TES_UNK14B1C 0x00014b1c
+
+#define VIVS_TES_UNK14B20 0x00014b20
+
+#define VIVS_TES_UNK14B24 0x00014b24
+
+#define VIVS_TES_UNK14B2C 0x00014b2c
+
+#define VIVS_TES_UNK14B34 0x00014b34
+
+#define VIVS_TES_UNK14B40(i0) (0x00014b40 + 0x4*(i0))
+#define VIVS_TES_UNK14B40__ESIZE 0x00000004
+#define VIVS_TES_UNK14B40__LEN 0x00000008
+
+#define VIVS_TFB 0x00000000
+
+#define VIVS_TFB_UNK1C000 0x0001c000
+
+#define VIVS_TFB_UNK1C008 0x0001c008
+
+#define VIVS_TFB_FLUSH 0x0001c00c
+
+#define VIVS_TFB_UNK1C014 0x0001c014
+
+#define VIVS_TFB_UNK1C040(i0) (0x0001c040 + 0x4*(i0))
+#define VIVS_TFB_UNK1C040__ESIZE 0x00000004
+#define VIVS_TFB_UNK1C040__LEN 0x00000004
+
+#define VIVS_TFB_UNK1C080(i0) (0x0001c080 + 0x4*(i0))
+#define VIVS_TFB_UNK1C080__ESIZE 0x00000004
+#define VIVS_TFB_UNK1C080__LEN 0x00000004
+
+#define VIVS_TFB_UNK1C0C0(i0) (0x0001c0c0 + 0x4*(i0))
+#define VIVS_TFB_UNK1C0C0__ESIZE 0x00000004
+#define VIVS_TFB_UNK1C0C0__LEN 0x00000004
+
+#define VIVS_TFB_UNK1C100(i0) (0x0001c100 + 0x4*(i0))
+#define VIVS_TFB_UNK1C100__ESIZE 0x00000004
+#define VIVS_TFB_UNK1C100__LEN 0x00000004
+
+#define VIVS_TFB_UNK1C800(i0) (0x0001c800 + 0x4*(i0))
+#define VIVS_TFB_UNK1C800__ESIZE 0x00000004
+#define VIVS_TFB_UNK1C800__LEN 0x00000200
+
#define VIVS_PE 0x00000000
#define VIVS_PE_DEPTH_CONFIG 0x00001400
@@ -738,7 +876,7 @@
#define VIVS_PE_COLOR_FORMAT_OVERWRITE_MASK 0x00020000
#define VIVS_PE_COLOR_FORMAT_SUPER_TILED 0x00100000
#define VIVS_PE_COLOR_FORMAT_SUPER_TILED_MASK 0x00200000
-#define VIVS_PE_COLOR_FORMAT_FORMAT_EXT__MASK 0x3f000000
+#define VIVS_PE_COLOR_FORMAT_FORMAT_EXT__MASK 0x7f000000
#define VIVS_PE_COLOR_FORMAT_FORMAT_EXT__SHIFT 24
#define VIVS_PE_COLOR_FORMAT_FORMAT_EXT(x) (((x) << VIVS_PE_COLOR_FORMAT_FORMAT_EXT__SHIFT) & VIVS_PE_COLOR_FORMAT_FORMAT_EXT__MASK)
#define VIVS_PE_COLOR_FORMAT_FORMAT_EXT_MASK 0x80000000
@@ -770,6 +908,8 @@
#define VIVS_PE_PIPE_ADDR_UNK01520(i0) (0x00001520 + 0x4*(i0))
+#define VIVS_PE_PIPE_ADDR_UNK01540(i0) (0x00001540 + 0x4*(i0))
+
#define VIVS_PE_STENCIL_CONFIG_EXT 0x000014a0
#define VIVS_PE_STENCIL_CONFIG_EXT_REF_BACK__MASK 0x000000ff
#define VIVS_PE_STENCIL_CONFIG_EXT_REF_BACK__SHIFT 0
@@ -799,6 +939,8 @@
#define VIVS_PE_LOGIC_OP_UNK24__SHIFT 24
#define VIVS_PE_LOGIC_OP_UNK24(x) (((x) << VIVS_PE_LOGIC_OP_UNK24__SHIFT) & VIVS_PE_LOGIC_OP_UNK24__MASK)
#define VIVS_PE_LOGIC_OP_UNK24_MASK 0x08000000
+#define VIVS_PE_LOGIC_OP_UNK31_MASK 0x40000000
+#define VIVS_PE_LOGIC_OP_UNK31 0x80000000
#define VIVS_PE_DITHER(i0) (0x000014a8 + 0x4*(i0))
#define VIVS_PE_DITHER__ESIZE 0x00000004
@@ -828,6 +970,12 @@
#define VIVS_PE_STENCIL_CONFIG_EXT2_WRITE_MASK_BACK__SHIFT 8
#define VIVS_PE_STENCIL_CONFIG_EXT2_WRITE_MASK_BACK(x) (((x) << VIVS_PE_STENCIL_CONFIG_EXT2_WRITE_MASK_BACK__SHIFT) & VIVS_PE_STENCIL_CONFIG_EXT2_WRITE_MASK_BACK__MASK)
+#define VIVS_PE_HALTI3_UNK014BC 0x000014bc
+
+#define VIVS_PE_HALTI4_UNK014C0 0x000014c0
+
+#define VIVS_PE_ROBUSTNESS_UNK014C4 0x000014c4
+
#define VIVS_PE_UNK01580(i0) (0x00001580 + 0x4*(i0))
#define VIVS_PE_UNK01580__ESIZE 0x00000004
#define VIVS_PE_UNK01580__LEN 0x00000003
@@ -850,6 +998,30 @@
#define VIVS_PE_RT_CONFIG_UNK16__SHIFT 16
#define VIVS_PE_RT_CONFIG_UNK16(x) (((x) << VIVS_PE_RT_CONFIG_UNK16__SHIFT) & VIVS_PE_RT_CONFIG_UNK16__MASK)
+#define VIVS_PE_HALTI5_UNK14920(i0) (0x00014920 + 0x4*(i0))
+#define VIVS_PE_HALTI5_UNK14920__ESIZE 0x00000004
+#define VIVS_PE_HALTI5_UNK14920__LEN 0x00000007
+
+#define VIVS_PE_HALTI5_UNK14940(i0) (0x00014940 + 0x4*(i0))
+#define VIVS_PE_HALTI5_UNK14940__ESIZE 0x00000004
+#define VIVS_PE_HALTI5_UNK14940__LEN 0x00000007
+
+#define VIVS_PE_HALTI5_UNK14960(i0) (0x00014960 + 0x4*(i0))
+#define VIVS_PE_HALTI5_UNK14960__ESIZE 0x00000004
+#define VIVS_PE_HALTI5_UNK14960__LEN 0x00000007
+
+#define VIVS_PE_HALTI5_UNK14980(i0) (0x00014980 + 0x4*(i0))
+#define VIVS_PE_HALTI5_UNK14980__ESIZE 0x00000004
+#define VIVS_PE_HALTI5_UNK14980__LEN 0x00000007
+
+#define VIVS_PE_HALTI5_UNK149A0(i0) (0x000149a0 + 0x4*(i0))
+#define VIVS_PE_HALTI5_UNK149A0__ESIZE 0x00000004
+#define VIVS_PE_HALTI5_UNK149A0__LEN 0x00000007
+
+#define VIVS_PE_ROBUSTNESS_UNK149C0(i0) (0x000149c0 + 0x4*(i0))
+#define VIVS_PE_ROBUSTNESS_UNK149C0__ESIZE 0x00000004
+#define VIVS_PE_ROBUSTNESS_UNK149C0__LEN 0x00000008
+
#define VIVS_CO 0x00000000
#define VIVS_CO_UNK03008 0x00003008
@@ -874,6 +1046,8 @@
#define VIVS_CO_UNK03048 0x00003048
+#define VIVS_CO_ICACHE_UNK0304C 0x0000304c
+
#define VIVS_CO_SAMPLER(i0) (0x00000000 + 0x4*(i0))
#define VIVS_CO_SAMPLER__ESIZE 0x00000004
#define VIVS_CO_SAMPLER__LEN 0x00000008
@@ -985,15 +1159,13 @@
#define VIVS_RS_EXTRA_CONFIG_UNK20 0x00100000
#define VIVS_RS_EXTRA_CONFIG_UNK28 0x10000000
-#define VIVS_RS_UNK016B0 0x000016b0
+#define VIVS_RS_KICKER_INPLACE 0x000016b0
#define VIVS_RS_UNK016B4 0x000016b4
#define VIVS_RS_SINGLE_BUFFER 0x000016b8
#define VIVS_RS_SINGLE_BUFFER_ENABLE 0x00000001
-#define VIVS_RS_UNK016BC 0x000016bc
-
#define VIVS_RS_PIPE(i0) (0x00000000 + 0x4*(i0))
#define VIVS_RS_PIPE__ESIZE 0x00000004
#define VIVS_RS_PIPE__LEN 0x00000008
@@ -1022,16 +1194,14 @@
#define VIVS_TS_MEM_CONFIG_DEPTH_AUTO_DISABLE 0x00000010
#define VIVS_TS_MEM_CONFIG_COLOR_AUTO_DISABLE 0x00000020
#define VIVS_TS_MEM_CONFIG_DEPTH_COMPRESSION 0x00000040
-#define VIVS_TS_MEM_CONFIG_MSAA 0x00000080
-#define VIVS_TS_MEM_CONFIG_MSAA_FORMAT__MASK 0x00000f00
-#define VIVS_TS_MEM_CONFIG_MSAA_FORMAT__SHIFT 8
-#define VIVS_TS_MEM_CONFIG_MSAA_FORMAT_A4R4G4B4 0x00000000
-#define VIVS_TS_MEM_CONFIG_MSAA_FORMAT_A1R5G5B5 0x00000100
-#define VIVS_TS_MEM_CONFIG_MSAA_FORMAT_R5G6B5 0x00000200
-#define VIVS_TS_MEM_CONFIG_MSAA_FORMAT_A8R8G8B8 0x00000300
-#define VIVS_TS_MEM_CONFIG_MSAA_FORMAT_X8R8G8B8 0x00000400
+#define VIVS_TS_MEM_CONFIG_COLOR_COMPRESSION 0x00000080
+#define VIVS_TS_MEM_CONFIG_COLOR_COMPRESSION_FORMAT__MASK 0x00000f00
+#define VIVS_TS_MEM_CONFIG_COLOR_COMPRESSION_FORMAT__SHIFT 8
+#define VIVS_TS_MEM_CONFIG_COLOR_COMPRESSION_FORMAT(x) (((x) << VIVS_TS_MEM_CONFIG_COLOR_COMPRESSION_FORMAT__SHIFT) & VIVS_TS_MEM_CONFIG_COLOR_COMPRESSION_FORMAT__MASK)
#define VIVS_TS_MEM_CONFIG_UNK12 0x00001000
#define VIVS_TS_MEM_CONFIG_HDEPTH_AUTO_DISABLE 0x00002000
+#define VIVS_TS_MEM_CONFIG_UNK14 0x00004000
+#define VIVS_TS_MEM_CONFIG_UNK21 0x00200000
#define VIVS_TS_COLOR_STATUS_BASE 0x00001658
@@ -1055,6 +1225,8 @@
#define VIVS_TS_HDEPTH_SIZE 0x000016ac
+#define VIVS_TS_COLOR_CLEAR_VALUE_EXT 0x000016bc
+
#define VIVS_TS_SAMPLER(i0) (0x00000000 + 0x4*(i0))
#define VIVS_TS_SAMPLER__ESIZE 0x00000004
#define VIVS_TS_SAMPLER__LEN 0x00000008
@@ -1066,6 +1238,9 @@
#define VIVS_TS_SAMPLER_CONFIG_FORMAT__MASK 0x000000f0
#define VIVS_TS_SAMPLER_CONFIG_FORMAT__SHIFT 4
#define VIVS_TS_SAMPLER_CONFIG_FORMAT(x) (((x) << VIVS_TS_SAMPLER_CONFIG_FORMAT__SHIFT) & VIVS_TS_SAMPLER_CONFIG_FORMAT__MASK)
+#define VIVS_TS_SAMPLER_CONFIG_UNK11__MASK 0x00003800
+#define VIVS_TS_SAMPLER_CONFIG_UNK11__SHIFT 11
+#define VIVS_TS_SAMPLER_CONFIG_UNK11(x) (((x) << VIVS_TS_SAMPLER_CONFIG_UNK11__SHIFT) & VIVS_TS_SAMPLER_CONFIG_UNK11__MASK)
#define VIVS_TS_SAMPLER_STATUS_BASE(i0) (0x00001740 + 0x4*(i0))
@@ -1073,6 +1248,8 @@
#define VIVS_TS_SAMPLER_CLEAR_VALUE2(i0) (0x00001780 + 0x4*(i0))
+#define VIVS_TS_SAMPLER_SURFACE_BASE(i0) (0x00001a80 + 0x4*(i0))
+
#define VIVS_TS_RT(i0) (0x00000000 + 0x4*(i0))
#define VIVS_TS_RT__ESIZE 0x00000004
#define VIVS_TS_RT__LEN 0x00000008
@@ -1181,10 +1358,19 @@
#define VIVS_TE_SAMPLER_UNK02140(i0) (0x00002140 + 0x4*(i0))
-#define VIVS_TE_SAMPLER_UNK02180(i0) (0x00002180 + 0x4*(i0))
+#define VIVS_TE_SAMPLER_3D_CONFIG(i0) (0x00002180 + 0x4*(i0))
+#define VIVS_TE_SAMPLER_3D_CONFIG_DEPTH__MASK 0x00003fff
+#define VIVS_TE_SAMPLER_3D_CONFIG_DEPTH__SHIFT 0
+#define VIVS_TE_SAMPLER_3D_CONFIG_DEPTH(x) (((x) << VIVS_TE_SAMPLER_3D_CONFIG_DEPTH__SHIFT) & VIVS_TE_SAMPLER_3D_CONFIG_DEPTH__MASK)
+#define VIVS_TE_SAMPLER_3D_CONFIG_LOG_DEPTH__MASK 0x03ff0000
+#define VIVS_TE_SAMPLER_3D_CONFIG_LOG_DEPTH__SHIFT 16
+#define VIVS_TE_SAMPLER_3D_CONFIG_LOG_DEPTH(x) (((x) << VIVS_TE_SAMPLER_3D_CONFIG_LOG_DEPTH__SHIFT) & VIVS_TE_SAMPLER_3D_CONFIG_LOG_DEPTH__MASK)
+#define VIVS_TE_SAMPLER_3D_CONFIG_WRAP__MASK 0x30000000
+#define VIVS_TE_SAMPLER_3D_CONFIG_WRAP__SHIFT 28
+#define VIVS_TE_SAMPLER_3D_CONFIG_WRAP(x) (((x) << VIVS_TE_SAMPLER_3D_CONFIG_WRAP__SHIFT) & VIVS_TE_SAMPLER_3D_CONFIG_WRAP__MASK)
#define VIVS_TE_SAMPLER_CONFIG1(i0) (0x000021c0 + 0x4*(i0))
-#define VIVS_TE_SAMPLER_CONFIG1_FORMAT_EXT__MASK 0x0000001f
+#define VIVS_TE_SAMPLER_CONFIG1_FORMAT_EXT__MASK 0x0000003f
#define VIVS_TE_SAMPLER_CONFIG1_FORMAT_EXT__SHIFT 0
#define VIVS_TE_SAMPLER_CONFIG1_FORMAT_EXT(x) (((x) << VIVS_TE_SAMPLER_CONFIG1_FORMAT_EXT__SHIFT) & VIVS_TE_SAMPLER_CONFIG1_FORMAT_EXT__MASK)
#define VIVS_TE_SAMPLER_CONFIG1_SWIZZLE_R__MASK 0x00000700
@@ -1199,6 +1385,11 @@
#define VIVS_TE_SAMPLER_CONFIG1_SWIZZLE_A__MASK 0x00700000
#define VIVS_TE_SAMPLER_CONFIG1_SWIZZLE_A__SHIFT 20
#define VIVS_TE_SAMPLER_CONFIG1_SWIZZLE_A(x) (((x) << VIVS_TE_SAMPLER_CONFIG1_SWIZZLE_A__SHIFT) & VIVS_TE_SAMPLER_CONFIG1_SWIZZLE_A__MASK)
+#define VIVS_TE_SAMPLER_CONFIG1_CACHE_MODE__MASK 0x00800000
+#define VIVS_TE_SAMPLER_CONFIG1_CACHE_MODE__SHIFT 23
+#define VIVS_TE_SAMPLER_CONFIG1_CACHE_MODE_128 0x00000000
+#define VIVS_TE_SAMPLER_CONFIG1_CACHE_MODE_256 0x00800000
+#define VIVS_TE_SAMPLER_CONFIG1_TEXTURE_ARRAY 0x01000000
#define VIVS_TE_SAMPLER_CONFIG1_UNK25 0x02000000
#define VIVS_TE_SAMPLER_CONFIG1_HALIGN__MASK 0x1c000000
#define VIVS_TE_SAMPLER_CONFIG1_HALIGN__SHIFT 26
@@ -1212,9 +1403,9 @@
#define VIVS_TE_SAMPLER_LOD_ADDR__ESIZE 0x00000040
#define VIVS_TE_SAMPLER_LOD_ADDR__LEN 0x0000000e
-#define VIVS_TE_SAMPLER_UNK02C00(i0, i1) (0x00002c00 + 0x4*(i0) + 0x40*(i1))
-#define VIVS_TE_SAMPLER_UNK02C00__ESIZE 0x00000040
-#define VIVS_TE_SAMPLER_UNK02C00__LEN 0x0000000e
+#define VIVS_TE_SAMPLER_LINEAR_STRIDE(i0, i1) (0x00002c00 + 0x4*(i0) + 0x40*(i1))
+#define VIVS_TE_SAMPLER_LINEAR_STRIDE__ESIZE 0x00000040
+#define VIVS_TE_SAMPLER_LINEAR_STRIDE__LEN 0x0000000e
#define VIVS_NTE 0x00000000
@@ -1286,10 +1477,19 @@
#define VIVS_NTE_SAMPLER_UNK10280(i0) (0x00010280 + 0x4*(i0))
-#define VIVS_NTE_SAMPLER_UNK10300(i0) (0x00010300 + 0x4*(i0))
+#define VIVS_NTE_SAMPLER_3D_CONFIG(i0) (0x00010300 + 0x4*(i0))
+#define VIVS_NTE_SAMPLER_3D_CONFIG_DEPTH__MASK 0x00003fff
+#define VIVS_NTE_SAMPLER_3D_CONFIG_DEPTH__SHIFT 0
+#define VIVS_NTE_SAMPLER_3D_CONFIG_DEPTH(x) (((x) << VIVS_NTE_SAMPLER_3D_CONFIG_DEPTH__SHIFT) & VIVS_NTE_SAMPLER_3D_CONFIG_DEPTH__MASK)
+#define VIVS_NTE_SAMPLER_3D_CONFIG_LOG_DEPTH__MASK 0x03ff0000
+#define VIVS_NTE_SAMPLER_3D_CONFIG_LOG_DEPTH__SHIFT 16
+#define VIVS_NTE_SAMPLER_3D_CONFIG_LOG_DEPTH(x) (((x) << VIVS_NTE_SAMPLER_3D_CONFIG_LOG_DEPTH__SHIFT) & VIVS_NTE_SAMPLER_3D_CONFIG_LOG_DEPTH__MASK)
+#define VIVS_NTE_SAMPLER_3D_CONFIG_WRAP__MASK 0x30000000
+#define VIVS_NTE_SAMPLER_3D_CONFIG_WRAP__SHIFT 28
+#define VIVS_NTE_SAMPLER_3D_CONFIG_WRAP(x) (((x) << VIVS_NTE_SAMPLER_3D_CONFIG_WRAP__SHIFT) & VIVS_NTE_SAMPLER_3D_CONFIG_WRAP__MASK)
#define VIVS_NTE_SAMPLER_CONFIG1(i0) (0x00010380 + 0x4*(i0))
-#define VIVS_NTE_SAMPLER_CONFIG1_FORMAT_EXT__MASK 0x0000001f
+#define VIVS_NTE_SAMPLER_CONFIG1_FORMAT_EXT__MASK 0x0000003f
#define VIVS_NTE_SAMPLER_CONFIG1_FORMAT_EXT__SHIFT 0
#define VIVS_NTE_SAMPLER_CONFIG1_FORMAT_EXT(x) (((x) << VIVS_NTE_SAMPLER_CONFIG1_FORMAT_EXT__SHIFT) & VIVS_NTE_SAMPLER_CONFIG1_FORMAT_EXT__MASK)
#define VIVS_NTE_SAMPLER_CONFIG1_SWIZZLE_R__MASK 0x00000700
@@ -1304,6 +1504,11 @@
#define VIVS_NTE_SAMPLER_CONFIG1_SWIZZLE_A__MASK 0x00700000
#define VIVS_NTE_SAMPLER_CONFIG1_SWIZZLE_A__SHIFT 20
#define VIVS_NTE_SAMPLER_CONFIG1_SWIZZLE_A(x) (((x) << VIVS_NTE_SAMPLER_CONFIG1_SWIZZLE_A__SHIFT) & VIVS_NTE_SAMPLER_CONFIG1_SWIZZLE_A__MASK)
+#define VIVS_NTE_SAMPLER_CONFIG1_CACHE_MODE__MASK 0x00800000
+#define VIVS_NTE_SAMPLER_CONFIG1_CACHE_MODE__SHIFT 23
+#define VIVS_NTE_SAMPLER_CONFIG1_CACHE_MODE_128 0x00000000
+#define VIVS_NTE_SAMPLER_CONFIG1_CACHE_MODE_256 0x00800000
+#define VIVS_NTE_SAMPLER_CONFIG1_TEXTURE_ARRAY 0x01000000
#define VIVS_NTE_SAMPLER_CONFIG1_UNK25 0x02000000
#define VIVS_NTE_SAMPLER_CONFIG1_HALIGN__MASK 0x1c000000
#define VIVS_NTE_SAMPLER_CONFIG1_HALIGN__SHIFT 26
@@ -1313,9 +1518,38 @@
#define VIVS_NTE_SAMPLER_UNK10480(i0) (0x00010480 + 0x4*(i0))
-#define VIVS_NTE_SAMPLER_UNK10500(i0) (0x00010500 + 0x4*(i0))
+#define VIVS_NTE_SAMPLER_ASTC0(i0) (0x00010500 + 0x4*(i0))
-#define VIVS_NTE_SAMPLER_UNK10700(i0) (0x00010700 + 0x4*(i0))
+#define VIVS_NTE_SAMPLER_ASTC1(i0) (0x00010580 + 0x4*(i0))
+
+#define VIVS_NTE_SAMPLER_ASTC2(i0) (0x00010600 + 0x4*(i0))
+
+#define VIVS_NTE_SAMPLER_ASTC3(i0) (0x00010600 + 0x4*(i0))
+
+#define VIVS_NTE_SAMPLER_BASELOD(i0) (0x00010700 + 0x4*(i0))
+#define VIVS_NTE_SAMPLER_BASELOD_UNK23 0x00800000
+#define VIVS_NTE_SAMPLER_BASELOD_BASELOD__MASK 0x0000000f
+#define VIVS_NTE_SAMPLER_BASELOD_BASELOD__SHIFT 0
+#define VIVS_NTE_SAMPLER_BASELOD_BASELOD(x) (((x) << VIVS_NTE_SAMPLER_BASELOD_BASELOD__SHIFT) & VIVS_NTE_SAMPLER_BASELOD_BASELOD__MASK)
+#define VIVS_NTE_SAMPLER_BASELOD_MAXLOD__MASK 0x00000f00
+#define VIVS_NTE_SAMPLER_BASELOD_MAXLOD__SHIFT 8
+#define VIVS_NTE_SAMPLER_BASELOD_MAXLOD(x) (((x) << VIVS_NTE_SAMPLER_BASELOD_MAXLOD__SHIFT) & VIVS_NTE_SAMPLER_BASELOD_MAXLOD__MASK)
+
+#define VIVS_NTE_SAMPLER_UNK10780(i0) (0x00010780 + 0x4*(i0))
+
+#define VIVS_NTE_SAMPLER_FRAC_UNK11000(i0) (0x00011000 + 0x4*(i0))
+
+#define VIVS_NTE_SAMPLER_FRAC_UNK11080(i0) (0x00011080 + 0x4*(i0))
+
+#define VIVS_NTE_SAMPLER_FRAC_UNK11100(i0) (0x00011100 + 0x4*(i0))
+
+#define VIVS_NTE_SAMPLER_FRAC_UNK11180(i0) (0x00011180 + 0x4*(i0))
+
+#define VIVS_NTE_SAMPLER_HALTI4_UNK11200(i0) (0x00011200 + 0x4*(i0))
+
+#define VIVS_NTE_SAMPLER_HALTI4_UNK11280(i0) (0x00011280 + 0x4*(i0))
+
+#define VIVS_NTE_SAMPLER_FRAC_UNK11300(i0) (0x00011300 + 0x4*(i0))
#define VIVS_NTE_SAMPLER_ADDR(i0) (0x00010800 + 0x40*(i0))
#define VIVS_NTE_SAMPLER_ADDR__ESIZE 0x00000040
@@ -1333,6 +1567,94 @@
#define VIVS_NTE_UNK12400__ESIZE 0x00000004
#define VIVS_NTE_UNK12400__LEN 0x00000100
+#define VIVS_NTE_HALTI3_UNK14C00(i0) (0x00014c00 + 0x4*(i0))
+#define VIVS_NTE_HALTI3_UNK14C00__ESIZE 0x00000004
+#define VIVS_NTE_HALTI3_UNK14C00__LEN 0x00000010
+
+#define VIVS_NTE_DESCRIPTOR_UNK14C40 0x00014c40
+#define VIVS_NTE_DESCRIPTOR_UNK14C40_UNK0 0x00000001
+
+#define VIVS_NTE_UNK14C44 0x00014c44
+
+#define VIVS_NTE_DESCRIPTOR_INVALIDATE 0x00014c48
+#define VIVS_NTE_DESCRIPTOR_INVALIDATE_IDX__MASK 0x000001ff
+#define VIVS_NTE_DESCRIPTOR_INVALIDATE_IDX__SHIFT 0
+#define VIVS_NTE_DESCRIPTOR_INVALIDATE_IDX(x) (((x) << VIVS_NTE_DESCRIPTOR_INVALIDATE_IDX__SHIFT) & VIVS_NTE_DESCRIPTOR_INVALIDATE_IDX__MASK)
+#define VIVS_NTE_DESCRIPTOR_INVALIDATE_UNK29 0x20000000
+
+#define VIVS_NTE_DESCRIPTOR(i0) (0x00000000 + 0x4*(i0))
+#define VIVS_NTE_DESCRIPTOR__ESIZE 0x00000004
+#define VIVS_NTE_DESCRIPTOR__LEN 0x00000080
+
+#define VIVS_NTE_DESCRIPTOR_ADDR_MIRROR(i0) (0x00015800 + 0x4*(i0))
+
+#define VIVS_NTE_DESCRIPTOR_TX_CTRL_MIRROR(i0) (0x00015a00 + 0x4*(i0))
+
+#define VIVS_NTE_DESCRIPTOR_ADDR(i0) (0x00015c00 + 0x4*(i0))
+
+#define VIVS_NTE_DESCRIPTOR_TX_CTRL(i0) (0x00015e00 + 0x4*(i0))
+#define VIVS_NTE_DESCRIPTOR_TX_CTRL_TS_ENABLE__MASK 0x00000003
+#define VIVS_NTE_DESCRIPTOR_TX_CTRL_TS_ENABLE__SHIFT 0
+#define VIVS_NTE_DESCRIPTOR_TX_CTRL_TS_ENABLE(x) (((x) << VIVS_NTE_DESCRIPTOR_TX_CTRL_TS_ENABLE__SHIFT) & VIVS_NTE_DESCRIPTOR_TX_CTRL_TS_ENABLE__MASK)
+#define VIVS_NTE_DESCRIPTOR_TX_CTRL_TS_INDEX__MASK 0x0000001c
+#define VIVS_NTE_DESCRIPTOR_TX_CTRL_TS_INDEX__SHIFT 2
+#define VIVS_NTE_DESCRIPTOR_TX_CTRL_TS_INDEX(x) (((x) << VIVS_NTE_DESCRIPTOR_TX_CTRL_TS_INDEX__SHIFT) & VIVS_NTE_DESCRIPTOR_TX_CTRL_TS_INDEX__MASK)
+
+#define VIVS_NTE_DESCRIPTOR_SAMP_CTRL0_MIRROR(i0) (0x00016000 + 0x4*(i0))
+
+#define VIVS_NTE_DESCRIPTOR_SAMP_CTRL1_MIRROR(i0) (0x00016200 + 0x4*(i0))
+
+#define VIVS_NTE_DESCRIPTOR_SAMP_LOD_MINMAX_MIRROR(i0) (0x00016400 + 0x4*(i0))
+
+#define VIVS_NTE_DESCRIPTOR_SAMP_LOD_BIAS_MIRROR(i0) (0x00016600 + 0x4*(i0))
+
+#define VIVS_NTE_DESCRIPTOR_UNK17400_MIRROR(i0) (0x00016800 + 0x4*(i0))
+
+#define VIVS_NTE_DESCRIPTOR_SAMP_CTRL0(i0) (0x00016c00 + 0x4*(i0))
+#define VIVS_NTE_DESCRIPTOR_SAMP_CTRL0_UWRAP__MASK 0x00000007
+#define VIVS_NTE_DESCRIPTOR_SAMP_CTRL0_UWRAP__SHIFT 0
+#define VIVS_NTE_DESCRIPTOR_SAMP_CTRL0_UWRAP(x) (((x) << VIVS_NTE_DESCRIPTOR_SAMP_CTRL0_UWRAP__SHIFT) & VIVS_NTE_DESCRIPTOR_SAMP_CTRL0_UWRAP__MASK)
+#define VIVS_NTE_DESCRIPTOR_SAMP_CTRL0_VWRAP__MASK 0x00000038
+#define VIVS_NTE_DESCRIPTOR_SAMP_CTRL0_VWRAP__SHIFT 3
+#define VIVS_NTE_DESCRIPTOR_SAMP_CTRL0_VWRAP(x) (((x) << VIVS_NTE_DESCRIPTOR_SAMP_CTRL0_VWRAP__SHIFT) & VIVS_NTE_DESCRIPTOR_SAMP_CTRL0_VWRAP__MASK)
+#define VIVS_NTE_DESCRIPTOR_SAMP_CTRL0_WWRAP__MASK 0x000001c0
+#define VIVS_NTE_DESCRIPTOR_SAMP_CTRL0_WWRAP__SHIFT 6
+#define VIVS_NTE_DESCRIPTOR_SAMP_CTRL0_WWRAP(x) (((x) << VIVS_NTE_DESCRIPTOR_SAMP_CTRL0_WWRAP__SHIFT) & VIVS_NTE_DESCRIPTOR_SAMP_CTRL0_WWRAP__MASK)
+#define VIVS_NTE_DESCRIPTOR_SAMP_CTRL0_MIN__MASK 0x00000600
+#define VIVS_NTE_DESCRIPTOR_SAMP_CTRL0_MIN__SHIFT 9
+#define VIVS_NTE_DESCRIPTOR_SAMP_CTRL0_MIN(x) (((x) << VIVS_NTE_DESCRIPTOR_SAMP_CTRL0_MIN__SHIFT) & VIVS_NTE_DESCRIPTOR_SAMP_CTRL0_MIN__MASK)
+#define VIVS_NTE_DESCRIPTOR_SAMP_CTRL0_MIP__MASK 0x00001800
+#define VIVS_NTE_DESCRIPTOR_SAMP_CTRL0_MIP__SHIFT 11
+#define VIVS_NTE_DESCRIPTOR_SAMP_CTRL0_MIP(x) (((x) << VIVS_NTE_DESCRIPTOR_SAMP_CTRL0_MIP__SHIFT) & VIVS_NTE_DESCRIPTOR_SAMP_CTRL0_MIP__MASK)
+#define VIVS_NTE_DESCRIPTOR_SAMP_CTRL0_MAG__MASK 0x00006000
+#define VIVS_NTE_DESCRIPTOR_SAMP_CTRL0_MAG__SHIFT 13
+#define VIVS_NTE_DESCRIPTOR_SAMP_CTRL0_MAG(x) (((x) << VIVS_NTE_DESCRIPTOR_SAMP_CTRL0_MAG__SHIFT) & VIVS_NTE_DESCRIPTOR_SAMP_CTRL0_MAG__MASK)
+#define VIVS_NTE_DESCRIPTOR_SAMP_CTRL0_UNK21 0x00200000
+#define VIVS_NTE_DESCRIPTOR_SAMP_CTRL0_UNK23 0x00800000
+
+#define VIVS_NTE_DESCRIPTOR_SAMP_CTRL1(i0) (0x00016e00 + 0x4*(i0))
+#define VIVS_NTE_DESCRIPTOR_SAMP_CTRL1_UNK1 0x00000002
+#define VIVS_NTE_DESCRIPTOR_SAMP_CTRL1_SRGB 0x00000004
+#define VIVS_NTE_DESCRIPTOR_SAMP_CTRL1_UNK3 0x00000008
+#define VIVS_NTE_DESCRIPTOR_SAMP_CTRL1_UNK4__MASK 0x00000030
+#define VIVS_NTE_DESCRIPTOR_SAMP_CTRL1_UNK4__SHIFT 4
+#define VIVS_NTE_DESCRIPTOR_SAMP_CTRL1_UNK4(x) (((x) << VIVS_NTE_DESCRIPTOR_SAMP_CTRL1_UNK4__SHIFT) & VIVS_NTE_DESCRIPTOR_SAMP_CTRL1_UNK4__MASK)
+
+#define VIVS_NTE_DESCRIPTOR_SAMP_LOD_MINMAX(i0) (0x00017000 + 0x4*(i0))
+#define VIVS_NTE_DESCRIPTOR_SAMP_LOD_MINMAX_MAX__MASK 0x0000ffff
+#define VIVS_NTE_DESCRIPTOR_SAMP_LOD_MINMAX_MAX__SHIFT 0
+#define VIVS_NTE_DESCRIPTOR_SAMP_LOD_MINMAX_MAX(x) (((x) << VIVS_NTE_DESCRIPTOR_SAMP_LOD_MINMAX_MAX__SHIFT) & VIVS_NTE_DESCRIPTOR_SAMP_LOD_MINMAX_MAX__MASK)
+#define VIVS_NTE_DESCRIPTOR_SAMP_LOD_MINMAX_MIN__MASK 0xffff0000
+#define VIVS_NTE_DESCRIPTOR_SAMP_LOD_MINMAX_MIN__SHIFT 16
+#define VIVS_NTE_DESCRIPTOR_SAMP_LOD_MINMAX_MIN(x) (((x) << VIVS_NTE_DESCRIPTOR_SAMP_LOD_MINMAX_MIN__SHIFT) & VIVS_NTE_DESCRIPTOR_SAMP_LOD_MINMAX_MIN__MASK)
+
+#define VIVS_NTE_DESCRIPTOR_SAMP_LOD_BIAS(i0) (0x00017200 + 0x4*(i0))
+#define VIVS_NTE_DESCRIPTOR_SAMP_LOD_BIAS_BIAS__MASK 0x0000ffff
+#define VIVS_NTE_DESCRIPTOR_SAMP_LOD_BIAS_BIAS__SHIFT 0
+#define VIVS_NTE_DESCRIPTOR_SAMP_LOD_BIAS_BIAS(x) (((x) << VIVS_NTE_DESCRIPTOR_SAMP_LOD_BIAS_BIAS__SHIFT) & VIVS_NTE_DESCRIPTOR_SAMP_LOD_BIAS_BIAS__MASK)
+
+#define VIVS_NTE_DESCRIPTOR_UNK17400(i0) (0x00017400 + 0x4*(i0))
+
#define VIVS_SH 0x00000000
#define VIVS_SH_UNK20000(i0) (0x00020000 + 0x4*(i0))
@@ -1351,5 +1673,13 @@
#define VIVS_SH_UNIFORMS__ESIZE 0x00000004
#define VIVS_SH_UNIFORMS__LEN 0x00000800
+#define VIVS_SH_HALTI5_UNIFORMS_MIRROR(i0) (0x00034000 + 0x4*(i0))
+#define VIVS_SH_HALTI5_UNIFORMS_MIRROR__ESIZE 0x00000004
+#define VIVS_SH_HALTI5_UNIFORMS_MIRROR__LEN 0x00000800
+
+#define VIVS_SH_HALTI5_UNIFORMS(i0) (0x00036000 + 0x4*(i0))
+#define VIVS_SH_HALTI5_UNIFORMS__ESIZE 0x00000004
+#define VIVS_SH_HALTI5_UNIFORMS__LEN 0x00000800
+
#endif /* STATE_3D_XML */
diff --git a/src/state_blt.xml.h b/src/state_blt.xml.h
new file mode 100644
index 0000000..4958b74
--- /dev/null
+++ b/src/state_blt.xml.h
@@ -0,0 +1,264 @@
+#ifndef STATE_BLT_XML
+#define STATE_BLT_XML
+
+/* Autogenerated file, DO NOT EDIT manually!
+
+This file was generated by the rules-ng-ng headergen tool in this git repository:
+http://0x04.net/cgit/index.cgi/rules-ng-ng
+git clone git://0x04.net/rules-ng-ng
+
+The rules-ng-ng source files this header was generated from are:
+- state.xml ( 25532 bytes, from 2017-10-13 12:19:04)
+- common.xml ( 26193 bytes, from 2017-10-13 12:18:24)
+- common_3d.xml ( 12531 bytes, from 2017-10-13 11:04:24)
+- state_hi.xml ( 27733 bytes, from 2017-10-02 19:00:30)
+- copyright.xml ( 1597 bytes, from 2016-10-29 07:29:22)
+- state_2d.xml ( 51552 bytes, from 2016-10-29 07:29:22)
+- state_3d.xml ( 74317 bytes, from 2017-10-13 12:43:31)
+- state_blt.xml ( 11153 bytes, from 2017-10-13 12:39:38)
+- state_vg.xml ( 5975 bytes, from 2016-10-29 07:29:22)
+
+Copyright (C) 2012-2017 by the following authors:
+- Wladimir J. van der Laan <laanwj@gmail.com>
+- Christian Gmeiner <christian.gmeiner@gmail.com>
+- Lucas Stach <l.stach@pengutronix.de>
+- Russell King <rmk@arm.linux.org.uk>
+
+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, sub license,
+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 NON-INFRINGEMENT. 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.
+*/
+
+
+#define BLT_TILING_LINEAR 0x00000000
+#define BLT_TILING_SUPERTILED 0x00000003
+#define BLT_FORMAT_A4R4G4B4 0x00000001
+#define BLT_FORMAT_A8R8G8B8 0x00000006
+#define BLT_FORMAT_A16R16G16B16 0x0000001c
+#define BLT_FORMAT_R8G8B8 0x00000022
+#define BLT_FORMAT_R8 0x00000023
+#define BLT_FORMAT_R8G8 0x00000024
+#define BLT_IMAGE_CONFIG_TS 0x00000001
+#define BLT_IMAGE_CONFIG_COMPRESSION 0x00000002
+#define BLT_IMAGE_CONFIG_COMPRESSION_FORMAT__MASK 0x000000f0
+#define BLT_IMAGE_CONFIG_COMPRESSION_FORMAT__SHIFT 4
+#define BLT_IMAGE_CONFIG_COMPRESSION_FORMAT(x) (((x) << BLT_IMAGE_CONFIG_COMPRESSION_FORMAT__SHIFT) & BLT_IMAGE_CONFIG_COMPRESSION_FORMAT__MASK)
+#define BLT_IMAGE_CONFIG_UNK8 0x00000100
+#define BLT_IMAGE_CONFIG_SWIZ_R__MASK 0x00000600
+#define BLT_IMAGE_CONFIG_SWIZ_R__SHIFT 9
+#define BLT_IMAGE_CONFIG_SWIZ_R(x) (((x) << BLT_IMAGE_CONFIG_SWIZ_R__SHIFT) & BLT_IMAGE_CONFIG_SWIZ_R__MASK)
+#define BLT_IMAGE_CONFIG_SWIZ_G__MASK 0x00001800
+#define BLT_IMAGE_CONFIG_SWIZ_G__SHIFT 11
+#define BLT_IMAGE_CONFIG_SWIZ_G(x) (((x) << BLT_IMAGE_CONFIG_SWIZ_G__SHIFT) & BLT_IMAGE_CONFIG_SWIZ_G__MASK)
+#define BLT_IMAGE_CONFIG_SWIZ_B__MASK 0x00006000
+#define BLT_IMAGE_CONFIG_SWIZ_B__SHIFT 13
+#define BLT_IMAGE_CONFIG_SWIZ_B(x) (((x) << BLT_IMAGE_CONFIG_SWIZ_B__SHIFT) & BLT_IMAGE_CONFIG_SWIZ_B__MASK)
+#define BLT_IMAGE_CONFIG_SWIZ_A__MASK 0x00018000
+#define BLT_IMAGE_CONFIG_SWIZ_A__SHIFT 15
+#define BLT_IMAGE_CONFIG_SWIZ_A(x) (((x) << BLT_IMAGE_CONFIG_SWIZ_A__SHIFT) & BLT_IMAGE_CONFIG_SWIZ_A__MASK)
+#define BLT_IMAGE_CONFIG_CACHE_MODE__MASK 0x00020000
+#define BLT_IMAGE_CONFIG_CACHE_MODE__SHIFT 17
+#define BLT_IMAGE_CONFIG_CACHE_MODE_128 0x00000000
+#define BLT_IMAGE_CONFIG_CACHE_MODE_256 0x00020000
+#define BLT_IMAGE_CONFIG_FLIP_Y 0x00080000
+#define BLT_IMAGE_CONFIG_FROM_SUPERTILED 0x00200000
+#define BLT_IMAGE_CONFIG_UNK22 0x00400000
+#define BLT_IMAGE_CONFIG_TO_SUPERTILED 0x04000000
+#define VIVS_BLT 0x00000000
+
+#define VIVS_BLT_SRC_ADDR 0x00014000
+
+#define VIVS_BLT_SRC_STRIDE 0x00014008
+#define VIVS_BLT_SRC_STRIDE_STRIDE__MASK 0x000fffff
+#define VIVS_BLT_SRC_STRIDE_STRIDE__SHIFT 0
+#define VIVS_BLT_SRC_STRIDE_STRIDE(x) (((x) << VIVS_BLT_SRC_STRIDE_STRIDE__SHIFT) & VIVS_BLT_SRC_STRIDE_STRIDE__MASK)
+#define VIVS_BLT_SRC_STRIDE_FORMAT__MASK 0x1fe00000
+#define VIVS_BLT_SRC_STRIDE_FORMAT__SHIFT 21
+#define VIVS_BLT_SRC_STRIDE_FORMAT(x) (((x) << VIVS_BLT_SRC_STRIDE_FORMAT__SHIFT) & VIVS_BLT_SRC_STRIDE_FORMAT__MASK)
+#define VIVS_BLT_SRC_STRIDE_TILING__MASK 0x60000000
+#define VIVS_BLT_SRC_STRIDE_TILING__SHIFT 29
+#define VIVS_BLT_SRC_STRIDE_TILING(x) (((x) << VIVS_BLT_SRC_STRIDE_TILING__SHIFT) & VIVS_BLT_SRC_STRIDE_TILING__MASK)
+
+#define VIVS_BLT_SRC_CONFIG 0x0001400c
+
+#define VIVS_BLT_SRC_TS 0x00014010
+
+#define VIVS_BLT_SRC_POS 0x00014014
+#define VIVS_BLT_SRC_POS_X__MASK 0x0000ffff
+#define VIVS_BLT_SRC_POS_X__SHIFT 0
+#define VIVS_BLT_SRC_POS_X(x) (((x) << VIVS_BLT_SRC_POS_X__SHIFT) & VIVS_BLT_SRC_POS_X__MASK)
+#define VIVS_BLT_SRC_POS_Y__MASK 0xffff0000
+#define VIVS_BLT_SRC_POS_Y__SHIFT 16
+#define VIVS_BLT_SRC_POS_Y(x) (((x) << VIVS_BLT_SRC_POS_Y__SHIFT) & VIVS_BLT_SRC_POS_Y__MASK)
+
+#define VIVS_BLT_DEST_ADDR 0x00014018
+
+#define VIVS_BLT_DEST_TS 0x00014020
+
+#define VIVS_BLT_DEST_STRIDE 0x00014024
+#define VIVS_BLT_DEST_STRIDE_STRIDE__MASK 0x000fffff
+#define VIVS_BLT_DEST_STRIDE_STRIDE__SHIFT 0
+#define VIVS_BLT_DEST_STRIDE_STRIDE(x) (((x) << VIVS_BLT_DEST_STRIDE_STRIDE__SHIFT) & VIVS_BLT_DEST_STRIDE_STRIDE__MASK)
+#define VIVS_BLT_DEST_STRIDE_FORMAT__MASK 0x1fe00000
+#define VIVS_BLT_DEST_STRIDE_FORMAT__SHIFT 21
+#define VIVS_BLT_DEST_STRIDE_FORMAT(x) (((x) << VIVS_BLT_DEST_STRIDE_FORMAT__SHIFT) & VIVS_BLT_DEST_STRIDE_FORMAT__MASK)
+#define VIVS_BLT_DEST_STRIDE_TILING__MASK 0x60000000
+#define VIVS_BLT_DEST_STRIDE_TILING__SHIFT 29
+#define VIVS_BLT_DEST_STRIDE_TILING(x) (((x) << VIVS_BLT_DEST_STRIDE_TILING__SHIFT) & VIVS_BLT_DEST_STRIDE_TILING__MASK)
+
+#define VIVS_BLT_DEST_CONFIG 0x00014028
+
+#define VIVS_BLT_DEST_POS 0x0001402c
+#define VIVS_BLT_DEST_POS_X__MASK 0x0000ffff
+#define VIVS_BLT_DEST_POS_X__SHIFT 0
+#define VIVS_BLT_DEST_POS_X(x) (((x) << VIVS_BLT_DEST_POS_X__SHIFT) & VIVS_BLT_DEST_POS_X__MASK)
+#define VIVS_BLT_DEST_POS_Y__MASK 0xffff0000
+#define VIVS_BLT_DEST_POS_Y__SHIFT 16
+#define VIVS_BLT_DEST_POS_Y(x) (((x) << VIVS_BLT_DEST_POS_Y__SHIFT) & VIVS_BLT_DEST_POS_Y__MASK)
+
+#define VIVS_BLT_IMAGE_SIZE 0x00014030
+#define VIVS_BLT_IMAGE_SIZE_WIDTH__MASK 0x0000ffff
+#define VIVS_BLT_IMAGE_SIZE_WIDTH__SHIFT 0
+#define VIVS_BLT_IMAGE_SIZE_WIDTH(x) (((x) << VIVS_BLT_IMAGE_SIZE_WIDTH__SHIFT) & VIVS_BLT_IMAGE_SIZE_WIDTH__MASK)
+#define VIVS_BLT_IMAGE_SIZE_HEIGHT__MASK 0xffff0000
+#define VIVS_BLT_IMAGE_SIZE_HEIGHT__SHIFT 16
+#define VIVS_BLT_IMAGE_SIZE_HEIGHT(x) (((x) << VIVS_BLT_IMAGE_SIZE_HEIGHT__SHIFT) & VIVS_BLT_IMAGE_SIZE_HEIGHT__MASK)
+
+#define VIVS_BLT_SRC_TS_CLEAR_VALUE0 0x00014034
+
+#define VIVS_BLT_SRC_TS_CLEAR_VALUE1 0x00014038
+
+#define VIVS_BLT_DEST_TS_CLEAR_VALUE0 0x0001403c
+
+#define VIVS_BLT_DEST_TS_CLEAR_VALUE1 0x00014040
+
+#define VIVS_BLT_CLEAR_COLOR0 0x00014044
+
+#define VIVS_BLT_CLEAR_COLOR1 0x00014048
+
+#define VIVS_BLT_UNK1404C 0x0001404c
+
+#define VIVS_BLT_UNK14050 0x00014050
+
+#define VIVS_BLT_BUFFER_SIZE 0x00014054
+
+#define VIVS_BLT_UNK14058 0x00014058
+
+#define VIVS_BLT_UNK1405C 0x0001405c
+
+#define VIVS_BLT_COMMAND 0x00014060
+#define VIVS_BLT_COMMAND_COMMAND__MASK 0x0000000f
+#define VIVS_BLT_COMMAND_COMMAND__SHIFT 0
+#define VIVS_BLT_COMMAND_COMMAND_CLEAR_IMAGE 0x00000001
+#define VIVS_BLT_COMMAND_COMMAND_COPY_IMAGE 0x00000002
+#define VIVS_BLT_COMMAND_COMMAND_COPY_BUFFER 0x00000003
+#define VIVS_BLT_COMMAND_COMMAND_YUV_TILE 0x00000005
+#define VIVS_BLT_COMMAND_COMMAND_GEN_MIPMAPS 0x00000006
+
+#define VIVS_BLT_CONFIG 0x00014064
+#define VIVS_BLT_CONFIG_SRC_ENDIAN__MASK 0x00000006
+#define VIVS_BLT_CONFIG_SRC_ENDIAN__SHIFT 1
+#define VIVS_BLT_CONFIG_SRC_ENDIAN(x) (((x) << VIVS_BLT_CONFIG_SRC_ENDIAN__SHIFT) & VIVS_BLT_CONFIG_SRC_ENDIAN__MASK)
+#define VIVS_BLT_CONFIG_DEST_ENDIAN__MASK 0x00000018
+#define VIVS_BLT_CONFIG_DEST_ENDIAN__SHIFT 3
+#define VIVS_BLT_CONFIG_DEST_ENDIAN(x) (((x) << VIVS_BLT_CONFIG_DEST_ENDIAN__SHIFT) & VIVS_BLT_CONFIG_DEST_ENDIAN__MASK)
+#define VIVS_BLT_CONFIG_UNK5 0x00000020
+#define VIVS_BLT_CONFIG_UNK6 0x00000040
+#define VIVS_BLT_CONFIG_CLEAR_BPP__MASK 0x00000380
+#define VIVS_BLT_CONFIG_CLEAR_BPP__SHIFT 7
+#define VIVS_BLT_CONFIG_CLEAR_BPP(x) (((x) << VIVS_BLT_CONFIG_CLEAR_BPP__SHIFT) & VIVS_BLT_CONFIG_CLEAR_BPP__MASK)
+
+#define VIVS_BLT_YUV 0x00000000
+
+#define VIVS_BLT_YUV_CONFIG 0x0001406c
+
+#define VIVS_BLT_YUV_UNK14070 0x00014070
+
+#define VIVS_BLT_YUV_SRC_YADDR 0x00014074
+
+#define VIVS_BLT_YUV_SRC_YSTRIDE 0x00014078
+
+#define VIVS_BLT_YUV_SRC_UADDR 0x0001407c
+
+#define VIVS_BLT_YUV_SRC_USTRIDE 0x00014080
+
+#define VIVS_BLT_YUV_SRC_VADDR 0x00014084
+
+#define VIVS_BLT_YUV_SRC_VSTRIDE 0x00014088
+
+#define VIVS_BLT_YUV_DEST_ADDR 0x0001408c
+
+#define VIVS_BLT_YUV_DEST_STRIDE 0x00014090
+
+#define VIVS_BLT_UNK1409C 0x0001409c
+
+#define VIVS_BLT_UNK140A0 0x000140a0
+
+#define VIVS_BLT_FENCE_OUT_ADDRESS 0x000140a4
+
+#define VIVS_BLT_FENCE_OUT_DATA_LOW 0x000140a8
+
+#define VIVS_BLT_SET_COMMAND 0x000140ac
+
+#define VIVS_BLT_UNK140B0 0x000140b0
+
+#define VIVS_BLT_FENCE_OUT_DATA_HIGH 0x000140b4
+
+#define VIVS_BLT_ENABLE 0x000140b8
+#define VIVS_BLT_ENABLE_ENABLE 0x00000001
+
+#define VIVS_BLT_SWIZZLE 0x000140bc
+#define VIVS_BLT_SWIZZLE_SRC_R__MASK 0x00000007
+#define VIVS_BLT_SWIZZLE_SRC_R__SHIFT 0
+#define VIVS_BLT_SWIZZLE_SRC_R(x) (((x) << VIVS_BLT_SWIZZLE_SRC_R__SHIFT) & VIVS_BLT_SWIZZLE_SRC_R__MASK)
+#define VIVS_BLT_SWIZZLE_SRC_G__MASK 0x00000038
+#define VIVS_BLT_SWIZZLE_SRC_G__SHIFT 3
+#define VIVS_BLT_SWIZZLE_SRC_G(x) (((x) << VIVS_BLT_SWIZZLE_SRC_G__SHIFT) & VIVS_BLT_SWIZZLE_SRC_G__MASK)
+#define VIVS_BLT_SWIZZLE_SRC_B__MASK 0x000001c0
+#define VIVS_BLT_SWIZZLE_SRC_B__SHIFT 6
+#define VIVS_BLT_SWIZZLE_SRC_B(x) (((x) << VIVS_BLT_SWIZZLE_SRC_B__SHIFT) & VIVS_BLT_SWIZZLE_SRC_B__MASK)
+#define VIVS_BLT_SWIZZLE_SRC_A__MASK 0x00000e00
+#define VIVS_BLT_SWIZZLE_SRC_A__SHIFT 9
+#define VIVS_BLT_SWIZZLE_SRC_A(x) (((x) << VIVS_BLT_SWIZZLE_SRC_A__SHIFT) & VIVS_BLT_SWIZZLE_SRC_A__MASK)
+#define VIVS_BLT_SWIZZLE_DEST_R__MASK 0x00007000
+#define VIVS_BLT_SWIZZLE_DEST_R__SHIFT 12
+#define VIVS_BLT_SWIZZLE_DEST_R(x) (((x) << VIVS_BLT_SWIZZLE_DEST_R__SHIFT) & VIVS_BLT_SWIZZLE_DEST_R__MASK)
+#define VIVS_BLT_SWIZZLE_DEST_G__MASK 0x00038000
+#define VIVS_BLT_SWIZZLE_DEST_G__SHIFT 15
+#define VIVS_BLT_SWIZZLE_DEST_G(x) (((x) << VIVS_BLT_SWIZZLE_DEST_G__SHIFT) & VIVS_BLT_SWIZZLE_DEST_G__MASK)
+#define VIVS_BLT_SWIZZLE_DEST_B__MASK 0x001c0000
+#define VIVS_BLT_SWIZZLE_DEST_B__SHIFT 18
+#define VIVS_BLT_SWIZZLE_DEST_B(x) (((x) << VIVS_BLT_SWIZZLE_DEST_B__SHIFT) & VIVS_BLT_SWIZZLE_DEST_B__MASK)
+#define VIVS_BLT_SWIZZLE_DEST_A__MASK 0x00e00000
+#define VIVS_BLT_SWIZZLE_DEST_A__SHIFT 21
+#define VIVS_BLT_SWIZZLE_DEST_A(x) (((x) << VIVS_BLT_SWIZZLE_DEST_A__SHIFT) & VIVS_BLT_SWIZZLE_DEST_A__MASK)
+
+#define VIVS_BLT_MIP(i0) (0x00000000 + 0x4*(i0))
+#define VIVS_BLT_MIP__ESIZE 0x00000004
+#define VIVS_BLT_MIP__LEN 0x0000000d
+
+#define VIVS_BLT_MIP_ADDR(i0) (0x000140c0 + 0x4*(i0))
+
+#define VIVS_BLT_MIP_STRIDE(i0) (0x00014300 + 0x4*(i0))
+
+#define VIVS_BLT_SRC_END 0x000140f4
+
+#define VIVS_BLT_DEST_END 0x00014334
+
+
+#endif /* STATE_BLT_XML */
diff --git a/src/state_hi.xml.h b/src/state_hi.xml.h
index 0c19559..487bf63 100644
--- a/src/state_hi.xml.h
+++ b/src/state_hi.xml.h
@@ -8,12 +8,14 @@
git clone git://0x04.net/rules-ng-ng
The rules-ng-ng source files this header was generated from are:
-- state.xml ( 19930 bytes, from 2017-01-07 14:27:54)
-- common.xml ( 23529 bytes, from 2017-05-10 12:36:01)
-- state_hi.xml ( 26403 bytes, from 2017-01-07 14:27:54)
+- state.xml ( 25532 bytes, from 2017-10-13 12:19:04)
+- common.xml ( 26193 bytes, from 2017-10-13 12:18:24)
+- common_3d.xml ( 12531 bytes, from 2017-10-13 11:04:24)
+- state_hi.xml ( 27733 bytes, from 2017-10-02 19:00:30)
- copyright.xml ( 1597 bytes, from 2016-10-29 07:29:22)
- state_2d.xml ( 51552 bytes, from 2016-10-29 07:29:22)
-- state_3d.xml ( 67197 bytes, from 2017-07-23 10:53:21)
+- state_3d.xml ( 74317 bytes, from 2017-10-13 12:43:31)
+- state_blt.xml ( 11153 bytes, from 2017-10-13 12:39:38)
- state_vg.xml ( 5975 bytes, from 2016-10-29 07:29:22)
Copyright (C) 2012-2017 by the following authors:
@@ -219,6 +221,9 @@
#define VIVS_HI_CHIP_SPECS_3_GPU_CORE_COUNT__SHIFT 0
#define VIVS_HI_CHIP_SPECS_3_GPU_CORE_COUNT(x) (((x) << VIVS_HI_CHIP_SPECS_3_GPU_CORE_COUNT__SHIFT) & VIVS_HI_CHIP_SPECS_3_GPU_CORE_COUNT__MASK)
+#define VIVS_HI_COMPRESSION_FLAGS 0x00000090
+#define VIVS_HI_COMPRESSION_FLAGS_DEC300 0x00000040
+
#define VIVS_HI_CHIP_MINOR_FEATURE_4 0x00000094
#define VIVS_HI_CHIP_SPECS_4 0x0000009c
@@ -230,6 +235,10 @@
#define VIVS_HI_CHIP_PRODUCT_ID 0x000000a8
+#define VIVS_HI_BLT_INTR 0x000000d4
+
+#define VIVS_HI_AUXBIT 0x000000ec
+
#define VIVS_PM 0x00000000
#define VIVS_PM_POWER_CONTROLS 0x00000100
@@ -318,6 +327,14 @@
#define VIVS_MMUv2_EXCEPTION_ADDR__ESIZE 0x00000004
#define VIVS_MMUv2_EXCEPTION_ADDR__LEN 0x00000004
+#define VIVS_MMUv2_PROFILE_BLT_READ 0x000001a4
+
+#define VIVS_MMUv2_UNK001AC 0x000001ac
+
+#define VIVS_MMUv2_AXI_POLICY(i0) (0x000001c0 + 0x4*(i0))
+#define VIVS_MMUv2_AXI_POLICY__ESIZE 0x00000004
+#define VIVS_MMUv2_AXI_POLICY__LEN 0x00000008
+
#define VIVS_MC 0x00000000
#define VIVS_MC_MMU_FE_PAGE_TABLE 0x00000400
@@ -457,6 +474,9 @@
#define VIVS_MC_PROFILE_CONFIG2_HI_AXI_CYCLES_WRITE_REQUEST_STALLED 0x00000100
#define VIVS_MC_PROFILE_CONFIG2_HI_AXI_CYCLES_WRITE_DATA_STALLED 0x00000200
#define VIVS_MC_PROFILE_CONFIG2_HI_RESET 0x00000f00
+#define VIVS_MC_PROFILE_CONFIG2_BLT__MASK 0xff000000
+#define VIVS_MC_PROFILE_CONFIG2_BLT__SHIFT 24
+#define VIVS_MC_PROFILE_CONFIG2_BLT_UNK0 0x00000000
#define VIVS_MC_PROFILE_CONFIG3 0x0000047c
@@ -470,7 +490,13 @@
#define VIVS_MC_START_COMPOSITION 0x00000554
-#define VIVS_MC_128B_MERGE 0x00000558
+#define VIVS_MC_FLAGS 0x00000558
+#define VIVS_MC_FLAGS_128B_MERGE 0x00000001
+#define VIVS_MC_FLAGS_TPCV11_COMPRESSION 0x08000000
+
+#define VIVS_MC_L2_CACHE_CONFIG 0x0000055c
+
+#define VIVS_MC_PROFILE_L2_READ 0x00000564
#endif /* STATE_HI_XML */
diff --git a/src/state_vg.xml.h b/src/state_vg.xml.h
index 24c4636..3f9aac7 100644
--- a/src/state_vg.xml.h
+++ b/src/state_vg.xml.h
@@ -8,12 +8,14 @@
git clone git://0x04.net/rules-ng-ng
The rules-ng-ng source files this header was generated from are:
-- state.xml ( 19930 bytes, from 2017-01-07 14:27:54)
-- common.xml ( 23529 bytes, from 2017-05-10 12:36:01)
-- state_hi.xml ( 26403 bytes, from 2017-01-07 14:27:54)
+- state.xml ( 25532 bytes, from 2017-10-13 12:19:04)
+- common.xml ( 26193 bytes, from 2017-10-13 12:18:24)
+- common_3d.xml ( 12531 bytes, from 2017-10-13 11:04:24)
+- state_hi.xml ( 27733 bytes, from 2017-10-02 19:00:30)
- copyright.xml ( 1597 bytes, from 2016-10-29 07:29:22)
- state_2d.xml ( 51552 bytes, from 2016-10-29 07:29:22)
-- state_3d.xml ( 67197 bytes, from 2017-07-23 10:53:21)
+- state_3d.xml ( 74317 bytes, from 2017-10-13 12:43:31)
+- state_blt.xml ( 11153 bytes, from 2017-10-13 12:39:38)
- state_vg.xml ( 5975 bytes, from 2016-10-29 07:29:22)
Copyright (C) 2012-2016 by the following authors:
diff --git a/src/texdesc_3d.xml.h b/src/texdesc_3d.xml.h
new file mode 100644
index 0000000..1f80382
--- /dev/null
+++ b/src/texdesc_3d.xml.h
@@ -0,0 +1,182 @@
+#ifndef TEXDESC_3D_XML
+#define TEXDESC_3D_XML
+
+/* Autogenerated file, DO NOT EDIT manually!
+
+This file was generated by the rules-ng-ng headergen tool in this git repository:
+http://0x04.net/cgit/index.cgi/rules-ng-ng
+git clone git://0x04.net/rules-ng-ng
+
+The rules-ng-ng source files this header was generated from are:
+- texdesc_3d.xml ( 3146 bytes, from 2017-10-13 12:18:33)
+- copyright.xml ( 1597 bytes, from 2016-10-29 07:29:22)
+- common.xml ( 26193 bytes, from 2017-10-13 12:18:24)
+- common_3d.xml ( 12531 bytes, from 2017-10-13 11:04:24)
+
+Copyright (C) 2012-2017 by the following authors:
+- Wladimir J. van der Laan <laanwj@gmail.com>
+- Christian Gmeiner <christian.gmeiner@gmail.com>
+- Lucas Stach <l.stach@pengutronix.de>
+- Russell King <rmk@arm.linux.org.uk>
+
+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, sub license,
+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 NON-INFRINGEMENT. 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.
+*/
+
+
+#define TEXDESC_LOD_ADDR(i0) (0x00000000 + 0x4*(i0))
+#define TEXDESC_LOD_ADDR__ESIZE 0x00000004
+#define TEXDESC_LOD_ADDR__LEN 0x00000010
+
+#define TEXDESC_CONFIG0 0x00000040
+#define TEXDESC_CONFIG0_TYPE__MASK 0x00000007
+#define TEXDESC_CONFIG0_TYPE__SHIFT 0
+#define TEXDESC_CONFIG0_TYPE(x) (((x) << TEXDESC_CONFIG0_TYPE__SHIFT) & TEXDESC_CONFIG0_TYPE__MASK)
+#define TEXDESC_CONFIG0_UWRAP__MASK 0x00000018
+#define TEXDESC_CONFIG0_UWRAP__SHIFT 3
+#define TEXDESC_CONFIG0_UWRAP(x) (((x) << TEXDESC_CONFIG0_UWRAP__SHIFT) & TEXDESC_CONFIG0_UWRAP__MASK)
+#define TEXDESC_CONFIG0_VWRAP__MASK 0x00000060
+#define TEXDESC_CONFIG0_VWRAP__SHIFT 5
+#define TEXDESC_CONFIG0_VWRAP(x) (((x) << TEXDESC_CONFIG0_VWRAP__SHIFT) & TEXDESC_CONFIG0_VWRAP__MASK)
+#define TEXDESC_CONFIG0_MIN__MASK 0x00000180
+#define TEXDESC_CONFIG0_MIN__SHIFT 7
+#define TEXDESC_CONFIG0_MIN(x) (((x) << TEXDESC_CONFIG0_MIN__SHIFT) & TEXDESC_CONFIG0_MIN__MASK)
+#define TEXDESC_CONFIG0_MIP__MASK 0x00000600
+#define TEXDESC_CONFIG0_MIP__SHIFT 9
+#define TEXDESC_CONFIG0_MIP(x) (((x) << TEXDESC_CONFIG0_MIP__SHIFT) & TEXDESC_CONFIG0_MIP__MASK)
+#define TEXDESC_CONFIG0_MAG__MASK 0x00001800
+#define TEXDESC_CONFIG0_MAG__SHIFT 11
+#define TEXDESC_CONFIG0_MAG(x) (((x) << TEXDESC_CONFIG0_MAG__SHIFT) & TEXDESC_CONFIG0_MAG__MASK)
+#define TEXDESC_CONFIG0_FORMAT__MASK 0x0003e000
+#define TEXDESC_CONFIG0_FORMAT__SHIFT 13
+#define TEXDESC_CONFIG0_FORMAT(x) (((x) << TEXDESC_CONFIG0_FORMAT__SHIFT) & TEXDESC_CONFIG0_FORMAT__MASK)
+#define TEXDESC_CONFIG0_ROUND_UV 0x00080000
+#define TEXDESC_CONFIG0_ENDIAN__MASK 0x00c00000
+#define TEXDESC_CONFIG0_ENDIAN__SHIFT 22
+#define TEXDESC_CONFIG0_ENDIAN(x) (((x) << TEXDESC_CONFIG0_ENDIAN__SHIFT) & TEXDESC_CONFIG0_ENDIAN__MASK)
+#define TEXDESC_CONFIG0_ANISOTROPY__MASK 0xff000000
+#define TEXDESC_CONFIG0_ANISOTROPY__SHIFT 24
+#define TEXDESC_CONFIG0_ANISOTROPY(x) (((x) << TEXDESC_CONFIG0_ANISOTROPY__SHIFT) & TEXDESC_CONFIG0_ANISOTROPY__MASK)
+
+#define TEXDESC_SIZE 0x00000044
+#define TEXDESC_SIZE_WIDTH__MASK 0x0000ffff
+#define TEXDESC_SIZE_WIDTH__SHIFT 0
+#define TEXDESC_SIZE_WIDTH(x) (((x) << TEXDESC_SIZE_WIDTH__SHIFT) & TEXDESC_SIZE_WIDTH__MASK)
+#define TEXDESC_SIZE_HEIGHT__MASK 0xffff0000
+#define TEXDESC_SIZE_HEIGHT__SHIFT 16
+#define TEXDESC_SIZE_HEIGHT(x) (((x) << TEXDESC_SIZE_HEIGHT__SHIFT) & TEXDESC_SIZE_HEIGHT__MASK)
+
+#define TEXDESC_LINEAR_STRIDE 0x00000048
+
+#define TEXDESC_CONFIG1 0x0000004c
+#define TEXDESC_CONFIG1_FORMAT_EXT__MASK 0x0000003f
+#define TEXDESC_CONFIG1_FORMAT_EXT__SHIFT 0
+#define TEXDESC_CONFIG1_FORMAT_EXT(x) (((x) << TEXDESC_CONFIG1_FORMAT_EXT__SHIFT) & TEXDESC_CONFIG1_FORMAT_EXT__MASK)
+#define TEXDESC_CONFIG1_SWIZZLE_R__MASK 0x00000700
+#define TEXDESC_CONFIG1_SWIZZLE_R__SHIFT 8
+#define TEXDESC_CONFIG1_SWIZZLE_R(x) (((x) << TEXDESC_CONFIG1_SWIZZLE_R__SHIFT) & TEXDESC_CONFIG1_SWIZZLE_R__MASK)
+#define TEXDESC_CONFIG1_SWIZZLE_G__MASK 0x00007000
+#define TEXDESC_CONFIG1_SWIZZLE_G__SHIFT 12
+#define TEXDESC_CONFIG1_SWIZZLE_G(x) (((x) << TEXDESC_CONFIG1_SWIZZLE_G__SHIFT) & TEXDESC_CONFIG1_SWIZZLE_G__MASK)
+#define TEXDESC_CONFIG1_SWIZZLE_B__MASK 0x00070000
+#define TEXDESC_CONFIG1_SWIZZLE_B__SHIFT 16
+#define TEXDESC_CONFIG1_SWIZZLE_B(x) (((x) << TEXDESC_CONFIG1_SWIZZLE_B__SHIFT) & TEXDESC_CONFIG1_SWIZZLE_B__MASK)
+#define TEXDESC_CONFIG1_SWIZZLE_A__MASK 0x00700000
+#define TEXDESC_CONFIG1_SWIZZLE_A__SHIFT 20
+#define TEXDESC_CONFIG1_SWIZZLE_A(x) (((x) << TEXDESC_CONFIG1_SWIZZLE_A__SHIFT) & TEXDESC_CONFIG1_SWIZZLE_A__MASK)
+#define TEXDESC_CONFIG1_CACHE_MODE__MASK 0x00800000
+#define TEXDESC_CONFIG1_CACHE_MODE__SHIFT 23
+#define TEXDESC_CONFIG1_CACHE_MODE_128 0x00000000
+#define TEXDESC_CONFIG1_CACHE_MODE_256 0x00800000
+#define TEXDESC_CONFIG1_TEXTURE_ARRAY 0x01000000
+#define TEXDESC_CONFIG1_UNK25 0x02000000
+#define TEXDESC_CONFIG1_HALIGN__MASK 0x1c000000
+#define TEXDESC_CONFIG1_HALIGN__SHIFT 26
+#define TEXDESC_CONFIG1_HALIGN(x) (((x) << TEXDESC_CONFIG1_HALIGN__SHIFT) & TEXDESC_CONFIG1_HALIGN__MASK)
+
+#define TEXDESC_CONTROL_YUV 0x00000050
+
+#define TEXDESC_STRIDE_YUV 0x00000054
+
+#define TEXDESC_ASTC0 0x00000058
+
+#define TEXDESC_ASTC1 0x0000005c
+
+#define TEXDESC_ASTC2 0x00000060
+
+#define TEXDESC_ASTC3 0x00000064
+
+#define TEXDESC_BASELOD 0x00000068
+#define TEXDESC_BASELOD_UNK23 0x00800000
+#define TEXDESC_BASELOD_BASELOD__MASK 0x0000000f
+#define TEXDESC_BASELOD_BASELOD__SHIFT 0
+#define TEXDESC_BASELOD_BASELOD(x) (((x) << TEXDESC_BASELOD_BASELOD__SHIFT) & TEXDESC_BASELOD_BASELOD__MASK)
+#define TEXDESC_BASELOD_MAXLOD__MASK 0x00000f00
+#define TEXDESC_BASELOD_MAXLOD__SHIFT 8
+#define TEXDESC_BASELOD_MAXLOD(x) (((x) << TEXDESC_BASELOD_MAXLOD__SHIFT) & TEXDESC_BASELOD_MAXLOD__MASK)
+
+#define TEXDESC_CONFIG2 0x0000006c
+
+#define TEXDESC_CONFIG3 0x00000070
+
+#define TEXDESC_LOG_SIZE_EXT 0x00000074
+#define TEXDESC_LOG_SIZE_EXT_WIDTH__MASK 0x0000ffff
+#define TEXDESC_LOG_SIZE_EXT_WIDTH__SHIFT 0
+#define TEXDESC_LOG_SIZE_EXT_WIDTH(x) (((x) << TEXDESC_LOG_SIZE_EXT_WIDTH__SHIFT) & TEXDESC_LOG_SIZE_EXT_WIDTH__MASK)
+#define TEXDESC_LOG_SIZE_EXT_HEIGHT__MASK 0xffff0000
+#define TEXDESC_LOG_SIZE_EXT_HEIGHT__SHIFT 16
+#define TEXDESC_LOG_SIZE_EXT_HEIGHT(x) (((x) << TEXDESC_LOG_SIZE_EXT_HEIGHT__SHIFT) & TEXDESC_LOG_SIZE_EXT_HEIGHT__MASK)
+
+#define TEXDESC_VOLUME 0x00000078
+
+#define TEXDESC_SLICE 0x0000007c
+
+#define TEXDESC_BORDER_COLOR 0x00000080
+
+#define TEXDESC_3D_CONFIG 0x00000084
+#define TEXDESC_3D_CONFIG_DEPTH__MASK 0x00003fff
+#define TEXDESC_3D_CONFIG_DEPTH__SHIFT 0
+#define TEXDESC_3D_CONFIG_DEPTH(x) (((x) << TEXDESC_3D_CONFIG_DEPTH__SHIFT) & TEXDESC_3D_CONFIG_DEPTH__MASK)
+#define TEXDESC_3D_CONFIG_LOG_DEPTH__MASK 0x03ff0000
+#define TEXDESC_3D_CONFIG_LOG_DEPTH__SHIFT 16
+#define TEXDESC_3D_CONFIG_LOG_DEPTH(x) (((x) << TEXDESC_3D_CONFIG_LOG_DEPTH__SHIFT) & TEXDESC_3D_CONFIG_LOG_DEPTH__MASK)
+#define TEXDESC_3D_CONFIG_WRAP__MASK 0x30000000
+#define TEXDESC_3D_CONFIG_WRAP__SHIFT 28
+#define TEXDESC_3D_CONFIG_WRAP(x) (((x) << TEXDESC_3D_CONFIG_WRAP__SHIFT) & TEXDESC_3D_CONFIG_WRAP__MASK)
+
+#define TEXDESC_LOG_SIZE 0x00000088
+#define TEXDESC_LOG_SIZE_WIDTH__MASK 0x000003ff
+#define TEXDESC_LOG_SIZE_WIDTH__SHIFT 0
+#define TEXDESC_LOG_SIZE_WIDTH(x) (((x) << TEXDESC_LOG_SIZE_WIDTH__SHIFT) & TEXDESC_LOG_SIZE_WIDTH__MASK)
+#define TEXDESC_LOG_SIZE_HEIGHT__MASK 0x000ffc00
+#define TEXDESC_LOG_SIZE_HEIGHT__SHIFT 10
+#define TEXDESC_LOG_SIZE_HEIGHT(x) (((x) << TEXDESC_LOG_SIZE_HEIGHT__SHIFT) & TEXDESC_LOG_SIZE_HEIGHT__MASK)
+#define TEXDESC_LOG_SIZE_RGB 0x20000000
+#define TEXDESC_LOG_SIZE_SRGB 0x80000000
+
+#define TEXDESC_BORDER_COLOR_R 0x0000008c
+
+#define TEXDESC_BORDER_COLOR_G 0x00000090
+
+#define TEXDESC_BORDER_COLOR_B 0x00000094
+
+#define TEXDESC_BORDER_COLOR_A 0x00000098
+
+
+#endif /* TEXDESC_3D_XML */
diff --git a/src/triangle_gc3000.c b/src/triangle_gc3000.c
index 25444e6..d3a6fc6 100644
--- a/src/triangle_gc3000.c
+++ b/src/triangle_gc3000.c
@@ -155,7 +155,7 @@
etna_set_state_reloc(stream, VIVS_TS_COLOR_STATUS_BASE, &at->color_status_base);
etna_set_state_reloc(stream, VIVS_TS_COLOR_SURFACE_BASE, &at->color_surface_base);
etna_set_state(stream, VIVS_TS_COLOR_CLEAR_VALUE, 0xff808080);
- etna_set_state(stream, VIVS_RS_UNK016BC, 0xff808080);
+ etna_set_state(stream, VIVS_TS_COLOR_CLEAR_VALUE_EXT, 0xff808080);
etna_set_state(stream, VIVS_TS_MEM_CONFIG, 0x00000022);
etna_set_state(stream, VIVS_GL_FLUSH_CACHE, 0x00000001);
etna_set_state(stream, VIVS_DUMMY_DUMMY, 0x00000000);
@@ -172,8 +172,8 @@
etna_set_state_reloc(stream, VIVS_NFE_VERTEX_STREAMS_BASE_ADDR(0), &at->stream_base);
etna_set_state(stream, VIVS_NFE_VERTEX_STREAMS_CONTROL(0), 0x00000020);
etna_set_state(stream, VIVS_NFE_VERTEX_STREAMS_UNK14680(0), 0x00000000);
- etna_set_state(stream, VIVS_FE_UNK00780(0), 0x3f800000);
- etna_set_state(stream, VIVS_FE_UNK00780(1), 0x3f800000);
+ etna_set_state(stream, VIVS_FE_GENERIC_ATTRIB_SCALE(0), 0x3f800000);
+ etna_set_state(stream, VIVS_FE_GENERIC_ATTRIB_SCALE(1), 0x3f800000);
// How to emit 0 address?
//etna_set_state_reloc(stream, VIVS_FE_INDEX_STREAM_BASE_ADDR, 0x00000000);
etna_set_state(stream, VIVS_FE_INDEX_STREAM_CONTROL, 0x00000000);
@@ -305,10 +305,10 @@
etna_set_state_reloc(stream, VIVS_TS_COLOR_STATUS_BASE, &at->color_status_base);
etna_set_state_reloc(stream, VIVS_TS_COLOR_SURFACE_BASE, &at->color_surface_base);
etna_set_state(stream, VIVS_TS_COLOR_CLEAR_VALUE, 0xff808080);
- etna_set_state(stream, VIVS_RS_UNK016BC, 0xff808080);
+ etna_set_state(stream, VIVS_TS_COLOR_CLEAR_VALUE_EXT, 0xff808080);
etna_set_state(stream, VIVS_RS_EXTRA_CONFIG, 0x10000000);
etna_set_state(stream, VIVS_RS_SOURCE_STRIDE, 0x80005000);
- etna_set_state(stream, VIVS_RS_UNK016B0, 0x00010400);
+ etna_set_state(stream, VIVS_RS_KICKER_INPLACE, 0x00010400);
etna_set_state(stream, VIVS_GL_FLUSH_CACHE, 0x00000002);
etna_set_state(stream, VIVS_DUMMY_DUMMY, 0x00000000);
etna_set_state(stream, VIVS_TS_MEM_CONFIG, 0x00000041);