freedreno: update generated headers
authorRob Clark <robdclark@gmail.com>
Wed, 15 Aug 2018 16:18:40 +0000 (09:18 -0700)
committerRob Clark <robdclark@gmail.com>
Thu, 16 Aug 2018 23:11:08 +0000 (19:11 -0400)
pull in a6xx registers

Signed-off-by: Rob Clark <robdclark@gmail.com>
src/gallium/drivers/freedreno/a2xx/a2xx.xml.h
src/gallium/drivers/freedreno/a3xx/a3xx.xml.h
src/gallium/drivers/freedreno/a4xx/a4xx.xml.h
src/gallium/drivers/freedreno/a5xx/a5xx.xml.h
src/gallium/drivers/freedreno/a6xx/a6xx.xml.h [new file with mode: 0644]
src/gallium/drivers/freedreno/adreno_common.xml.h
src/gallium/drivers/freedreno/adreno_pm4.xml.h

index aeaf10567df77c28c5970d503e4c9846ffdef5f7..28afd9a6cd0bd9abf5732d665c6f554d4005a99e 100644 (file)
@@ -8,17 +8,17 @@ http://github.com/freedreno/envytools/
 git clone https://github.com/freedreno/envytools.git
 
 The rules-ng-ng source files this header was generated from are:
-- /home/robclark/src/freedreno/envytools/rnndb/adreno.xml               (    501 bytes, from 2018-01-31 18:26:32)
-- /home/robclark/src/freedreno/envytools/rnndb/freedreno_copyright.xml  (   1572 bytes, from 2018-01-08 14:56:24)
-- /home/robclark/src/freedreno/envytools/rnndb/adreno/a2xx.xml          (  36805 bytes, from 2018-05-20 19:03:35)
-- /home/robclark/src/freedreno/envytools/rnndb/adreno/adreno_common.xml (  13634 bytes, from 2018-06-10 17:35:36)
-- /home/robclark/src/freedreno/envytools/rnndb/adreno/adreno_pm4.xml    (  41584 bytes, from 2018-06-18 14:25:44)
-- /home/robclark/src/freedreno/envytools/rnndb/adreno/a3xx.xml          (  83840 bytes, from 2018-01-10 16:21:40)
-- /home/robclark/src/freedreno/envytools/rnndb/adreno/a4xx.xml          ( 112086 bytes, from 2018-01-08 14:56:24)
-- /home/robclark/src/freedreno/envytools/rnndb/adreno/a5xx.xml          ( 147158 bytes, from 2018-06-18 14:25:44)
-- /home/robclark/src/freedreno/envytools/rnndb/adreno/a6xx.xml          (  88437 bytes, from 2018-06-18 14:25:44)
-- /home/robclark/src/freedreno/envytools/rnndb/adreno/a6xx_gmu.xml      (  10431 bytes, from 2018-06-10 17:37:04)
-- /home/robclark/src/freedreno/envytools/rnndb/adreno/ocmem.xml         (   1773 bytes, from 2018-01-08 14:56:24)
+- /home/robclark/src/envytools/rnndb/adreno.xml               (    501 bytes, from 2018-07-03 19:37:13)
+- /home/robclark/src/envytools/rnndb/freedreno_copyright.xml  (   1572 bytes, from 2018-07-03 19:37:13)
+- /home/robclark/src/envytools/rnndb/adreno/a2xx.xml          (  36805 bytes, from 2018-07-03 19:37:13)
+- /home/robclark/src/envytools/rnndb/adreno/adreno_common.xml (  13634 bytes, from 2018-07-03 19:37:13)
+- /home/robclark/src/envytools/rnndb/adreno/adreno_pm4.xml    (  42393 bytes, from 2018-08-14 22:24:38)
+- /home/robclark/src/envytools/rnndb/adreno/a3xx.xml          (  83840 bytes, from 2018-07-03 19:37:13)
+- /home/robclark/src/envytools/rnndb/adreno/a4xx.xml          ( 112086 bytes, from 2018-07-03 19:37:13)
+- /home/robclark/src/envytools/rnndb/adreno/a5xx.xml          ( 147240 bytes, from 2018-08-14 22:24:38)
+- /home/robclark/src/envytools/rnndb/adreno/a6xx.xml          ( 102772 bytes, from 2018-08-14 22:24:38)
+- /home/robclark/src/envytools/rnndb/adreno/a6xx_gmu.xml      (  10431 bytes, from 2018-07-03 19:37:13)
+- /home/robclark/src/envytools/rnndb/adreno/ocmem.xml         (   1773 bytes, from 2018-07-03 19:37:13)
 
 Copyright (C) 2013-2018 by the following authors:
 - Rob Clark <robdclark@gmail.com> (robclark)
index 64ea69b035ef17d330259f8f45491ad6e78427a9..2281306836cb5bdc93de46ee4afae26c5371af09 100644 (file)
@@ -8,17 +8,17 @@ http://github.com/freedreno/envytools/
 git clone https://github.com/freedreno/envytools.git
 
 The rules-ng-ng source files this header was generated from are:
-- /home/robclark/src/freedreno/envytools/rnndb/adreno.xml               (    501 bytes, from 2018-01-31 18:26:32)
-- /home/robclark/src/freedreno/envytools/rnndb/freedreno_copyright.xml  (   1572 bytes, from 2018-01-08 14:56:24)
-- /home/robclark/src/freedreno/envytools/rnndb/adreno/a2xx.xml          (  36805 bytes, from 2018-05-20 19:03:35)
-- /home/robclark/src/freedreno/envytools/rnndb/adreno/adreno_common.xml (  13634 bytes, from 2018-06-10 17:35:36)
-- /home/robclark/src/freedreno/envytools/rnndb/adreno/adreno_pm4.xml    (  41584 bytes, from 2018-06-18 14:25:44)
-- /home/robclark/src/freedreno/envytools/rnndb/adreno/a3xx.xml          (  83840 bytes, from 2018-01-10 16:21:40)
-- /home/robclark/src/freedreno/envytools/rnndb/adreno/a4xx.xml          ( 112086 bytes, from 2018-01-08 14:56:24)
-- /home/robclark/src/freedreno/envytools/rnndb/adreno/a5xx.xml          ( 147158 bytes, from 2018-06-18 14:25:44)
-- /home/robclark/src/freedreno/envytools/rnndb/adreno/a6xx.xml          (  88437 bytes, from 2018-06-18 14:25:44)
-- /home/robclark/src/freedreno/envytools/rnndb/adreno/a6xx_gmu.xml      (  10431 bytes, from 2018-06-10 17:37:04)
-- /home/robclark/src/freedreno/envytools/rnndb/adreno/ocmem.xml         (   1773 bytes, from 2018-01-08 14:56:24)
+- /home/robclark/src/envytools/rnndb/adreno.xml               (    501 bytes, from 2018-07-03 19:37:13)
+- /home/robclark/src/envytools/rnndb/freedreno_copyright.xml  (   1572 bytes, from 2018-07-03 19:37:13)
+- /home/robclark/src/envytools/rnndb/adreno/a2xx.xml          (  36805 bytes, from 2018-07-03 19:37:13)
+- /home/robclark/src/envytools/rnndb/adreno/adreno_common.xml (  13634 bytes, from 2018-07-03 19:37:13)
+- /home/robclark/src/envytools/rnndb/adreno/adreno_pm4.xml    (  42393 bytes, from 2018-08-14 22:24:38)
+- /home/robclark/src/envytools/rnndb/adreno/a3xx.xml          (  83840 bytes, from 2018-07-03 19:37:13)
+- /home/robclark/src/envytools/rnndb/adreno/a4xx.xml          ( 112086 bytes, from 2018-07-03 19:37:13)
+- /home/robclark/src/envytools/rnndb/adreno/a5xx.xml          ( 147240 bytes, from 2018-08-14 22:24:38)
+- /home/robclark/src/envytools/rnndb/adreno/a6xx.xml          ( 102772 bytes, from 2018-08-14 22:24:38)
+- /home/robclark/src/envytools/rnndb/adreno/a6xx_gmu.xml      (  10431 bytes, from 2018-07-03 19:37:13)
+- /home/robclark/src/envytools/rnndb/adreno/ocmem.xml         (   1773 bytes, from 2018-07-03 19:37:13)
 
 Copyright (C) 2013-2018 by the following authors:
 - Rob Clark <robdclark@gmail.com> (robclark)
index bd66481f2d8400afd9847368a8c5f74ca589adc5..49f06a286d11f055a2ba2facc6309a32956f602a 100644 (file)
@@ -8,17 +8,17 @@ http://github.com/freedreno/envytools/
 git clone https://github.com/freedreno/envytools.git
 
 The rules-ng-ng source files this header was generated from are:
-- /home/robclark/src/freedreno/envytools/rnndb/adreno.xml               (    501 bytes, from 2018-01-31 18:26:32)
-- /home/robclark/src/freedreno/envytools/rnndb/freedreno_copyright.xml  (   1572 bytes, from 2018-01-08 14:56:24)
-- /home/robclark/src/freedreno/envytools/rnndb/adreno/a2xx.xml          (  36805 bytes, from 2018-05-20 19:03:35)
-- /home/robclark/src/freedreno/envytools/rnndb/adreno/adreno_common.xml (  13634 bytes, from 2018-06-10 17:35:36)
-- /home/robclark/src/freedreno/envytools/rnndb/adreno/adreno_pm4.xml    (  41584 bytes, from 2018-06-18 14:25:44)
-- /home/robclark/src/freedreno/envytools/rnndb/adreno/a3xx.xml          (  83840 bytes, from 2018-01-10 16:21:40)
-- /home/robclark/src/freedreno/envytools/rnndb/adreno/a4xx.xml          ( 112086 bytes, from 2018-01-08 14:56:24)
-- /home/robclark/src/freedreno/envytools/rnndb/adreno/a5xx.xml          ( 147158 bytes, from 2018-06-18 14:25:44)
-- /home/robclark/src/freedreno/envytools/rnndb/adreno/a6xx.xml          (  88437 bytes, from 2018-06-18 14:25:44)
-- /home/robclark/src/freedreno/envytools/rnndb/adreno/a6xx_gmu.xml      (  10431 bytes, from 2018-06-10 17:37:04)
-- /home/robclark/src/freedreno/envytools/rnndb/adreno/ocmem.xml         (   1773 bytes, from 2018-01-08 14:56:24)
+- /home/robclark/src/envytools/rnndb/adreno.xml               (    501 bytes, from 2018-07-03 19:37:13)
+- /home/robclark/src/envytools/rnndb/freedreno_copyright.xml  (   1572 bytes, from 2018-07-03 19:37:13)
+- /home/robclark/src/envytools/rnndb/adreno/a2xx.xml          (  36805 bytes, from 2018-07-03 19:37:13)
+- /home/robclark/src/envytools/rnndb/adreno/adreno_common.xml (  13634 bytes, from 2018-07-03 19:37:13)
+- /home/robclark/src/envytools/rnndb/adreno/adreno_pm4.xml    (  42393 bytes, from 2018-08-14 22:24:38)
+- /home/robclark/src/envytools/rnndb/adreno/a3xx.xml          (  83840 bytes, from 2018-07-03 19:37:13)
+- /home/robclark/src/envytools/rnndb/adreno/a4xx.xml          ( 112086 bytes, from 2018-07-03 19:37:13)
+- /home/robclark/src/envytools/rnndb/adreno/a5xx.xml          ( 147240 bytes, from 2018-08-14 22:24:38)
+- /home/robclark/src/envytools/rnndb/adreno/a6xx.xml          ( 102772 bytes, from 2018-08-14 22:24:38)
+- /home/robclark/src/envytools/rnndb/adreno/a6xx_gmu.xml      (  10431 bytes, from 2018-07-03 19:37:13)
+- /home/robclark/src/envytools/rnndb/adreno/ocmem.xml         (   1773 bytes, from 2018-07-03 19:37:13)
 
 Copyright (C) 2013-2018 by the following authors:
 - Rob Clark <robdclark@gmail.com> (robclark)
index 0e4826d1f5c65cd9f1ca7c739b1ce93738813a35..b23305b27b37f7f76d8fcf4de5401018455d5fbc 100644 (file)
@@ -8,17 +8,17 @@ http://github.com/freedreno/envytools/
 git clone https://github.com/freedreno/envytools.git
 
 The rules-ng-ng source files this header was generated from are:
-- /home/robclark/src/freedreno/envytools/rnndb/adreno.xml               (    501 bytes, from 2018-01-31 18:26:32)
-- /home/robclark/src/freedreno/envytools/rnndb/freedreno_copyright.xml  (   1572 bytes, from 2018-01-08 14:56:24)
-- /home/robclark/src/freedreno/envytools/rnndb/adreno/a2xx.xml          (  36805 bytes, from 2018-05-20 19:03:35)
-- /home/robclark/src/freedreno/envytools/rnndb/adreno/adreno_common.xml (  13634 bytes, from 2018-06-10 17:35:36)
-- /home/robclark/src/freedreno/envytools/rnndb/adreno/adreno_pm4.xml    (  41584 bytes, from 2018-06-18 14:25:44)
-- /home/robclark/src/freedreno/envytools/rnndb/adreno/a3xx.xml          (  83840 bytes, from 2018-01-10 16:21:40)
-- /home/robclark/src/freedreno/envytools/rnndb/adreno/a4xx.xml          ( 112086 bytes, from 2018-01-08 14:56:24)
-- /home/robclark/src/freedreno/envytools/rnndb/adreno/a5xx.xml          ( 147158 bytes, from 2018-06-18 14:25:44)
-- /home/robclark/src/freedreno/envytools/rnndb/adreno/a6xx.xml          (  88437 bytes, from 2018-06-18 14:25:44)
-- /home/robclark/src/freedreno/envytools/rnndb/adreno/a6xx_gmu.xml      (  10431 bytes, from 2018-06-10 17:37:04)
-- /home/robclark/src/freedreno/envytools/rnndb/adreno/ocmem.xml         (   1773 bytes, from 2018-01-08 14:56:24)
+- /home/robclark/src/envytools/rnndb/adreno.xml               (    501 bytes, from 2018-07-03 19:37:13)
+- /home/robclark/src/envytools/rnndb/freedreno_copyright.xml  (   1572 bytes, from 2018-07-03 19:37:13)
+- /home/robclark/src/envytools/rnndb/adreno/a2xx.xml          (  36805 bytes, from 2018-07-03 19:37:13)
+- /home/robclark/src/envytools/rnndb/adreno/adreno_common.xml (  13634 bytes, from 2018-07-03 19:37:13)
+- /home/robclark/src/envytools/rnndb/adreno/adreno_pm4.xml    (  42393 bytes, from 2018-08-14 22:24:38)
+- /home/robclark/src/envytools/rnndb/adreno/a3xx.xml          (  83840 bytes, from 2018-07-03 19:37:13)
+- /home/robclark/src/envytools/rnndb/adreno/a4xx.xml          ( 112086 bytes, from 2018-07-03 19:37:13)
+- /home/robclark/src/envytools/rnndb/adreno/a5xx.xml          ( 147240 bytes, from 2018-08-14 22:24:38)
+- /home/robclark/src/envytools/rnndb/adreno/a6xx.xml          ( 102772 bytes, from 2018-08-14 22:24:38)
+- /home/robclark/src/envytools/rnndb/adreno/a6xx_gmu.xml      (  10431 bytes, from 2018-07-03 19:37:13)
+- /home/robclark/src/envytools/rnndb/adreno/ocmem.xml         (   1773 bytes, from 2018-07-03 19:37:13)
 
 Copyright (C) 2013-2018 by the following authors:
 - Rob Clark <robdclark@gmail.com> (robclark)
@@ -3135,6 +3135,12 @@ static inline uint32_t A5XX_RB_MRT_BUF_INFO_COLOR_TILE_MODE(enum a5xx_tile_mode
 {
        return ((val) << A5XX_RB_MRT_BUF_INFO_COLOR_TILE_MODE__SHIFT) & A5XX_RB_MRT_BUF_INFO_COLOR_TILE_MODE__MASK;
 }
+#define A5XX_RB_MRT_BUF_INFO_DITHER_MODE__MASK                 0x00001800
+#define A5XX_RB_MRT_BUF_INFO_DITHER_MODE__SHIFT                        11
+static inline uint32_t A5XX_RB_MRT_BUF_INFO_DITHER_MODE(enum adreno_rb_dither_mode val)
+{
+       return ((val) << A5XX_RB_MRT_BUF_INFO_DITHER_MODE__SHIFT) & A5XX_RB_MRT_BUF_INFO_DITHER_MODE__MASK;
+}
 #define A5XX_RB_MRT_BUF_INFO_COLOR_SWAP__MASK                  0x00006000
 #define A5XX_RB_MRT_BUF_INFO_COLOR_SWAP__SHIFT                 13
 static inline uint32_t A5XX_RB_MRT_BUF_INFO_COLOR_SWAP(enum a3xx_color_swap val)
diff --git a/src/gallium/drivers/freedreno/a6xx/a6xx.xml.h b/src/gallium/drivers/freedreno/a6xx/a6xx.xml.h
new file mode 100644 (file)
index 0000000..b1a03f7
--- /dev/null
@@ -0,0 +1,4638 @@
+#ifndef A6XX_XML
+#define A6XX_XML
+
+/* Autogenerated file, DO NOT EDIT manually!
+
+This file was generated by the rules-ng-ng headergen tool in this git repository:
+http://github.com/freedreno/envytools/
+git clone https://github.com/freedreno/envytools.git
+
+The rules-ng-ng source files this header was generated from are:
+- /home/robclark/src/envytools/rnndb/adreno.xml               (    501 bytes, from 2018-07-03 19:37:13)
+- /home/robclark/src/envytools/rnndb/freedreno_copyright.xml  (   1572 bytes, from 2018-07-03 19:37:13)
+- /home/robclark/src/envytools/rnndb/adreno/a2xx.xml          (  36805 bytes, from 2018-07-03 19:37:13)
+- /home/robclark/src/envytools/rnndb/adreno/adreno_common.xml (  13634 bytes, from 2018-07-03 19:37:13)
+- /home/robclark/src/envytools/rnndb/adreno/adreno_pm4.xml    (  42393 bytes, from 2018-08-14 22:24:38)
+- /home/robclark/src/envytools/rnndb/adreno/a3xx.xml          (  83840 bytes, from 2018-07-03 19:37:13)
+- /home/robclark/src/envytools/rnndb/adreno/a4xx.xml          ( 112086 bytes, from 2018-07-03 19:37:13)
+- /home/robclark/src/envytools/rnndb/adreno/a5xx.xml          ( 147240 bytes, from 2018-08-14 22:24:38)
+- /home/robclark/src/envytools/rnndb/adreno/a6xx.xml          ( 102772 bytes, from 2018-08-14 22:24:38)
+- /home/robclark/src/envytools/rnndb/adreno/a6xx_gmu.xml      (  10431 bytes, from 2018-07-03 19:37:13)
+- /home/robclark/src/envytools/rnndb/adreno/ocmem.xml         (   1773 bytes, from 2018-07-03 19:37:13)
+
+Copyright (C) 2013-2018 by the following authors:
+- Rob Clark <robdclark@gmail.com> (robclark)
+- Ilia Mirkin <imirkin@alum.mit.edu> (imirkin)
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice (including the
+next paragraph) shall be included in all copies or substantial
+portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS 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.
+*/
+
+
+enum a6xx_color_fmt {
+       RB6_A8_UNORM = 2,
+       RB6_R8_UNORM = 3,
+       RB6_R8_SNORM = 4,
+       RB6_R8_UINT = 5,
+       RB6_R8_SINT = 6,
+       RB6_R4G4B4A4_UNORM = 8,
+       RB6_R5G5B5A1_UNORM = 10,
+       RB6_R5G6B5_UNORM = 14,
+       RB6_R8G8_UNORM = 15,
+       RB6_R8G8_SNORM = 16,
+       RB6_R8G8_UINT = 17,
+       RB6_R8G8_SINT = 18,
+       RB6_R16_UNORM = 21,
+       RB6_R16_SNORM = 22,
+       RB6_R16_FLOAT = 23,
+       RB6_R16_UINT = 24,
+       RB6_R16_SINT = 25,
+       RB6_R8G8B8A8_UNORM = 48,
+       RB6_R8G8B8_UNORM = 49,
+       RB6_R8G8B8A8_SNORM = 50,
+       RB6_R8G8B8A8_UINT = 51,
+       RB6_R8G8B8A8_SINT = 52,
+       RB6_R10G10B10A2_UNORM = 55,
+       RB6_R10G10B10A2_UINT = 58,
+       RB6_R11G11B10_FLOAT = 66,
+       RB6_R16G16_UNORM = 67,
+       RB6_R16G16_SNORM = 68,
+       RB6_R16G16_FLOAT = 69,
+       RB6_R16G16_UINT = 70,
+       RB6_R16G16_SINT = 71,
+       RB6_R32_FLOAT = 74,
+       RB6_R32_UINT = 75,
+       RB6_R32_SINT = 76,
+       RB6_R16G16B16A16_UNORM = 96,
+       RB6_R16G16B16A16_SNORM = 97,
+       RB6_R16G16B16A16_FLOAT = 98,
+       RB6_R16G16B16A16_UINT = 99,
+       RB6_R16G16B16A16_SINT = 100,
+       RB6_R32G32_FLOAT = 103,
+       RB6_R32G32_UINT = 104,
+       RB6_R32G32_SINT = 105,
+       RB6_R32G32B32A32_FLOAT = 130,
+       RB6_R32G32B32A32_UINT = 131,
+       RB6_R32G32B32A32_SINT = 132,
+       RB6_X8Z24_UNORM = 160,
+};
+
+enum a6xx_tile_mode {
+       TILE6_LINEAR = 0,
+       TILE6_2 = 2,
+       TILE6_3 = 3,
+};
+
+enum a6xx_vtx_fmt {
+       VFMT6_8_UNORM = 3,
+       VFMT6_8_SNORM = 4,
+       VFMT6_8_UINT = 5,
+       VFMT6_8_SINT = 6,
+       VFMT6_8_8_UNORM = 15,
+       VFMT6_8_8_SNORM = 16,
+       VFMT6_8_8_UINT = 17,
+       VFMT6_8_8_SINT = 18,
+       VFMT6_16_UNORM = 21,
+       VFMT6_16_SNORM = 22,
+       VFMT6_16_FLOAT = 23,
+       VFMT6_16_UINT = 24,
+       VFMT6_16_SINT = 25,
+       VFMT6_8_8_8_UNORM = 33,
+       VFMT6_8_8_8_SNORM = 34,
+       VFMT6_8_8_8_UINT = 35,
+       VFMT6_8_8_8_SINT = 36,
+       VFMT6_8_8_8_8_UNORM = 48,
+       VFMT6_8_8_8_8_SNORM = 50,
+       VFMT6_8_8_8_8_UINT = 51,
+       VFMT6_8_8_8_8_SINT = 52,
+       VFMT6_10_10_10_2_UNORM = 54,
+       VFMT6_10_10_10_2_SNORM = 57,
+       VFMT6_10_10_10_2_UINT = 58,
+       VFMT6_10_10_10_2_SINT = 59,
+       VFMT6_11_11_10_FLOAT = 66,
+       VFMT6_16_16_UNORM = 67,
+       VFMT6_16_16_SNORM = 68,
+       VFMT6_16_16_FLOAT = 69,
+       VFMT6_16_16_UINT = 70,
+       VFMT6_16_16_SINT = 71,
+       VFMT6_32_UNORM = 72,
+       VFMT6_32_SNORM = 73,
+       VFMT6_32_FLOAT = 74,
+       VFMT6_32_UINT = 75,
+       VFMT6_32_SINT = 76,
+       VFMT6_32_FIXED = 77,
+       VFMT6_16_16_16_UNORM = 88,
+       VFMT6_16_16_16_SNORM = 89,
+       VFMT6_16_16_16_FLOAT = 90,
+       VFMT6_16_16_16_UINT = 91,
+       VFMT6_16_16_16_SINT = 92,
+       VFMT6_16_16_16_16_UNORM = 96,
+       VFMT6_16_16_16_16_SNORM = 97,
+       VFMT6_16_16_16_16_FLOAT = 98,
+       VFMT6_16_16_16_16_UINT = 99,
+       VFMT6_16_16_16_16_SINT = 100,
+       VFMT6_32_32_UNORM = 101,
+       VFMT6_32_32_SNORM = 102,
+       VFMT6_32_32_FLOAT = 103,
+       VFMT6_32_32_UINT = 104,
+       VFMT6_32_32_SINT = 105,
+       VFMT6_32_32_FIXED = 106,
+       VFMT6_32_32_32_UNORM = 112,
+       VFMT6_32_32_32_SNORM = 113,
+       VFMT6_32_32_32_UINT = 114,
+       VFMT6_32_32_32_SINT = 115,
+       VFMT6_32_32_32_FLOAT = 116,
+       VFMT6_32_32_32_FIXED = 117,
+       VFMT6_32_32_32_32_UNORM = 128,
+       VFMT6_32_32_32_32_SNORM = 129,
+       VFMT6_32_32_32_32_FLOAT = 130,
+       VFMT6_32_32_32_32_UINT = 131,
+       VFMT6_32_32_32_32_SINT = 132,
+       VFMT6_32_32_32_32_FIXED = 133,
+};
+
+enum a6xx_tex_fmt {
+       TFMT6_A8_UNORM = 2,
+       TFMT6_8_UNORM = 3,
+       TFMT6_8_SNORM = 4,
+       TFMT6_8_UINT = 5,
+       TFMT6_8_SINT = 6,
+       TFMT6_4_4_4_4_UNORM = 8,
+       TFMT6_5_5_5_1_UNORM = 10,
+       TFMT6_5_6_5_UNORM = 14,
+       TFMT6_8_8_UNORM = 15,
+       TFMT6_8_8_SNORM = 16,
+       TFMT6_8_8_UINT = 17,
+       TFMT6_8_8_SINT = 18,
+       TFMT6_L8_A8_UNORM = 19,
+       TFMT6_16_UNORM = 21,
+       TFMT6_16_SNORM = 22,
+       TFMT6_16_FLOAT = 23,
+       TFMT6_16_UINT = 24,
+       TFMT6_16_SINT = 25,
+       TFMT6_8_8_8_8_UNORM = 48,
+       TFMT6_8_8_8_UNORM = 49,
+       TFMT6_8_8_8_8_SNORM = 50,
+       TFMT6_8_8_8_8_UINT = 51,
+       TFMT6_8_8_8_8_SINT = 52,
+       TFMT6_9_9_9_E5_FLOAT = 53,
+       TFMT6_10_10_10_2_UNORM = 54,
+       TFMT6_10_10_10_2_UINT = 58,
+       TFMT6_11_11_10_FLOAT = 66,
+       TFMT6_16_16_UNORM = 67,
+       TFMT6_16_16_SNORM = 68,
+       TFMT6_16_16_FLOAT = 69,
+       TFMT6_16_16_UINT = 70,
+       TFMT6_16_16_SINT = 71,
+       TFMT6_32_FLOAT = 74,
+       TFMT6_32_UINT = 75,
+       TFMT6_32_SINT = 76,
+       TFMT6_16_16_16_16_UNORM = 96,
+       TFMT6_16_16_16_16_SNORM = 97,
+       TFMT6_16_16_16_16_FLOAT = 98,
+       TFMT6_16_16_16_16_UINT = 99,
+       TFMT6_16_16_16_16_SINT = 100,
+       TFMT6_32_32_FLOAT = 103,
+       TFMT6_32_32_UINT = 104,
+       TFMT6_32_32_SINT = 105,
+       TFMT6_32_32_32_UINT = 114,
+       TFMT6_32_32_32_SINT = 115,
+       TFMT6_32_32_32_FLOAT = 116,
+       TFMT6_32_32_32_32_FLOAT = 130,
+       TFMT6_32_32_32_32_UINT = 131,
+       TFMT6_32_32_32_32_SINT = 132,
+       TFMT6_X8Z24_UNORM = 160,
+       TFMT6_ETC2_RG11_UNORM = 171,
+       TFMT6_ETC2_RG11_SNORM = 172,
+       TFMT6_ETC2_R11_UNORM = 173,
+       TFMT6_ETC2_R11_SNORM = 174,
+       TFMT6_ETC1 = 175,
+       TFMT6_ETC2_RGB8 = 176,
+       TFMT6_ETC2_RGBA8 = 177,
+       TFMT6_ETC2_RGB8A1 = 178,
+       TFMT6_DXT1 = 179,
+       TFMT6_DXT3 = 180,
+       TFMT6_DXT5 = 181,
+       TFMT6_RGTC1_UNORM = 183,
+       TFMT6_RGTC1_SNORM = 184,
+       TFMT6_RGTC2_UNORM = 187,
+       TFMT6_RGTC2_SNORM = 188,
+       TFMT6_BPTC_UFLOAT = 190,
+       TFMT6_BPTC_FLOAT = 191,
+       TFMT6_BPTC = 192,
+       TFMT6_ASTC_4x4 = 193,
+       TFMT6_ASTC_5x4 = 194,
+       TFMT6_ASTC_5x5 = 195,
+       TFMT6_ASTC_6x5 = 196,
+       TFMT6_ASTC_6x6 = 197,
+       TFMT6_ASTC_8x5 = 198,
+       TFMT6_ASTC_8x6 = 199,
+       TFMT6_ASTC_8x8 = 200,
+       TFMT6_ASTC_10x5 = 201,
+       TFMT6_ASTC_10x6 = 202,
+       TFMT6_ASTC_10x8 = 203,
+       TFMT6_ASTC_10x10 = 204,
+       TFMT6_ASTC_12x10 = 205,
+       TFMT6_ASTC_12x12 = 206,
+};
+
+enum a6xx_tex_fetchsize {
+       TFETCH6_1_BYTE = 0,
+       TFETCH6_2_BYTE = 1,
+       TFETCH6_4_BYTE = 2,
+       TFETCH6_8_BYTE = 3,
+       TFETCH6_16_BYTE = 4,
+};
+
+enum a6xx_depth_format {
+       DEPTH6_NONE = 0,
+       DEPTH6_16 = 1,
+       DEPTH6_24_8 = 2,
+       DEPTH6_32 = 4,
+};
+
+enum a6xx_cp_perfcounter_select {
+       PERF_CP_ALWAYS_COUNT = 0,
+};
+
+enum a6xx_tex_filter {
+       A6XX_TEX_NEAREST = 0,
+       A6XX_TEX_LINEAR = 1,
+       A6XX_TEX_ANISO = 2,
+};
+
+enum a6xx_tex_clamp {
+       A6XX_TEX_REPEAT = 0,
+       A6XX_TEX_CLAMP_TO_EDGE = 1,
+       A6XX_TEX_MIRROR_REPEAT = 2,
+       A6XX_TEX_CLAMP_TO_BORDER = 3,
+       A6XX_TEX_MIRROR_CLAMP = 4,
+};
+
+enum a6xx_tex_aniso {
+       A6XX_TEX_ANISO_1 = 0,
+       A6XX_TEX_ANISO_2 = 1,
+       A6XX_TEX_ANISO_4 = 2,
+       A6XX_TEX_ANISO_8 = 3,
+       A6XX_TEX_ANISO_16 = 4,
+};
+
+enum a6xx_tex_swiz {
+       A6XX_TEX_X = 0,
+       A6XX_TEX_Y = 1,
+       A6XX_TEX_Z = 2,
+       A6XX_TEX_W = 3,
+       A6XX_TEX_ZERO = 4,
+       A6XX_TEX_ONE = 5,
+};
+
+enum a6xx_tex_type {
+       A6XX_TEX_1D = 0,
+       A6XX_TEX_2D = 1,
+       A6XX_TEX_CUBE = 2,
+       A6XX_TEX_3D = 3,
+};
+
+#define A6XX_RBBM_INT_0_MASK_RBBM_GPU_IDLE                     0x00000001
+#define A6XX_RBBM_INT_0_MASK_CP_AHB_ERROR                      0x00000002
+#define A6XX_RBBM_INT_0_MASK_RBBM_ATB_ASYNCFIFO_OVERFLOW       0x00000040
+#define A6XX_RBBM_INT_0_MASK_RBBM_GPC_ERROR                    0x00000080
+#define A6XX_RBBM_INT_0_MASK_CP_SW                             0x00000100
+#define A6XX_RBBM_INT_0_MASK_CP_HW_ERROR                       0x00000200
+#define A6XX_RBBM_INT_0_MASK_CP_CCU_FLUSH_DEPTH_TS             0x00000400
+#define A6XX_RBBM_INT_0_MASK_CP_CCU_FLUSH_COLOR_TS             0x00000800
+#define A6XX_RBBM_INT_0_MASK_CP_CCU_RESOLVE_TS                 0x00001000
+#define A6XX_RBBM_INT_0_MASK_CP_IB2                            0x00002000
+#define A6XX_RBBM_INT_0_MASK_CP_IB1                            0x00004000
+#define A6XX_RBBM_INT_0_MASK_CP_RB                             0x00008000
+#define A6XX_RBBM_INT_0_MASK_CP_RB_DONE_TS                     0x00020000
+#define A6XX_RBBM_INT_0_MASK_CP_WT_DONE_TS                     0x00040000
+#define A6XX_RBBM_INT_0_MASK_CP_CACHE_FLUSH_TS                 0x00100000
+#define A6XX_RBBM_INT_0_MASK_RBBM_ATB_BUS_OVERFLOW             0x00400000
+#define A6XX_RBBM_INT_0_MASK_RBBM_HANG_DETECT                  0x00800000
+#define A6XX_RBBM_INT_0_MASK_UCHE_OOB_ACCESS                   0x01000000
+#define A6XX_RBBM_INT_0_MASK_UCHE_TRAP_INTR                    0x02000000
+#define A6XX_RBBM_INT_0_MASK_DEBBUS_INTR_0                     0x04000000
+#define A6XX_RBBM_INT_0_MASK_DEBBUS_INTR_1                     0x08000000
+#define A6XX_RBBM_INT_0_MASK_ISDB_CPU_IRQ                      0x40000000
+#define A6XX_RBBM_INT_0_MASK_ISDB_UNDER_DEBUG                  0x80000000
+#define A6XX_CP_INT_CP_OPCODE_ERROR                            0x00000001
+#define A6XX_CP_INT_CP_UCODE_ERROR                             0x00000002
+#define A6XX_CP_INT_CP_HW_FAULT_ERROR                          0x00000004
+#define A6XX_CP_INT_CP_REGISTER_PROTECTION_ERROR               0x00000010
+#define A6XX_CP_INT_CP_AHB_ERROR                               0x00000020
+#define A6XX_CP_INT_CP_VSD_PARITY_ERROR                                0x00000040
+#define A6XX_CP_INT_CP_ILLEGAL_INSTR_ERROR                     0x00000080
+#define REG_A6XX_CP_RB_BASE                                    0x00000800
+
+#define REG_A6XX_CP_RB_BASE_HI                                 0x00000801
+
+#define REG_A6XX_CP_RB_CNTL                                    0x00000802
+
+#define REG_A6XX_CP_RB_RPTR_ADDR_LO                            0x00000804
+
+#define REG_A6XX_CP_RB_RPTR_ADDR_HI                            0x00000805
+
+#define REG_A6XX_CP_RB_RPTR                                    0x00000806
+
+#define REG_A6XX_CP_RB_WPTR                                    0x00000807
+
+#define REG_A6XX_CP_SQE_CNTL                                   0x00000808
+
+#define REG_A6XX_CP_HW_FAULT                                   0x00000821
+
+#define REG_A6XX_CP_INTERRUPT_STATUS                           0x00000823
+
+#define REG_A6XX_CP_PROTECT_STATUS                             0x00000824
+
+#define REG_A6XX_CP_SQE_INSTR_BASE_LO                          0x00000830
+
+#define REG_A6XX_CP_SQE_INSTR_BASE_HI                          0x00000831
+
+#define REG_A6XX_CP_MISC_CNTL                                  0x00000840
+
+#define REG_A6XX_CP_ROQ_THRESHOLDS_1                           0x000008c1
+
+#define REG_A6XX_CP_ROQ_THRESHOLDS_2                           0x000008c2
+
+#define REG_A6XX_CP_MEM_POOL_SIZE                              0x000008c3
+
+#define REG_A6XX_CP_CHICKEN_DBG                                        0x00000841
+
+#define REG_A6XX_CP_ADDR_MODE_CNTL                             0x00000842
+
+#define REG_A6XX_CP_DBG_ECO_CNTL                               0x00000843
+
+#define REG_A6XX_CP_PROTECT_CNTL                               0x0000084f
+
+static inline uint32_t REG_A6XX_CP_SCRATCH(uint32_t i0) { return 0x00000883 + 0x1*i0; }
+
+static inline uint32_t REG_A6XX_CP_SCRATCH_REG(uint32_t i0) { return 0x00000883 + 0x1*i0; }
+
+static inline uint32_t REG_A6XX_CP_PROTECT(uint32_t i0) { return 0x00000850 + 0x1*i0; }
+
+static inline uint32_t REG_A6XX_CP_PROTECT_REG(uint32_t i0) { return 0x00000850 + 0x1*i0; }
+#define A6XX_CP_PROTECT_REG_BASE_ADDR__MASK                    0x0003ffff
+#define A6XX_CP_PROTECT_REG_BASE_ADDR__SHIFT                   0
+static inline uint32_t A6XX_CP_PROTECT_REG_BASE_ADDR(uint32_t val)
+{
+       return ((val) << A6XX_CP_PROTECT_REG_BASE_ADDR__SHIFT) & A6XX_CP_PROTECT_REG_BASE_ADDR__MASK;
+}
+#define A6XX_CP_PROTECT_REG_MASK_LEN__MASK                     0x7ffc0000
+#define A6XX_CP_PROTECT_REG_MASK_LEN__SHIFT                    18
+static inline uint32_t A6XX_CP_PROTECT_REG_MASK_LEN(uint32_t val)
+{
+       return ((val) << A6XX_CP_PROTECT_REG_MASK_LEN__SHIFT) & A6XX_CP_PROTECT_REG_MASK_LEN__MASK;
+}
+#define A6XX_CP_PROTECT_REG_READ                               0x80000000
+
+#define REG_A6XX_CP_CONTEXT_SWITCH_CNTL                                0x000008a0
+
+#define REG_A6XX_CP_CONTEXT_SWITCH_SMMU_INFO_LO                        0x000008a1
+
+#define REG_A6XX_CP_CONTEXT_SWITCH_SMMU_INFO_HI                        0x000008a2
+
+#define REG_A6XX_CP_CONTEXT_SWITCH_PRIV_NON_SECURE_RESTORE_ADDR_LO     0x000008a3
+
+#define REG_A6XX_CP_CONTEXT_SWITCH_PRIV_NON_SECURE_RESTORE_ADDR_HI     0x000008a4
+
+#define REG_A6XX_CP_CONTEXT_SWITCH_PRIV_SECURE_RESTORE_ADDR_LO 0x000008a5
+
+#define REG_A6XX_CP_CONTEXT_SWITCH_PRIV_SECURE_RESTORE_ADDR_HI 0x000008a6
+
+#define REG_A6XX_CP_CONTEXT_SWITCH_NON_PRIV_RESTORE_ADDR_LO    0x000008a7
+
+#define REG_A6XX_CP_CONTEXT_SWITCH_NON_PRIV_RESTORE_ADDR_HI    0x000008a8
+
+#define REG_A6XX_CP_PERFCTR_CP_SEL_0                           0x000008d0
+
+#define REG_A6XX_CP_PERFCTR_CP_SEL_1                           0x000008d1
+
+#define REG_A6XX_CP_PERFCTR_CP_SEL_2                           0x000008d2
+
+#define REG_A6XX_CP_PERFCTR_CP_SEL_3                           0x000008d3
+
+#define REG_A6XX_CP_PERFCTR_CP_SEL_4                           0x000008d4
+
+#define REG_A6XX_CP_PERFCTR_CP_SEL_5                           0x000008d5
+
+#define REG_A6XX_CP_PERFCTR_CP_SEL_6                           0x000008d6
+
+#define REG_A6XX_CP_PERFCTR_CP_SEL_7                           0x000008d7
+
+#define REG_A6XX_CP_PERFCTR_CP_SEL_8                           0x000008d8
+
+#define REG_A6XX_CP_PERFCTR_CP_SEL_9                           0x000008d9
+
+#define REG_A6XX_CP_PERFCTR_CP_SEL_10                          0x000008da
+
+#define REG_A6XX_CP_PERFCTR_CP_SEL_11                          0x000008db
+
+#define REG_A6XX_CP_PERFCTR_CP_SEL_12                          0x000008dc
+
+#define REG_A6XX_CP_PERFCTR_CP_SEL_13                          0x000008dd
+
+#define REG_A6XX_CP_CRASH_SCRIPT_BASE_LO                       0x00000900
+
+#define REG_A6XX_CP_CRASH_SCRIPT_BASE_HI                       0x00000901
+
+#define REG_A6XX_CP_CRASH_DUMP_CNTL                            0x00000902
+
+#define REG_A6XX_CP_CRASH_DUMP_STATUS                          0x00000903
+
+#define REG_A6XX_CP_SQE_STAT_ADDR                              0x00000908
+
+#define REG_A6XX_CP_SQE_STAT_DATA                              0x00000909
+
+#define REG_A6XX_CP_DRAW_STATE_ADDR                            0x0000090a
+
+#define REG_A6XX_CP_DRAW_STATE_DATA                            0x0000090b
+
+#define REG_A6XX_CP_ROQ_DBG_ADDR                               0x0000090c
+
+#define REG_A6XX_CP_ROQ_DBG_DATA                               0x0000090d
+
+#define REG_A6XX_CP_MEM_POOL_DBG_ADDR                          0x0000090e
+
+#define REG_A6XX_CP_MEM_POOL_DBG_DATA                          0x0000090f
+
+#define REG_A6XX_CP_SQE_UCODE_DBG_ADDR                         0x00000910
+
+#define REG_A6XX_CP_SQE_UCODE_DBG_DATA                         0x00000911
+
+#define REG_A6XX_CP_IB1_BASE                                   0x00000928
+
+#define REG_A6XX_CP_IB1_BASE_HI                                        0x00000929
+
+#define REG_A6XX_CP_IB1_REM_SIZE                               0x0000092a
+
+#define REG_A6XX_CP_IB2_BASE                                   0x0000092b
+
+#define REG_A6XX_CP_IB2_BASE_HI                                        0x0000092c
+
+#define REG_A6XX_CP_IB2_REM_SIZE                               0x0000092d
+
+#define REG_A6XX_CP_ALWAYS_ON_COUNTER_LO                       0x00000980
+
+#define REG_A6XX_CP_ALWAYS_ON_COUNTER_HI                       0x00000981
+
+#define REG_A6XX_CP_AHB_CNTL                                   0x0000098d
+
+#define REG_A6XX_CP_APERTURE_CNTL_HOST                         0x00000a00
+
+#define REG_A6XX_CP_APERTURE_CNTL_CD                           0x00000a03
+
+#define REG_A6XX_VSC_ADDR_MODE_CNTL                            0x00000c01
+
+#define REG_A6XX_RBBM_INT_0_STATUS                             0x00000201
+
+#define REG_A6XX_RBBM_STATUS                                   0x00000210
+#define A6XX_RBBM_STATUS_GPU_BUSY_IGN_AHB                      0x00800000
+#define A6XX_RBBM_STATUS_GPU_BUSY_IGN_AHB_CP                   0x00400000
+#define A6XX_RBBM_STATUS_HLSQ_BUSY                             0x00200000
+#define A6XX_RBBM_STATUS_VSC_BUSY                              0x00100000
+#define A6XX_RBBM_STATUS_TPL1_BUSY                             0x00080000
+#define A6XX_RBBM_STATUS_SP_BUSY                               0x00040000
+#define A6XX_RBBM_STATUS_UCHE_BUSY                             0x00020000
+#define A6XX_RBBM_STATUS_VPC_BUSY                              0x00010000
+#define A6XX_RBBM_STATUS_VFD_BUSY                              0x00008000
+#define A6XX_RBBM_STATUS_TESS_BUSY                             0x00004000
+#define A6XX_RBBM_STATUS_PC_VSD_BUSY                           0x00002000
+#define A6XX_RBBM_STATUS_PC_DCALL_BUSY                         0x00001000
+#define A6XX_RBBM_STATUS_COM_DCOM_BUSY                         0x00000800
+#define A6XX_RBBM_STATUS_LRZ_BUSY                              0x00000400
+#define A6XX_RBBM_STATUS_A2D_BUSY                              0x00000200
+#define A6XX_RBBM_STATUS_CCU_BUSY                              0x00000100
+#define A6XX_RBBM_STATUS_RB_BUSY                               0x00000080
+#define A6XX_RBBM_STATUS_RAS_BUSY                              0x00000040
+#define A6XX_RBBM_STATUS_TSE_BUSY                              0x00000020
+#define A6XX_RBBM_STATUS_VBIF_BUSY                             0x00000010
+#define A6XX_RBBM_STATUS_GFX_DBGC_BUSY                         0x00000008
+#define A6XX_RBBM_STATUS_CP_BUSY                               0x00000004
+#define A6XX_RBBM_STATUS_CP_AHB_BUSY_CP_MASTER                 0x00000002
+#define A6XX_RBBM_STATUS_CP_AHB_BUSY_CX_MASTER                 0x00000001
+
+#define REG_A6XX_RBBM_STATUS3                                  0x00000213
+
+#define REG_A6XX_RBBM_VBIF_GX_RESET_STATUS                     0x00000215
+
+#define REG_A6XX_RBBM_PERFCTR_CP_0_LO                          0x00000400
+
+#define REG_A6XX_RBBM_PERFCTR_CP_0_HI                          0x00000401
+
+#define REG_A6XX_RBBM_PERFCTR_CP_1_LO                          0x00000402
+
+#define REG_A6XX_RBBM_PERFCTR_CP_1_HI                          0x00000403
+
+#define REG_A6XX_RBBM_PERFCTR_CP_2_LO                          0x00000404
+
+#define REG_A6XX_RBBM_PERFCTR_CP_2_HI                          0x00000405
+
+#define REG_A6XX_RBBM_PERFCTR_CP_3_LO                          0x00000406
+
+#define REG_A6XX_RBBM_PERFCTR_CP_3_HI                          0x00000407
+
+#define REG_A6XX_RBBM_PERFCTR_CP_4_LO                          0x00000408
+
+#define REG_A6XX_RBBM_PERFCTR_CP_4_HI                          0x00000409
+
+#define REG_A6XX_RBBM_PERFCTR_CP_5_LO                          0x0000040a
+
+#define REG_A6XX_RBBM_PERFCTR_CP_5_HI                          0x0000040b
+
+#define REG_A6XX_RBBM_PERFCTR_CP_6_LO                          0x0000040c
+
+#define REG_A6XX_RBBM_PERFCTR_CP_6_HI                          0x0000040d
+
+#define REG_A6XX_RBBM_PERFCTR_CP_7_LO                          0x0000040e
+
+#define REG_A6XX_RBBM_PERFCTR_CP_7_HI                          0x0000040f
+
+#define REG_A6XX_RBBM_PERFCTR_CP_8_LO                          0x00000410
+
+#define REG_A6XX_RBBM_PERFCTR_CP_8_HI                          0x00000411
+
+#define REG_A6XX_RBBM_PERFCTR_CP_9_LO                          0x00000412
+
+#define REG_A6XX_RBBM_PERFCTR_CP_9_HI                          0x00000413
+
+#define REG_A6XX_RBBM_PERFCTR_CP_10_LO                         0x00000414
+
+#define REG_A6XX_RBBM_PERFCTR_CP_10_HI                         0x00000415
+
+#define REG_A6XX_RBBM_PERFCTR_CP_11_LO                         0x00000416
+
+#define REG_A6XX_RBBM_PERFCTR_CP_11_HI                         0x00000417
+
+#define REG_A6XX_RBBM_PERFCTR_CP_12_LO                         0x00000418
+
+#define REG_A6XX_RBBM_PERFCTR_CP_12_HI                         0x00000419
+
+#define REG_A6XX_RBBM_PERFCTR_CP_13_LO                         0x0000041a
+
+#define REG_A6XX_RBBM_PERFCTR_CP_13_HI                         0x0000041b
+
+#define REG_A6XX_RBBM_PERFCTR_RBBM_0_LO                                0x0000041c
+
+#define REG_A6XX_RBBM_PERFCTR_RBBM_0_HI                                0x0000041d
+
+#define REG_A6XX_RBBM_PERFCTR_RBBM_1_LO                                0x0000041e
+
+#define REG_A6XX_RBBM_PERFCTR_RBBM_1_HI                                0x0000041f
+
+#define REG_A6XX_RBBM_PERFCTR_RBBM_2_LO                                0x00000420
+
+#define REG_A6XX_RBBM_PERFCTR_RBBM_2_HI                                0x00000421
+
+#define REG_A6XX_RBBM_PERFCTR_RBBM_3_LO                                0x00000422
+
+#define REG_A6XX_RBBM_PERFCTR_RBBM_3_HI                                0x00000423
+
+#define REG_A6XX_RBBM_PERFCTR_PC_0_LO                          0x00000424
+
+#define REG_A6XX_RBBM_PERFCTR_PC_0_HI                          0x00000425
+
+#define REG_A6XX_RBBM_PERFCTR_PC_1_LO                          0x00000426
+
+#define REG_A6XX_RBBM_PERFCTR_PC_1_HI                          0x00000427
+
+#define REG_A6XX_RBBM_PERFCTR_PC_2_LO                          0x00000428
+
+#define REG_A6XX_RBBM_PERFCTR_PC_2_HI                          0x00000429
+
+#define REG_A6XX_RBBM_PERFCTR_PC_3_LO                          0x0000042a
+
+#define REG_A6XX_RBBM_PERFCTR_PC_3_HI                          0x0000042b
+
+#define REG_A6XX_RBBM_PERFCTR_PC_4_LO                          0x0000042c
+
+#define REG_A6XX_RBBM_PERFCTR_PC_4_HI                          0x0000042d
+
+#define REG_A6XX_RBBM_PERFCTR_PC_5_LO                          0x0000042e
+
+#define REG_A6XX_RBBM_PERFCTR_PC_5_HI                          0x0000042f
+
+#define REG_A6XX_RBBM_PERFCTR_PC_6_LO                          0x00000430
+
+#define REG_A6XX_RBBM_PERFCTR_PC_6_HI                          0x00000431
+
+#define REG_A6XX_RBBM_PERFCTR_PC_7_LO                          0x00000432
+
+#define REG_A6XX_RBBM_PERFCTR_PC_7_HI                          0x00000433
+
+#define REG_A6XX_RBBM_PERFCTR_VFD_0_LO                         0x00000434
+
+#define REG_A6XX_RBBM_PERFCTR_VFD_0_HI                         0x00000435
+
+#define REG_A6XX_RBBM_PERFCTR_VFD_1_LO                         0x00000436
+
+#define REG_A6XX_RBBM_PERFCTR_VFD_1_HI                         0x00000437
+
+#define REG_A6XX_RBBM_PERFCTR_VFD_2_LO                         0x00000438
+
+#define REG_A6XX_RBBM_PERFCTR_VFD_2_HI                         0x00000439
+
+#define REG_A6XX_RBBM_PERFCTR_VFD_3_LO                         0x0000043a
+
+#define REG_A6XX_RBBM_PERFCTR_VFD_3_HI                         0x0000043b
+
+#define REG_A6XX_RBBM_PERFCTR_VFD_4_LO                         0x0000043c
+
+#define REG_A6XX_RBBM_PERFCTR_VFD_4_HI                         0x0000043d
+
+#define REG_A6XX_RBBM_PERFCTR_VFD_5_LO                         0x0000043e
+
+#define REG_A6XX_RBBM_PERFCTR_VFD_5_HI                         0x0000043f
+
+#define REG_A6XX_RBBM_PERFCTR_VFD_6_LO                         0x00000440
+
+#define REG_A6XX_RBBM_PERFCTR_VFD_6_HI                         0x00000441
+
+#define REG_A6XX_RBBM_PERFCTR_VFD_7_LO                         0x00000442
+
+#define REG_A6XX_RBBM_PERFCTR_VFD_7_HI                         0x00000443
+
+#define REG_A6XX_RBBM_PERFCTR_HLSQ_0_LO                                0x00000444
+
+#define REG_A6XX_RBBM_PERFCTR_HLSQ_0_HI                                0x00000445
+
+#define REG_A6XX_RBBM_PERFCTR_HLSQ_1_LO                                0x00000446
+
+#define REG_A6XX_RBBM_PERFCTR_HLSQ_1_HI                                0x00000447
+
+#define REG_A6XX_RBBM_PERFCTR_HLSQ_2_LO                                0x00000448
+
+#define REG_A6XX_RBBM_PERFCTR_HLSQ_2_HI                                0x00000449
+
+#define REG_A6XX_RBBM_PERFCTR_HLSQ_3_LO                                0x0000044a
+
+#define REG_A6XX_RBBM_PERFCTR_HLSQ_3_HI                                0x0000044b
+
+#define REG_A6XX_RBBM_PERFCTR_HLSQ_4_LO                                0x0000044c
+
+#define REG_A6XX_RBBM_PERFCTR_HLSQ_4_HI                                0x0000044d
+
+#define REG_A6XX_RBBM_PERFCTR_HLSQ_5_LO                                0x0000044e
+
+#define REG_A6XX_RBBM_PERFCTR_HLSQ_5_HI                                0x0000044f
+
+#define REG_A6XX_RBBM_PERFCTR_VPC_0_LO                         0x00000450
+
+#define REG_A6XX_RBBM_PERFCTR_VPC_0_HI                         0x00000451
+
+#define REG_A6XX_RBBM_PERFCTR_VPC_1_LO                         0x00000452
+
+#define REG_A6XX_RBBM_PERFCTR_VPC_1_HI                         0x00000453
+
+#define REG_A6XX_RBBM_PERFCTR_VPC_2_LO                         0x00000454
+
+#define REG_A6XX_RBBM_PERFCTR_VPC_2_HI                         0x00000455
+
+#define REG_A6XX_RBBM_PERFCTR_VPC_3_LO                         0x00000456
+
+#define REG_A6XX_RBBM_PERFCTR_VPC_3_HI                         0x00000457
+
+#define REG_A6XX_RBBM_PERFCTR_VPC_4_LO                         0x00000458
+
+#define REG_A6XX_RBBM_PERFCTR_VPC_4_HI                         0x00000459
+
+#define REG_A6XX_RBBM_PERFCTR_VPC_5_LO                         0x0000045a
+
+#define REG_A6XX_RBBM_PERFCTR_VPC_5_HI                         0x0000045b
+
+#define REG_A6XX_RBBM_PERFCTR_CCU_0_LO                         0x0000045c
+
+#define REG_A6XX_RBBM_PERFCTR_CCU_0_HI                         0x0000045d
+
+#define REG_A6XX_RBBM_PERFCTR_CCU_1_LO                         0x0000045e
+
+#define REG_A6XX_RBBM_PERFCTR_CCU_1_HI                         0x0000045f
+
+#define REG_A6XX_RBBM_PERFCTR_CCU_2_LO                         0x00000460
+
+#define REG_A6XX_RBBM_PERFCTR_CCU_2_HI                         0x00000461
+
+#define REG_A6XX_RBBM_PERFCTR_CCU_3_LO                         0x00000462
+
+#define REG_A6XX_RBBM_PERFCTR_CCU_3_HI                         0x00000463
+
+#define REG_A6XX_RBBM_PERFCTR_CCU_4_LO                         0x00000464
+
+#define REG_A6XX_RBBM_PERFCTR_CCU_4_HI                         0x00000465
+
+#define REG_A6XX_RBBM_PERFCTR_TSE_0_LO                         0x00000466
+
+#define REG_A6XX_RBBM_PERFCTR_TSE_0_HI                         0x00000467
+
+#define REG_A6XX_RBBM_PERFCTR_TSE_1_LO                         0x00000468
+
+#define REG_A6XX_RBBM_PERFCTR_TSE_1_HI                         0x00000469
+
+#define REG_A6XX_RBBM_PERFCTR_TSE_2_LO                         0x0000046a
+
+#define REG_A6XX_RBBM_PERFCTR_CCU_4_HI                         0x00000465
+
+#define REG_A6XX_RBBM_PERFCTR_TSE_0_LO                         0x00000466
+
+#define REG_A6XX_RBBM_PERFCTR_TSE_0_HI                         0x00000467
+
+#define REG_A6XX_RBBM_PERFCTR_TSE_1_LO                         0x00000468
+
+#define REG_A6XX_RBBM_PERFCTR_TSE_1_HI                         0x00000469
+
+#define REG_A6XX_RBBM_PERFCTR_TSE_2_LO                         0x0000046a
+
+#define REG_A6XX_RBBM_PERFCTR_TSE_2_HI                         0x0000046b
+
+#define REG_A6XX_RBBM_PERFCTR_TSE_3_LO                         0x0000046c
+
+#define REG_A6XX_RBBM_PERFCTR_TSE_3_HI                         0x0000046d
+
+#define REG_A6XX_RBBM_PERFCTR_RAS_0_LO                         0x0000046e
+
+#define REG_A6XX_RBBM_PERFCTR_RAS_0_HI                         0x0000046f
+
+#define REG_A6XX_RBBM_PERFCTR_RAS_1_LO                         0x00000470
+
+#define REG_A6XX_RBBM_PERFCTR_RAS_1_HI                         0x00000471
+
+#define REG_A6XX_RBBM_PERFCTR_RAS_2_LO                         0x00000472
+
+#define REG_A6XX_RBBM_PERFCTR_RAS_2_HI                         0x00000473
+
+#define REG_A6XX_RBBM_PERFCTR_RAS_3_LO                         0x00000474
+
+#define REG_A6XX_RBBM_PERFCTR_RAS_3_HI                         0x00000475
+
+#define REG_A6XX_RBBM_PERFCTR_UCHE_0_LO                                0x00000476
+
+#define REG_A6XX_RBBM_PERFCTR_UCHE_0_HI                                0x00000477
+
+#define REG_A6XX_RBBM_PERFCTR_UCHE_1_LO                                0x00000478
+
+#define REG_A6XX_RBBM_PERFCTR_UCHE_1_HI                                0x00000479
+
+#define REG_A6XX_RBBM_PERFCTR_UCHE_2_LO                                0x0000047a
+
+#define REG_A6XX_RBBM_PERFCTR_UCHE_2_HI                                0x0000047b
+
+#define REG_A6XX_RBBM_PERFCTR_UCHE_3_LO                                0x0000047c
+
+#define REG_A6XX_RBBM_PERFCTR_UCHE_3_HI                                0x0000047d
+
+#define REG_A6XX_RBBM_PERFCTR_UCHE_4_LO                                0x0000047e
+
+#define REG_A6XX_RBBM_PERFCTR_UCHE_4_HI                                0x0000047f
+
+#define REG_A6XX_RBBM_PERFCTR_UCHE_5_LO                                0x00000480
+
+#define REG_A6XX_RBBM_PERFCTR_UCHE_5_HI                                0x00000481
+
+#define REG_A6XX_RBBM_PERFCTR_UCHE_6_LO                                0x00000482
+
+#define REG_A6XX_RBBM_PERFCTR_UCHE_6_HI                                0x00000483
+
+#define REG_A6XX_RBBM_PERFCTR_UCHE_7_LO                                0x00000484
+
+#define REG_A6XX_RBBM_PERFCTR_UCHE_7_HI                                0x00000485
+
+#define REG_A6XX_RBBM_PERFCTR_UCHE_8_LO                                0x00000486
+
+#define REG_A6XX_RBBM_PERFCTR_UCHE_8_HI                                0x00000487
+
+#define REG_A6XX_RBBM_PERFCTR_UCHE_9_LO                                0x00000488
+
+#define REG_A6XX_RBBM_PERFCTR_UCHE_9_HI                                0x00000489
+
+#define REG_A6XX_RBBM_PERFCTR_UCHE_10_LO                       0x0000048a
+
+#define REG_A6XX_RBBM_PERFCTR_UCHE_10_HI                       0x0000048b
+
+#define REG_A6XX_RBBM_PERFCTR_UCHE_11_LO                       0x0000048c
+
+#define REG_A6XX_RBBM_PERFCTR_UCHE_11_HI                       0x0000048d
+
+#define REG_A6XX_RBBM_PERFCTR_TP_0_LO                          0x0000048e
+
+#define REG_A6XX_RBBM_PERFCTR_TP_0_HI                          0x0000048f
+
+#define REG_A6XX_RBBM_PERFCTR_TP_1_LO                          0x00000490
+
+#define REG_A6XX_RBBM_PERFCTR_TP_1_HI                          0x00000491
+
+#define REG_A6XX_RBBM_PERFCTR_TP_2_LO                          0x00000492
+
+#define REG_A6XX_RBBM_PERFCTR_TP_2_HI                          0x00000493
+
+#define REG_A6XX_RBBM_PERFCTR_TP_3_LO                          0x00000494
+
+#define REG_A6XX_RBBM_PERFCTR_TP_3_HI                          0x00000495
+
+#define REG_A6XX_RBBM_PERFCTR_TP_4_LO                          0x00000496
+
+#define REG_A6XX_RBBM_PERFCTR_TP_4_HI                          0x00000497
+
+#define REG_A6XX_RBBM_PERFCTR_TP_5_LO                          0x00000498
+
+#define REG_A6XX_RBBM_PERFCTR_TP_5_HI                          0x00000499
+
+#define REG_A6XX_RBBM_PERFCTR_TP_6_LO                          0x0000049a
+
+#define REG_A6XX_RBBM_PERFCTR_TP_6_HI                          0x0000049b
+
+#define REG_A6XX_RBBM_PERFCTR_TP_7_LO                          0x0000049c
+
+#define REG_A6XX_RBBM_PERFCTR_TP_7_HI                          0x0000049d
+
+#define REG_A6XX_RBBM_PERFCTR_TP_8_LO                          0x0000049e
+
+#define REG_A6XX_RBBM_PERFCTR_TP_8_HI                          0x0000049f
+
+#define REG_A6XX_RBBM_PERFCTR_TP_9_LO                          0x000004a0
+
+#define REG_A6XX_RBBM_PERFCTR_TP_9_HI                          0x000004a1
+
+#define REG_A6XX_RBBM_PERFCTR_TP_10_LO                         0x000004a2
+
+#define REG_A6XX_RBBM_PERFCTR_TP_10_HI                         0x000004a3
+
+#define REG_A6XX_RBBM_PERFCTR_TP_11_LO                         0x000004a4
+
+#define REG_A6XX_RBBM_PERFCTR_TP_11_HI                         0x000004a5
+
+#define REG_A6XX_RBBM_PERFCTR_SP_0_LO                          0x000004a6
+
+#define REG_A6XX_RBBM_PERFCTR_SP_0_HI                          0x000004a7
+
+#define REG_A6XX_RBBM_PERFCTR_SP_1_LO                          0x000004a8
+
+#define REG_A6XX_RBBM_PERFCTR_SP_1_HI                          0x000004a9
+
+#define REG_A6XX_RBBM_PERFCTR_SP_2_LO                          0x000004aa
+
+#define REG_A6XX_RBBM_PERFCTR_SP_2_HI                          0x000004ab
+
+#define REG_A6XX_RBBM_PERFCTR_SP_3_LO                          0x000004ac
+
+#define REG_A6XX_RBBM_PERFCTR_SP_3_HI                          0x000004ad
+
+#define REG_A6XX_RBBM_PERFCTR_SP_4_LO                          0x000004ae
+
+#define REG_A6XX_RBBM_PERFCTR_SP_4_HI                          0x000004af
+
+#define REG_A6XX_RBBM_PERFCTR_SP_5_LO                          0x000004b0
+
+#define REG_A6XX_RBBM_PERFCTR_SP_5_HI                          0x000004b1
+
+#define REG_A6XX_RBBM_PERFCTR_SP_6_LO                          0x000004b2
+
+#define REG_A6XX_RBBM_PERFCTR_SP_6_HI                          0x000004b3
+
+#define REG_A6XX_RBBM_PERFCTR_SP_7_LO                          0x000004b4
+
+#define REG_A6XX_RBBM_PERFCTR_SP_7_HI                          0x000004b5
+
+#define REG_A6XX_RBBM_PERFCTR_SP_8_LO                          0x000004b6
+
+#define REG_A6XX_RBBM_PERFCTR_SP_8_HI                          0x000004b7
+
+#define REG_A6XX_RBBM_PERFCTR_SP_9_LO                          0x000004b8
+
+#define REG_A6XX_RBBM_PERFCTR_SP_9_HI                          0x000004b9
+
+#define REG_A6XX_RBBM_PERFCTR_SP_10_LO                         0x000004ba
+
+#define REG_A6XX_RBBM_PERFCTR_SP_10_HI                         0x000004bb
+
+#define REG_A6XX_RBBM_PERFCTR_SP_11_LO                         0x000004bc
+
+#define REG_A6XX_RBBM_PERFCTR_SP_11_HI                         0x000004bd
+
+#define REG_A6XX_RBBM_PERFCTR_SP_12_LO                         0x000004be
+
+#define REG_A6XX_RBBM_PERFCTR_SP_12_HI                         0x000004bf
+
+#define REG_A6XX_RBBM_PERFCTR_SP_13_LO                         0x000004c0
+
+#define REG_A6XX_RBBM_PERFCTR_SP_13_HI                         0x000004c1
+
+#define REG_A6XX_RBBM_PERFCTR_SP_14_LO                         0x000004c2
+
+#define REG_A6XX_RBBM_PERFCTR_SP_14_HI                         0x000004c3
+
+#define REG_A6XX_RBBM_PERFCTR_SP_15_LO                         0x000004c4
+
+#define REG_A6XX_RBBM_PERFCTR_SP_15_HI                         0x000004c5
+
+#define REG_A6XX_RBBM_PERFCTR_SP_16_LO                         0x000004c6
+
+#define REG_A6XX_RBBM_PERFCTR_SP_16_HI                         0x000004c7
+
+#define REG_A6XX_RBBM_PERFCTR_SP_17_LO                         0x000004c8
+
+#define REG_A6XX_RBBM_PERFCTR_SP_17_HI                         0x000004c9
+
+#define REG_A6XX_RBBM_PERFCTR_SP_18_LO                         0x000004ca
+
+#define REG_A6XX_RBBM_PERFCTR_SP_18_HI                         0x000004cb
+
+#define REG_A6XX_RBBM_PERFCTR_SP_19_LO                         0x000004cc
+
+#define REG_A6XX_RBBM_PERFCTR_SP_19_HI                         0x000004cd
+
+#define REG_A6XX_RBBM_PERFCTR_SP_20_LO                         0x000004ce
+
+#define REG_A6XX_RBBM_PERFCTR_SP_20_HI                         0x000004cf
+
+#define REG_A6XX_RBBM_PERFCTR_SP_21_LO                         0x000004d0
+
+#define REG_A6XX_RBBM_PERFCTR_SP_21_HI                         0x000004d1
+
+#define REG_A6XX_RBBM_PERFCTR_SP_22_LO                         0x000004d2
+
+#define REG_A6XX_RBBM_PERFCTR_SP_22_HI                         0x000004d3
+
+#define REG_A6XX_RBBM_PERFCTR_SP_23_LO                         0x000004d4
+
+#define REG_A6XX_RBBM_PERFCTR_SP_23_HI                         0x000004d5
+
+#define REG_A6XX_RBBM_PERFCTR_RB_0_LO                          0x000004d6
+
+#define REG_A6XX_RBBM_PERFCTR_RB_0_HI                          0x000004d7
+
+#define REG_A6XX_RBBM_PERFCTR_RB_1_LO                          0x000004d8
+
+#define REG_A6XX_RBBM_PERFCTR_RB_1_HI                          0x000004d9
+
+#define REG_A6XX_RBBM_PERFCTR_RB_2_LO                          0x000004da
+
+#define REG_A6XX_RBBM_PERFCTR_RB_2_HI                          0x000004db
+
+#define REG_A6XX_RBBM_PERFCTR_RB_3_LO                          0x000004dc
+
+#define REG_A6XX_RBBM_PERFCTR_RB_3_HI                          0x000004dd
+
+#define REG_A6XX_RBBM_PERFCTR_RB_4_LO                          0x000004de
+
+#define REG_A6XX_RBBM_PERFCTR_RB_4_HI                          0x000004df
+
+#define REG_A6XX_RBBM_PERFCTR_RB_5_LO                          0x000004e0
+
+#define REG_A6XX_RBBM_PERFCTR_RB_5_HI                          0x000004e1
+
+#define REG_A6XX_RBBM_PERFCTR_RB_6_LO                          0x000004e2
+
+#define REG_A6XX_RBBM_PERFCTR_RB_6_HI                          0x000004e3
+
+#define REG_A6XX_RBBM_PERFCTR_RB_7_LO                          0x000004e4
+
+#define REG_A6XX_RBBM_PERFCTR_RB_7_HI                          0x000004e5
+
+#define REG_A6XX_RBBM_PERFCTR_VSC_0_LO                         0x000004e6
+
+#define REG_A6XX_RBBM_PERFCTR_VSC_0_HI                         0x000004e7
+
+#define REG_A6XX_RBBM_PERFCTR_VSC_1_LO                         0x000004e8
+
+#define REG_A6XX_RBBM_PERFCTR_VSC_1_HI                         0x000004e9
+
+#define REG_A6XX_RBBM_PERFCTR_LRZ_0_LO                         0x000004ea
+
+#define REG_A6XX_RBBM_PERFCTR_LRZ_0_HI                         0x000004eb
+
+#define REG_A6XX_RBBM_PERFCTR_LRZ_1_LO                         0x000004ec
+
+#define REG_A6XX_RBBM_PERFCTR_LRZ_1_HI                         0x000004ed
+
+#define REG_A6XX_RBBM_PERFCTR_LRZ_2_LO                         0x000004ee
+
+#define REG_A6XX_RBBM_PERFCTR_LRZ_2_HI                         0x000004ef
+
+#define REG_A6XX_RBBM_PERFCTR_LRZ_3_LO                         0x000004f0
+
+#define REG_A6XX_RBBM_PERFCTR_LRZ_3_HI                         0x000004f1
+
+#define REG_A6XX_RBBM_PERFCTR_CMP_0_LO                         0x000004f2
+
+#define REG_A6XX_RBBM_PERFCTR_CMP_0_HI                         0x000004f3
+
+#define REG_A6XX_RBBM_PERFCTR_CMP_1_LO                         0x000004f4
+
+#define REG_A6XX_RBBM_PERFCTR_CMP_1_HI                         0x000004f5
+
+#define REG_A6XX_RBBM_PERFCTR_CMP_2_LO                         0x000004f6
+
+#define REG_A6XX_RBBM_PERFCTR_CMP_2_HI                         0x000004f7
+
+#define REG_A6XX_RBBM_PERFCTR_CMP_3_LO                         0x000004f8
+
+#define REG_A6XX_RBBM_PERFCTR_CMP_3_HI                         0x000004f9
+
+#define REG_A6XX_RBBM_PERFCTR_CNTL                             0x00000500
+
+#define REG_A6XX_RBBM_PERFCTR_LOAD_CMD0                                0x00000501
+
+#define REG_A6XX_RBBM_PERFCTR_LOAD_CMD1                                0x00000502
+
+#define REG_A6XX_RBBM_PERFCTR_LOAD_CMD2                                0x00000503
+
+#define REG_A6XX_RBBM_PERFCTR_LOAD_CMD3                                0x00000504
+
+#define REG_A6XX_RBBM_PERFCTR_LOAD_VALUE_LO                    0x00000505
+
+#define REG_A6XX_RBBM_PERFCTR_LOAD_VALUE_HI                    0x00000506
+
+#define REG_A6XX_RBBM_PERFCTR_RBBM_SEL_0                       0x00000507
+
+#define REG_A6XX_RBBM_PERFCTR_RBBM_SEL_1                       0x00000508
+
+#define REG_A6XX_RBBM_PERFCTR_RBBM_SEL_2                       0x00000509
+
+#define REG_A6XX_RBBM_PERFCTR_RBBM_SEL_3                       0x0000050a
+
+#define REG_A6XX_RBBM_PERFCTR_GPU_BUSY_MASKED                  0x0000050b
+
+#define REG_A6XX_RBBM_ISDB_CNT                                 0x00000533
+
+#define REG_A6XX_RBBM_SECVID_TRUST_CNTL                                0x0000f400
+
+#define REG_A6XX_RBBM_SECVID_TSB_TRUSTED_BASE_LO               0x0000f800
+
+#define REG_A6XX_RBBM_SECVID_TSB_TRUSTED_BASE_HI               0x0000f801
+
+#define REG_A6XX_RBBM_SECVID_TSB_TRUSTED_SIZE                  0x0000f802
+
+#define REG_A6XX_RBBM_SECVID_TSB_CNTL                          0x0000f803
+
+#define REG_A6XX_RBBM_SECVID_TSB_ADDR_MODE_CNTL                        0x0000f810
+
+#define REG_A6XX_RBBM_VBIF_CLIENT_QOS_CNTL                     0x00000010
+
+#define REG_A6XX_RBBM_INTERFACE_HANG_INT_CNTL                  0x0000001f
+
+#define REG_A6XX_RBBM_INT_CLEAR_CMD                            0x00000037
+
+#define REG_A6XX_RBBM_INT_0_MASK                               0x00000038
+
+#define REG_A6XX_RBBM_SP_HYST_CNT                              0x00000042
+
+#define REG_A6XX_RBBM_SW_RESET_CMD                             0x00000043
+
+#define REG_A6XX_RBBM_RAC_THRESHOLD_CNT                                0x00000044
+
+#define REG_A6XX_RBBM_BLOCK_SW_RESET_CMD                       0x00000045
+
+#define REG_A6XX_RBBM_BLOCK_SW_RESET_CMD2                      0x00000046
+
+#define REG_A6XX_RBBM_CLOCK_CNTL                               0x000000ae
+
+#define REG_A6XX_RBBM_CLOCK_CNTL_SP0                           0x000000b0
+
+#define REG_A6XX_RBBM_CLOCK_CNTL_SP1                           0x000000b1
+
+#define REG_A6XX_RBBM_CLOCK_CNTL_SP2                           0x000000b2
+
+#define REG_A6XX_RBBM_CLOCK_CNTL_SP3                           0x000000b3
+
+#define REG_A6XX_RBBM_CLOCK_CNTL2_SP0                          0x000000b4
+
+#define REG_A6XX_RBBM_CLOCK_CNTL2_SP1                          0x000000b5
+
+#define REG_A6XX_RBBM_CLOCK_CNTL2_SP2                          0x000000b6
+
+#define REG_A6XX_RBBM_CLOCK_CNTL2_SP3                          0x000000b7
+
+#define REG_A6XX_RBBM_CLOCK_DELAY_SP0                          0x000000b8
+
+#define REG_A6XX_RBBM_CLOCK_DELAY_SP1                          0x000000b9
+
+#define REG_A6XX_RBBM_CLOCK_DELAY_SP2                          0x000000ba
+
+#define REG_A6XX_RBBM_CLOCK_DELAY_SP3                          0x000000bb
+
+#define REG_A6XX_RBBM_CLOCK_HYST_SP0                           0x000000bc
+
+#define REG_A6XX_RBBM_CLOCK_HYST_SP1                           0x000000bd
+
+#define REG_A6XX_RBBM_CLOCK_HYST_SP2                           0x000000be
+
+#define REG_A6XX_RBBM_CLOCK_HYST_SP3                           0x000000bf
+
+#define REG_A6XX_RBBM_CLOCK_CNTL_TP0                           0x000000c0
+
+#define REG_A6XX_RBBM_CLOCK_CNTL_TP1                           0x000000c1
+
+#define REG_A6XX_RBBM_CLOCK_CNTL_TP2                           0x000000c2
+
+#define REG_A6XX_RBBM_CLOCK_CNTL_TP3                           0x000000c3
+
+#define REG_A6XX_RBBM_CLOCK_CNTL2_TP0                          0x000000c4
+
+#define REG_A6XX_RBBM_CLOCK_CNTL2_TP1                          0x000000c5
+
+#define REG_A6XX_RBBM_CLOCK_CNTL2_TP2                          0x000000c6
+
+#define REG_A6XX_RBBM_CLOCK_CNTL2_TP3                          0x000000c7
+
+#define REG_A6XX_RBBM_CLOCK_CNTL3_TP0                          0x000000c8
+
+#define REG_A6XX_RBBM_CLOCK_CNTL3_TP1                          0x000000c9
+
+#define REG_A6XX_RBBM_CLOCK_CNTL3_TP2                          0x000000ca
+
+#define REG_A6XX_RBBM_CLOCK_CNTL3_TP3                          0x000000cb
+
+#define REG_A6XX_RBBM_CLOCK_CNTL4_TP0                          0x000000cc
+
+#define REG_A6XX_RBBM_CLOCK_CNTL4_TP1                          0x000000cd
+
+#define REG_A6XX_RBBM_CLOCK_CNTL4_TP2                          0x000000ce
+
+#define REG_A6XX_RBBM_CLOCK_CNTL4_TP3                          0x000000cf
+
+#define REG_A6XX_RBBM_CLOCK_DELAY_TP0                          0x000000d0
+
+#define REG_A6XX_RBBM_CLOCK_DELAY_TP1                          0x000000d1
+
+#define REG_A6XX_RBBM_CLOCK_DELAY_TP2                          0x000000d2
+
+#define REG_A6XX_RBBM_CLOCK_DELAY_TP3                          0x000000d3
+
+#define REG_A6XX_RBBM_CLOCK_DELAY2_TP0                         0x000000d4
+
+#define REG_A6XX_RBBM_CLOCK_DELAY2_TP1                         0x000000d5
+
+#define REG_A6XX_RBBM_CLOCK_DELAY2_TP2                         0x000000d6
+
+#define REG_A6XX_RBBM_CLOCK_DELAY2_TP3                         0x000000d7
+
+#define REG_A6XX_RBBM_CLOCK_DELAY3_TP0                         0x000000d8
+
+#define REG_A6XX_RBBM_CLOCK_DELAY3_TP1                         0x000000d9
+
+#define REG_A6XX_RBBM_CLOCK_DELAY3_TP2                         0x000000da
+
+#define REG_A6XX_RBBM_CLOCK_DELAY3_TP3                         0x000000db
+
+#define REG_A6XX_RBBM_CLOCK_DELAY4_TP0                         0x000000dc
+
+#define REG_A6XX_RBBM_CLOCK_DELAY4_TP1                         0x000000dd
+
+#define REG_A6XX_RBBM_CLOCK_DELAY4_TP2                         0x000000de
+
+#define REG_A6XX_RBBM_CLOCK_DELAY4_TP3                         0x000000df
+
+#define REG_A6XX_RBBM_CLOCK_HYST_TP0                           0x000000e0
+
+#define REG_A6XX_RBBM_CLOCK_HYST_TP1                           0x000000e1
+
+#define REG_A6XX_RBBM_CLOCK_HYST_TP2                           0x000000e2
+
+#define REG_A6XX_RBBM_CLOCK_HYST_TP3                           0x000000e3
+
+#define REG_A6XX_RBBM_CLOCK_HYST2_TP0                          0x000000e4
+
+#define REG_A6XX_RBBM_CLOCK_HYST2_TP1                          0x000000e5
+
+#define REG_A6XX_RBBM_CLOCK_HYST2_TP2                          0x000000e6
+
+#define REG_A6XX_RBBM_CLOCK_HYST2_TP3                          0x000000e7
+
+#define REG_A6XX_RBBM_CLOCK_HYST3_TP0                          0x000000e8
+
+#define REG_A6XX_RBBM_CLOCK_HYST3_TP1                          0x000000e9
+
+#define REG_A6XX_RBBM_CLOCK_HYST3_TP2                          0x000000ea
+
+#define REG_A6XX_RBBM_CLOCK_HYST3_TP3                          0x000000eb
+
+#define REG_A6XX_RBBM_CLOCK_HYST4_TP0                          0x000000ec
+
+#define REG_A6XX_RBBM_CLOCK_HYST4_TP1                          0x000000ed
+
+#define REG_A6XX_RBBM_CLOCK_HYST4_TP2                          0x000000ee
+
+#define REG_A6XX_RBBM_CLOCK_HYST4_TP3                          0x000000ef
+
+#define REG_A6XX_RBBM_CLOCK_CNTL_RB0                           0x000000f0
+
+#define REG_A6XX_RBBM_CLOCK_CNTL_RB1                           0x000000f1
+
+#define REG_A6XX_RBBM_CLOCK_CNTL_RB2                           0x000000f2
+
+#define REG_A6XX_RBBM_CLOCK_CNTL_RB3                           0x000000f3
+
+#define REG_A6XX_RBBM_CLOCK_CNTL2_RB0                          0x000000f4
+
+#define REG_A6XX_RBBM_CLOCK_CNTL2_RB1                          0x000000f5
+
+#define REG_A6XX_RBBM_CLOCK_CNTL2_RB2                          0x000000f6
+
+#define REG_A6XX_RBBM_CLOCK_CNTL2_RB3                          0x000000f7
+
+#define REG_A6XX_RBBM_CLOCK_CNTL_CCU0                          0x000000f8
+
+#define REG_A6XX_RBBM_CLOCK_CNTL_CCU1                          0x000000f9
+
+#define REG_A6XX_RBBM_CLOCK_CNTL_CCU2                          0x000000fa
+
+#define REG_A6XX_RBBM_CLOCK_CNTL_CCU3                          0x000000fb
+
+#define REG_A6XX_RBBM_CLOCK_HYST_RB_CCU0                       0x00000100
+
+#define REG_A6XX_RBBM_CLOCK_HYST_RB_CCU1                       0x00000101
+
+#define REG_A6XX_RBBM_CLOCK_HYST_RB_CCU2                       0x00000102
+
+#define REG_A6XX_RBBM_CLOCK_HYST_RB_CCU3                       0x00000103
+
+#define REG_A6XX_RBBM_CLOCK_CNTL_RAC                           0x00000104
+
+#define REG_A6XX_RBBM_CLOCK_CNTL2_RAC                          0x00000105
+
+#define REG_A6XX_RBBM_CLOCK_DELAY_RAC                          0x00000106
+
+#define REG_A6XX_RBBM_CLOCK_HYST_RAC                           0x00000107
+
+#define REG_A6XX_RBBM_CLOCK_CNTL_TSE_RAS_RBBM                  0x00000108
+
+#define REG_A6XX_RBBM_CLOCK_DELAY_TSE_RAS_RBBM                 0x00000109
+
+#define REG_A6XX_RBBM_CLOCK_HYST_TSE_RAS_RBBM                  0x0000010a
+
+#define REG_A6XX_RBBM_CLOCK_CNTL_UCHE                          0x0000010b
+
+#define REG_A6XX_RBBM_CLOCK_CNTL2_UCHE                         0x0000010c
+
+#define REG_A6XX_RBBM_CLOCK_CNTL3_UCHE                         0x0000010d
+
+#define REG_A6XX_RBBM_CLOCK_CNTL4_UCHE                         0x0000010e
+
+#define REG_A6XX_RBBM_CLOCK_DELAY_UCHE                         0x0000010f
+
+#define REG_A6XX_RBBM_CLOCK_HYST_UCHE                          0x00000110
+
+#define REG_A6XX_RBBM_CLOCK_MODE_VFD                           0x00000111
+
+#define REG_A6XX_RBBM_CLOCK_DELAY_VFD                          0x00000112
+
+#define REG_A6XX_RBBM_CLOCK_HYST_VFD                           0x00000113
+
+#define REG_A6XX_RBBM_CLOCK_MODE_GPC                           0x00000114
+
+#define REG_A6XX_RBBM_CLOCK_DELAY_GPC                          0x00000115
+
+#define REG_A6XX_RBBM_CLOCK_HYST_GPC                           0x00000116
+
+#define REG_A6XX_RBBM_CLOCK_DELAY_HLSQ_2                       0x00000117
+
+#define REG_A6XX_RBBM_CLOCK_CNTL_GMU_GX                                0x00000118
+
+#define REG_A6XX_RBBM_CLOCK_DELAY_GMU_GX                       0x00000119
+
+#define REG_A6XX_RBBM_CLOCK_HYST_GMU_GX                                0x0000011a
+
+#define REG_A6XX_RBBM_CLOCK_MODE_HLSQ                          0x0000011b
+
+#define REG_A6XX_RBBM_CLOCK_DELAY_HLSQ                         0x0000011c
+
+#define REG_A6XX_DBGC_CFG_DBGBUS_SEL_A                         0x00000600
+
+#define REG_A6XX_DBGC_CFG_DBGBUS_SEL_B                         0x00000601
+
+#define REG_A6XX_DBGC_CFG_DBGBUS_SEL_C                         0x00000602
+
+#define REG_A6XX_DBGC_CFG_DBGBUS_SEL_D                         0x00000603
+#define A6XX_DBGC_CFG_DBGBUS_SEL_D_PING_INDEX__MASK            0x000000ff
+#define A6XX_DBGC_CFG_DBGBUS_SEL_D_PING_INDEX__SHIFT           0
+static inline uint32_t A6XX_DBGC_CFG_DBGBUS_SEL_D_PING_INDEX(uint32_t val)
+{
+       return ((val) << A6XX_DBGC_CFG_DBGBUS_SEL_D_PING_INDEX__SHIFT) & A6XX_DBGC_CFG_DBGBUS_SEL_D_PING_INDEX__MASK;
+}
+#define A6XX_DBGC_CFG_DBGBUS_SEL_D_PING_BLK_SEL__MASK          0x0000ff00
+#define A6XX_DBGC_CFG_DBGBUS_SEL_D_PING_BLK_SEL__SHIFT         8
+static inline uint32_t A6XX_DBGC_CFG_DBGBUS_SEL_D_PING_BLK_SEL(uint32_t val)
+{
+       return ((val) << A6XX_DBGC_CFG_DBGBUS_SEL_D_PING_BLK_SEL__SHIFT) & A6XX_DBGC_CFG_DBGBUS_SEL_D_PING_BLK_SEL__MASK;
+}
+
+#define REG_A6XX_DBGC_CFG_DBGBUS_CNTLT                         0x00000604
+#define A6XX_DBGC_CFG_DBGBUS_CNTLT_TRACEEN__MASK               0x0000003f
+#define A6XX_DBGC_CFG_DBGBUS_CNTLT_TRACEEN__SHIFT              0
+static inline uint32_t A6XX_DBGC_CFG_DBGBUS_CNTLT_TRACEEN(uint32_t val)
+{
+       return ((val) << A6XX_DBGC_CFG_DBGBUS_CNTLT_TRACEEN__SHIFT) & A6XX_DBGC_CFG_DBGBUS_CNTLT_TRACEEN__MASK;
+}
+#define A6XX_DBGC_CFG_DBGBUS_CNTLT_GRANU__MASK                 0x00007000
+#define A6XX_DBGC_CFG_DBGBUS_CNTLT_GRANU__SHIFT                        12
+static inline uint32_t A6XX_DBGC_CFG_DBGBUS_CNTLT_GRANU(uint32_t val)
+{
+       return ((val) << A6XX_DBGC_CFG_DBGBUS_CNTLT_GRANU__SHIFT) & A6XX_DBGC_CFG_DBGBUS_CNTLT_GRANU__MASK;
+}
+#define A6XX_DBGC_CFG_DBGBUS_CNTLT_SEGT__MASK                  0xf0000000
+#define A6XX_DBGC_CFG_DBGBUS_CNTLT_SEGT__SHIFT                 28
+static inline uint32_t A6XX_DBGC_CFG_DBGBUS_CNTLT_SEGT(uint32_t val)
+{
+       return ((val) << A6XX_DBGC_CFG_DBGBUS_CNTLT_SEGT__SHIFT) & A6XX_DBGC_CFG_DBGBUS_CNTLT_SEGT__MASK;
+}
+
+#define REG_A6XX_DBGC_CFG_DBGBUS_CNTLM                         0x00000605
+#define A6XX_DBGC_CFG_DBGBUS_CNTLM_ENABLE__MASK                        0x0f000000
+#define A6XX_DBGC_CFG_DBGBUS_CNTLM_ENABLE__SHIFT               24
+static inline uint32_t A6XX_DBGC_CFG_DBGBUS_CNTLM_ENABLE(uint32_t val)
+{
+       return ((val) << A6XX_DBGC_CFG_DBGBUS_CNTLM_ENABLE__SHIFT) & A6XX_DBGC_CFG_DBGBUS_CNTLM_ENABLE__MASK;
+}
+
+#define REG_A6XX_DBGC_CFG_DBGBUS_IVTL_0                                0x00000608
+
+#define REG_A6XX_DBGC_CFG_DBGBUS_IVTL_1                                0x00000609
+
+#define REG_A6XX_DBGC_CFG_DBGBUS_IVTL_2                                0x0000060a
+
+#define REG_A6XX_DBGC_CFG_DBGBUS_IVTL_3                                0x0000060b
+
+#define REG_A6XX_DBGC_CFG_DBGBUS_MASKL_0                       0x0000060c
+
+#define REG_A6XX_DBGC_CFG_DBGBUS_MASKL_1                       0x0000060d
+
+#define REG_A6XX_DBGC_CFG_DBGBUS_MASKL_2                       0x0000060e
+
+#define REG_A6XX_DBGC_CFG_DBGBUS_MASKL_3                       0x0000060f
+
+#define REG_A6XX_DBGC_CFG_DBGBUS_BYTEL_0                       0x00000610
+#define A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL0__MASK              0x0000000f
+#define A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL0__SHIFT             0
+static inline uint32_t A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL0(uint32_t val)
+{
+       return ((val) << A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL0__SHIFT) & A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL0__MASK;
+}
+#define A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL1__MASK              0x000000f0
+#define A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL1__SHIFT             4
+static inline uint32_t A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL1(uint32_t val)
+{
+       return ((val) << A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL1__SHIFT) & A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL1__MASK;
+}
+#define A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL2__MASK              0x00000f00
+#define A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL2__SHIFT             8
+static inline uint32_t A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL2(uint32_t val)
+{
+       return ((val) << A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL2__SHIFT) & A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL2__MASK;
+}
+#define A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL3__MASK              0x0000f000
+#define A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL3__SHIFT             12
+static inline uint32_t A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL3(uint32_t val)
+{
+       return ((val) << A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL3__SHIFT) & A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL3__MASK;
+}
+#define A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL4__MASK              0x000f0000
+#define A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL4__SHIFT             16
+static inline uint32_t A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL4(uint32_t val)
+{
+       return ((val) << A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL4__SHIFT) & A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL4__MASK;
+}
+#define A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL5__MASK              0x00f00000
+#define A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL5__SHIFT             20
+static inline uint32_t A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL5(uint32_t val)
+{
+       return ((val) << A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL5__SHIFT) & A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL5__MASK;
+}
+#define A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL6__MASK              0x0f000000
+#define A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL6__SHIFT             24
+static inline uint32_t A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL6(uint32_t val)
+{
+       return ((val) << A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL6__SHIFT) & A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL6__MASK;
+}
+#define A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL7__MASK              0xf0000000
+#define A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL7__SHIFT             28
+static inline uint32_t A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL7(uint32_t val)
+{
+       return ((val) << A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL7__SHIFT) & A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL7__MASK;
+}
+
+#define REG_A6XX_DBGC_CFG_DBGBUS_BYTEL_1                       0x00000611
+#define A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL8__MASK              0x0000000f
+#define A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL8__SHIFT             0
+static inline uint32_t A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL8(uint32_t val)
+{
+       return ((val) << A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL8__SHIFT) & A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL8__MASK;
+}
+#define A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL9__MASK              0x000000f0
+#define A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL9__SHIFT             4
+static inline uint32_t A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL9(uint32_t val)
+{
+       return ((val) << A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL9__SHIFT) & A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL9__MASK;
+}
+#define A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL10__MASK             0x00000f00
+#define A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL10__SHIFT            8
+static inline uint32_t A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL10(uint32_t val)
+{
+       return ((val) << A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL10__SHIFT) & A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL10__MASK;
+}
+#define A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL11__MASK             0x0000f000
+#define A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL11__SHIFT            12
+static inline uint32_t A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL11(uint32_t val)
+{
+       return ((val) << A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL11__SHIFT) & A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL11__MASK;
+}
+#define A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL12__MASK             0x000f0000
+#define A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL12__SHIFT            16
+static inline uint32_t A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL12(uint32_t val)
+{
+       return ((val) << A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL12__SHIFT) & A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL12__MASK;
+}
+#define A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL13__MASK             0x00f00000
+#define A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL13__SHIFT            20
+static inline uint32_t A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL13(uint32_t val)
+{
+       return ((val) << A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL13__SHIFT) & A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL13__MASK;
+}
+#define A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL14__MASK             0x0f000000
+#define A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL14__SHIFT            24
+static inline uint32_t A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL14(uint32_t val)
+{
+       return ((val) << A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL14__SHIFT) & A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL14__MASK;
+}
+#define A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL15__MASK             0xf0000000
+#define A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL15__SHIFT            28
+static inline uint32_t A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL15(uint32_t val)
+{
+       return ((val) << A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL15__SHIFT) & A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL15__MASK;
+}
+
+#define REG_A6XX_DBGC_CFG_DBGBUS_TRACE_BUF1                    0x0000062f
+
+#define REG_A6XX_DBGC_CFG_DBGBUS_TRACE_BUF2                    0x00000630
+
+#define REG_A6XX_VSC_PERFCTR_VSC_SEL_0                         0x00000cd8
+
+#define REG_A6XX_VSC_PERFCTR_VSC_SEL_1                         0x00000cd9
+
+#define REG_A6XX_GRAS_ADDR_MODE_CNTL                           0x00008601
+
+#define REG_A6XX_GRAS_PERFCTR_TSE_SEL_0                                0x00008610
+
+#define REG_A6XX_GRAS_PERFCTR_TSE_SEL_1                                0x00008611
+
+#define REG_A6XX_GRAS_PERFCTR_TSE_SEL_2                                0x00008612
+
+#define REG_A6XX_GRAS_PERFCTR_TSE_SEL_3                                0x00008613
+
+#define REG_A6XX_GRAS_PERFCTR_RAS_SEL_0                                0x00008614
+
+#define REG_A6XX_GRAS_PERFCTR_RAS_SEL_1                                0x00008615
+
+#define REG_A6XX_GRAS_PERFCTR_RAS_SEL_2                                0x00008616
+
+#define REG_A6XX_GRAS_PERFCTR_RAS_SEL_3                                0x00008617
+
+#define REG_A6XX_GRAS_PERFCTR_LRZ_SEL_0                                0x00008618
+
+#define REG_A6XX_GRAS_PERFCTR_LRZ_SEL_1                                0x00008619
+
+#define REG_A6XX_GRAS_PERFCTR_LRZ_SEL_2                                0x0000861a
+
+#define REG_A6XX_GRAS_PERFCTR_LRZ_SEL_3                                0x0000861b
+
+#define REG_A6XX_RB_ADDR_MODE_CNTL                             0x00008e05
+
+#define REG_A6XX_RB_NC_MODE_CNTL                               0x00008e08
+
+#define REG_A6XX_RB_PERFCTR_RB_SEL_0                           0x00008e10
+
+#define REG_A6XX_RB_PERFCTR_RB_SEL_1                           0x00008e11
+
+#define REG_A6XX_RB_PERFCTR_RB_SEL_2                           0x00008e12
+
+#define REG_A6XX_RB_PERFCTR_RB_SEL_3                           0x00008e13
+
+#define REG_A6XX_RB_PERFCTR_RB_SEL_4                           0x00008e14
+
+#define REG_A6XX_RB_PERFCTR_RB_SEL_5                           0x00008e15
+
+#define REG_A6XX_RB_PERFCTR_RB_SEL_6                           0x00008e16
+
+#define REG_A6XX_RB_PERFCTR_RB_SEL_7                           0x00008e17
+
+#define REG_A6XX_RB_PERFCTR_CCU_SEL_0                          0x00008e18
+
+#define REG_A6XX_RB_PERFCTR_CCU_SEL_1                          0x00008e19
+
+#define REG_A6XX_RB_PERFCTR_CCU_SEL_2                          0x00008e1a
+
+#define REG_A6XX_RB_PERFCTR_CCU_SEL_3                          0x00008e1b
+
+#define REG_A6XX_RB_PERFCTR_CCU_SEL_4                          0x00008e1c
+
+#define REG_A6XX_RB_PERFCTR_CMP_SEL_0                          0x00008e2c
+
+#define REG_A6XX_RB_PERFCTR_CMP_SEL_1                          0x00008e2d
+
+#define REG_A6XX_RB_PERFCTR_CMP_SEL_2                          0x00008e2e
+
+#define REG_A6XX_RB_PERFCTR_CMP_SEL_3                          0x00008e2f
+
+#define REG_A6XX_RB_RB_SUB_BLOCK_SEL_CNTL_CD                   0x00008e3d
+
+#define REG_A6XX_RB_CONTEXT_SWITCH_GMEM_SAVE_RESTORE           0x00008e50
+
+#define REG_A6XX_PC_DBG_ECO_CNTL                               0x00009e00
+
+#define REG_A6XX_PC_ADDR_MODE_CNTL                             0x00009e01
+
+#define REG_A6XX_PC_PERFCTR_PC_SEL_0                           0x00009e34
+
+#define REG_A6XX_PC_PERFCTR_PC_SEL_1                           0x00009e35
+
+#define REG_A6XX_PC_PERFCTR_PC_SEL_2                           0x00009e36
+
+#define REG_A6XX_PC_PERFCTR_PC_SEL_3                           0x00009e37
+
+#define REG_A6XX_PC_PERFCTR_PC_SEL_4                           0x00009e38
+
+#define REG_A6XX_PC_PERFCTR_PC_SEL_5                           0x00009e39
+
+#define REG_A6XX_PC_PERFCTR_PC_SEL_6                           0x00009e3a
+
+#define REG_A6XX_PC_PERFCTR_PC_SEL_7                           0x00009e3b
+
+#define REG_A6XX_HLSQ_ADDR_MODE_CNTL                           0x0000be05
+
+#define REG_A6XX_HLSQ_PERFCTR_HLSQ_SEL_0                       0x0000be10
+
+#define REG_A6XX_HLSQ_PERFCTR_HLSQ_SEL_1                       0x0000be11
+
+#define REG_A6XX_HLSQ_PERFCTR_HLSQ_SEL_2                       0x0000be12
+
+#define REG_A6XX_HLSQ_PERFCTR_HLSQ_SEL_3                       0x0000be13
+
+#define REG_A6XX_HLSQ_PERFCTR_HLSQ_SEL_4                       0x0000be14
+
+#define REG_A6XX_HLSQ_PERFCTR_HLSQ_SEL_5                       0x0000be15
+
+#define REG_A6XX_HLSQ_DBG_AHB_READ_APERTURE                    0x0000c800
+
+#define REG_A6XX_HLSQ_DBG_READ_SEL                             0x0000d000
+
+#define REG_A6XX_VFD_ADDR_MODE_CNTL                            0x0000a601
+
+#define REG_A6XX_VFD_PERFCTR_VFD_SEL_0                         0x0000a610
+
+#define REG_A6XX_VFD_PERFCTR_VFD_SEL_1                         0x0000a611
+
+#define REG_A6XX_VFD_PERFCTR_VFD_SEL_2                         0x0000a612
+
+#define REG_A6XX_VFD_PERFCTR_VFD_SEL_3                         0x0000a613
+
+#define REG_A6XX_VFD_PERFCTR_VFD_SEL_4                         0x0000a614
+
+#define REG_A6XX_VFD_PERFCTR_VFD_SEL_5                         0x0000a615
+
+#define REG_A6XX_VFD_PERFCTR_VFD_SEL_6                         0x0000a616
+
+#define REG_A6XX_VFD_PERFCTR_VFD_SEL_7                         0x0000a617
+
+#define REG_A6XX_VPC_ADDR_MODE_CNTL                            0x00009601
+
+#define REG_A6XX_VPC_PERFCTR_VPC_SEL_0                         0x00009604
+
+#define REG_A6XX_VPC_PERFCTR_VPC_SEL_1                         0x00009605
+
+#define REG_A6XX_VPC_PERFCTR_VPC_SEL_2                         0x00009606
+
+#define REG_A6XX_VPC_PERFCTR_VPC_SEL_3                         0x00009607
+
+#define REG_A6XX_VPC_PERFCTR_VPC_SEL_4                         0x00009608
+
+#define REG_A6XX_VPC_PERFCTR_VPC_SEL_5                         0x00009609
+
+#define REG_A6XX_UCHE_ADDR_MODE_CNTL                           0x00000e00
+
+#define REG_A6XX_UCHE_MODE_CNTL                                        0x00000e01
+
+#define REG_A6XX_UCHE_WRITE_RANGE_MAX_LO                       0x00000e05
+
+#define REG_A6XX_UCHE_WRITE_RANGE_MAX_HI                       0x00000e06
+
+#define REG_A6XX_UCHE_WRITE_THRU_BASE_LO                       0x00000e07
+
+#define REG_A6XX_UCHE_WRITE_THRU_BASE_HI                       0x00000e08
+
+#define REG_A6XX_UCHE_TRAP_BASE_LO                             0x00000e09
+
+#define REG_A6XX_UCHE_TRAP_BASE_HI                             0x00000e0a
+
+#define REG_A6XX_UCHE_GMEM_RANGE_MIN_LO                                0x00000e0b
+
+#define REG_A6XX_UCHE_GMEM_RANGE_MIN_HI                                0x00000e0c
+
+#define REG_A6XX_UCHE_GMEM_RANGE_MAX_LO                                0x00000e0d
+
+#define REG_A6XX_UCHE_GMEM_RANGE_MAX_HI                                0x00000e0e
+
+#define REG_A6XX_UCHE_CACHE_WAYS                               0x00000e17
+
+#define REG_A6XX_UCHE_FILTER_CNTL                              0x00000e18
+
+#define REG_A6XX_UCHE_CLIENT_PF                                        0x00000e19
+#define A6XX_UCHE_CLIENT_PF_PERFSEL__MASK                      0x000000ff
+#define A6XX_UCHE_CLIENT_PF_PERFSEL__SHIFT                     0
+static inline uint32_t A6XX_UCHE_CLIENT_PF_PERFSEL(uint32_t val)
+{
+       return ((val) << A6XX_UCHE_CLIENT_PF_PERFSEL__SHIFT) & A6XX_UCHE_CLIENT_PF_PERFSEL__MASK;
+}
+
+#define REG_A6XX_UCHE_PERFCTR_UCHE_SEL_0                       0x00000e1c
+
+#define REG_A6XX_UCHE_PERFCTR_UCHE_SEL_1                       0x00000e1d
+
+#define REG_A6XX_UCHE_PERFCTR_UCHE_SEL_2                       0x00000e1e
+
+#define REG_A6XX_UCHE_PERFCTR_UCHE_SEL_3                       0x00000e1f
+
+#define REG_A6XX_UCHE_PERFCTR_UCHE_SEL_4                       0x00000e20
+
+#define REG_A6XX_UCHE_PERFCTR_UCHE_SEL_5                       0x00000e21
+
+#define REG_A6XX_UCHE_PERFCTR_UCHE_SEL_6                       0x00000e22
+
+#define REG_A6XX_UCHE_PERFCTR_UCHE_SEL_7                       0x00000e23
+
+#define REG_A6XX_UCHE_PERFCTR_UCHE_SEL_8                       0x00000e24
+
+#define REG_A6XX_UCHE_PERFCTR_UCHE_SEL_9                       0x00000e25
+
+#define REG_A6XX_UCHE_PERFCTR_UCHE_SEL_10                      0x00000e26
+
+#define REG_A6XX_UCHE_PERFCTR_UCHE_SEL_11                      0x00000e27
+
+#define REG_A6XX_SP_ADDR_MODE_CNTL                             0x0000ae01
+
+#define REG_A6XX_SP_NC_MODE_CNTL                               0x0000ae02
+
+#define REG_A6XX_SP_PERFCTR_SP_SEL_0                           0x0000ae10
+
+#define REG_A6XX_SP_PERFCTR_SP_SEL_1                           0x0000ae11
+
+#define REG_A6XX_SP_PERFCTR_SP_SEL_2                           0x0000ae12
+
+#define REG_A6XX_SP_PERFCTR_SP_SEL_3                           0x0000ae13
+
+#define REG_A6XX_SP_PERFCTR_SP_SEL_4                           0x0000ae14
+
+#define REG_A6XX_SP_PERFCTR_SP_SEL_5                           0x0000ae15
+
+#define REG_A6XX_SP_PERFCTR_SP_SEL_6                           0x0000ae16
+
+#define REG_A6XX_SP_PERFCTR_SP_SEL_7                           0x0000ae17
+
+#define REG_A6XX_SP_PERFCTR_SP_SEL_8                           0x0000ae18
+
+#define REG_A6XX_SP_PERFCTR_SP_SEL_9                           0x0000ae19
+
+#define REG_A6XX_SP_PERFCTR_SP_SEL_10                          0x0000ae1a
+
+#define REG_A6XX_SP_PERFCTR_SP_SEL_11                          0x0000ae1b
+
+#define REG_A6XX_SP_PERFCTR_SP_SEL_12                          0x0000ae1c
+
+#define REG_A6XX_SP_PERFCTR_SP_SEL_13                          0x0000ae1d
+
+#define REG_A6XX_SP_PERFCTR_SP_SEL_14                          0x0000ae1e
+
+#define REG_A6XX_SP_PERFCTR_SP_SEL_15                          0x0000ae1f
+
+#define REG_A6XX_SP_PERFCTR_SP_SEL_16                          0x0000ae20
+
+#define REG_A6XX_SP_PERFCTR_SP_SEL_17                          0x0000ae21
+
+#define REG_A6XX_SP_PERFCTR_SP_SEL_18                          0x0000ae22
+
+#define REG_A6XX_SP_PERFCTR_SP_SEL_19                          0x0000ae23
+
+#define REG_A6XX_SP_PERFCTR_SP_SEL_20                          0x0000ae24
+
+#define REG_A6XX_SP_PERFCTR_SP_SEL_21                          0x0000ae25
+
+#define REG_A6XX_SP_PERFCTR_SP_SEL_22                          0x0000ae26
+
+#define REG_A6XX_SP_PERFCTR_SP_SEL_23                          0x0000ae27
+
+#define REG_A6XX_TPL1_ADDR_MODE_CNTL                           0x0000b601
+
+#define REG_A6XX_TPL1_NC_MODE_CNTL                             0x0000b604
+
+#define REG_A6XX_TPL1_PERFCTR_TP_SEL_0                         0x0000b610
+
+#define REG_A6XX_TPL1_PERFCTR_TP_SEL_1                         0x0000b611
+
+#define REG_A6XX_TPL1_PERFCTR_TP_SEL_2                         0x0000b612
+
+#define REG_A6XX_TPL1_PERFCTR_TP_SEL_3                         0x0000b613
+
+#define REG_A6XX_TPL1_PERFCTR_TP_SEL_4                         0x0000b614
+
+#define REG_A6XX_TPL1_PERFCTR_TP_SEL_5                         0x0000b615
+
+#define REG_A6XX_TPL1_PERFCTR_TP_SEL_6                         0x0000b616
+
+#define REG_A6XX_TPL1_PERFCTR_TP_SEL_7                         0x0000b617
+
+#define REG_A6XX_TPL1_PERFCTR_TP_SEL_8                         0x0000b618
+
+#define REG_A6XX_TPL1_PERFCTR_TP_SEL_9                         0x0000b619
+
+#define REG_A6XX_TPL1_PERFCTR_TP_SEL_10                                0x0000b61a
+
+#define REG_A6XX_TPL1_PERFCTR_TP_SEL_11                                0x0000b61b
+
+#define REG_A6XX_VBIF_VERSION                                  0x00003000
+
+#define REG_A6XX_VBIF_GATE_OFF_WRREQ_EN                                0x0000302a
+
+#define REG_A6XX_VBIF_XIN_HALT_CTRL0                           0x00003080
+
+#define REG_A6XX_VBIF_XIN_HALT_CTRL1                           0x00003081
+
+#define REG_A6XX_VBIF_PERF_CNT_SEL0                            0x000030d0
+
+#define REG_A6XX_VBIF_PERF_CNT_SEL1                            0x000030d1
+
+#define REG_A6XX_VBIF_PERF_CNT_SEL2                            0x000030d2
+
+#define REG_A6XX_VBIF_PERF_CNT_SEL3                            0x000030d3
+
+#define REG_A6XX_VBIF_PERF_CNT_LOW0                            0x000030d8
+
+#define REG_A6XX_VBIF_PERF_CNT_LOW1                            0x000030d9
+
+#define REG_A6XX_VBIF_PERF_CNT_LOW2                            0x000030da
+
+#define REG_A6XX_VBIF_PERF_CNT_LOW3                            0x000030db
+
+#define REG_A6XX_VBIF_PERF_CNT_HIGH0                           0x000030e0
+
+#define REG_A6XX_VBIF_PERF_CNT_HIGH1                           0x000030e1
+
+#define REG_A6XX_VBIF_PERF_CNT_HIGH2                           0x000030e2
+
+#define REG_A6XX_VBIF_PERF_CNT_HIGH3                           0x000030e3
+
+#define REG_A6XX_VBIF_PERF_PWR_CNT_EN0                         0x00003100
+
+#define REG_A6XX_VBIF_PERF_PWR_CNT_EN1                         0x00003101
+
+#define REG_A6XX_VBIF_PERF_PWR_CNT_EN2                         0x00003102
+
+#define REG_A6XX_VBIF_PERF_PWR_CNT_LOW0                                0x00003110
+
+#define REG_A6XX_VBIF_PERF_PWR_CNT_LOW1                                0x00003111
+
+#define REG_A6XX_VBIF_PERF_PWR_CNT_LOW2                                0x00003112
+
+#define REG_A6XX_VBIF_PERF_PWR_CNT_HIGH0                       0x00003118
+
+#define REG_A6XX_VBIF_PERF_PWR_CNT_HIGH1                       0x00003119
+
+#define REG_A6XX_VBIF_PERF_PWR_CNT_HIGH2                       0x0000311a
+
+#define REG_A6XX_CX_DBGC_CFG_DBGBUS_SEL_A                      0x00018400
+
+#define REG_A6XX_CX_DBGC_CFG_DBGBUS_SEL_B                      0x00018401
+
+#define REG_A6XX_CX_DBGC_CFG_DBGBUS_SEL_C                      0x00018402
+
+#define REG_A6XX_CX_DBGC_CFG_DBGBUS_SEL_D                      0x00018403
+#define A6XX_CX_DBGC_CFG_DBGBUS_SEL_D_PING_INDEX__MASK         0x000000ff
+#define A6XX_CX_DBGC_CFG_DBGBUS_SEL_D_PING_INDEX__SHIFT                0
+static inline uint32_t A6XX_CX_DBGC_CFG_DBGBUS_SEL_D_PING_INDEX(uint32_t val)
+{
+       return ((val) << A6XX_CX_DBGC_CFG_DBGBUS_SEL_D_PING_INDEX__SHIFT) & A6XX_CX_DBGC_CFG_DBGBUS_SEL_D_PING_INDEX__MASK;
+}
+#define A6XX_CX_DBGC_CFG_DBGBUS_SEL_D_PING_BLK_SEL__MASK       0x0000ff00
+#define A6XX_CX_DBGC_CFG_DBGBUS_SEL_D_PING_BLK_SEL__SHIFT      8
+static inline uint32_t A6XX_CX_DBGC_CFG_DBGBUS_SEL_D_PING_BLK_SEL(uint32_t val)
+{
+       return ((val) << A6XX_CX_DBGC_CFG_DBGBUS_SEL_D_PING_BLK_SEL__SHIFT) & A6XX_CX_DBGC_CFG_DBGBUS_SEL_D_PING_BLK_SEL__MASK;
+}
+
+#define REG_A6XX_CX_DBGC_CFG_DBGBUS_CNTLT                      0x00018404
+#define A6XX_CX_DBGC_CFG_DBGBUS_CNTLT_TRACEEN__MASK            0x0000003f
+#define A6XX_CX_DBGC_CFG_DBGBUS_CNTLT_TRACEEN__SHIFT           0
+static inline uint32_t A6XX_CX_DBGC_CFG_DBGBUS_CNTLT_TRACEEN(uint32_t val)
+{
+       return ((val) << A6XX_CX_DBGC_CFG_DBGBUS_CNTLT_TRACEEN__SHIFT) & A6XX_CX_DBGC_CFG_DBGBUS_CNTLT_TRACEEN__MASK;
+}
+#define A6XX_CX_DBGC_CFG_DBGBUS_CNTLT_GRANU__MASK              0x00007000
+#define A6XX_CX_DBGC_CFG_DBGBUS_CNTLT_GRANU__SHIFT             12
+static inline uint32_t A6XX_CX_DBGC_CFG_DBGBUS_CNTLT_GRANU(uint32_t val)
+{
+       return ((val) << A6XX_CX_DBGC_CFG_DBGBUS_CNTLT_GRANU__SHIFT) & A6XX_CX_DBGC_CFG_DBGBUS_CNTLT_GRANU__MASK;
+}
+#define A6XX_CX_DBGC_CFG_DBGBUS_CNTLT_SEGT__MASK               0xf0000000
+#define A6XX_CX_DBGC_CFG_DBGBUS_CNTLT_SEGT__SHIFT              28
+static inline uint32_t A6XX_CX_DBGC_CFG_DBGBUS_CNTLT_SEGT(uint32_t val)
+{
+       return ((val) << A6XX_CX_DBGC_CFG_DBGBUS_CNTLT_SEGT__SHIFT) & A6XX_CX_DBGC_CFG_DBGBUS_CNTLT_SEGT__MASK;
+}
+
+#define REG_A6XX_CX_DBGC_CFG_DBGBUS_CNTLM                      0x00018405
+#define A6XX_CX_DBGC_CFG_DBGBUS_CNTLM_ENABLE__MASK             0x0f000000
+#define A6XX_CX_DBGC_CFG_DBGBUS_CNTLM_ENABLE__SHIFT            24
+static inline uint32_t A6XX_CX_DBGC_CFG_DBGBUS_CNTLM_ENABLE(uint32_t val)
+{
+       return ((val) << A6XX_CX_DBGC_CFG_DBGBUS_CNTLM_ENABLE__SHIFT) & A6XX_CX_DBGC_CFG_DBGBUS_CNTLM_ENABLE__MASK;
+}
+
+#define REG_A6XX_CX_DBGC_CFG_DBGBUS_IVTL_0                     0x00018408
+
+#define REG_A6XX_CX_DBGC_CFG_DBGBUS_IVTL_1                     0x00018409
+
+#define REG_A6XX_CX_DBGC_CFG_DBGBUS_IVTL_2                     0x0001840a
+
+#define REG_A6XX_CX_DBGC_CFG_DBGBUS_IVTL_3                     0x0001840b
+
+#define REG_A6XX_CX_DBGC_CFG_DBGBUS_MASKL_0                    0x0001840c
+
+#define REG_A6XX_CX_DBGC_CFG_DBGBUS_MASKL_1                    0x0001840d
+
+#define REG_A6XX_CX_DBGC_CFG_DBGBUS_MASKL_2                    0x0001840e
+
+#define REG_A6XX_CX_DBGC_CFG_DBGBUS_MASKL_3                    0x0001840f
+
+#define REG_A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0                    0x00018410
+#define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL0__MASK           0x0000000f
+#define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL0__SHIFT          0
+static inline uint32_t A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL0(uint32_t val)
+{
+       return ((val) << A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL0__SHIFT) & A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL0__MASK;
+}
+#define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL1__MASK           0x000000f0
+#define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL1__SHIFT          4
+static inline uint32_t A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL1(uint32_t val)
+{
+       return ((val) << A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL1__SHIFT) & A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL1__MASK;
+}
+#define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL2__MASK           0x00000f00
+#define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL2__SHIFT          8
+static inline uint32_t A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL2(uint32_t val)
+{
+       return ((val) << A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL2__SHIFT) & A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL2__MASK;
+}
+#define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL3__MASK           0x0000f000
+#define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL3__SHIFT          12
+static inline uint32_t A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL3(uint32_t val)
+{
+       return ((val) << A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL3__SHIFT) & A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL3__MASK;
+}
+#define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL4__MASK           0x000f0000
+#define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL4__SHIFT          16
+static inline uint32_t A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL4(uint32_t val)
+{
+       return ((val) << A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL4__SHIFT) & A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL4__MASK;
+}
+#define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL5__MASK           0x00f00000
+#define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL5__SHIFT          20
+static inline uint32_t A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL5(uint32_t val)
+{
+       return ((val) << A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL5__SHIFT) & A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL5__MASK;
+}
+#define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL6__MASK           0x0f000000
+#define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL6__SHIFT          24
+static inline uint32_t A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL6(uint32_t val)
+{
+       return ((val) << A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL6__SHIFT) & A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL6__MASK;
+}
+#define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL7__MASK           0xf0000000
+#define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL7__SHIFT          28
+static inline uint32_t A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL7(uint32_t val)
+{
+       return ((val) << A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL7__SHIFT) & A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL7__MASK;
+}
+
+#define REG_A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1                    0x00018411
+#define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL8__MASK           0x0000000f
+#define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL8__SHIFT          0
+static inline uint32_t A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL8(uint32_t val)
+{
+       return ((val) << A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL8__SHIFT) & A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL8__MASK;
+}
+#define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL9__MASK           0x000000f0
+#define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL9__SHIFT          4
+static inline uint32_t A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL9(uint32_t val)
+{
+       return ((val) << A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL9__SHIFT) & A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL9__MASK;
+}
+#define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL10__MASK          0x00000f00
+#define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL10__SHIFT         8
+static inline uint32_t A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL10(uint32_t val)
+{
+       return ((val) << A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL10__SHIFT) & A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL10__MASK;
+}
+#define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL11__MASK          0x0000f000
+#define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL11__SHIFT         12
+static inline uint32_t A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL11(uint32_t val)
+{
+       return ((val) << A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL11__SHIFT) & A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL11__MASK;
+}
+#define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL12__MASK          0x000f0000
+#define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL12__SHIFT         16
+static inline uint32_t A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL12(uint32_t val)
+{
+       return ((val) << A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL12__SHIFT) & A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL12__MASK;
+}
+#define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL13__MASK          0x00f00000
+#define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL13__SHIFT         20
+static inline uint32_t A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL13(uint32_t val)
+{
+       return ((val) << A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL13__SHIFT) & A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL13__MASK;
+}
+#define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL14__MASK          0x0f000000
+#define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL14__SHIFT         24
+static inline uint32_t A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL14(uint32_t val)
+{
+       return ((val) << A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL14__SHIFT) & A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL14__MASK;
+}
+#define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL15__MASK          0xf0000000
+#define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL15__SHIFT         28
+static inline uint32_t A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL15(uint32_t val)
+{
+       return ((val) << A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL15__SHIFT) & A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL15__MASK;
+}
+
+#define REG_A6XX_CX_DBGC_CFG_DBGBUS_TRACE_BUF1                 0x0001842f
+
+#define REG_A6XX_CX_DBGC_CFG_DBGBUS_TRACE_BUF2                 0x00018430
+
+#define REG_A6XX_PDC_GPU_ENABLE_PDC                            0x00021140
+
+#define REG_A6XX_PDC_GPU_SEQ_START_ADDR                                0x00021148
+
+#define REG_A6XX_PDC_GPU_TCS0_CONTROL                          0x00021540
+
+#define REG_A6XX_PDC_GPU_TCS0_CMD_ENABLE_BANK                  0x00021541
+
+#define REG_A6XX_PDC_GPU_TCS0_CMD_WAIT_FOR_CMPL_BANK           0x00021542
+
+#define REG_A6XX_PDC_GPU_TCS0_CMD0_MSGID                       0x00021543
+
+#define REG_A6XX_PDC_GPU_TCS0_CMD0_ADDR                                0x00021544
+
+#define REG_A6XX_PDC_GPU_TCS0_CMD0_DATA                                0x00021545
+
+#define REG_A6XX_PDC_GPU_TCS1_CONTROL                          0x00021572
+
+#define REG_A6XX_PDC_GPU_TCS1_CMD_ENABLE_BANK                  0x00021573
+
+#define REG_A6XX_PDC_GPU_TCS1_CMD_WAIT_FOR_CMPL_BANK           0x00021574
+
+#define REG_A6XX_PDC_GPU_TCS1_CMD0_MSGID                       0x00021575
+
+#define REG_A6XX_PDC_GPU_TCS1_CMD0_ADDR                                0x00021576
+
+#define REG_A6XX_PDC_GPU_TCS1_CMD0_DATA                                0x00021577
+
+#define REG_A6XX_PDC_GPU_TCS2_CONTROL                          0x000215a4
+
+#define REG_A6XX_PDC_GPU_TCS2_CMD_ENABLE_BANK                  0x000215a5
+
+#define REG_A6XX_PDC_GPU_TCS2_CMD_WAIT_FOR_CMPL_BANK           0x000215a6
+
+#define REG_A6XX_PDC_GPU_TCS2_CMD0_MSGID                       0x000215a7
+
+#define REG_A6XX_PDC_GPU_TCS2_CMD0_ADDR                                0x000215a8
+
+#define REG_A6XX_PDC_GPU_TCS2_CMD0_DATA                                0x000215a9
+
+#define REG_A6XX_PDC_GPU_TCS3_CONTROL                          0x000215d6
+
+#define REG_A6XX_PDC_GPU_TCS3_CMD_ENABLE_BANK                  0x000215d7
+
+#define REG_A6XX_PDC_GPU_TCS3_CMD_WAIT_FOR_CMPL_BANK           0x000215d8
+
+#define REG_A6XX_PDC_GPU_TCS3_CMD0_MSGID                       0x000215d9
+
+#define REG_A6XX_PDC_GPU_TCS3_CMD0_ADDR                                0x000215da
+
+#define REG_A6XX_PDC_GPU_TCS3_CMD0_DATA                                0x000215db
+
+#define REG_A6XX_PDC_GPU_SEQ_MEM_0                             0x000a0000
+
+#define REG_A6XX_X1_WINDOW_OFFSET                              0x000088d4
+#define A6XX_X1_WINDOW_OFFSET_WINDOW_OFFSET_DISABLE            0x80000000
+#define A6XX_X1_WINDOW_OFFSET_X__MASK                          0x00007fff
+#define A6XX_X1_WINDOW_OFFSET_X__SHIFT                         0
+static inline uint32_t A6XX_X1_WINDOW_OFFSET_X(uint32_t val)
+{
+       return ((val) << A6XX_X1_WINDOW_OFFSET_X__SHIFT) & A6XX_X1_WINDOW_OFFSET_X__MASK;
+}
+#define A6XX_X1_WINDOW_OFFSET_Y__MASK                          0x7fff0000
+#define A6XX_X1_WINDOW_OFFSET_Y__SHIFT                         16
+static inline uint32_t A6XX_X1_WINDOW_OFFSET_Y(uint32_t val)
+{
+       return ((val) << A6XX_X1_WINDOW_OFFSET_Y__SHIFT) & A6XX_X1_WINDOW_OFFSET_Y__MASK;
+}
+
+#define REG_A6XX_X2_WINDOW_OFFSET                              0x0000b4d1
+#define A6XX_X2_WINDOW_OFFSET_WINDOW_OFFSET_DISABLE            0x80000000
+#define A6XX_X2_WINDOW_OFFSET_X__MASK                          0x00007fff
+#define A6XX_X2_WINDOW_OFFSET_X__SHIFT                         0
+static inline uint32_t A6XX_X2_WINDOW_OFFSET_X(uint32_t val)
+{
+       return ((val) << A6XX_X2_WINDOW_OFFSET_X__SHIFT) & A6XX_X2_WINDOW_OFFSET_X__MASK;
+}
+#define A6XX_X2_WINDOW_OFFSET_Y__MASK                          0x7fff0000
+#define A6XX_X2_WINDOW_OFFSET_Y__SHIFT                         16
+static inline uint32_t A6XX_X2_WINDOW_OFFSET_Y(uint32_t val)
+{
+       return ((val) << A6XX_X2_WINDOW_OFFSET_Y__SHIFT) & A6XX_X2_WINDOW_OFFSET_Y__MASK;
+}
+
+#define REG_A6XX_X3_WINDOW_OFFSET                              0x0000b307
+#define A6XX_X3_WINDOW_OFFSET_WINDOW_OFFSET_DISABLE            0x80000000
+#define A6XX_X3_WINDOW_OFFSET_X__MASK                          0x00007fff
+#define A6XX_X3_WINDOW_OFFSET_X__SHIFT                         0
+static inline uint32_t A6XX_X3_WINDOW_OFFSET_X(uint32_t val)
+{
+       return ((val) << A6XX_X3_WINDOW_OFFSET_X__SHIFT) & A6XX_X3_WINDOW_OFFSET_X__MASK;
+}
+#define A6XX_X3_WINDOW_OFFSET_Y__MASK                          0x7fff0000
+#define A6XX_X3_WINDOW_OFFSET_Y__SHIFT                         16
+static inline uint32_t A6XX_X3_WINDOW_OFFSET_Y(uint32_t val)
+{
+       return ((val) << A6XX_X3_WINDOW_OFFSET_Y__SHIFT) & A6XX_X3_WINDOW_OFFSET_Y__MASK;
+}
+
+#define REG_A6XX_X1_BIN_SIZE                                   0x000080a1
+#define A6XX_X1_BIN_SIZE_WIDTH__MASK                           0x000000ff
+#define A6XX_X1_BIN_SIZE_WIDTH__SHIFT                          0
+static inline uint32_t A6XX_X1_BIN_SIZE_WIDTH(uint32_t val)
+{
+       assert(!(val & 0x1f));
+       return ((val >> 5) << A6XX_X1_BIN_SIZE_WIDTH__SHIFT) & A6XX_X1_BIN_SIZE_WIDTH__MASK;
+}
+#define A6XX_X1_BIN_SIZE_HEIGHT__MASK                          0x0001ff00
+#define A6XX_X1_BIN_SIZE_HEIGHT__SHIFT                         8
+static inline uint32_t A6XX_X1_BIN_SIZE_HEIGHT(uint32_t val)
+{
+       assert(!(val & 0xf));
+       return ((val >> 4) << A6XX_X1_BIN_SIZE_HEIGHT__SHIFT) & A6XX_X1_BIN_SIZE_HEIGHT__MASK;
+}
+
+#define REG_A6XX_X2_BIN_SIZE                                   0x00008800
+#define A6XX_X2_BIN_SIZE_WIDTH__MASK                           0x000000ff
+#define A6XX_X2_BIN_SIZE_WIDTH__SHIFT                          0
+static inline uint32_t A6XX_X2_BIN_SIZE_WIDTH(uint32_t val)
+{
+       assert(!(val & 0x1f));
+       return ((val >> 5) << A6XX_X2_BIN_SIZE_WIDTH__SHIFT) & A6XX_X2_BIN_SIZE_WIDTH__MASK;
+}
+#define A6XX_X2_BIN_SIZE_HEIGHT__MASK                          0x0001ff00
+#define A6XX_X2_BIN_SIZE_HEIGHT__SHIFT                         8
+static inline uint32_t A6XX_X2_BIN_SIZE_HEIGHT(uint32_t val)
+{
+       assert(!(val & 0xf));
+       return ((val >> 4) << A6XX_X2_BIN_SIZE_HEIGHT__SHIFT) & A6XX_X2_BIN_SIZE_HEIGHT__MASK;
+}
+
+#define REG_A6XX_X3_BIN_SIZE                                   0x000088d3
+#define A6XX_X3_BIN_SIZE_WIDTH__MASK                           0x000000ff
+#define A6XX_X3_BIN_SIZE_WIDTH__SHIFT                          0
+static inline uint32_t A6XX_X3_BIN_SIZE_WIDTH(uint32_t val)
+{
+       assert(!(val & 0x1f));
+       return ((val >> 5) << A6XX_X3_BIN_SIZE_WIDTH__SHIFT) & A6XX_X3_BIN_SIZE_WIDTH__MASK;
+}
+#define A6XX_X3_BIN_SIZE_HEIGHT__MASK                          0x0001ff00
+#define A6XX_X3_BIN_SIZE_HEIGHT__SHIFT                         8
+static inline uint32_t A6XX_X3_BIN_SIZE_HEIGHT(uint32_t val)
+{
+       assert(!(val & 0xf));
+       return ((val >> 4) << A6XX_X3_BIN_SIZE_HEIGHT__SHIFT) & A6XX_X3_BIN_SIZE_HEIGHT__MASK;
+}
+
+#define REG_A6XX_VSC_BIN_SIZE                                  0x00000c02
+#define A6XX_VSC_BIN_SIZE_WIDTH__MASK                          0x000000ff
+#define A6XX_VSC_BIN_SIZE_WIDTH__SHIFT                         0
+static inline uint32_t A6XX_VSC_BIN_SIZE_WIDTH(uint32_t val)
+{
+       assert(!(val & 0x1f));
+       return ((val >> 5) << A6XX_VSC_BIN_SIZE_WIDTH__SHIFT) & A6XX_VSC_BIN_SIZE_WIDTH__MASK;
+}
+#define A6XX_VSC_BIN_SIZE_HEIGHT__MASK                         0x0001ff00
+#define A6XX_VSC_BIN_SIZE_HEIGHT__SHIFT                                8
+static inline uint32_t A6XX_VSC_BIN_SIZE_HEIGHT(uint32_t val)
+{
+       assert(!(val & 0xf));
+       return ((val >> 4) << A6XX_VSC_BIN_SIZE_HEIGHT__SHIFT) & A6XX_VSC_BIN_SIZE_HEIGHT__MASK;
+}
+
+#define REG_A6XX_VSC_SIZE_ADDRESS_LO                           0x00000c03
+
+#define REG_A6XX_VSC_SIZE_ADDRESS_HI                           0x00000c04
+
+#define REG_A6XX_VSC_BIN_COUNT                                 0x00000c06
+#define A6XX_VSC_BIN_COUNT_NX__MASK                            0x000007fe
+#define A6XX_VSC_BIN_COUNT_NX__SHIFT                           1
+static inline uint32_t A6XX_VSC_BIN_COUNT_NX(uint32_t val)
+{
+       return ((val) << A6XX_VSC_BIN_COUNT_NX__SHIFT) & A6XX_VSC_BIN_COUNT_NX__MASK;
+}
+#define A6XX_VSC_BIN_COUNT_NY__MASK                            0x001ff800
+#define A6XX_VSC_BIN_COUNT_NY__SHIFT                           11
+static inline uint32_t A6XX_VSC_BIN_COUNT_NY(uint32_t val)
+{
+       return ((val) << A6XX_VSC_BIN_COUNT_NY__SHIFT) & A6XX_VSC_BIN_COUNT_NY__MASK;
+}
+
+static inline uint32_t REG_A6XX_VSC_PIPE_CONFIG(uint32_t i0) { return 0x00000c10 + 0x1*i0; }
+
+static inline uint32_t REG_A6XX_VSC_PIPE_CONFIG_REG(uint32_t i0) { return 0x00000c10 + 0x1*i0; }
+#define A6XX_VSC_PIPE_CONFIG_REG_X__MASK                       0x000003ff
+#define A6XX_VSC_PIPE_CONFIG_REG_X__SHIFT                      0
+static inline uint32_t A6XX_VSC_PIPE_CONFIG_REG_X(uint32_t val)
+{
+       return ((val) << A6XX_VSC_PIPE_CONFIG_REG_X__SHIFT) & A6XX_VSC_PIPE_CONFIG_REG_X__MASK;
+}
+#define A6XX_VSC_PIPE_CONFIG_REG_Y__MASK                       0x000ffc00
+#define A6XX_VSC_PIPE_CONFIG_REG_Y__SHIFT                      10
+static inline uint32_t A6XX_VSC_PIPE_CONFIG_REG_Y(uint32_t val)
+{
+       return ((val) << A6XX_VSC_PIPE_CONFIG_REG_Y__SHIFT) & A6XX_VSC_PIPE_CONFIG_REG_Y__MASK;
+}
+#define A6XX_VSC_PIPE_CONFIG_REG_W__MASK                       0x03f00000
+#define A6XX_VSC_PIPE_CONFIG_REG_W__SHIFT                      20
+static inline uint32_t A6XX_VSC_PIPE_CONFIG_REG_W(uint32_t val)
+{
+       return ((val) << A6XX_VSC_PIPE_CONFIG_REG_W__SHIFT) & A6XX_VSC_PIPE_CONFIG_REG_W__MASK;
+}
+#define A6XX_VSC_PIPE_CONFIG_REG_H__MASK                       0xfc000000
+#define A6XX_VSC_PIPE_CONFIG_REG_H__SHIFT                      26
+static inline uint32_t A6XX_VSC_PIPE_CONFIG_REG_H(uint32_t val)
+{
+       return ((val) << A6XX_VSC_PIPE_CONFIG_REG_H__SHIFT) & A6XX_VSC_PIPE_CONFIG_REG_H__MASK;
+}
+
+#define REG_A6XX_VSC_XXX_ADDRESS_LO                            0x00000c30
+
+#define REG_A6XX_VSC_XXX_ADDRESS_HI                            0x00000c31
+
+#define REG_A6XX_VSC_XXX_PITCH                                 0x00000c32
+
+#define REG_A6XX_VSC_PIPE_DATA_ADDRESS_LO                      0x00000c34
+
+#define REG_A6XX_VSC_PIPE_DATA_ADDRESS_HI                      0x00000c35
+
+#define REG_A6XX_VSC_PIPE_DATA_PITCH                           0x00000c36
+
+static inline uint32_t REG_A6XX_VSC_SIZE(uint32_t i0) { return 0x00000c78 + 0x1*i0; }
+
+static inline uint32_t REG_A6XX_VSC_SIZE_REG(uint32_t i0) { return 0x00000c78 + 0x1*i0; }
+
+#define REG_A6XX_UCHE_UNKNOWN_0E12                             0x00000e12
+
+#define REG_A6XX_GRAS_UNKNOWN_8000                             0x00008000
+
+#define REG_A6XX_GRAS_UNKNOWN_8001                             0x00008001
+
+#define REG_A6XX_GRAS_UNKNOWN_8004                             0x00008004
+
+#define REG_A6XX_GRAS_CNTL                                     0x00008005
+#define A6XX_GRAS_CNTL_VARYING                                 0x00000001
+#define A6XX_GRAS_CNTL_XCOORD                                  0x00000040
+#define A6XX_GRAS_CNTL_YCOORD                                  0x00000080
+#define A6XX_GRAS_CNTL_ZCOORD                                  0x00000100
+#define A6XX_GRAS_CNTL_WCOORD                                  0x00000200
+
+#define REG_A6XX_GRAS_CL_GUARDBAND_CLIP_ADJ                    0x00008006
+#define A6XX_GRAS_CL_GUARDBAND_CLIP_ADJ_HORZ__MASK             0x000003ff
+#define A6XX_GRAS_CL_GUARDBAND_CLIP_ADJ_HORZ__SHIFT            0
+static inline uint32_t A6XX_GRAS_CL_GUARDBAND_CLIP_ADJ_HORZ(uint32_t val)
+{
+       return ((val) << A6XX_GRAS_CL_GUARDBAND_CLIP_ADJ_HORZ__SHIFT) & A6XX_GRAS_CL_GUARDBAND_CLIP_ADJ_HORZ__MASK;
+}
+#define A6XX_GRAS_CL_GUARDBAND_CLIP_ADJ_VERT__MASK             0x000ffc00
+#define A6XX_GRAS_CL_GUARDBAND_CLIP_ADJ_VERT__SHIFT            10
+static inline uint32_t A6XX_GRAS_CL_GUARDBAND_CLIP_ADJ_VERT(uint32_t val)
+{
+       return ((val) << A6XX_GRAS_CL_GUARDBAND_CLIP_ADJ_VERT__SHIFT) & A6XX_GRAS_CL_GUARDBAND_CLIP_ADJ_VERT__MASK;
+}
+
+#define REG_A6XX_GRAS_CL_VPORT_XOFFSET_0                       0x00008010
+#define A6XX_GRAS_CL_VPORT_XOFFSET_0__MASK                     0xffffffff
+#define A6XX_GRAS_CL_VPORT_XOFFSET_0__SHIFT                    0
+static inline uint32_t A6XX_GRAS_CL_VPORT_XOFFSET_0(float val)
+{
+       return ((fui(val)) << A6XX_GRAS_CL_VPORT_XOFFSET_0__SHIFT) & A6XX_GRAS_CL_VPORT_XOFFSET_0__MASK;
+}
+
+#define REG_A6XX_GRAS_CL_VPORT_XSCALE_0                                0x00008011
+#define A6XX_GRAS_CL_VPORT_XSCALE_0__MASK                      0xffffffff
+#define A6XX_GRAS_CL_VPORT_XSCALE_0__SHIFT                     0
+static inline uint32_t A6XX_GRAS_CL_VPORT_XSCALE_0(float val)
+{
+       return ((fui(val)) << A6XX_GRAS_CL_VPORT_XSCALE_0__SHIFT) & A6XX_GRAS_CL_VPORT_XSCALE_0__MASK;
+}
+
+#define REG_A6XX_GRAS_CL_VPORT_YOFFSET_0                       0x00008012
+#define A6XX_GRAS_CL_VPORT_YOFFSET_0__MASK                     0xffffffff
+#define A6XX_GRAS_CL_VPORT_YOFFSET_0__SHIFT                    0
+static inline uint32_t A6XX_GRAS_CL_VPORT_YOFFSET_0(float val)
+{
+       return ((fui(val)) << A6XX_GRAS_CL_VPORT_YOFFSET_0__SHIFT) & A6XX_GRAS_CL_VPORT_YOFFSET_0__MASK;
+}
+
+#define REG_A6XX_GRAS_CL_VPORT_YSCALE_0                                0x00008013
+#define A6XX_GRAS_CL_VPORT_YSCALE_0__MASK                      0xffffffff
+#define A6XX_GRAS_CL_VPORT_YSCALE_0__SHIFT                     0
+static inline uint32_t A6XX_GRAS_CL_VPORT_YSCALE_0(float val)
+{
+       return ((fui(val)) << A6XX_GRAS_CL_VPORT_YSCALE_0__SHIFT) & A6XX_GRAS_CL_VPORT_YSCALE_0__MASK;
+}
+
+#define REG_A6XX_GRAS_CL_VPORT_ZOFFSET_0                       0x00008014
+#define A6XX_GRAS_CL_VPORT_ZOFFSET_0__MASK                     0xffffffff
+#define A6XX_GRAS_CL_VPORT_ZOFFSET_0__SHIFT                    0
+static inline uint32_t A6XX_GRAS_CL_VPORT_ZOFFSET_0(float val)
+{
+       return ((fui(val)) << A6XX_GRAS_CL_VPORT_ZOFFSET_0__SHIFT) & A6XX_GRAS_CL_VPORT_ZOFFSET_0__MASK;
+}
+
+#define REG_A6XX_GRAS_CL_VPORT_ZSCALE_0                                0x00008015
+#define A6XX_GRAS_CL_VPORT_ZSCALE_0__MASK                      0xffffffff
+#define A6XX_GRAS_CL_VPORT_ZSCALE_0__SHIFT                     0
+static inline uint32_t A6XX_GRAS_CL_VPORT_ZSCALE_0(float val)
+{
+       return ((fui(val)) << A6XX_GRAS_CL_VPORT_ZSCALE_0__SHIFT) & A6XX_GRAS_CL_VPORT_ZSCALE_0__MASK;
+}
+
+#define REG_A6XX_GRAS_SU_CNTL                                  0x00008090
+#define A6XX_GRAS_SU_CNTL_CULL_FRONT                           0x00000001
+#define A6XX_GRAS_SU_CNTL_CULL_BACK                            0x00000002
+#define A6XX_GRAS_SU_CNTL_FRONT_CW                             0x00000004
+#define A6XX_GRAS_SU_CNTL_LINEHALFWIDTH__MASK                  0x000007f8
+#define A6XX_GRAS_SU_CNTL_LINEHALFWIDTH__SHIFT                 3
+static inline uint32_t A6XX_GRAS_SU_CNTL_LINEHALFWIDTH(float val)
+{
+       return ((((int32_t)(val * 4.0))) << A6XX_GRAS_SU_CNTL_LINEHALFWIDTH__SHIFT) & A6XX_GRAS_SU_CNTL_LINEHALFWIDTH__MASK;
+}
+#define A6XX_GRAS_SU_CNTL_POLY_OFFSET                          0x00000800
+#define A6XX_GRAS_SU_CNTL_MSAA_ENABLE                          0x00002000
+
+#define REG_A6XX_GRAS_SU_POINT_MINMAX                          0x00008091
+#define A6XX_GRAS_SU_POINT_MINMAX_MIN__MASK                    0x0000ffff
+#define A6XX_GRAS_SU_POINT_MINMAX_MIN__SHIFT                   0
+static inline uint32_t A6XX_GRAS_SU_POINT_MINMAX_MIN(float val)
+{
+       return ((((uint32_t)(val * 16.0))) << A6XX_GRAS_SU_POINT_MINMAX_MIN__SHIFT) & A6XX_GRAS_SU_POINT_MINMAX_MIN__MASK;
+}
+#define A6XX_GRAS_SU_POINT_MINMAX_MAX__MASK                    0xffff0000
+#define A6XX_GRAS_SU_POINT_MINMAX_MAX__SHIFT                   16
+static inline uint32_t A6XX_GRAS_SU_POINT_MINMAX_MAX(float val)
+{
+       return ((((uint32_t)(val * 16.0))) << A6XX_GRAS_SU_POINT_MINMAX_MAX__SHIFT) & A6XX_GRAS_SU_POINT_MINMAX_MAX__MASK;
+}
+
+#define REG_A6XX_GRAS_SU_POINT_SIZE                            0x00008092
+#define A6XX_GRAS_SU_POINT_SIZE__MASK                          0xffffffff
+#define A6XX_GRAS_SU_POINT_SIZE__SHIFT                         0
+static inline uint32_t A6XX_GRAS_SU_POINT_SIZE(float val)
+{
+       return ((((int32_t)(val * 16.0))) << A6XX_GRAS_SU_POINT_SIZE__SHIFT) & A6XX_GRAS_SU_POINT_SIZE__MASK;
+}
+
+#define REG_A6XX_GRAS_SU_POLY_OFFSET_SCALE                     0x00008095
+#define A6XX_GRAS_SU_POLY_OFFSET_SCALE__MASK                   0xffffffff
+#define A6XX_GRAS_SU_POLY_OFFSET_SCALE__SHIFT                  0
+static inline uint32_t A6XX_GRAS_SU_POLY_OFFSET_SCALE(float val)
+{
+       return ((fui(val)) << A6XX_GRAS_SU_POLY_OFFSET_SCALE__SHIFT) & A6XX_GRAS_SU_POLY_OFFSET_SCALE__MASK;
+}
+
+#define REG_A6XX_GRAS_SU_POLY_OFFSET_OFFSET                    0x00008096
+#define A6XX_GRAS_SU_POLY_OFFSET_OFFSET__MASK                  0xffffffff
+#define A6XX_GRAS_SU_POLY_OFFSET_OFFSET__SHIFT                 0
+static inline uint32_t A6XX_GRAS_SU_POLY_OFFSET_OFFSET(float val)
+{
+       return ((fui(val)) << A6XX_GRAS_SU_POLY_OFFSET_OFFSET__SHIFT) & A6XX_GRAS_SU_POLY_OFFSET_OFFSET__MASK;
+}
+
+#define REG_A6XX_GRAS_SU_POLY_OFFSET_OFFSET_CLAMP              0x00008097
+#define A6XX_GRAS_SU_POLY_OFFSET_OFFSET_CLAMP__MASK            0xffffffff
+#define A6XX_GRAS_SU_POLY_OFFSET_OFFSET_CLAMP__SHIFT           0
+static inline uint32_t A6XX_GRAS_SU_POLY_OFFSET_OFFSET_CLAMP(float val)
+{
+       return ((fui(val)) << A6XX_GRAS_SU_POLY_OFFSET_OFFSET_CLAMP__SHIFT) & A6XX_GRAS_SU_POLY_OFFSET_OFFSET_CLAMP__MASK;
+}
+
+#define REG_A6XX_GRAS_SU_DEPTH_BUFFER_INFO                     0x00008098
+#define A6XX_GRAS_SU_DEPTH_BUFFER_INFO_DEPTH_FORMAT__MASK      0x00000007
+#define A6XX_GRAS_SU_DEPTH_BUFFER_INFO_DEPTH_FORMAT__SHIFT     0
+static inline uint32_t A6XX_GRAS_SU_DEPTH_BUFFER_INFO_DEPTH_FORMAT(enum a6xx_depth_format val)
+{
+       return ((val) << A6XX_GRAS_SU_DEPTH_BUFFER_INFO_DEPTH_FORMAT__SHIFT) & A6XX_GRAS_SU_DEPTH_BUFFER_INFO_DEPTH_FORMAT__MASK;
+}
+
+#define REG_A6XX_GRAS_UNKNOWN_8099                             0x00008099
+
+#define REG_A6XX_GRAS_UNKNOWN_809B                             0x0000809b
+
+#define REG_A6XX_GRAS_UNKNOWN_80A0                             0x000080a0
+
+#define REG_A6XX_GRAS_RAS_MSAA_CNTL                            0x000080a2
+#define A6XX_GRAS_RAS_MSAA_CNTL_SAMPLES__MASK                  0x00000003
+#define A6XX_GRAS_RAS_MSAA_CNTL_SAMPLES__SHIFT                 0
+static inline uint32_t A6XX_GRAS_RAS_MSAA_CNTL_SAMPLES(enum a3xx_msaa_samples val)
+{
+       return ((val) << A6XX_GRAS_RAS_MSAA_CNTL_SAMPLES__SHIFT) & A6XX_GRAS_RAS_MSAA_CNTL_SAMPLES__MASK;
+}
+
+#define REG_A6XX_GRAS_DEST_MSAA_CNTL                           0x000080a3
+#define A6XX_GRAS_DEST_MSAA_CNTL_SAMPLES__MASK                 0x00000003
+#define A6XX_GRAS_DEST_MSAA_CNTL_SAMPLES__SHIFT                        0
+static inline uint32_t A6XX_GRAS_DEST_MSAA_CNTL_SAMPLES(enum a3xx_msaa_samples val)
+{
+       return ((val) << A6XX_GRAS_DEST_MSAA_CNTL_SAMPLES__SHIFT) & A6XX_GRAS_DEST_MSAA_CNTL_SAMPLES__MASK;
+}
+#define A6XX_GRAS_DEST_MSAA_CNTL_MSAA_DISABLE                  0x00000004
+
+#define REG_A6XX_GRAS_UNKNOWN_80A4                             0x000080a4
+
+#define REG_A6XX_GRAS_UNKNOWN_80A5                             0x000080a5
+
+#define REG_A6XX_GRAS_UNKNOWN_80A6                             0x000080a6
+
+#define REG_A6XX_GRAS_UNKNOWN_80AF                             0x000080af
+
+#define REG_A6XX_GRAS_SC_SCREEN_SCISSOR_TL_0                   0x000080b0
+#define A6XX_GRAS_SC_SCREEN_SCISSOR_TL_0_WINDOW_OFFSET_DISABLE 0x80000000
+#define A6XX_GRAS_SC_SCREEN_SCISSOR_TL_0_X__MASK               0x00007fff
+#define A6XX_GRAS_SC_SCREEN_SCISSOR_TL_0_X__SHIFT              0
+static inline uint32_t A6XX_GRAS_SC_SCREEN_SCISSOR_TL_0_X(uint32_t val)
+{
+       return ((val) << A6XX_GRAS_SC_SCREEN_SCISSOR_TL_0_X__SHIFT) & A6XX_GRAS_SC_SCREEN_SCISSOR_TL_0_X__MASK;
+}
+#define A6XX_GRAS_SC_SCREEN_SCISSOR_TL_0_Y__MASK               0x7fff0000
+#define A6XX_GRAS_SC_SCREEN_SCISSOR_TL_0_Y__SHIFT              16
+static inline uint32_t A6XX_GRAS_SC_SCREEN_SCISSOR_TL_0_Y(uint32_t val)
+{
+       return ((val) << A6XX_GRAS_SC_SCREEN_SCISSOR_TL_0_Y__SHIFT) & A6XX_GRAS_SC_SCREEN_SCISSOR_TL_0_Y__MASK;
+}
+
+#define REG_A6XX_GRAS_SC_SCREEN_SCISSOR_BR_0                   0x000080b1
+#define A6XX_GRAS_SC_SCREEN_SCISSOR_BR_0_WINDOW_OFFSET_DISABLE 0x80000000
+#define A6XX_GRAS_SC_SCREEN_SCISSOR_BR_0_X__MASK               0x00007fff
+#define A6XX_GRAS_SC_SCREEN_SCISSOR_BR_0_X__SHIFT              0
+static inline uint32_t A6XX_GRAS_SC_SCREEN_SCISSOR_BR_0_X(uint32_t val)
+{
+       return ((val) << A6XX_GRAS_SC_SCREEN_SCISSOR_BR_0_X__SHIFT) & A6XX_GRAS_SC_SCREEN_SCISSOR_BR_0_X__MASK;
+}
+#define A6XX_GRAS_SC_SCREEN_SCISSOR_BR_0_Y__MASK               0x7fff0000
+#define A6XX_GRAS_SC_SCREEN_SCISSOR_BR_0_Y__SHIFT              16
+static inline uint32_t A6XX_GRAS_SC_SCREEN_SCISSOR_BR_0_Y(uint32_t val)
+{
+       return ((val) << A6XX_GRAS_SC_SCREEN_SCISSOR_BR_0_Y__SHIFT) & A6XX_GRAS_SC_SCREEN_SCISSOR_BR_0_Y__MASK;
+}
+
+#define REG_A6XX_GRAS_SC_VIEWPORT_SCISSOR_TL_0                 0x000080d0
+#define A6XX_GRAS_SC_VIEWPORT_SCISSOR_TL_0_WINDOW_OFFSET_DISABLE       0x80000000
+#define A6XX_GRAS_SC_VIEWPORT_SCISSOR_TL_0_X__MASK             0x00007fff
+#define A6XX_GRAS_SC_VIEWPORT_SCISSOR_TL_0_X__SHIFT            0
+static inline uint32_t A6XX_GRAS_SC_VIEWPORT_SCISSOR_TL_0_X(uint32_t val)
+{
+       return ((val) << A6XX_GRAS_SC_VIEWPORT_SCISSOR_TL_0_X__SHIFT) & A6XX_GRAS_SC_VIEWPORT_SCISSOR_TL_0_X__MASK;
+}
+#define A6XX_GRAS_SC_VIEWPORT_SCISSOR_TL_0_Y__MASK             0x7fff0000
+#define A6XX_GRAS_SC_VIEWPORT_SCISSOR_TL_0_Y__SHIFT            16
+static inline uint32_t A6XX_GRAS_SC_VIEWPORT_SCISSOR_TL_0_Y(uint32_t val)
+{
+       return ((val) << A6XX_GRAS_SC_VIEWPORT_SCISSOR_TL_0_Y__SHIFT) & A6XX_GRAS_SC_VIEWPORT_SCISSOR_TL_0_Y__MASK;
+}
+
+#define REG_A6XX_GRAS_SC_VIEWPORT_SCISSOR_BR_0                 0x000080d1
+#define A6XX_GRAS_SC_VIEWPORT_SCISSOR_BR_0_WINDOW_OFFSET_DISABLE       0x80000000
+#define A6XX_GRAS_SC_VIEWPORT_SCISSOR_BR_0_X__MASK             0x00007fff
+#define A6XX_GRAS_SC_VIEWPORT_SCISSOR_BR_0_X__SHIFT            0
+static inline uint32_t A6XX_GRAS_SC_VIEWPORT_SCISSOR_BR_0_X(uint32_t val)
+{
+       return ((val) << A6XX_GRAS_SC_VIEWPORT_SCISSOR_BR_0_X__SHIFT) & A6XX_GRAS_SC_VIEWPORT_SCISSOR_BR_0_X__MASK;
+}
+#define A6XX_GRAS_SC_VIEWPORT_SCISSOR_BR_0_Y__MASK             0x7fff0000
+#define A6XX_GRAS_SC_VIEWPORT_SCISSOR_BR_0_Y__SHIFT            16
+static inline uint32_t A6XX_GRAS_SC_VIEWPORT_SCISSOR_BR_0_Y(uint32_t val)
+{
+       return ((val) << A6XX_GRAS_SC_VIEWPORT_SCISSOR_BR_0_Y__SHIFT) & A6XX_GRAS_SC_VIEWPORT_SCISSOR_BR_0_Y__MASK;
+}
+
+#define REG_A6XX_GRAS_SC_WINDOW_SCISSOR_TL                     0x000080f0
+#define A6XX_GRAS_SC_WINDOW_SCISSOR_TL_WINDOW_OFFSET_DISABLE   0x80000000
+#define A6XX_GRAS_SC_WINDOW_SCISSOR_TL_X__MASK                 0x00007fff
+#define A6XX_GRAS_SC_WINDOW_SCISSOR_TL_X__SHIFT                        0
+static inline uint32_t A6XX_GRAS_SC_WINDOW_SCISSOR_TL_X(uint32_t val)
+{
+       return ((val) << A6XX_GRAS_SC_WINDOW_SCISSOR_TL_X__SHIFT) & A6XX_GRAS_SC_WINDOW_SCISSOR_TL_X__MASK;
+}
+#define A6XX_GRAS_SC_WINDOW_SCISSOR_TL_Y__MASK                 0x7fff0000
+#define A6XX_GRAS_SC_WINDOW_SCISSOR_TL_Y__SHIFT                        16
+static inline uint32_t A6XX_GRAS_SC_WINDOW_SCISSOR_TL_Y(uint32_t val)
+{
+       return ((val) << A6XX_GRAS_SC_WINDOW_SCISSOR_TL_Y__SHIFT) & A6XX_GRAS_SC_WINDOW_SCISSOR_TL_Y__MASK;
+}
+
+#define REG_A6XX_GRAS_SC_WINDOW_SCISSOR_BR                     0x000080f1
+#define A6XX_GRAS_SC_WINDOW_SCISSOR_BR_WINDOW_OFFSET_DISABLE   0x80000000
+#define A6XX_GRAS_SC_WINDOW_SCISSOR_BR_X__MASK                 0x00007fff
+#define A6XX_GRAS_SC_WINDOW_SCISSOR_BR_X__SHIFT                        0
+static inline uint32_t A6XX_GRAS_SC_WINDOW_SCISSOR_BR_X(uint32_t val)
+{
+       return ((val) << A6XX_GRAS_SC_WINDOW_SCISSOR_BR_X__SHIFT) & A6XX_GRAS_SC_WINDOW_SCISSOR_BR_X__MASK;
+}
+#define A6XX_GRAS_SC_WINDOW_SCISSOR_BR_Y__MASK                 0x7fff0000
+#define A6XX_GRAS_SC_WINDOW_SCISSOR_BR_Y__SHIFT                        16
+static inline uint32_t A6XX_GRAS_SC_WINDOW_SCISSOR_BR_Y(uint32_t val)
+{
+       return ((val) << A6XX_GRAS_SC_WINDOW_SCISSOR_BR_Y__SHIFT) & A6XX_GRAS_SC_WINDOW_SCISSOR_BR_Y__MASK;
+}
+
+#define REG_A6XX_GRAS_LRZ_CNTL                                 0x00008100
+#define A6XX_GRAS_LRZ_CNTL_ENABLE                              0x00000001
+#define A6XX_GRAS_LRZ_CNTL_LRZ_WRITE                           0x00000002
+#define A6XX_GRAS_LRZ_CNTL_GREATER                             0x00000004
+
+#define REG_A6XX_GRAS_UNKNOWN_8101                             0x00008101
+
+#define REG_A6XX_GRAS_2D_BLIT_INFO                             0x00008102
+#define A6XX_GRAS_2D_BLIT_INFO_COLOR_FORMAT__MASK              0x000000ff
+#define A6XX_GRAS_2D_BLIT_INFO_COLOR_FORMAT__SHIFT             0
+static inline uint32_t A6XX_GRAS_2D_BLIT_INFO_COLOR_FORMAT(enum a6xx_color_fmt val)
+{
+       return ((val) << A6XX_GRAS_2D_BLIT_INFO_COLOR_FORMAT__SHIFT) & A6XX_GRAS_2D_BLIT_INFO_COLOR_FORMAT__MASK;
+}
+
+#define REG_A6XX_GRAS_LRZ_BUFFER_BASE_LO                       0x00008103
+
+#define REG_A6XX_GRAS_LRZ_BUFFER_BASE_HI                       0x00008104
+
+#define REG_A6XX_GRAS_LRZ_BUFFER_PITCH                         0x00008105
+#define A6XX_GRAS_LRZ_BUFFER_PITCH_PITCH__MASK                 0x000007ff
+#define A6XX_GRAS_LRZ_BUFFER_PITCH_PITCH__SHIFT                        0
+static inline uint32_t A6XX_GRAS_LRZ_BUFFER_PITCH_PITCH(uint32_t val)
+{
+       assert(!(val & 0x1f));
+       return ((val >> 5) << A6XX_GRAS_LRZ_BUFFER_PITCH_PITCH__SHIFT) & A6XX_GRAS_LRZ_BUFFER_PITCH_PITCH__MASK;
+}
+#define A6XX_GRAS_LRZ_BUFFER_PITCH_ARRAY_PITCH__MASK           0x003ff800
+#define A6XX_GRAS_LRZ_BUFFER_PITCH_ARRAY_PITCH__SHIFT          11
+static inline uint32_t A6XX_GRAS_LRZ_BUFFER_PITCH_ARRAY_PITCH(uint32_t val)
+{
+       assert(!(val & 0x1f));
+       return ((val >> 5) << A6XX_GRAS_LRZ_BUFFER_PITCH_ARRAY_PITCH__SHIFT) & A6XX_GRAS_LRZ_BUFFER_PITCH_ARRAY_PITCH__MASK;
+}
+
+#define REG_A6XX_GRAS_LRZ_FAST_CLEAR_BUFFER_BASE_LO            0x00008106
+
+#define REG_A6XX_GRAS_LRZ_FAST_CLEAR_BUFFER_BASE_HI            0x00008107
+
+#define REG_A6XX_GRAS_UNKNOWN_8109                             0x00008109
+
+#define REG_A6XX_GRAS_UNKNOWN_8110                             0x00008110
+
+#define REG_A6XX_GRAS_2D_BLIT_CNTL                             0x00008400
+
+#define REG_A6XX_GRAS_2D_SRC_TL_X                              0x00008401
+#define A6XX_GRAS_2D_SRC_TL_X_X__MASK                          0x00ffff00
+#define A6XX_GRAS_2D_SRC_TL_X_X__SHIFT                         8
+static inline uint32_t A6XX_GRAS_2D_SRC_TL_X_X(uint32_t val)
+{
+       return ((val) << A6XX_GRAS_2D_SRC_TL_X_X__SHIFT) & A6XX_GRAS_2D_SRC_TL_X_X__MASK;
+}
+
+#define REG_A6XX_GRAS_2D_SRC_BR_X                              0x00008402
+#define A6XX_GRAS_2D_SRC_BR_X_X__MASK                          0x00ffff00
+#define A6XX_GRAS_2D_SRC_BR_X_X__SHIFT                         8
+static inline uint32_t A6XX_GRAS_2D_SRC_BR_X_X(uint32_t val)
+{
+       return ((val) << A6XX_GRAS_2D_SRC_BR_X_X__SHIFT) & A6XX_GRAS_2D_SRC_BR_X_X__MASK;
+}
+
+#define REG_A6XX_GRAS_2D_SRC_TL_Y                              0x00008403
+#define A6XX_GRAS_2D_SRC_TL_Y_Y__MASK                          0x00ffff00
+#define A6XX_GRAS_2D_SRC_TL_Y_Y__SHIFT                         8
+static inline uint32_t A6XX_GRAS_2D_SRC_TL_Y_Y(uint32_t val)
+{
+       return ((val) << A6XX_GRAS_2D_SRC_TL_Y_Y__SHIFT) & A6XX_GRAS_2D_SRC_TL_Y_Y__MASK;
+}
+
+#define REG_A6XX_GRAS_2D_SRC_BR_Y                              0x00008404
+#define A6XX_GRAS_2D_SRC_BR_Y_Y__MASK                          0x00ffff00
+#define A6XX_GRAS_2D_SRC_BR_Y_Y__SHIFT                         8
+static inline uint32_t A6XX_GRAS_2D_SRC_BR_Y_Y(uint32_t val)
+{
+       return ((val) << A6XX_GRAS_2D_SRC_BR_Y_Y__SHIFT) & A6XX_GRAS_2D_SRC_BR_Y_Y__MASK;
+}
+
+#define REG_A6XX_GRAS_2D_DST_TL                                        0x00008405
+#define A6XX_GRAS_2D_DST_TL_WINDOW_OFFSET_DISABLE              0x80000000
+#define A6XX_GRAS_2D_DST_TL_X__MASK                            0x00007fff
+#define A6XX_GRAS_2D_DST_TL_X__SHIFT                           0
+static inline uint32_t A6XX_GRAS_2D_DST_TL_X(uint32_t val)
+{
+       return ((val) << A6XX_GRAS_2D_DST_TL_X__SHIFT) & A6XX_GRAS_2D_DST_TL_X__MASK;
+}
+#define A6XX_GRAS_2D_DST_TL_Y__MASK                            0x7fff0000
+#define A6XX_GRAS_2D_DST_TL_Y__SHIFT                           16
+static inline uint32_t A6XX_GRAS_2D_DST_TL_Y(uint32_t val)
+{
+       return ((val) << A6XX_GRAS_2D_DST_TL_Y__SHIFT) & A6XX_GRAS_2D_DST_TL_Y__MASK;
+}
+
+#define REG_A6XX_GRAS_2D_DST_BR                                        0x00008406
+#define A6XX_GRAS_2D_DST_BR_WINDOW_OFFSET_DISABLE              0x80000000
+#define A6XX_GRAS_2D_DST_BR_X__MASK                            0x00007fff
+#define A6XX_GRAS_2D_DST_BR_X__SHIFT                           0
+static inline uint32_t A6XX_GRAS_2D_DST_BR_X(uint32_t val)
+{
+       return ((val) << A6XX_GRAS_2D_DST_BR_X__SHIFT) & A6XX_GRAS_2D_DST_BR_X__MASK;
+}
+#define A6XX_GRAS_2D_DST_BR_Y__MASK                            0x7fff0000
+#define A6XX_GRAS_2D_DST_BR_Y__SHIFT                           16
+static inline uint32_t A6XX_GRAS_2D_DST_BR_Y(uint32_t val)
+{
+       return ((val) << A6XX_GRAS_2D_DST_BR_Y__SHIFT) & A6XX_GRAS_2D_DST_BR_Y__MASK;
+}
+
+#define REG_A6XX_GRAS_RESOLVE_CNTL_1                           0x0000840a
+#define A6XX_GRAS_RESOLVE_CNTL_1_WINDOW_OFFSET_DISABLE         0x80000000
+#define A6XX_GRAS_RESOLVE_CNTL_1_X__MASK                       0x00007fff
+#define A6XX_GRAS_RESOLVE_CNTL_1_X__SHIFT                      0
+static inline uint32_t A6XX_GRAS_RESOLVE_CNTL_1_X(uint32_t val)
+{
+       return ((val) << A6XX_GRAS_RESOLVE_CNTL_1_X__SHIFT) & A6XX_GRAS_RESOLVE_CNTL_1_X__MASK;
+}
+#define A6XX_GRAS_RESOLVE_CNTL_1_Y__MASK                       0x7fff0000
+#define A6XX_GRAS_RESOLVE_CNTL_1_Y__SHIFT                      16
+static inline uint32_t A6XX_GRAS_RESOLVE_CNTL_1_Y(uint32_t val)
+{
+       return ((val) << A6XX_GRAS_RESOLVE_CNTL_1_Y__SHIFT) & A6XX_GRAS_RESOLVE_CNTL_1_Y__MASK;
+}
+
+#define REG_A6XX_GRAS_RESOLVE_CNTL_2                           0x0000840b
+#define A6XX_GRAS_RESOLVE_CNTL_2_WINDOW_OFFSET_DISABLE         0x80000000
+#define A6XX_GRAS_RESOLVE_CNTL_2_X__MASK                       0x00007fff
+#define A6XX_GRAS_RESOLVE_CNTL_2_X__SHIFT                      0
+static inline uint32_t A6XX_GRAS_RESOLVE_CNTL_2_X(uint32_t val)
+{
+       return ((val) << A6XX_GRAS_RESOLVE_CNTL_2_X__SHIFT) & A6XX_GRAS_RESOLVE_CNTL_2_X__MASK;
+}
+#define A6XX_GRAS_RESOLVE_CNTL_2_Y__MASK                       0x7fff0000
+#define A6XX_GRAS_RESOLVE_CNTL_2_Y__SHIFT                      16
+static inline uint32_t A6XX_GRAS_RESOLVE_CNTL_2_Y(uint32_t val)
+{
+       return ((val) << A6XX_GRAS_RESOLVE_CNTL_2_Y__SHIFT) & A6XX_GRAS_RESOLVE_CNTL_2_Y__MASK;
+}
+
+#define REG_A6XX_GRAS_UNKNOWN_8600                             0x00008600
+
+#define REG_A6XX_RB_RAS_MSAA_CNTL                              0x00008802
+#define A6XX_RB_RAS_MSAA_CNTL_SAMPLES__MASK                    0x00000003
+#define A6XX_RB_RAS_MSAA_CNTL_SAMPLES__SHIFT                   0
+static inline uint32_t A6XX_RB_RAS_MSAA_CNTL_SAMPLES(enum a3xx_msaa_samples val)
+{
+       return ((val) << A6XX_RB_RAS_MSAA_CNTL_SAMPLES__SHIFT) & A6XX_RB_RAS_MSAA_CNTL_SAMPLES__MASK;
+}
+
+#define REG_A6XX_RB_DEST_MSAA_CNTL                             0x00008803
+#define A6XX_RB_DEST_MSAA_CNTL_SAMPLES__MASK                   0x00000003
+#define A6XX_RB_DEST_MSAA_CNTL_SAMPLES__SHIFT                  0
+static inline uint32_t A6XX_RB_DEST_MSAA_CNTL_SAMPLES(enum a3xx_msaa_samples val)
+{
+       return ((val) << A6XX_RB_DEST_MSAA_CNTL_SAMPLES__SHIFT) & A6XX_RB_DEST_MSAA_CNTL_SAMPLES__MASK;
+}
+#define A6XX_RB_DEST_MSAA_CNTL_MSAA_DISABLE                    0x00000004
+
+#define REG_A6XX_RB_UNKNOWN_8804                               0x00008804
+
+#define REG_A6XX_RB_UNKNOWN_8805                               0x00008805
+
+#define REG_A6XX_RB_UNKNOWN_8806                               0x00008806
+
+#define REG_A6XX_RB_RENDER_CONTROL0                            0x00008809
+#define A6XX_RB_RENDER_CONTROL0_VARYING                                0x00000001
+#define A6XX_RB_RENDER_CONTROL0_XCOORD                         0x00000040
+#define A6XX_RB_RENDER_CONTROL0_YCOORD                         0x00000080
+#define A6XX_RB_RENDER_CONTROL0_ZCOORD                         0x00000100
+#define A6XX_RB_RENDER_CONTROL0_WCOORD                         0x00000200
+#define A6XX_RB_RENDER_CONTROL0_UNK10                          0x00000400
+
+#define REG_A6XX_RB_RENDER_CONTROL1                            0x0000880a
+#define A6XX_RB_RENDER_CONTROL1_SAMPLEMASK                     0x00000001
+#define A6XX_RB_RENDER_CONTROL1_FACENESS                       0x00000002
+#define A6XX_RB_RENDER_CONTROL1_SAMPLEID                       0x00000008
+
+#define REG_A6XX_RB_FS_OUTPUT_CNTL0                            0x0000880b
+#define A6XX_RB_FS_OUTPUT_CNTL0_FRAG_WRITES_Z                  0x00000002
+
+#define REG_A6XX_RB_FS_OUTPUT_CNTL1                            0x0000880c
+#define A6XX_RB_FS_OUTPUT_CNTL1_MRT__MASK                      0x0000000f
+#define A6XX_RB_FS_OUTPUT_CNTL1_MRT__SHIFT                     0
+static inline uint32_t A6XX_RB_FS_OUTPUT_CNTL1_MRT(uint32_t val)
+{
+       return ((val) << A6XX_RB_FS_OUTPUT_CNTL1_MRT__SHIFT) & A6XX_RB_FS_OUTPUT_CNTL1_MRT__MASK;
+}
+
+#define REG_A6XX_RB_RENDER_COMPONENTS                          0x0000880d
+#define A6XX_RB_RENDER_COMPONENTS_RT0__MASK                    0x0000000f
+#define A6XX_RB_RENDER_COMPONENTS_RT0__SHIFT                   0
+static inline uint32_t A6XX_RB_RENDER_COMPONENTS_RT0(uint32_t val)
+{
+       return ((val) << A6XX_RB_RENDER_COMPONENTS_RT0__SHIFT) & A6XX_RB_RENDER_COMPONENTS_RT0__MASK;
+}
+#define A6XX_RB_RENDER_COMPONENTS_RT1__MASK                    0x000000f0
+#define A6XX_RB_RENDER_COMPONENTS_RT1__SHIFT                   4
+static inline uint32_t A6XX_RB_RENDER_COMPONENTS_RT1(uint32_t val)
+{
+       return ((val) << A6XX_RB_RENDER_COMPONENTS_RT1__SHIFT) & A6XX_RB_RENDER_COMPONENTS_RT1__MASK;
+}
+#define A6XX_RB_RENDER_COMPONENTS_RT2__MASK                    0x00000f00
+#define A6XX_RB_RENDER_COMPONENTS_RT2__SHIFT                   8
+static inline uint32_t A6XX_RB_RENDER_COMPONENTS_RT2(uint32_t val)
+{
+       return ((val) << A6XX_RB_RENDER_COMPONENTS_RT2__SHIFT) & A6XX_RB_RENDER_COMPONENTS_RT2__MASK;
+}
+#define A6XX_RB_RENDER_COMPONENTS_RT3__MASK                    0x0000f000
+#define A6XX_RB_RENDER_COMPONENTS_RT3__SHIFT                   12
+static inline uint32_t A6XX_RB_RENDER_COMPONENTS_RT3(uint32_t val)
+{
+       return ((val) << A6XX_RB_RENDER_COMPONENTS_RT3__SHIFT) & A6XX_RB_RENDER_COMPONENTS_RT3__MASK;
+}
+#define A6XX_RB_RENDER_COMPONENTS_RT4__MASK                    0x000f0000
+#define A6XX_RB_RENDER_COMPONENTS_RT4__SHIFT                   16
+static inline uint32_t A6XX_RB_RENDER_COMPONENTS_RT4(uint32_t val)
+{
+       return ((val) << A6XX_RB_RENDER_COMPONENTS_RT4__SHIFT) & A6XX_RB_RENDER_COMPONENTS_RT4__MASK;
+}
+#define A6XX_RB_RENDER_COMPONENTS_RT5__MASK                    0x00f00000
+#define A6XX_RB_RENDER_COMPONENTS_RT5__SHIFT                   20
+static inline uint32_t A6XX_RB_RENDER_COMPONENTS_RT5(uint32_t val)
+{
+       return ((val) << A6XX_RB_RENDER_COMPONENTS_RT5__SHIFT) & A6XX_RB_RENDER_COMPONENTS_RT5__MASK;
+}
+#define A6XX_RB_RENDER_COMPONENTS_RT6__MASK                    0x0f000000
+#define A6XX_RB_RENDER_COMPONENTS_RT6__SHIFT                   24
+static inline uint32_t A6XX_RB_RENDER_COMPONENTS_RT6(uint32_t val)
+{
+       return ((val) << A6XX_RB_RENDER_COMPONENTS_RT6__SHIFT) & A6XX_RB_RENDER_COMPONENTS_RT6__MASK;
+}
+#define A6XX_RB_RENDER_COMPONENTS_RT7__MASK                    0xf0000000
+#define A6XX_RB_RENDER_COMPONENTS_RT7__SHIFT                   28
+static inline uint32_t A6XX_RB_RENDER_COMPONENTS_RT7(uint32_t val)
+{
+       return ((val) << A6XX_RB_RENDER_COMPONENTS_RT7__SHIFT) & A6XX_RB_RENDER_COMPONENTS_RT7__MASK;
+}
+
+#define REG_A6XX_RB_DITHER_CNTL                                        0x0000880e
+#define A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT0__MASK             0x00000003
+#define A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT0__SHIFT            0
+static inline uint32_t A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT0(enum adreno_rb_dither_mode val)
+{
+       return ((val) << A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT0__SHIFT) & A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT0__MASK;
+}
+#define A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT1__MASK             0x0000000c
+#define A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT1__SHIFT            2
+static inline uint32_t A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT1(enum adreno_rb_dither_mode val)
+{
+       return ((val) << A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT1__SHIFT) & A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT1__MASK;
+}
+#define A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT2__MASK             0x00000030
+#define A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT2__SHIFT            4
+static inline uint32_t A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT2(enum adreno_rb_dither_mode val)
+{
+       return ((val) << A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT2__SHIFT) & A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT2__MASK;
+}
+#define A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT3__MASK             0x000000c0
+#define A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT3__SHIFT            6
+static inline uint32_t A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT3(enum adreno_rb_dither_mode val)
+{
+       return ((val) << A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT3__SHIFT) & A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT3__MASK;
+}
+#define A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT4__MASK             0x00000300
+#define A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT4__SHIFT            8
+static inline uint32_t A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT4(enum adreno_rb_dither_mode val)
+{
+       return ((val) << A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT4__SHIFT) & A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT4__MASK;
+}
+#define A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT5__MASK             0x00000c00
+#define A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT5__SHIFT            10
+static inline uint32_t A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT5(enum adreno_rb_dither_mode val)
+{
+       return ((val) << A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT5__SHIFT) & A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT5__MASK;
+}
+#define A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT6__MASK             0x00001000
+#define A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT6__SHIFT            12
+static inline uint32_t A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT6(enum adreno_rb_dither_mode val)
+{
+       return ((val) << A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT6__SHIFT) & A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT6__MASK;
+}
+#define A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT7__MASK             0x0000c000
+#define A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT7__SHIFT            14
+static inline uint32_t A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT7(enum adreno_rb_dither_mode val)
+{
+       return ((val) << A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT7__SHIFT) & A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT7__MASK;
+}
+
+#define REG_A6XX_RB_SRGB_CNTL                                  0x0000880f
+#define A6XX_RB_SRGB_CNTL_SRGB_MRT0                            0x00000001
+#define A6XX_RB_SRGB_CNTL_SRGB_MRT1                            0x00000002
+#define A6XX_RB_SRGB_CNTL_SRGB_MRT2                            0x00000004
+#define A6XX_RB_SRGB_CNTL_SRGB_MRT3                            0x00000008
+#define A6XX_RB_SRGB_CNTL_SRGB_MRT4                            0x00000010
+#define A6XX_RB_SRGB_CNTL_SRGB_MRT5                            0x00000020
+#define A6XX_RB_SRGB_CNTL_SRGB_MRT6                            0x00000040
+#define A6XX_RB_SRGB_CNTL_SRGB_MRT7                            0x00000080
+
+#define REG_A6XX_RB_UNKNOWN_8810                               0x00008810
+
+#define REG_A6XX_RB_UNKNOWN_8811                               0x00008811
+
+#define REG_A6XX_RB_UNKNOWN_8818                               0x00008818
+
+#define REG_A6XX_RB_UNKNOWN_8819                               0x00008819
+
+#define REG_A6XX_RB_UNKNOWN_881A                               0x0000881a
+
+#define REG_A6XX_RB_UNKNOWN_881B                               0x0000881b
+
+#define REG_A6XX_RB_UNKNOWN_881C                               0x0000881c
+
+#define REG_A6XX_RB_UNKNOWN_881D                               0x0000881d
+
+#define REG_A6XX_RB_UNKNOWN_881E                               0x0000881e
+
+static inline uint32_t REG_A6XX_RB_MRT(uint32_t i0) { return 0x00008820 + 0x8*i0; }
+
+static inline uint32_t REG_A6XX_RB_MRT_CONTROL(uint32_t i0) { return 0x00008820 + 0x8*i0; }
+#define A6XX_RB_MRT_CONTROL_BLEND                              0x00000001
+#define A6XX_RB_MRT_CONTROL_BLEND2                             0x00000002
+#define A6XX_RB_MRT_CONTROL_ROP_ENABLE                         0x00000004
+#define A6XX_RB_MRT_CONTROL_ROP_CODE__MASK                     0x00000078
+#define A6XX_RB_MRT_CONTROL_ROP_CODE__SHIFT                    3
+static inline uint32_t A6XX_RB_MRT_CONTROL_ROP_CODE(enum a3xx_rop_code val)
+{
+       return ((val) << A6XX_RB_MRT_CONTROL_ROP_CODE__SHIFT) & A6XX_RB_MRT_CONTROL_ROP_CODE__MASK;
+}
+#define A6XX_RB_MRT_CONTROL_COMPONENT_ENABLE__MASK             0x00000780
+#define A6XX_RB_MRT_CONTROL_COMPONENT_ENABLE__SHIFT            7
+static inline uint32_t A6XX_RB_MRT_CONTROL_COMPONENT_ENABLE(uint32_t val)
+{
+       return ((val) << A6XX_RB_MRT_CONTROL_COMPONENT_ENABLE__SHIFT) & A6XX_RB_MRT_CONTROL_COMPONENT_ENABLE__MASK;
+}
+
+static inline uint32_t REG_A6XX_RB_MRT_BLEND_CONTROL(uint32_t i0) { return 0x00008821 + 0x8*i0; }
+#define A6XX_RB_MRT_BLEND_CONTROL_RGB_SRC_FACTOR__MASK         0x0000001f
+#define A6XX_RB_MRT_BLEND_CONTROL_RGB_SRC_FACTOR__SHIFT                0
+static inline uint32_t A6XX_RB_MRT_BLEND_CONTROL_RGB_SRC_FACTOR(enum adreno_rb_blend_factor val)
+{
+       return ((val) << A6XX_RB_MRT_BLEND_CONTROL_RGB_SRC_FACTOR__SHIFT) & A6XX_RB_MRT_BLEND_CONTROL_RGB_SRC_FACTOR__MASK;
+}
+#define A6XX_RB_MRT_BLEND_CONTROL_RGB_BLEND_OPCODE__MASK       0x000000e0
+#define A6XX_RB_MRT_BLEND_CONTROL_RGB_BLEND_OPCODE__SHIFT      5
+static inline uint32_t A6XX_RB_MRT_BLEND_CONTROL_RGB_BLEND_OPCODE(enum a3xx_rb_blend_opcode val)
+{
+       return ((val) << A6XX_RB_MRT_BLEND_CONTROL_RGB_BLEND_OPCODE__SHIFT) & A6XX_RB_MRT_BLEND_CONTROL_RGB_BLEND_OPCODE__MASK;
+}
+#define A6XX_RB_MRT_BLEND_CONTROL_RGB_DEST_FACTOR__MASK                0x00001f00
+#define A6XX_RB_MRT_BLEND_CONTROL_RGB_DEST_FACTOR__SHIFT       8
+static inline uint32_t A6XX_RB_MRT_BLEND_CONTROL_RGB_DEST_FACTOR(enum adreno_rb_blend_factor val)
+{
+       return ((val) << A6XX_RB_MRT_BLEND_CONTROL_RGB_DEST_FACTOR__SHIFT) & A6XX_RB_MRT_BLEND_CONTROL_RGB_DEST_FACTOR__MASK;
+}
+#define A6XX_RB_MRT_BLEND_CONTROL_ALPHA_SRC_FACTOR__MASK       0x001f0000
+#define A6XX_RB_MRT_BLEND_CONTROL_ALPHA_SRC_FACTOR__SHIFT      16
+static inline uint32_t A6XX_RB_MRT_BLEND_CONTROL_ALPHA_SRC_FACTOR(enum adreno_rb_blend_factor val)
+{
+       return ((val) << A6XX_RB_MRT_BLEND_CONTROL_ALPHA_SRC_FACTOR__SHIFT) & A6XX_RB_MRT_BLEND_CONTROL_ALPHA_SRC_FACTOR__MASK;
+}
+#define A6XX_RB_MRT_BLEND_CONTROL_ALPHA_BLEND_OPCODE__MASK     0x00e00000
+#define A6XX_RB_MRT_BLEND_CONTROL_ALPHA_BLEND_OPCODE__SHIFT    21
+static inline uint32_t A6XX_RB_MRT_BLEND_CONTROL_ALPHA_BLEND_OPCODE(enum a3xx_rb_blend_opcode val)
+{
+       return ((val) << A6XX_RB_MRT_BLEND_CONTROL_ALPHA_BLEND_OPCODE__SHIFT) & A6XX_RB_MRT_BLEND_CONTROL_ALPHA_BLEND_OPCODE__MASK;
+}
+#define A6XX_RB_MRT_BLEND_CONTROL_ALPHA_DEST_FACTOR__MASK      0x1f000000
+#define A6XX_RB_MRT_BLEND_CONTROL_ALPHA_DEST_FACTOR__SHIFT     24
+static inline uint32_t A6XX_RB_MRT_BLEND_CONTROL_ALPHA_DEST_FACTOR(enum adreno_rb_blend_factor val)
+{
+       return ((val) << A6XX_RB_MRT_BLEND_CONTROL_ALPHA_DEST_FACTOR__SHIFT) & A6XX_RB_MRT_BLEND_CONTROL_ALPHA_DEST_FACTOR__MASK;
+}
+
+static inline uint32_t REG_A6XX_RB_MRT_BUF_INFO(uint32_t i0) { return 0x00008822 + 0x8*i0; }
+#define A6XX_RB_MRT_BUF_INFO_COLOR_FORMAT__MASK                        0x000000ff
+#define A6XX_RB_MRT_BUF_INFO_COLOR_FORMAT__SHIFT               0
+static inline uint32_t A6XX_RB_MRT_BUF_INFO_COLOR_FORMAT(enum a6xx_color_fmt val)
+{
+       return ((val) << A6XX_RB_MRT_BUF_INFO_COLOR_FORMAT__SHIFT) & A6XX_RB_MRT_BUF_INFO_COLOR_FORMAT__MASK;
+}
+#define A6XX_RB_MRT_BUF_INFO_COLOR_TILE_MODE__MASK             0x00000300
+#define A6XX_RB_MRT_BUF_INFO_COLOR_TILE_MODE__SHIFT            8
+static inline uint32_t A6XX_RB_MRT_BUF_INFO_COLOR_TILE_MODE(enum a6xx_tile_mode val)
+{
+       return ((val) << A6XX_RB_MRT_BUF_INFO_COLOR_TILE_MODE__SHIFT) & A6XX_RB_MRT_BUF_INFO_COLOR_TILE_MODE__MASK;
+}
+#define A6XX_RB_MRT_BUF_INFO_COLOR_SWAP__MASK                  0x00006000
+#define A6XX_RB_MRT_BUF_INFO_COLOR_SWAP__SHIFT                 13
+static inline uint32_t A6XX_RB_MRT_BUF_INFO_COLOR_SWAP(enum a3xx_color_swap val)
+{
+       return ((val) << A6XX_RB_MRT_BUF_INFO_COLOR_SWAP__SHIFT) & A6XX_RB_MRT_BUF_INFO_COLOR_SWAP__MASK;
+}
+#define A6XX_RB_MRT_BUF_INFO_COLOR_SRGB                                0x00008000
+
+static inline uint32_t REG_A6XX_RB_MRT_PITCH(uint32_t i0) { return 0x00008823 + 0x8*i0; }
+#define A6XX_RB_MRT_PITCH__MASK                                        0xffffffff
+#define A6XX_RB_MRT_PITCH__SHIFT                               0
+static inline uint32_t A6XX_RB_MRT_PITCH(uint32_t val)
+{
+       assert(!(val & 0x3f));
+       return ((val >> 6) << A6XX_RB_MRT_PITCH__SHIFT) & A6XX_RB_MRT_PITCH__MASK;
+}
+
+static inline uint32_t REG_A6XX_RB_MRT_ARRAY_PITCH(uint32_t i0) { return 0x00008824 + 0x8*i0; }
+#define A6XX_RB_MRT_ARRAY_PITCH__MASK                          0xffffffff
+#define A6XX_RB_MRT_ARRAY_PITCH__SHIFT                         0
+static inline uint32_t A6XX_RB_MRT_ARRAY_PITCH(uint32_t val)
+{
+       assert(!(val & 0x3f));
+       return ((val >> 6) << A6XX_RB_MRT_ARRAY_PITCH__SHIFT) & A6XX_RB_MRT_ARRAY_PITCH__MASK;
+}
+
+static inline uint32_t REG_A6XX_RB_MRT_BASE_LO(uint32_t i0) { return 0x00008825 + 0x8*i0; }
+
+static inline uint32_t REG_A6XX_RB_MRT_BASE_HI(uint32_t i0) { return 0x00008826 + 0x8*i0; }
+
+static inline uint32_t REG_A6XX_RB_MRT_BASE_GMEM(uint32_t i0) { return 0x00008827 + 0x8*i0; }
+
+#define REG_A6XX_RB_BLEND_RED_F32                              0x00008860
+#define A6XX_RB_BLEND_RED_F32__MASK                            0xffffffff
+#define A6XX_RB_BLEND_RED_F32__SHIFT                           0
+static inline uint32_t A6XX_RB_BLEND_RED_F32(float val)
+{
+       return ((fui(val)) << A6XX_RB_BLEND_RED_F32__SHIFT) & A6XX_RB_BLEND_RED_F32__MASK;
+}
+
+#define REG_A6XX_RB_BLEND_GREEN_F32                            0x00008861
+#define A6XX_RB_BLEND_GREEN_F32__MASK                          0xffffffff
+#define A6XX_RB_BLEND_GREEN_F32__SHIFT                         0
+static inline uint32_t A6XX_RB_BLEND_GREEN_F32(float val)
+{
+       return ((fui(val)) << A6XX_RB_BLEND_GREEN_F32__SHIFT) & A6XX_RB_BLEND_GREEN_F32__MASK;
+}
+
+#define REG_A6XX_RB_BLEND_BLUE_F32                             0x00008862
+#define A6XX_RB_BLEND_BLUE_F32__MASK                           0xffffffff
+#define A6XX_RB_BLEND_BLUE_F32__SHIFT                          0
+static inline uint32_t A6XX_RB_BLEND_BLUE_F32(float val)
+{
+       return ((fui(val)) << A6XX_RB_BLEND_BLUE_F32__SHIFT) & A6XX_RB_BLEND_BLUE_F32__MASK;
+}
+
+#define REG_A6XX_RB_BLEND_ALPHA_F32                            0x00008863
+#define A6XX_RB_BLEND_ALPHA_F32__MASK                          0xffffffff
+#define A6XX_RB_BLEND_ALPHA_F32__SHIFT                         0
+static inline uint32_t A6XX_RB_BLEND_ALPHA_F32(float val)
+{
+       return ((fui(val)) << A6XX_RB_BLEND_ALPHA_F32__SHIFT) & A6XX_RB_BLEND_ALPHA_F32__MASK;
+}
+
+#define REG_A6XX_RB_ALPHA_CONTROL                              0x00008864
+#define A6XX_RB_ALPHA_CONTROL_ALPHA_REF__MASK                  0x000000ff
+#define A6XX_RB_ALPHA_CONTROL_ALPHA_REF__SHIFT                 0
+static inline uint32_t A6XX_RB_ALPHA_CONTROL_ALPHA_REF(uint32_t val)
+{
+       return ((val) << A6XX_RB_ALPHA_CONTROL_ALPHA_REF__SHIFT) & A6XX_RB_ALPHA_CONTROL_ALPHA_REF__MASK;
+}
+#define A6XX_RB_ALPHA_CONTROL_ALPHA_TEST                       0x00000100
+#define A6XX_RB_ALPHA_CONTROL_ALPHA_TEST_FUNC__MASK            0x00000e00
+#define A6XX_RB_ALPHA_CONTROL_ALPHA_TEST_FUNC__SHIFT           9
+static inline uint32_t A6XX_RB_ALPHA_CONTROL_ALPHA_TEST_FUNC(enum adreno_compare_func val)
+{
+       return ((val) << A6XX_RB_ALPHA_CONTROL_ALPHA_TEST_FUNC__SHIFT) & A6XX_RB_ALPHA_CONTROL_ALPHA_TEST_FUNC__MASK;
+}
+
+#define REG_A6XX_RB_BLEND_CNTL                                 0x00008865
+#define A6XX_RB_BLEND_CNTL_ENABLE_BLEND__MASK                  0x000000ff
+#define A6XX_RB_BLEND_CNTL_ENABLE_BLEND__SHIFT                 0
+static inline uint32_t A6XX_RB_BLEND_CNTL_ENABLE_BLEND(uint32_t val)
+{
+       return ((val) << A6XX_RB_BLEND_CNTL_ENABLE_BLEND__SHIFT) & A6XX_RB_BLEND_CNTL_ENABLE_BLEND__MASK;
+}
+#define A6XX_RB_BLEND_CNTL_INDEPENDENT_BLEND                   0x00000100
+#define A6XX_RB_BLEND_CNTL_SAMPLE_MASK__MASK                   0xffff0000
+#define A6XX_RB_BLEND_CNTL_SAMPLE_MASK__SHIFT                  16
+static inline uint32_t A6XX_RB_BLEND_CNTL_SAMPLE_MASK(uint32_t val)
+{
+       return ((val) << A6XX_RB_BLEND_CNTL_SAMPLE_MASK__SHIFT) & A6XX_RB_BLEND_CNTL_SAMPLE_MASK__MASK;
+}
+
+#define REG_A6XX_RB_DEPTH_CNTL                                 0x00008871
+#define A6XX_RB_DEPTH_CNTL_Z_ENABLE                            0x00000001
+#define A6XX_RB_DEPTH_CNTL_Z_WRITE_ENABLE                      0x00000002
+#define A6XX_RB_DEPTH_CNTL_ZFUNC__MASK                         0x0000001c
+#define A6XX_RB_DEPTH_CNTL_ZFUNC__SHIFT                                2
+static inline uint32_t A6XX_RB_DEPTH_CNTL_ZFUNC(enum adreno_compare_func val)
+{
+       return ((val) << A6XX_RB_DEPTH_CNTL_ZFUNC__SHIFT) & A6XX_RB_DEPTH_CNTL_ZFUNC__MASK;
+}
+#define A6XX_RB_DEPTH_CNTL_Z_TEST_ENABLE                       0x00000040
+
+#define REG_A6XX_RB_DEPTH_BUFFER_INFO                          0x00008872
+#define A6XX_RB_DEPTH_BUFFER_INFO_DEPTH_FORMAT__MASK           0x00000007
+#define A6XX_RB_DEPTH_BUFFER_INFO_DEPTH_FORMAT__SHIFT          0
+static inline uint32_t A6XX_RB_DEPTH_BUFFER_INFO_DEPTH_FORMAT(enum a6xx_depth_format val)
+{
+       return ((val) << A6XX_RB_DEPTH_BUFFER_INFO_DEPTH_FORMAT__SHIFT) & A6XX_RB_DEPTH_BUFFER_INFO_DEPTH_FORMAT__MASK;
+}
+
+#define REG_A6XX_RB_DEPTH_BUFFER_PITCH                         0x00008873
+#define A6XX_RB_DEPTH_BUFFER_PITCH__MASK                       0xffffffff
+#define A6XX_RB_DEPTH_BUFFER_PITCH__SHIFT                      0
+static inline uint32_t A6XX_RB_DEPTH_BUFFER_PITCH(uint32_t val)
+{
+       assert(!(val & 0x3f));
+       return ((val >> 6) << A6XX_RB_DEPTH_BUFFER_PITCH__SHIFT) & A6XX_RB_DEPTH_BUFFER_PITCH__MASK;
+}
+
+#define REG_A6XX_RB_DEPTH_BUFFER_ARRAY_PITCH                   0x00008874
+#define A6XX_RB_DEPTH_BUFFER_ARRAY_PITCH__MASK                 0xffffffff
+#define A6XX_RB_DEPTH_BUFFER_ARRAY_PITCH__SHIFT                        0
+static inline uint32_t A6XX_RB_DEPTH_BUFFER_ARRAY_PITCH(uint32_t val)
+{
+       assert(!(val & 0x3f));
+       return ((val >> 6) << A6XX_RB_DEPTH_BUFFER_ARRAY_PITCH__SHIFT) & A6XX_RB_DEPTH_BUFFER_ARRAY_PITCH__MASK;
+}
+
+#define REG_A6XX_RB_DEPTH_BUFFER_BASE_LO                       0x00008875
+
+#define REG_A6XX_RB_DEPTH_BUFFER_BASE_HI                       0x00008876
+
+#define REG_A6XX_RB_DEPTH_BUFFER_BASE_GMEM                     0x00008877
+
+#define REG_A6XX_RB_UNKNOWN_8878                               0x00008878
+
+#define REG_A6XX_RB_UNKNOWN_8879                               0x00008879
+
+#define REG_A6XX_RB_STENCIL_CONTROL                            0x00008880
+#define A6XX_RB_STENCIL_CONTROL_STENCIL_ENABLE                 0x00000001
+#define A6XX_RB_STENCIL_CONTROL_STENCIL_ENABLE_BF              0x00000002
+#define A6XX_RB_STENCIL_CONTROL_STENCIL_READ                   0x00000004
+#define A6XX_RB_STENCIL_CONTROL_FUNC__MASK                     0x00000700
+#define A6XX_RB_STENCIL_CONTROL_FUNC__SHIFT                    8
+static inline uint32_t A6XX_RB_STENCIL_CONTROL_FUNC(enum adreno_compare_func val)
+{
+       return ((val) << A6XX_RB_STENCIL_CONTROL_FUNC__SHIFT) & A6XX_RB_STENCIL_CONTROL_FUNC__MASK;
+}
+#define A6XX_RB_STENCIL_CONTROL_FAIL__MASK                     0x00003800
+#define A6XX_RB_STENCIL_CONTROL_FAIL__SHIFT                    11
+static inline uint32_t A6XX_RB_STENCIL_CONTROL_FAIL(enum adreno_stencil_op val)
+{
+       return ((val) << A6XX_RB_STENCIL_CONTROL_FAIL__SHIFT) & A6XX_RB_STENCIL_CONTROL_FAIL__MASK;
+}
+#define A6XX_RB_STENCIL_CONTROL_ZPASS__MASK                    0x0001c000
+#define A6XX_RB_STENCIL_CONTROL_ZPASS__SHIFT                   14
+static inline uint32_t A6XX_RB_STENCIL_CONTROL_ZPASS(enum adreno_stencil_op val)
+{
+       return ((val) << A6XX_RB_STENCIL_CONTROL_ZPASS__SHIFT) & A6XX_RB_STENCIL_CONTROL_ZPASS__MASK;
+}
+#define A6XX_RB_STENCIL_CONTROL_ZFAIL__MASK                    0x000e0000
+#define A6XX_RB_STENCIL_CONTROL_ZFAIL__SHIFT                   17
+static inline uint32_t A6XX_RB_STENCIL_CONTROL_ZFAIL(enum adreno_stencil_op val)
+{
+       return ((val) << A6XX_RB_STENCIL_CONTROL_ZFAIL__SHIFT) & A6XX_RB_STENCIL_CONTROL_ZFAIL__MASK;
+}
+#define A6XX_RB_STENCIL_CONTROL_FUNC_BF__MASK                  0x00700000
+#define A6XX_RB_STENCIL_CONTROL_FUNC_BF__SHIFT                 20
+static inline uint32_t A6XX_RB_STENCIL_CONTROL_FUNC_BF(enum adreno_compare_func val)
+{
+       return ((val) << A6XX_RB_STENCIL_CONTROL_FUNC_BF__SHIFT) & A6XX_RB_STENCIL_CONTROL_FUNC_BF__MASK;
+}
+#define A6XX_RB_STENCIL_CONTROL_FAIL_BF__MASK                  0x03800000
+#define A6XX_RB_STENCIL_CONTROL_FAIL_BF__SHIFT                 23
+static inline uint32_t A6XX_RB_STENCIL_CONTROL_FAIL_BF(enum adreno_stencil_op val)
+{
+       return ((val) << A6XX_RB_STENCIL_CONTROL_FAIL_BF__SHIFT) & A6XX_RB_STENCIL_CONTROL_FAIL_BF__MASK;
+}
+#define A6XX_RB_STENCIL_CONTROL_ZPASS_BF__MASK                 0x1c000000
+#define A6XX_RB_STENCIL_CONTROL_ZPASS_BF__SHIFT                        26
+static inline uint32_t A6XX_RB_STENCIL_CONTROL_ZPASS_BF(enum adreno_stencil_op val)
+{
+       return ((val) << A6XX_RB_STENCIL_CONTROL_ZPASS_BF__SHIFT) & A6XX_RB_STENCIL_CONTROL_ZPASS_BF__MASK;
+}
+#define A6XX_RB_STENCIL_CONTROL_ZFAIL_BF__MASK                 0xe0000000
+#define A6XX_RB_STENCIL_CONTROL_ZFAIL_BF__SHIFT                        29
+static inline uint32_t A6XX_RB_STENCIL_CONTROL_ZFAIL_BF(enum adreno_stencil_op val)
+{
+       return ((val) << A6XX_RB_STENCIL_CONTROL_ZFAIL_BF__SHIFT) & A6XX_RB_STENCIL_CONTROL_ZFAIL_BF__MASK;
+}
+
+#define REG_A6XX_RB_STENCIL_INFO                               0x00008881
+#define A6XX_RB_STENCIL_INFO_SEPARATE_STENCIL                  0x00000001
+
+#define REG_A6XX_RB_STENCIL_BUFFER_PITCH                       0x00008882
+#define A6XX_RB_STENCIL_BUFFER_PITCH__MASK                     0xffffffff
+#define A6XX_RB_STENCIL_BUFFER_PITCH__SHIFT                    0
+static inline uint32_t A6XX_RB_STENCIL_BUFFER_PITCH(uint32_t val)
+{
+       assert(!(val & 0x3f));
+       return ((val >> 6) << A6XX_RB_STENCIL_BUFFER_PITCH__SHIFT) & A6XX_RB_STENCIL_BUFFER_PITCH__MASK;
+}
+
+#define REG_A6XX_RB_STENCIL_BUFFER_ARRAY_PITCH                 0x00008883
+#define A6XX_RB_STENCIL_BUFFER_ARRAY_PITCH__MASK               0xffffffff
+#define A6XX_RB_STENCIL_BUFFER_ARRAY_PITCH__SHIFT              0
+static inline uint32_t A6XX_RB_STENCIL_BUFFER_ARRAY_PITCH(uint32_t val)
+{
+       assert(!(val & 0x3f));
+       return ((val >> 6) << A6XX_RB_STENCIL_BUFFER_ARRAY_PITCH__SHIFT) & A6XX_RB_STENCIL_BUFFER_ARRAY_PITCH__MASK;
+}
+
+#define REG_A6XX_RB_STENCIL_BUFFER_BASE_LO                     0x00008884
+
+#define REG_A6XX_RB_STENCIL_BUFFER_BASE_HI                     0x00008885
+
+#define REG_A6XX_RB_STENCIL_BUFFER_BASE_GMEM                   0x00008886
+
+#define REG_A6XX_RB_STENCILREF                                 0x00008887
+#define A6XX_RB_STENCILREF_REF__MASK                           0x000000ff
+#define A6XX_RB_STENCILREF_REF__SHIFT                          0
+static inline uint32_t A6XX_RB_STENCILREF_REF(uint32_t val)
+{
+       return ((val) << A6XX_RB_STENCILREF_REF__SHIFT) & A6XX_RB_STENCILREF_REF__MASK;
+}
+
+#define REG_A6XX_RB_STENCILMASK                                        0x00008888
+#define A6XX_RB_STENCILMASK_MASK__MASK                         0x000000ff
+#define A6XX_RB_STENCILMASK_MASK__SHIFT                                0
+static inline uint32_t A6XX_RB_STENCILMASK_MASK(uint32_t val)
+{
+       return ((val) << A6XX_RB_STENCILMASK_MASK__SHIFT) & A6XX_RB_STENCILMASK_MASK__MASK;
+}
+
+#define REG_A6XX_RB_STENCILWRMASK                              0x00008889
+#define A6XX_RB_STENCILWRMASK_WRMASK__MASK                     0x000000ff
+#define A6XX_RB_STENCILWRMASK_WRMASK__SHIFT                    0
+static inline uint32_t A6XX_RB_STENCILWRMASK_WRMASK(uint32_t val)
+{
+       return ((val) << A6XX_RB_STENCILWRMASK_WRMASK__SHIFT) & A6XX_RB_STENCILWRMASK_WRMASK__MASK;
+}
+
+#define REG_A6XX_RB_WINDOW_OFFSET                              0x00008890
+#define A6XX_RB_WINDOW_OFFSET_WINDOW_OFFSET_DISABLE            0x80000000
+#define A6XX_RB_WINDOW_OFFSET_X__MASK                          0x00007fff
+#define A6XX_RB_WINDOW_OFFSET_X__SHIFT                         0
+static inline uint32_t A6XX_RB_WINDOW_OFFSET_X(uint32_t val)
+{
+       return ((val) << A6XX_RB_WINDOW_OFFSET_X__SHIFT) & A6XX_RB_WINDOW_OFFSET_X__MASK;
+}
+#define A6XX_RB_WINDOW_OFFSET_Y__MASK                          0x7fff0000
+#define A6XX_RB_WINDOW_OFFSET_Y__SHIFT                         16
+static inline uint32_t A6XX_RB_WINDOW_OFFSET_Y(uint32_t val)
+{
+       return ((val) << A6XX_RB_WINDOW_OFFSET_Y__SHIFT) & A6XX_RB_WINDOW_OFFSET_Y__MASK;
+}
+
+#define REG_A6XX_RB_SAMPLE_COUNT_CONTROL                       0x00008891
+#define A6XX_RB_SAMPLE_COUNT_CONTROL_COPY                      0x00000002
+
+#define REG_A6XX_RB_UNKNOWN_88D0                               0x000088d0
+
+#define REG_A6XX_RB_BLIT_SCISSOR_TL                            0x000088d1
+#define A6XX_RB_BLIT_SCISSOR_TL_WINDOW_OFFSET_DISABLE          0x80000000
+#define A6XX_RB_BLIT_SCISSOR_TL_X__MASK                                0x00007fff
+#define A6XX_RB_BLIT_SCISSOR_TL_X__SHIFT                       0
+static inline uint32_t A6XX_RB_BLIT_SCISSOR_TL_X(uint32_t val)
+{
+       return ((val) << A6XX_RB_BLIT_SCISSOR_TL_X__SHIFT) & A6XX_RB_BLIT_SCISSOR_TL_X__MASK;
+}
+#define A6XX_RB_BLIT_SCISSOR_TL_Y__MASK                                0x7fff0000
+#define A6XX_RB_BLIT_SCISSOR_TL_Y__SHIFT                       16
+static inline uint32_t A6XX_RB_BLIT_SCISSOR_TL_Y(uint32_t val)
+{
+       return ((val) << A6XX_RB_BLIT_SCISSOR_TL_Y__SHIFT) & A6XX_RB_BLIT_SCISSOR_TL_Y__MASK;
+}
+
+#define REG_A6XX_RB_BLIT_SCISSOR_BR                            0x000088d2
+#define A6XX_RB_BLIT_SCISSOR_BR_WINDOW_OFFSET_DISABLE          0x80000000
+#define A6XX_RB_BLIT_SCISSOR_BR_X__MASK                                0x00007fff
+#define A6XX_RB_BLIT_SCISSOR_BR_X__SHIFT                       0
+static inline uint32_t A6XX_RB_BLIT_SCISSOR_BR_X(uint32_t val)
+{
+       return ((val) << A6XX_RB_BLIT_SCISSOR_BR_X__SHIFT) & A6XX_RB_BLIT_SCISSOR_BR_X__MASK;
+}
+#define A6XX_RB_BLIT_SCISSOR_BR_Y__MASK                                0x7fff0000
+#define A6XX_RB_BLIT_SCISSOR_BR_Y__SHIFT                       16
+static inline uint32_t A6XX_RB_BLIT_SCISSOR_BR_Y(uint32_t val)
+{
+       return ((val) << A6XX_RB_BLIT_SCISSOR_BR_Y__SHIFT) & A6XX_RB_BLIT_SCISSOR_BR_Y__MASK;
+}
+
+#define REG_A6XX_RB_BLIT_BASE_GMEM                             0x000088d6
+
+#define REG_A6XX_RB_BLIT_DST_INFO                              0x000088d7
+#define A6XX_RB_BLIT_DST_INFO_TILE_MODE__MASK                  0x00000003
+#define A6XX_RB_BLIT_DST_INFO_TILE_MODE__SHIFT                 0
+static inline uint32_t A6XX_RB_BLIT_DST_INFO_TILE_MODE(enum a6xx_tile_mode val)
+{
+       return ((val) << A6XX_RB_BLIT_DST_INFO_TILE_MODE__SHIFT) & A6XX_RB_BLIT_DST_INFO_TILE_MODE__MASK;
+}
+#define A6XX_RB_BLIT_DST_INFO_FLAGS                            0x00000004
+#define A6XX_RB_BLIT_DST_INFO_COLOR_FORMAT__MASK               0x00007f80
+#define A6XX_RB_BLIT_DST_INFO_COLOR_FORMAT__SHIFT              7
+static inline uint32_t A6XX_RB_BLIT_DST_INFO_COLOR_FORMAT(enum a6xx_color_fmt val)
+{
+       return ((val) << A6XX_RB_BLIT_DST_INFO_COLOR_FORMAT__SHIFT) & A6XX_RB_BLIT_DST_INFO_COLOR_FORMAT__MASK;
+}
+#define A6XX_RB_BLIT_DST_INFO_COLOR_SWAP__MASK                 0x00000060
+#define A6XX_RB_BLIT_DST_INFO_COLOR_SWAP__SHIFT                        5
+static inline uint32_t A6XX_RB_BLIT_DST_INFO_COLOR_SWAP(enum a3xx_color_swap val)
+{
+       return ((val) << A6XX_RB_BLIT_DST_INFO_COLOR_SWAP__SHIFT) & A6XX_RB_BLIT_DST_INFO_COLOR_SWAP__MASK;
+}
+
+#define REG_A6XX_RB_BLIT_DST_LO                                        0x000088d8
+
+#define REG_A6XX_RB_BLIT_DST_HI                                        0x000088d9
+
+#define REG_A6XX_RB_BLIT_DST_PITCH                             0x000088da
+#define A6XX_RB_BLIT_DST_PITCH__MASK                           0xffffffff
+#define A6XX_RB_BLIT_DST_PITCH__SHIFT                          0
+static inline uint32_t A6XX_RB_BLIT_DST_PITCH(uint32_t val)
+{
+       assert(!(val & 0x3f));
+       return ((val >> 6) << A6XX_RB_BLIT_DST_PITCH__SHIFT) & A6XX_RB_BLIT_DST_PITCH__MASK;
+}
+
+#define REG_A6XX_RB_BLIT_DST_ARRAY_PITCH                       0x000088db
+#define A6XX_RB_BLIT_DST_ARRAY_PITCH__MASK                     0xffffffff
+#define A6XX_RB_BLIT_DST_ARRAY_PITCH__SHIFT                    0
+static inline uint32_t A6XX_RB_BLIT_DST_ARRAY_PITCH(uint32_t val)
+{
+       assert(!(val & 0x3f));
+       return ((val >> 6) << A6XX_RB_BLIT_DST_ARRAY_PITCH__SHIFT) & A6XX_RB_BLIT_DST_ARRAY_PITCH__MASK;
+}
+
+#define REG_A6XX_RB_BLIT_FLAG_DST_LO                           0x000088dc
+
+#define REG_A6XX_RB_BLIT_FLAG_DST_HI                           0x000088dd
+
+#define REG_A6XX_RB_BLIT_CLEAR_COLOR_DW0                       0x000088df
+
+#define REG_A6XX_RB_BLIT_CLEAR_COLOR_DW1                       0x000088e0
+
+#define REG_A6XX_RB_BLIT_CLEAR_COLOR_DW2                       0x000088e1
+
+#define REG_A6XX_RB_BLIT_CLEAR_COLOR_DW3                       0x000088e2
+
+#define REG_A6XX_RB_BLIT_INFO                                  0x000088e3
+#define A6XX_RB_BLIT_INFO_UNK0                                 0x00000001
+#define A6XX_RB_BLIT_INFO_GMEM                                 0x00000002
+#define A6XX_RB_BLIT_INFO_INTEGER                              0x00000004
+#define A6XX_RB_BLIT_INFO_DEPTH                                        0x00000008
+#define A6XX_RB_BLIT_INFO_CLEAR_MASK__MASK                     0x000000f0
+#define A6XX_RB_BLIT_INFO_CLEAR_MASK__SHIFT                    4
+static inline uint32_t A6XX_RB_BLIT_INFO_CLEAR_MASK(uint32_t val)
+{
+       return ((val) << A6XX_RB_BLIT_INFO_CLEAR_MASK__SHIFT) & A6XX_RB_BLIT_INFO_CLEAR_MASK__MASK;
+}
+
+#define REG_A6XX_RB_UNKNOWN_88F0                               0x000088f0
+
+#define REG_A6XX_RB_DEPTH_FLAG_BUFFER_BASE_LO                  0x00008900
+
+#define REG_A6XX_RB_DEPTH_FLAG_BUFFER_BASE_HI                  0x00008901
+
+#define REG_A6XX_RB_DEPTH_FLAG_BUFFER_PITCH                    0x00008902
+
+static inline uint32_t REG_A6XX_RB_MRT_FLAG_BUFFER(uint32_t i0) { return 0x00008903 + 0x3*i0; }
+
+static inline uint32_t REG_A6XX_RB_MRT_FLAG_BUFFER_ADDR_LO(uint32_t i0) { return 0x00008903 + 0x3*i0; }
+
+static inline uint32_t REG_A6XX_RB_MRT_FLAG_BUFFER_ADDR_HI(uint32_t i0) { return 0x00008904 + 0x3*i0; }
+
+static inline uint32_t REG_A6XX_RB_MRT_FLAG_BUFFER_PITCH(uint32_t i0) { return 0x00008905 + 0x3*i0; }
+#define A6XX_RB_MRT_FLAG_BUFFER_PITCH_PITCH__MASK              0x000007ff
+#define A6XX_RB_MRT_FLAG_BUFFER_PITCH_PITCH__SHIFT             0
+static inline uint32_t A6XX_RB_MRT_FLAG_BUFFER_PITCH_PITCH(uint32_t val)
+{
+       assert(!(val & 0x1f));
+       return ((val >> 5) << A6XX_RB_MRT_FLAG_BUFFER_PITCH_PITCH__SHIFT) & A6XX_RB_MRT_FLAG_BUFFER_PITCH_PITCH__MASK;
+}
+#define A6XX_RB_MRT_FLAG_BUFFER_PITCH_ARRAY_PITCH__MASK                0x003ff800
+#define A6XX_RB_MRT_FLAG_BUFFER_PITCH_ARRAY_PITCH__SHIFT       11
+static inline uint32_t A6XX_RB_MRT_FLAG_BUFFER_PITCH_ARRAY_PITCH(uint32_t val)
+{
+       assert(!(val & 0x1f));
+       return ((val >> 5) << A6XX_RB_MRT_FLAG_BUFFER_PITCH_ARRAY_PITCH__SHIFT) & A6XX_RB_MRT_FLAG_BUFFER_PITCH_ARRAY_PITCH__MASK;
+}
+
+#define REG_A6XX_RB_SAMPLE_COUNT_ADDR_LO                       0x00008927
+
+#define REG_A6XX_RB_SAMPLE_COUNT_ADDR_HI                       0x00008928
+
+#define REG_A6XX_RB_2D_BLIT_CNTL                               0x00008c00
+#define A6XX_RB_2D_BLIT_CNTL_COLOR_FORMAT__MASK                        0x0000ff00
+#define A6XX_RB_2D_BLIT_CNTL_COLOR_FORMAT__SHIFT               8
+static inline uint32_t A6XX_RB_2D_BLIT_CNTL_COLOR_FORMAT(enum a6xx_color_fmt val)
+{
+       return ((val) << A6XX_RB_2D_BLIT_CNTL_COLOR_FORMAT__SHIFT) & A6XX_RB_2D_BLIT_CNTL_COLOR_FORMAT__MASK;
+}
+
+#define REG_A6XX_RB_2D_DST_INFO                                        0x00008c17
+#define A6XX_RB_2D_DST_INFO_COLOR_FORMAT__MASK                 0x000000ff
+#define A6XX_RB_2D_DST_INFO_COLOR_FORMAT__SHIFT                        0
+static inline uint32_t A6XX_RB_2D_DST_INFO_COLOR_FORMAT(enum a6xx_color_fmt val)
+{
+       return ((val) << A6XX_RB_2D_DST_INFO_COLOR_FORMAT__SHIFT) & A6XX_RB_2D_DST_INFO_COLOR_FORMAT__MASK;
+}
+#define A6XX_RB_2D_DST_INFO_TILE_MODE__MASK                    0x00000300
+#define A6XX_RB_2D_DST_INFO_TILE_MODE__SHIFT                   8
+static inline uint32_t A6XX_RB_2D_DST_INFO_TILE_MODE(enum a6xx_tile_mode val)
+{
+       return ((val) << A6XX_RB_2D_DST_INFO_TILE_MODE__SHIFT) & A6XX_RB_2D_DST_INFO_TILE_MODE__MASK;
+}
+#define A6XX_RB_2D_DST_INFO_COLOR_SWAP__MASK                   0x00000c00
+#define A6XX_RB_2D_DST_INFO_COLOR_SWAP__SHIFT                  10
+static inline uint32_t A6XX_RB_2D_DST_INFO_COLOR_SWAP(enum a3xx_color_swap val)
+{
+       return ((val) << A6XX_RB_2D_DST_INFO_COLOR_SWAP__SHIFT) & A6XX_RB_2D_DST_INFO_COLOR_SWAP__MASK;
+}
+#define A6XX_RB_2D_DST_INFO_FLAGS                              0x00001000
+
+#define REG_A6XX_RB_2D_DST_LO                                  0x00008c18
+
+#define REG_A6XX_RB_2D_DST_HI                                  0x00008c19
+
+#define REG_A6XX_RB_2D_DST_SIZE                                        0x00008c1a
+#define A6XX_RB_2D_DST_SIZE_PITCH__MASK                                0x0000ffff
+#define A6XX_RB_2D_DST_SIZE_PITCH__SHIFT                       0
+static inline uint32_t A6XX_RB_2D_DST_SIZE_PITCH(uint32_t val)
+{
+       assert(!(val & 0x3f));
+       return ((val >> 6) << A6XX_RB_2D_DST_SIZE_PITCH__SHIFT) & A6XX_RB_2D_DST_SIZE_PITCH__MASK;
+}
+
+#define REG_A6XX_RB_2D_DST_FLAGS_LO                            0x00008c20
+
+#define REG_A6XX_RB_2D_DST_FLAGS_HI                            0x00008c21
+
+#define REG_A6XX_RB_2D_SRC_SOLID_C0                            0x00008c2c
+
+#define REG_A6XX_RB_2D_SRC_SOLID_C1                            0x00008c2d
+
+#define REG_A6XX_RB_2D_SRC_SOLID_C2                            0x00008c2e
+
+#define REG_A6XX_RB_2D_SRC_SOLID_C3                            0x00008c2f
+
+#define REG_A6XX_RB_UNKNOWN_8E01                               0x00008e01
+
+#define REG_A6XX_RB_UNKNOWN_8E04                               0x00008e04
+
+#define REG_A6XX_RB_CCU_CNTL                                   0x00008e07
+
+#define REG_A6XX_VPC_UNKNOWN_9101                              0x00009101
+
+#define REG_A6XX_VPC_GS_SIV_CNTL                               0x00009104
+
+#define REG_A6XX_VPC_UNKNOWN_9107                              0x00009107
+
+#define REG_A6XX_VPC_UNKNOWN_9108                              0x00009108
+
+static inline uint32_t REG_A6XX_VPC_VARYING_INTERP(uint32_t i0) { return 0x00009200 + 0x1*i0; }
+
+static inline uint32_t REG_A6XX_VPC_VARYING_INTERP_MODE(uint32_t i0) { return 0x00009200 + 0x1*i0; }
+
+static inline uint32_t REG_A6XX_VPC_VARYING_PS_REPL(uint32_t i0) { return 0x00009208 + 0x1*i0; }
+
+static inline uint32_t REG_A6XX_VPC_VARYING_PS_REPL_MODE(uint32_t i0) { return 0x00009208 + 0x1*i0; }
+
+#define REG_A6XX_VPC_UNKNOWN_9210                              0x00009210
+
+#define REG_A6XX_VPC_UNKNOWN_9211                              0x00009211
+
+static inline uint32_t REG_A6XX_VPC_VAR(uint32_t i0) { return 0x00009212 + 0x1*i0; }
+
+static inline uint32_t REG_A6XX_VPC_VAR_DISABLE(uint32_t i0) { return 0x00009212 + 0x1*i0; }
+
+#define REG_A6XX_VPC_SO_CNTL                                   0x00009216
+#define A6XX_VPC_SO_CNTL_ENABLE                                        0x00010000
+
+#define REG_A6XX_VPC_SO_PROG                                   0x00009217
+#define A6XX_VPC_SO_PROG_A_BUF__MASK                           0x00000003
+#define A6XX_VPC_SO_PROG_A_BUF__SHIFT                          0
+static inline uint32_t A6XX_VPC_SO_PROG_A_BUF(uint32_t val)
+{
+       return ((val) << A6XX_VPC_SO_PROG_A_BUF__SHIFT) & A6XX_VPC_SO_PROG_A_BUF__MASK;
+}
+#define A6XX_VPC_SO_PROG_A_OFF__MASK                           0x000007fc
+#define A6XX_VPC_SO_PROG_A_OFF__SHIFT                          2
+static inline uint32_t A6XX_VPC_SO_PROG_A_OFF(uint32_t val)
+{
+       assert(!(val & 0x3));
+       return ((val >> 2) << A6XX_VPC_SO_PROG_A_OFF__SHIFT) & A6XX_VPC_SO_PROG_A_OFF__MASK;
+}
+#define A6XX_VPC_SO_PROG_A_EN                                  0x00000800
+#define A6XX_VPC_SO_PROG_B_BUF__MASK                           0x00003000
+#define A6XX_VPC_SO_PROG_B_BUF__SHIFT                          12
+static inline uint32_t A6XX_VPC_SO_PROG_B_BUF(uint32_t val)
+{
+       return ((val) << A6XX_VPC_SO_PROG_B_BUF__SHIFT) & A6XX_VPC_SO_PROG_B_BUF__MASK;
+}
+#define A6XX_VPC_SO_PROG_B_OFF__MASK                           0x007fc000
+#define A6XX_VPC_SO_PROG_B_OFF__SHIFT                          14
+static inline uint32_t A6XX_VPC_SO_PROG_B_OFF(uint32_t val)
+{
+       assert(!(val & 0x3));
+       return ((val >> 2) << A6XX_VPC_SO_PROG_B_OFF__SHIFT) & A6XX_VPC_SO_PROG_B_OFF__MASK;
+}
+#define A6XX_VPC_SO_PROG_B_EN                                  0x00800000
+
+static inline uint32_t REG_A6XX_VPC_SO(uint32_t i0) { return 0x0000921a + 0x7*i0; }
+
+static inline uint32_t REG_A6XX_VPC_SO_BUFFER_BASE_LO(uint32_t i0) { return 0x0000921a + 0x7*i0; }
+
+static inline uint32_t REG_A6XX_VPC_SO_BUFFER_BASE_HI(uint32_t i0) { return 0x0000921b + 0x7*i0; }
+
+static inline uint32_t REG_A6XX_VPC_SO_BUFFER_SIZE(uint32_t i0) { return 0x0000921c + 0x7*i0; }
+
+static inline uint32_t REG_A6XX_VPC_SO_NCOMP(uint32_t i0) { return 0x0000921d + 0x7*i0; }
+
+static inline uint32_t REG_A6XX_VPC_SO_BUFFER_OFFSET(uint32_t i0) { return 0x0000921e + 0x7*i0; }
+
+static inline uint32_t REG_A6XX_VPC_SO_FLUSH_BASE_LO(uint32_t i0) { return 0x0000921f + 0x7*i0; }
+
+static inline uint32_t REG_A6XX_VPC_SO_FLUSH_BASE_HI(uint32_t i0) { return 0x00009220 + 0x7*i0; }
+
+#define REG_A6XX_VPC_UNKNOWN_9236                              0x00009236
+
+#define REG_A6XX_VPC_UNKNOWN_9300                              0x00009300
+
+#define REG_A6XX_VPC_PACK                                      0x00009301
+#define A6XX_VPC_PACK_STRIDE_IN_VPC__MASK                      0x000000ff
+#define A6XX_VPC_PACK_STRIDE_IN_VPC__SHIFT                     0
+static inline uint32_t A6XX_VPC_PACK_STRIDE_IN_VPC(uint32_t val)
+{
+       return ((val) << A6XX_VPC_PACK_STRIDE_IN_VPC__SHIFT) & A6XX_VPC_PACK_STRIDE_IN_VPC__MASK;
+}
+#define A6XX_VPC_PACK_NUMNONPOSVAR__MASK                       0x0000ff00
+#define A6XX_VPC_PACK_NUMNONPOSVAR__SHIFT                      8
+static inline uint32_t A6XX_VPC_PACK_NUMNONPOSVAR(uint32_t val)
+{
+       return ((val) << A6XX_VPC_PACK_NUMNONPOSVAR__SHIFT) & A6XX_VPC_PACK_NUMNONPOSVAR__MASK;
+}
+#define A6XX_VPC_PACK_PSIZELOC__MASK                           0x00ff0000
+#define A6XX_VPC_PACK_PSIZELOC__SHIFT                          16
+static inline uint32_t A6XX_VPC_PACK_PSIZELOC(uint32_t val)
+{
+       return ((val) << A6XX_VPC_PACK_PSIZELOC__SHIFT) & A6XX_VPC_PACK_PSIZELOC__MASK;
+}
+
+#define REG_A6XX_VPC_CNTL_0                                    0x00009304
+#define A6XX_VPC_CNTL_0_NUMNONPOSVAR__MASK                     0x000000ff
+#define A6XX_VPC_CNTL_0_NUMNONPOSVAR__SHIFT                    0
+static inline uint32_t A6XX_VPC_CNTL_0_NUMNONPOSVAR(uint32_t val)
+{
+       return ((val) << A6XX_VPC_CNTL_0_NUMNONPOSVAR__SHIFT) & A6XX_VPC_CNTL_0_NUMNONPOSVAR__MASK;
+}
+#define A6XX_VPC_CNTL_0_VARYING                                        0x00010000
+
+#define REG_A6XX_VPC_SO_BUF_CNTL                               0x00009305
+#define A6XX_VPC_SO_BUF_CNTL_BUF0                              0x00000001
+#define A6XX_VPC_SO_BUF_CNTL_BUF1                              0x00000008
+#define A6XX_VPC_SO_BUF_CNTL_BUF2                              0x00000040
+#define A6XX_VPC_SO_BUF_CNTL_BUF3                              0x00000200
+#define A6XX_VPC_SO_BUF_CNTL_ENABLE                            0x00008000
+
+#define REG_A6XX_VPC_UNKNOWN_9306                              0x00009306
+
+#define REG_A6XX_VPC_UNKNOWN_9600                              0x00009600
+
+#define REG_A6XX_VPC_UNKNOWN_9602                              0x00009602
+
+#define REG_A6XX_PC_UNKNOWN_9801                               0x00009801
+
+#define REG_A6XX_PC_RESTART_INDEX                              0x00009803
+
+#define REG_A6XX_PC_MODE_CNTL                                  0x00009804
+
+#define REG_A6XX_PC_UNKNOWN_9805                               0x00009805
+
+#define REG_A6XX_PC_UNKNOWN_9806                               0x00009806
+
+#define REG_A6XX_PC_UNKNOWN_9980                               0x00009980
+
+#define REG_A6XX_PC_UNKNOWN_9981                               0x00009981
+
+#define REG_A6XX_PC_UNKNOWN_9990                               0x00009990
+
+#define REG_A6XX_PC_PRIMITIVE_CNTL_0                           0x00009b00
+#define A6XX_PC_PRIMITIVE_CNTL_0_PRIMITIVE_RESTART             0x00000001
+#define A6XX_PC_PRIMITIVE_CNTL_0_PROVOKING_VTX_LAST            0x00000002
+
+#define REG_A6XX_PC_PRIMITIVE_CNTL_1                           0x00009b01
+#define A6XX_PC_PRIMITIVE_CNTL_1_STRIDE_IN_VPC__MASK           0x0000007f
+#define A6XX_PC_PRIMITIVE_CNTL_1_STRIDE_IN_VPC__SHIFT          0
+static inline uint32_t A6XX_PC_PRIMITIVE_CNTL_1_STRIDE_IN_VPC(uint32_t val)
+{
+       return ((val) << A6XX_PC_PRIMITIVE_CNTL_1_STRIDE_IN_VPC__SHIFT) & A6XX_PC_PRIMITIVE_CNTL_1_STRIDE_IN_VPC__MASK;
+}
+#define A6XX_PC_PRIMITIVE_CNTL_1_PSIZE                         0x00000100
+
+#define REG_A6XX_PC_UNKNOWN_9B06                               0x00009b06
+
+#define REG_A6XX_PC_UNKNOWN_9B07                               0x00009b07
+
+#define REG_A6XX_PC_TESSFACTOR_ADDR_LO                         0x00009e08
+
+#define REG_A6XX_PC_TESSFACTOR_ADDR_HI                         0x00009e09
+
+#define REG_A6XX_PC_UNKNOWN_9E72                               0x00009e72
+
+#define REG_A6XX_VFD_CONTROL_0                                 0x0000a000
+#define A6XX_VFD_CONTROL_0_VTXCNT__MASK                                0x0000003f
+#define A6XX_VFD_CONTROL_0_VTXCNT__SHIFT                       0
+static inline uint32_t A6XX_VFD_CONTROL_0_VTXCNT(uint32_t val)
+{
+       return ((val) << A6XX_VFD_CONTROL_0_VTXCNT__SHIFT) & A6XX_VFD_CONTROL_0_VTXCNT__MASK;
+}
+
+#define REG_A6XX_VFD_CONTROL_1                                 0x0000a001
+#define A6XX_VFD_CONTROL_1_REGID4VTX__MASK                     0x000000ff
+#define A6XX_VFD_CONTROL_1_REGID4VTX__SHIFT                    0
+static inline uint32_t A6XX_VFD_CONTROL_1_REGID4VTX(uint32_t val)
+{
+       return ((val) << A6XX_VFD_CONTROL_1_REGID4VTX__SHIFT) & A6XX_VFD_CONTROL_1_REGID4VTX__MASK;
+}
+#define A6XX_VFD_CONTROL_1_REGID4INST__MASK                    0x0000ff00
+#define A6XX_VFD_CONTROL_1_REGID4INST__SHIFT                   8
+static inline uint32_t A6XX_VFD_CONTROL_1_REGID4INST(uint32_t val)
+{
+       return ((val) << A6XX_VFD_CONTROL_1_REGID4INST__SHIFT) & A6XX_VFD_CONTROL_1_REGID4INST__MASK;
+}
+#define A6XX_VFD_CONTROL_1_REGID4PRIMID__MASK                  0x00ff0000
+#define A6XX_VFD_CONTROL_1_REGID4PRIMID__SHIFT                 16
+static inline uint32_t A6XX_VFD_CONTROL_1_REGID4PRIMID(uint32_t val)
+{
+       return ((val) << A6XX_VFD_CONTROL_1_REGID4PRIMID__SHIFT) & A6XX_VFD_CONTROL_1_REGID4PRIMID__MASK;
+}
+
+#define REG_A6XX_VFD_CONTROL_2                                 0x0000a002
+#define A6XX_VFD_CONTROL_2_REGID_PATCHID__MASK                 0x000000ff
+#define A6XX_VFD_CONTROL_2_REGID_PATCHID__SHIFT                        0
+static inline uint32_t A6XX_VFD_CONTROL_2_REGID_PATCHID(uint32_t val)
+{
+       return ((val) << A6XX_VFD_CONTROL_2_REGID_PATCHID__SHIFT) & A6XX_VFD_CONTROL_2_REGID_PATCHID__MASK;
+}
+
+#define REG_A6XX_VFD_CONTROL_3                                 0x0000a003
+#define A6XX_VFD_CONTROL_3_REGID_PATCHID__MASK                 0x0000ff00
+#define A6XX_VFD_CONTROL_3_REGID_PATCHID__SHIFT                        8
+static inline uint32_t A6XX_VFD_CONTROL_3_REGID_PATCHID(uint32_t val)
+{
+       return ((val) << A6XX_VFD_CONTROL_3_REGID_PATCHID__SHIFT) & A6XX_VFD_CONTROL_3_REGID_PATCHID__MASK;
+}
+#define A6XX_VFD_CONTROL_3_REGID_TESSX__MASK                   0x00ff0000
+#define A6XX_VFD_CONTROL_3_REGID_TESSX__SHIFT                  16
+static inline uint32_t A6XX_VFD_CONTROL_3_REGID_TESSX(uint32_t val)
+{
+       return ((val) << A6XX_VFD_CONTROL_3_REGID_TESSX__SHIFT) & A6XX_VFD_CONTROL_3_REGID_TESSX__MASK;
+}
+#define A6XX_VFD_CONTROL_3_REGID_TESSY__MASK                   0xff000000
+#define A6XX_VFD_CONTROL_3_REGID_TESSY__SHIFT                  24
+static inline uint32_t A6XX_VFD_CONTROL_3_REGID_TESSY(uint32_t val)
+{
+       return ((val) << A6XX_VFD_CONTROL_3_REGID_TESSY__SHIFT) & A6XX_VFD_CONTROL_3_REGID_TESSY__MASK;
+}
+
+#define REG_A6XX_VFD_CONTROL_4                                 0x0000a004
+
+#define REG_A6XX_VFD_CONTROL_5                                 0x0000a005
+
+#define REG_A6XX_VFD_CONTROL_6                                 0x0000a006
+
+#define REG_A6XX_VFD_MODE_CNTL                                 0x0000a007
+#define A6XX_VFD_MODE_CNTL_BINNING_PASS                                0x00000001
+
+#define REG_A6XX_VFD_UNKNOWN_A008                              0x0000a008
+
+#define REG_A6XX_VFD_UNKNOWN_A009                              0x0000a009
+
+#define REG_A6XX_VFD_INDEX_OFFSET                              0x0000a00e
+
+#define REG_A6XX_VFD_INSTANCE_START_OFFSET                     0x0000a00f
+
+static inline uint32_t REG_A6XX_VFD_FETCH(uint32_t i0) { return 0x0000a010 + 0x4*i0; }
+
+static inline uint32_t REG_A6XX_VFD_FETCH_BASE_LO(uint32_t i0) { return 0x0000a010 + 0x4*i0; }
+
+static inline uint32_t REG_A6XX_VFD_FETCH_BASE_HI(uint32_t i0) { return 0x0000a011 + 0x4*i0; }
+
+static inline uint32_t REG_A6XX_VFD_FETCH_SIZE(uint32_t i0) { return 0x0000a012 + 0x4*i0; }
+
+static inline uint32_t REG_A6XX_VFD_FETCH_STRIDE(uint32_t i0) { return 0x0000a013 + 0x4*i0; }
+
+static inline uint32_t REG_A6XX_VFD_DECODE(uint32_t i0) { return 0x0000a090 + 0x2*i0; }
+
+static inline uint32_t REG_A6XX_VFD_DECODE_INSTR(uint32_t i0) { return 0x0000a090 + 0x2*i0; }
+#define A6XX_VFD_DECODE_INSTR_IDX__MASK                                0x0000001f
+#define A6XX_VFD_DECODE_INSTR_IDX__SHIFT                       0
+static inline uint32_t A6XX_VFD_DECODE_INSTR_IDX(uint32_t val)
+{
+       return ((val) << A6XX_VFD_DECODE_INSTR_IDX__SHIFT) & A6XX_VFD_DECODE_INSTR_IDX__MASK;
+}
+#define A6XX_VFD_DECODE_INSTR_INSTANCED                                0x00020000
+#define A6XX_VFD_DECODE_INSTR_FORMAT__MASK                     0x0ff00000
+#define A6XX_VFD_DECODE_INSTR_FORMAT__SHIFT                    20
+static inline uint32_t A6XX_VFD_DECODE_INSTR_FORMAT(enum a6xx_vtx_fmt val)
+{
+       return ((val) << A6XX_VFD_DECODE_INSTR_FORMAT__SHIFT) & A6XX_VFD_DECODE_INSTR_FORMAT__MASK;
+}
+#define A6XX_VFD_DECODE_INSTR_SWAP__MASK                       0x30000000
+#define A6XX_VFD_DECODE_INSTR_SWAP__SHIFT                      28
+static inline uint32_t A6XX_VFD_DECODE_INSTR_SWAP(enum a3xx_color_swap val)
+{
+       return ((val) << A6XX_VFD_DECODE_INSTR_SWAP__SHIFT) & A6XX_VFD_DECODE_INSTR_SWAP__MASK;
+}
+#define A6XX_VFD_DECODE_INSTR_UNK30                            0x40000000
+#define A6XX_VFD_DECODE_INSTR_FLOAT                            0x80000000
+
+static inline uint32_t REG_A6XX_VFD_DECODE_STEP_RATE(uint32_t i0) { return 0x0000a091 + 0x2*i0; }
+
+static inline uint32_t REG_A6XX_VFD_DEST_CNTL(uint32_t i0) { return 0x0000a0d0 + 0x1*i0; }
+
+static inline uint32_t REG_A6XX_VFD_DEST_CNTL_INSTR(uint32_t i0) { return 0x0000a0d0 + 0x1*i0; }
+#define A6XX_VFD_DEST_CNTL_INSTR_WRITEMASK__MASK               0x0000000f
+#define A6XX_VFD_DEST_CNTL_INSTR_WRITEMASK__SHIFT              0
+static inline uint32_t A6XX_VFD_DEST_CNTL_INSTR_WRITEMASK(uint32_t val)
+{
+       return ((val) << A6XX_VFD_DEST_CNTL_INSTR_WRITEMASK__SHIFT) & A6XX_VFD_DEST_CNTL_INSTR_WRITEMASK__MASK;
+}
+#define A6XX_VFD_DEST_CNTL_INSTR_REGID__MASK                   0x00000ff0
+#define A6XX_VFD_DEST_CNTL_INSTR_REGID__SHIFT                  4
+static inline uint32_t A6XX_VFD_DEST_CNTL_INSTR_REGID(uint32_t val)
+{
+       return ((val) << A6XX_VFD_DEST_CNTL_INSTR_REGID__SHIFT) & A6XX_VFD_DEST_CNTL_INSTR_REGID__MASK;
+}
+
+#define REG_A6XX_SP_UNKNOWN_A0F8                               0x0000a0f8
+
+#define REG_A6XX_SP_PRIMITIVE_CNTL                             0x0000a802
+#define A6XX_SP_PRIMITIVE_CNTL_VSOUT__MASK                     0x0000001f
+#define A6XX_SP_PRIMITIVE_CNTL_VSOUT__SHIFT                    0
+static inline uint32_t A6XX_SP_PRIMITIVE_CNTL_VSOUT(uint32_t val)
+{
+       return ((val) << A6XX_SP_PRIMITIVE_CNTL_VSOUT__SHIFT) & A6XX_SP_PRIMITIVE_CNTL_VSOUT__MASK;
+}
+
+static inline uint32_t REG_A6XX_SP_VS_OUT(uint32_t i0) { return 0x0000a803 + 0x1*i0; }
+
+static inline uint32_t REG_A6XX_SP_VS_OUT_REG(uint32_t i0) { return 0x0000a803 + 0x1*i0; }
+#define A6XX_SP_VS_OUT_REG_A_REGID__MASK                       0x000000ff
+#define A6XX_SP_VS_OUT_REG_A_REGID__SHIFT                      0
+static inline uint32_t A6XX_SP_VS_OUT_REG_A_REGID(uint32_t val)
+{
+       return ((val) << A6XX_SP_VS_OUT_REG_A_REGID__SHIFT) & A6XX_SP_VS_OUT_REG_A_REGID__MASK;
+}
+#define A6XX_SP_VS_OUT_REG_A_COMPMASK__MASK                    0x00000f00
+#define A6XX_SP_VS_OUT_REG_A_COMPMASK__SHIFT                   8
+static inline uint32_t A6XX_SP_VS_OUT_REG_A_COMPMASK(uint32_t val)
+{
+       return ((val) << A6XX_SP_VS_OUT_REG_A_COMPMASK__SHIFT) & A6XX_SP_VS_OUT_REG_A_COMPMASK__MASK;
+}
+#define A6XX_SP_VS_OUT_REG_B_REGID__MASK                       0x00ff0000
+#define A6XX_SP_VS_OUT_REG_B_REGID__SHIFT                      16
+static inline uint32_t A6XX_SP_VS_OUT_REG_B_REGID(uint32_t val)
+{
+       return ((val) << A6XX_SP_VS_OUT_REG_B_REGID__SHIFT) & A6XX_SP_VS_OUT_REG_B_REGID__MASK;
+}
+#define A6XX_SP_VS_OUT_REG_B_COMPMASK__MASK                    0x0f000000
+#define A6XX_SP_VS_OUT_REG_B_COMPMASK__SHIFT                   24
+static inline uint32_t A6XX_SP_VS_OUT_REG_B_COMPMASK(uint32_t val)
+{
+       return ((val) << A6XX_SP_VS_OUT_REG_B_COMPMASK__SHIFT) & A6XX_SP_VS_OUT_REG_B_COMPMASK__MASK;
+}
+
+static inline uint32_t REG_A6XX_SP_VS_VPC_DST(uint32_t i0) { return 0x0000a813 + 0x1*i0; }
+
+static inline uint32_t REG_A6XX_SP_VS_VPC_DST_REG(uint32_t i0) { return 0x0000a813 + 0x1*i0; }
+#define A6XX_SP_VS_VPC_DST_REG_OUTLOC0__MASK                   0x000000ff
+#define A6XX_SP_VS_VPC_DST_REG_OUTLOC0__SHIFT                  0
+static inline uint32_t A6XX_SP_VS_VPC_DST_REG_OUTLOC0(uint32_t val)
+{
+       return ((val) << A6XX_SP_VS_VPC_DST_REG_OUTLOC0__SHIFT) & A6XX_SP_VS_VPC_DST_REG_OUTLOC0__MASK;
+}
+#define A6XX_SP_VS_VPC_DST_REG_OUTLOC1__MASK                   0x0000ff00
+#define A6XX_SP_VS_VPC_DST_REG_OUTLOC1__SHIFT                  8
+static inline uint32_t A6XX_SP_VS_VPC_DST_REG_OUTLOC1(uint32_t val)
+{
+       return ((val) << A6XX_SP_VS_VPC_DST_REG_OUTLOC1__SHIFT) & A6XX_SP_VS_VPC_DST_REG_OUTLOC1__MASK;
+}
+#define A6XX_SP_VS_VPC_DST_REG_OUTLOC2__MASK                   0x00ff0000
+#define A6XX_SP_VS_VPC_DST_REG_OUTLOC2__SHIFT                  16
+static inline uint32_t A6XX_SP_VS_VPC_DST_REG_OUTLOC2(uint32_t val)
+{
+       return ((val) << A6XX_SP_VS_VPC_DST_REG_OUTLOC2__SHIFT) & A6XX_SP_VS_VPC_DST_REG_OUTLOC2__MASK;
+}
+#define A6XX_SP_VS_VPC_DST_REG_OUTLOC3__MASK                   0xff000000
+#define A6XX_SP_VS_VPC_DST_REG_OUTLOC3__SHIFT                  24
+static inline uint32_t A6XX_SP_VS_VPC_DST_REG_OUTLOC3(uint32_t val)
+{
+       return ((val) << A6XX_SP_VS_VPC_DST_REG_OUTLOC3__SHIFT) & A6XX_SP_VS_VPC_DST_REG_OUTLOC3__MASK;
+}
+
+#define REG_A6XX_SP_VS_CTRL_REG0                               0x0000a800
+#define A6XX_SP_VS_CTRL_REG0_HALFREGFOOTPRINT__MASK            0x0000007e
+#define A6XX_SP_VS_CTRL_REG0_HALFREGFOOTPRINT__SHIFT           1
+static inline uint32_t A6XX_SP_VS_CTRL_REG0_HALFREGFOOTPRINT(uint32_t val)
+{
+       return ((val) << A6XX_SP_VS_CTRL_REG0_HALFREGFOOTPRINT__SHIFT) & A6XX_SP_VS_CTRL_REG0_HALFREGFOOTPRINT__MASK;
+}
+#define A6XX_SP_VS_CTRL_REG0_FULLREGFOOTPRINT__MASK            0x00001f80
+#define A6XX_SP_VS_CTRL_REG0_FULLREGFOOTPRINT__SHIFT           7
+static inline uint32_t A6XX_SP_VS_CTRL_REG0_FULLREGFOOTPRINT(uint32_t val)
+{
+       return ((val) << A6XX_SP_VS_CTRL_REG0_FULLREGFOOTPRINT__SHIFT) & A6XX_SP_VS_CTRL_REG0_FULLREGFOOTPRINT__MASK;
+}
+#define A6XX_SP_VS_CTRL_REG0_BRANCHSTACK__MASK                 0x000fc000
+#define A6XX_SP_VS_CTRL_REG0_BRANCHSTACK__SHIFT                        14
+static inline uint32_t A6XX_SP_VS_CTRL_REG0_BRANCHSTACK(uint32_t val)
+{
+       return ((val) << A6XX_SP_VS_CTRL_REG0_BRANCHSTACK__SHIFT) & A6XX_SP_VS_CTRL_REG0_BRANCHSTACK__MASK;
+}
+#define A6XX_SP_VS_CTRL_REG0_THREADSIZE__MASK                  0x00100000
+#define A6XX_SP_VS_CTRL_REG0_THREADSIZE__SHIFT                 20
+static inline uint32_t A6XX_SP_VS_CTRL_REG0_THREADSIZE(enum a3xx_threadsize val)
+{
+       return ((val) << A6XX_SP_VS_CTRL_REG0_THREADSIZE__SHIFT) & A6XX_SP_VS_CTRL_REG0_THREADSIZE__MASK;
+}
+#define A6XX_SP_VS_CTRL_REG0_VARYING                           0x00400000
+#define A6XX_SP_VS_CTRL_REG0_PIXLODENABLE                      0x04000000
+#define A6XX_SP_VS_CTRL_REG0_MERGEDREGS                                0x80000000
+
+#define REG_A6XX_SP_UNKNOWN_A81B                               0x0000a81b
+
+#define REG_A6XX_SP_VS_OBJ_START_LO                            0x0000a81c
+
+#define REG_A6XX_SP_VS_OBJ_START_HI                            0x0000a81d
+
+#define REG_A6XX_SP_VS_TEX_COUNT                               0x0000a822
+
+#define REG_A6XX_SP_VS_CONFIG                                  0x0000a823
+#define A6XX_SP_VS_CONFIG_ENABLED                              0x00000100
+#define A6XX_SP_VS_CONFIG_NTEX__MASK                           0x0001fe00
+#define A6XX_SP_VS_CONFIG_NTEX__SHIFT                          9
+static inline uint32_t A6XX_SP_VS_CONFIG_NTEX(uint32_t val)
+{
+       return ((val) << A6XX_SP_VS_CONFIG_NTEX__SHIFT) & A6XX_SP_VS_CONFIG_NTEX__MASK;
+}
+#define A6XX_SP_VS_CONFIG_NSAMP__MASK                          0x01fe0000
+#define A6XX_SP_VS_CONFIG_NSAMP__SHIFT                         17
+static inline uint32_t A6XX_SP_VS_CONFIG_NSAMP(uint32_t val)
+{
+       return ((val) << A6XX_SP_VS_CONFIG_NSAMP__SHIFT) & A6XX_SP_VS_CONFIG_NSAMP__MASK;
+}
+
+#define REG_A6XX_SP_VS_INSTRLEN                                        0x0000a824
+
+#define REG_A6XX_SP_HS_CTRL_REG0                               0x0000a830
+#define A6XX_SP_HS_CTRL_REG0_HALFREGFOOTPRINT__MASK            0x0000007e
+#define A6XX_SP_HS_CTRL_REG0_HALFREGFOOTPRINT__SHIFT           1
+static inline uint32_t A6XX_SP_HS_CTRL_REG0_HALFREGFOOTPRINT(uint32_t val)
+{
+       return ((val) << A6XX_SP_HS_CTRL_REG0_HALFREGFOOTPRINT__SHIFT) & A6XX_SP_HS_CTRL_REG0_HALFREGFOOTPRINT__MASK;
+}
+#define A6XX_SP_HS_CTRL_REG0_FULLREGFOOTPRINT__MASK            0x00001f80
+#define A6XX_SP_HS_CTRL_REG0_FULLREGFOOTPRINT__SHIFT           7
+static inline uint32_t A6XX_SP_HS_CTRL_REG0_FULLREGFOOTPRINT(uint32_t val)
+{
+       return ((val) << A6XX_SP_HS_CTRL_REG0_FULLREGFOOTPRINT__SHIFT) & A6XX_SP_HS_CTRL_REG0_FULLREGFOOTPRINT__MASK;
+}
+#define A6XX_SP_HS_CTRL_REG0_BRANCHSTACK__MASK                 0x000fc000
+#define A6XX_SP_HS_CTRL_REG0_BRANCHSTACK__SHIFT                        14
+static inline uint32_t A6XX_SP_HS_CTRL_REG0_BRANCHSTACK(uint32_t val)
+{
+       return ((val) << A6XX_SP_HS_CTRL_REG0_BRANCHSTACK__SHIFT) & A6XX_SP_HS_CTRL_REG0_BRANCHSTACK__MASK;
+}
+#define A6XX_SP_HS_CTRL_REG0_THREADSIZE__MASK                  0x00100000
+#define A6XX_SP_HS_CTRL_REG0_THREADSIZE__SHIFT                 20
+static inline uint32_t A6XX_SP_HS_CTRL_REG0_THREADSIZE(enum a3xx_threadsize val)
+{
+       return ((val) << A6XX_SP_HS_CTRL_REG0_THREADSIZE__SHIFT) & A6XX_SP_HS_CTRL_REG0_THREADSIZE__MASK;
+}
+#define A6XX_SP_HS_CTRL_REG0_VARYING                           0x00400000
+#define A6XX_SP_HS_CTRL_REG0_PIXLODENABLE                      0x04000000
+#define A6XX_SP_HS_CTRL_REG0_MERGEDREGS                                0x80000000
+
+#define REG_A6XX_SP_HS_UNKNOWN_A831                            0x0000a831
+
+#define REG_A6XX_SP_HS_OBJ_START_LO                            0x0000a834
+
+#define REG_A6XX_SP_HS_OBJ_START_HI                            0x0000a835
+
+#define REG_A6XX_SP_HS_TEX_COUNT                               0x0000a83a
+
+#define REG_A6XX_SP_HS_CONFIG                                  0x0000a83b
+#define A6XX_SP_HS_CONFIG_ENABLED                              0x00000100
+#define A6XX_SP_HS_CONFIG_NTEX__MASK                           0x0001fe00
+#define A6XX_SP_HS_CONFIG_NTEX__SHIFT                          9
+static inline uint32_t A6XX_SP_HS_CONFIG_NTEX(uint32_t val)
+{
+       return ((val) << A6XX_SP_HS_CONFIG_NTEX__SHIFT) & A6XX_SP_HS_CONFIG_NTEX__MASK;
+}
+#define A6XX_SP_HS_CONFIG_NSAMP__MASK                          0x01fe0000
+#define A6XX_SP_HS_CONFIG_NSAMP__SHIFT                         17
+static inline uint32_t A6XX_SP_HS_CONFIG_NSAMP(uint32_t val)
+{
+       return ((val) << A6XX_SP_HS_CONFIG_NSAMP__SHIFT) & A6XX_SP_HS_CONFIG_NSAMP__MASK;
+}
+
+#define REG_A6XX_SP_HS_INSTRLEN                                        0x0000a83c
+
+#define REG_A6XX_SP_DS_CTRL_REG0                               0x0000a840
+#define A6XX_SP_DS_CTRL_REG0_HALFREGFOOTPRINT__MASK            0x0000007e
+#define A6XX_SP_DS_CTRL_REG0_HALFREGFOOTPRINT__SHIFT           1
+static inline uint32_t A6XX_SP_DS_CTRL_REG0_HALFREGFOOTPRINT(uint32_t val)
+{
+       return ((val) << A6XX_SP_DS_CTRL_REG0_HALFREGFOOTPRINT__SHIFT) & A6XX_SP_DS_CTRL_REG0_HALFREGFOOTPRINT__MASK;
+}
+#define A6XX_SP_DS_CTRL_REG0_FULLREGFOOTPRINT__MASK            0x00001f80
+#define A6XX_SP_DS_CTRL_REG0_FULLREGFOOTPRINT__SHIFT           7
+static inline uint32_t A6XX_SP_DS_CTRL_REG0_FULLREGFOOTPRINT(uint32_t val)
+{
+       return ((val) << A6XX_SP_DS_CTRL_REG0_FULLREGFOOTPRINT__SHIFT) & A6XX_SP_DS_CTRL_REG0_FULLREGFOOTPRINT__MASK;
+}
+#define A6XX_SP_DS_CTRL_REG0_BRANCHSTACK__MASK                 0x000fc000
+#define A6XX_SP_DS_CTRL_REG0_BRANCHSTACK__SHIFT                        14
+static inline uint32_t A6XX_SP_DS_CTRL_REG0_BRANCHSTACK(uint32_t val)
+{
+       return ((val) << A6XX_SP_DS_CTRL_REG0_BRANCHSTACK__SHIFT) & A6XX_SP_DS_CTRL_REG0_BRANCHSTACK__MASK;
+}
+#define A6XX_SP_DS_CTRL_REG0_THREADSIZE__MASK                  0x00100000
+#define A6XX_SP_DS_CTRL_REG0_THREADSIZE__SHIFT                 20
+static inline uint32_t A6XX_SP_DS_CTRL_REG0_THREADSIZE(enum a3xx_threadsize val)
+{
+       return ((val) << A6XX_SP_DS_CTRL_REG0_THREADSIZE__SHIFT) & A6XX_SP_DS_CTRL_REG0_THREADSIZE__MASK;
+}
+#define A6XX_SP_DS_CTRL_REG0_VARYING                           0x00400000
+#define A6XX_SP_DS_CTRL_REG0_PIXLODENABLE                      0x04000000
+#define A6XX_SP_DS_CTRL_REG0_MERGEDREGS                                0x80000000
+
+#define REG_A6XX_SP_DS_OBJ_START_LO                            0x0000a85c
+
+#define REG_A6XX_SP_DS_OBJ_START_HI                            0x0000a85d
+
+#define REG_A6XX_SP_DS_TEX_COUNT                               0x0000a862
+
+#define REG_A6XX_SP_DS_CONFIG                                  0x0000a863
+#define A6XX_SP_DS_CONFIG_ENABLED                              0x00000100
+#define A6XX_SP_DS_CONFIG_NTEX__MASK                           0x0001fe00
+#define A6XX_SP_DS_CONFIG_NTEX__SHIFT                          9
+static inline uint32_t A6XX_SP_DS_CONFIG_NTEX(uint32_t val)
+{
+       return ((val) << A6XX_SP_DS_CONFIG_NTEX__SHIFT) & A6XX_SP_DS_CONFIG_NTEX__MASK;
+}
+#define A6XX_SP_DS_CONFIG_NSAMP__MASK                          0x01fe0000
+#define A6XX_SP_DS_CONFIG_NSAMP__SHIFT                         17
+static inline uint32_t A6XX_SP_DS_CONFIG_NSAMP(uint32_t val)
+{
+       return ((val) << A6XX_SP_DS_CONFIG_NSAMP__SHIFT) & A6XX_SP_DS_CONFIG_NSAMP__MASK;
+}
+
+#define REG_A6XX_SP_DS_INSTRLEN                                        0x0000a864
+
+#define REG_A6XX_SP_GS_CTRL_REG0                               0x0000a870
+#define A6XX_SP_GS_CTRL_REG0_HALFREGFOOTPRINT__MASK            0x0000007e
+#define A6XX_SP_GS_CTRL_REG0_HALFREGFOOTPRINT__SHIFT           1
+static inline uint32_t A6XX_SP_GS_CTRL_REG0_HALFREGFOOTPRINT(uint32_t val)
+{
+       return ((val) << A6XX_SP_GS_CTRL_REG0_HALFREGFOOTPRINT__SHIFT) & A6XX_SP_GS_CTRL_REG0_HALFREGFOOTPRINT__MASK;
+}
+#define A6XX_SP_GS_CTRL_REG0_FULLREGFOOTPRINT__MASK            0x00001f80
+#define A6XX_SP_GS_CTRL_REG0_FULLREGFOOTPRINT__SHIFT           7
+static inline uint32_t A6XX_SP_GS_CTRL_REG0_FULLREGFOOTPRINT(uint32_t val)
+{
+       return ((val) << A6XX_SP_GS_CTRL_REG0_FULLREGFOOTPRINT__SHIFT) & A6XX_SP_GS_CTRL_REG0_FULLREGFOOTPRINT__MASK;
+}
+#define A6XX_SP_GS_CTRL_REG0_BRANCHSTACK__MASK                 0x000fc000
+#define A6XX_SP_GS_CTRL_REG0_BRANCHSTACK__SHIFT                        14
+static inline uint32_t A6XX_SP_GS_CTRL_REG0_BRANCHSTACK(uint32_t val)
+{
+       return ((val) << A6XX_SP_GS_CTRL_REG0_BRANCHSTACK__SHIFT) & A6XX_SP_GS_CTRL_REG0_BRANCHSTACK__MASK;
+}
+#define A6XX_SP_GS_CTRL_REG0_THREADSIZE__MASK                  0x00100000
+#define A6XX_SP_GS_CTRL_REG0_THREADSIZE__SHIFT                 20
+static inline uint32_t A6XX_SP_GS_CTRL_REG0_THREADSIZE(enum a3xx_threadsize val)
+{
+       return ((val) << A6XX_SP_GS_CTRL_REG0_THREADSIZE__SHIFT) & A6XX_SP_GS_CTRL_REG0_THREADSIZE__MASK;
+}
+#define A6XX_SP_GS_CTRL_REG0_VARYING                           0x00400000
+#define A6XX_SP_GS_CTRL_REG0_PIXLODENABLE                      0x04000000
+#define A6XX_SP_GS_CTRL_REG0_MERGEDREGS                                0x80000000
+
+#define REG_A6XX_SP_GS_UNKNOWN_A871                            0x0000a871
+
+#define REG_A6XX_SP_GS_OBJ_START_LO                            0x0000a88d
+
+#define REG_A6XX_SP_GS_OBJ_START_HI                            0x0000a88e
+
+#define REG_A6XX_SP_GS_TEX_COUNT                               0x0000a893
+
+#define REG_A6XX_SP_GS_CONFIG                                  0x0000a894
+#define A6XX_SP_GS_CONFIG_ENABLED                              0x00000100
+#define A6XX_SP_GS_CONFIG_NTEX__MASK                           0x0001fe00
+#define A6XX_SP_GS_CONFIG_NTEX__SHIFT                          9
+static inline uint32_t A6XX_SP_GS_CONFIG_NTEX(uint32_t val)
+{
+       return ((val) << A6XX_SP_GS_CONFIG_NTEX__SHIFT) & A6XX_SP_GS_CONFIG_NTEX__MASK;
+}
+#define A6XX_SP_GS_CONFIG_NSAMP__MASK                          0x01fe0000
+#define A6XX_SP_GS_CONFIG_NSAMP__SHIFT                         17
+static inline uint32_t A6XX_SP_GS_CONFIG_NSAMP(uint32_t val)
+{
+       return ((val) << A6XX_SP_GS_CONFIG_NSAMP__SHIFT) & A6XX_SP_GS_CONFIG_NSAMP__MASK;
+}
+
+#define REG_A6XX_SP_GS_INSTRLEN                                        0x0000a895
+
+#define REG_A6XX_SP_VS_TEX_SAMP_LO                             0x0000a8a0
+
+#define REG_A6XX_SP_VS_TEX_SAMP_HI                             0x0000a8a1
+
+#define REG_A6XX_SP_HS_TEX_SAMP_LO                             0x0000a8a2
+
+#define REG_A6XX_SP_HS_TEX_SAMP_HI                             0x0000a8a3
+
+#define REG_A6XX_SP_DS_TEX_SAMP_LO                             0x0000a8a4
+
+#define REG_A6XX_SP_DS_TEX_SAMP_HI                             0x0000a8a5
+
+#define REG_A6XX_SP_GS_TEX_SAMP_LO                             0x0000a8a6
+
+#define REG_A6XX_SP_GS_TEX_SAMP_HI                             0x0000a8a7
+
+#define REG_A6XX_SP_VS_TEX_CONST_LO                            0x0000a8a8
+
+#define REG_A6XX_SP_VS_TEX_CONST_HI                            0x0000a8a9
+
+#define REG_A6XX_SP_HS_TEX_CONST_LO                            0x0000a8aa
+
+#define REG_A6XX_SP_HS_TEX_CONST_HI                            0x0000a8ab
+
+#define REG_A6XX_SP_DS_TEX_CONST_LO                            0x0000a8ac
+
+#define REG_A6XX_SP_DS_TEX_CONST_HI                            0x0000a8ad
+
+#define REG_A6XX_SP_GS_TEX_CONST_LO                            0x0000a8ae
+
+#define REG_A6XX_SP_GS_TEX_CONST_HI                            0x0000a8af
+
+#define REG_A6XX_SP_FS_CTRL_REG0                               0x0000a980
+#define A6XX_SP_FS_CTRL_REG0_HALFREGFOOTPRINT__MASK            0x0000007e
+#define A6XX_SP_FS_CTRL_REG0_HALFREGFOOTPRINT__SHIFT           1
+static inline uint32_t A6XX_SP_FS_CTRL_REG0_HALFREGFOOTPRINT(uint32_t val)
+{
+       return ((val) << A6XX_SP_FS_CTRL_REG0_HALFREGFOOTPRINT__SHIFT) & A6XX_SP_FS_CTRL_REG0_HALFREGFOOTPRINT__MASK;
+}
+#define A6XX_SP_FS_CTRL_REG0_FULLREGFOOTPRINT__MASK            0x00001f80
+#define A6XX_SP_FS_CTRL_REG0_FULLREGFOOTPRINT__SHIFT           7
+static inline uint32_t A6XX_SP_FS_CTRL_REG0_FULLREGFOOTPRINT(uint32_t val)
+{
+       return ((val) << A6XX_SP_FS_CTRL_REG0_FULLREGFOOTPRINT__SHIFT) & A6XX_SP_FS_CTRL_REG0_FULLREGFOOTPRINT__MASK;
+}
+#define A6XX_SP_FS_CTRL_REG0_BRANCHSTACK__MASK                 0x000fc000
+#define A6XX_SP_FS_CTRL_REG0_BRANCHSTACK__SHIFT                        14
+static inline uint32_t A6XX_SP_FS_CTRL_REG0_BRANCHSTACK(uint32_t val)
+{
+       return ((val) << A6XX_SP_FS_CTRL_REG0_BRANCHSTACK__SHIFT) & A6XX_SP_FS_CTRL_REG0_BRANCHSTACK__MASK;
+}
+#define A6XX_SP_FS_CTRL_REG0_THREADSIZE__MASK                  0x00100000
+#define A6XX_SP_FS_CTRL_REG0_THREADSIZE__SHIFT                 20
+static inline uint32_t A6XX_SP_FS_CTRL_REG0_THREADSIZE(enum a3xx_threadsize val)
+{
+       return ((val) << A6XX_SP_FS_CTRL_REG0_THREADSIZE__SHIFT) & A6XX_SP_FS_CTRL_REG0_THREADSIZE__MASK;
+}
+#define A6XX_SP_FS_CTRL_REG0_VARYING                           0x00400000
+#define A6XX_SP_FS_CTRL_REG0_PIXLODENABLE                      0x04000000
+#define A6XX_SP_FS_CTRL_REG0_MERGEDREGS                                0x80000000
+
+#define REG_A6XX_SP_UNKNOWN_A982                               0x0000a982
+
+#define REG_A6XX_SP_FS_OBJ_START_LO                            0x0000a983
+
+#define REG_A6XX_SP_FS_OBJ_START_HI                            0x0000a984
+
+#define REG_A6XX_SP_BLEND_CNTL                                 0x0000a989
+#define A6XX_SP_BLEND_CNTL_ENABLED                             0x00000001
+#define A6XX_SP_BLEND_CNTL_UNK8                                        0x00000100
+
+#define REG_A6XX_SP_SRGB_CNTL                                  0x0000a98a
+#define A6XX_SP_SRGB_CNTL_SRGB_MRT0                            0x00000001
+#define A6XX_SP_SRGB_CNTL_SRGB_MRT1                            0x00000002
+#define A6XX_SP_SRGB_CNTL_SRGB_MRT2                            0x00000004
+#define A6XX_SP_SRGB_CNTL_SRGB_MRT3                            0x00000008
+#define A6XX_SP_SRGB_CNTL_SRGB_MRT4                            0x00000010
+#define A6XX_SP_SRGB_CNTL_SRGB_MRT5                            0x00000020
+#define A6XX_SP_SRGB_CNTL_SRGB_MRT6                            0x00000040
+#define A6XX_SP_SRGB_CNTL_SRGB_MRT7                            0x00000080
+
+#define REG_A6XX_SP_FS_RENDER_COMPONENTS                       0x0000a98b
+#define A6XX_SP_FS_RENDER_COMPONENTS_RT0__MASK                 0x0000000f
+#define A6XX_SP_FS_RENDER_COMPONENTS_RT0__SHIFT                        0
+static inline uint32_t A6XX_SP_FS_RENDER_COMPONENTS_RT0(uint32_t val)
+{
+       return ((val) << A6XX_SP_FS_RENDER_COMPONENTS_RT0__SHIFT) & A6XX_SP_FS_RENDER_COMPONENTS_RT0__MASK;
+}
+#define A6XX_SP_FS_RENDER_COMPONENTS_RT1__MASK                 0x000000f0
+#define A6XX_SP_FS_RENDER_COMPONENTS_RT1__SHIFT                        4
+static inline uint32_t A6XX_SP_FS_RENDER_COMPONENTS_RT1(uint32_t val)
+{
+       return ((val) << A6XX_SP_FS_RENDER_COMPONENTS_RT1__SHIFT) & A6XX_SP_FS_RENDER_COMPONENTS_RT1__MASK;
+}
+#define A6XX_SP_FS_RENDER_COMPONENTS_RT2__MASK                 0x00000f00
+#define A6XX_SP_FS_RENDER_COMPONENTS_RT2__SHIFT                        8
+static inline uint32_t A6XX_SP_FS_RENDER_COMPONENTS_RT2(uint32_t val)
+{
+       return ((val) << A6XX_SP_FS_RENDER_COMPONENTS_RT2__SHIFT) & A6XX_SP_FS_RENDER_COMPONENTS_RT2__MASK;
+}
+#define A6XX_SP_FS_RENDER_COMPONENTS_RT3__MASK                 0x0000f000
+#define A6XX_SP_FS_RENDER_COMPONENTS_RT3__SHIFT                        12
+static inline uint32_t A6XX_SP_FS_RENDER_COMPONENTS_RT3(uint32_t val)
+{
+       return ((val) << A6XX_SP_FS_RENDER_COMPONENTS_RT3__SHIFT) & A6XX_SP_FS_RENDER_COMPONENTS_RT3__MASK;
+}
+#define A6XX_SP_FS_RENDER_COMPONENTS_RT4__MASK                 0x000f0000
+#define A6XX_SP_FS_RENDER_COMPONENTS_RT4__SHIFT                        16
+static inline uint32_t A6XX_SP_FS_RENDER_COMPONENTS_RT4(uint32_t val)
+{
+       return ((val) << A6XX_SP_FS_RENDER_COMPONENTS_RT4__SHIFT) & A6XX_SP_FS_RENDER_COMPONENTS_RT4__MASK;
+}
+#define A6XX_SP_FS_RENDER_COMPONENTS_RT5__MASK                 0x00f00000
+#define A6XX_SP_FS_RENDER_COMPONENTS_RT5__SHIFT                        20
+static inline uint32_t A6XX_SP_FS_RENDER_COMPONENTS_RT5(uint32_t val)
+{
+       return ((val) << A6XX_SP_FS_RENDER_COMPONENTS_RT5__SHIFT) & A6XX_SP_FS_RENDER_COMPONENTS_RT5__MASK;
+}
+#define A6XX_SP_FS_RENDER_COMPONENTS_RT6__MASK                 0x0f000000
+#define A6XX_SP_FS_RENDER_COMPONENTS_RT6__SHIFT                        24
+static inline uint32_t A6XX_SP_FS_RENDER_COMPONENTS_RT6(uint32_t val)
+{
+       return ((val) << A6XX_SP_FS_RENDER_COMPONENTS_RT6__SHIFT) & A6XX_SP_FS_RENDER_COMPONENTS_RT6__MASK;
+}
+#define A6XX_SP_FS_RENDER_COMPONENTS_RT7__MASK                 0xf0000000
+#define A6XX_SP_FS_RENDER_COMPONENTS_RT7__SHIFT                        28
+static inline uint32_t A6XX_SP_FS_RENDER_COMPONENTS_RT7(uint32_t val)
+{
+       return ((val) << A6XX_SP_FS_RENDER_COMPONENTS_RT7__SHIFT) & A6XX_SP_FS_RENDER_COMPONENTS_RT7__MASK;
+}
+
+#define REG_A6XX_SP_FS_OUTPUT_CNTL0                            0x0000a98c
+#define A6XX_SP_FS_OUTPUT_CNTL0_DEPTH_REGID__MASK              0x0000ff00
+#define A6XX_SP_FS_OUTPUT_CNTL0_DEPTH_REGID__SHIFT             8
+static inline uint32_t A6XX_SP_FS_OUTPUT_CNTL0_DEPTH_REGID(uint32_t val)
+{
+       return ((val) << A6XX_SP_FS_OUTPUT_CNTL0_DEPTH_REGID__SHIFT) & A6XX_SP_FS_OUTPUT_CNTL0_DEPTH_REGID__MASK;
+}
+
+#define REG_A6XX_SP_FS_OUTPUT_CNTL1                            0x0000a98d
+#define A6XX_SP_FS_OUTPUT_CNTL1_MRT__MASK                      0x0000000f
+#define A6XX_SP_FS_OUTPUT_CNTL1_MRT__SHIFT                     0
+static inline uint32_t A6XX_SP_FS_OUTPUT_CNTL1_MRT(uint32_t val)
+{
+       return ((val) << A6XX_SP_FS_OUTPUT_CNTL1_MRT__SHIFT) & A6XX_SP_FS_OUTPUT_CNTL1_MRT__MASK;
+}
+
+static inline uint32_t REG_A6XX_SP_FS_MRT(uint32_t i0) { return 0x0000a996 + 0x1*i0; }
+
+static inline uint32_t REG_A6XX_SP_FS_MRT_REG(uint32_t i0) { return 0x0000a996 + 0x1*i0; }
+#define A6XX_SP_FS_MRT_REG_COLOR_FORMAT__MASK                  0x000000ff
+#define A6XX_SP_FS_MRT_REG_COLOR_FORMAT__SHIFT                 0
+static inline uint32_t A6XX_SP_FS_MRT_REG_COLOR_FORMAT(enum a6xx_color_fmt val)
+{
+       return ((val) << A6XX_SP_FS_MRT_REG_COLOR_FORMAT__SHIFT) & A6XX_SP_FS_MRT_REG_COLOR_FORMAT__MASK;
+}
+#define A6XX_SP_FS_MRT_REG_COLOR_SINT                          0x00000100
+#define A6XX_SP_FS_MRT_REG_COLOR_UINT                          0x00000200
+#define A6XX_SP_FS_MRT_REG_COLOR_SRGB                          0x00000400
+
+#define REG_A6XX_SP_UNKNOWN_A99E                               0x0000a99e
+
+#define REG_A6XX_SP_FS_TEX_COUNT                               0x0000a9a7
+
+#define REG_A6XX_SP_UNKNOWN_A9A8                               0x0000a9a8
+
+#define REG_A6XX_SP_FS_TEX_SAMP_LO                             0x0000a9e0
+
+#define REG_A6XX_SP_FS_TEX_SAMP_HI                             0x0000a9e1
+
+#define REG_A6XX_SP_CS_TEX_SAMP_LO                             0x0000a9e2
+
+#define REG_A6XX_SP_CS_TEX_SAMP_HI                             0x0000a9e3
+
+#define REG_A6XX_SP_FS_TEX_CONST_LO                            0x0000a9e4
+
+#define REG_A6XX_SP_FS_TEX_CONST_HI                            0x0000a9e5
+
+#define REG_A6XX_SP_CS_TEX_CONST_LO                            0x0000a9e6
+
+#define REG_A6XX_SP_CS_TEX_CONST_HI                            0x0000a9e7
+
+static inline uint32_t REG_A6XX_SP_FS_OUTPUT(uint32_t i0) { return 0x0000a98e + 0x1*i0; }
+
+static inline uint32_t REG_A6XX_SP_FS_OUTPUT_REG(uint32_t i0) { return 0x0000a98e + 0x1*i0; }
+#define A6XX_SP_FS_OUTPUT_REG_REGID__MASK                      0x000000ff
+#define A6XX_SP_FS_OUTPUT_REG_REGID__SHIFT                     0
+static inline uint32_t A6XX_SP_FS_OUTPUT_REG_REGID(uint32_t val)
+{
+       return ((val) << A6XX_SP_FS_OUTPUT_REG_REGID__SHIFT) & A6XX_SP_FS_OUTPUT_REG_REGID__MASK;
+}
+#define A6XX_SP_FS_OUTPUT_REG_HALF_PRECISION                   0x00000100
+
+#define REG_A6XX_SP_CS_CTRL_REG0                               0x0000a9b0
+#define A6XX_SP_CS_CTRL_REG0_HALFREGFOOTPRINT__MASK            0x0000007e
+#define A6XX_SP_CS_CTRL_REG0_HALFREGFOOTPRINT__SHIFT           1
+static inline uint32_t A6XX_SP_CS_CTRL_REG0_HALFREGFOOTPRINT(uint32_t val)
+{
+       return ((val) << A6XX_SP_CS_CTRL_REG0_HALFREGFOOTPRINT__SHIFT) & A6XX_SP_CS_CTRL_REG0_HALFREGFOOTPRINT__MASK;
+}
+#define A6XX_SP_CS_CTRL_REG0_FULLREGFOOTPRINT__MASK            0x00001f80
+#define A6XX_SP_CS_CTRL_REG0_FULLREGFOOTPRINT__SHIFT           7
+static inline uint32_t A6XX_SP_CS_CTRL_REG0_FULLREGFOOTPRINT(uint32_t val)
+{
+       return ((val) << A6XX_SP_CS_CTRL_REG0_FULLREGFOOTPRINT__SHIFT) & A6XX_SP_CS_CTRL_REG0_FULLREGFOOTPRINT__MASK;
+}
+#define A6XX_SP_CS_CTRL_REG0_BRANCHSTACK__MASK                 0x000fc000
+#define A6XX_SP_CS_CTRL_REG0_BRANCHSTACK__SHIFT                        14
+static inline uint32_t A6XX_SP_CS_CTRL_REG0_BRANCHSTACK(uint32_t val)
+{
+       return ((val) << A6XX_SP_CS_CTRL_REG0_BRANCHSTACK__SHIFT) & A6XX_SP_CS_CTRL_REG0_BRANCHSTACK__MASK;
+}
+#define A6XX_SP_CS_CTRL_REG0_THREADSIZE__MASK                  0x00100000
+#define A6XX_SP_CS_CTRL_REG0_THREADSIZE__SHIFT                 20
+static inline uint32_t A6XX_SP_CS_CTRL_REG0_THREADSIZE(enum a3xx_threadsize val)
+{
+       return ((val) << A6XX_SP_CS_CTRL_REG0_THREADSIZE__SHIFT) & A6XX_SP_CS_CTRL_REG0_THREADSIZE__MASK;
+}
+#define A6XX_SP_CS_CTRL_REG0_VARYING                           0x00400000
+#define A6XX_SP_CS_CTRL_REG0_PIXLODENABLE                      0x04000000
+#define A6XX_SP_CS_CTRL_REG0_MERGEDREGS                                0x80000000
+
+#define REG_A6XX_SP_CS_OBJ_START_LO                            0x0000a9b4
+
+#define REG_A6XX_SP_CS_OBJ_START_HI                            0x0000a9b5
+
+#define REG_A6XX_SP_CS_INSTRLEN                                        0x0000a9bc
+
+#define REG_A6XX_SP_UNKNOWN_AB00                               0x0000ab00
+
+#define REG_A6XX_SP_FS_CONFIG                                  0x0000ab04
+#define A6XX_SP_FS_CONFIG_ENABLED                              0x00000100
+#define A6XX_SP_FS_CONFIG_NTEX__MASK                           0x0001fe00
+#define A6XX_SP_FS_CONFIG_NTEX__SHIFT                          9
+static inline uint32_t A6XX_SP_FS_CONFIG_NTEX(uint32_t val)
+{
+       return ((val) << A6XX_SP_FS_CONFIG_NTEX__SHIFT) & A6XX_SP_FS_CONFIG_NTEX__MASK;
+}
+#define A6XX_SP_FS_CONFIG_NSAMP__MASK                          0x01fe0000
+#define A6XX_SP_FS_CONFIG_NSAMP__SHIFT                         17
+static inline uint32_t A6XX_SP_FS_CONFIG_NSAMP(uint32_t val)
+{
+       return ((val) << A6XX_SP_FS_CONFIG_NSAMP__SHIFT) & A6XX_SP_FS_CONFIG_NSAMP__MASK;
+}
+
+#define REG_A6XX_SP_FS_INSTRLEN                                        0x0000ab05
+
+#define REG_A6XX_SP_UNKNOWN_AB20                               0x0000ab20
+
+#define REG_A6XX_SP_UNKNOWN_AE00                               0x0000ae00
+
+#define REG_A6XX_SP_UNKNOWN_AE03                               0x0000ae03
+
+#define REG_A6XX_SP_UNKNOWN_AE04                               0x0000ae04
+
+#define REG_A6XX_SP_UNKNOWN_AE0F                               0x0000ae0f
+
+#define REG_A6XX_SP_UNKNOWN_B182                               0x0000b182
+
+#define REG_A6XX_SP_UNKNOWN_B183                               0x0000b183
+
+#define REG_A6XX_SP_TP_RAS_MSAA_CNTL                           0x0000b300
+#define A6XX_SP_TP_RAS_MSAA_CNTL_SAMPLES__MASK                 0x00000003
+#define A6XX_SP_TP_RAS_MSAA_CNTL_SAMPLES__SHIFT                        0
+static inline uint32_t A6XX_SP_TP_RAS_MSAA_CNTL_SAMPLES(enum a3xx_msaa_samples val)
+{
+       return ((val) << A6XX_SP_TP_RAS_MSAA_CNTL_SAMPLES__SHIFT) & A6XX_SP_TP_RAS_MSAA_CNTL_SAMPLES__MASK;
+}
+
+#define REG_A6XX_SP_TP_DEST_MSAA_CNTL                          0x0000b301
+#define A6XX_SP_TP_DEST_MSAA_CNTL_SAMPLES__MASK                        0x00000003
+#define A6XX_SP_TP_DEST_MSAA_CNTL_SAMPLES__SHIFT               0
+static inline uint32_t A6XX_SP_TP_DEST_MSAA_CNTL_SAMPLES(enum a3xx_msaa_samples val)
+{
+       return ((val) << A6XX_SP_TP_DEST_MSAA_CNTL_SAMPLES__SHIFT) & A6XX_SP_TP_DEST_MSAA_CNTL_SAMPLES__MASK;
+}
+#define A6XX_SP_TP_DEST_MSAA_CNTL_MSAA_DISABLE                 0x00000004
+
+#define REG_A6XX_SP_TP_BORDER_COLOR_BASE_ADDR_LO               0x0000b302
+
+#define REG_A6XX_SP_TP_BORDER_COLOR_BASE_ADDR_HI               0x0000b303
+
+#define REG_A6XX_SP_TP_UNKNOWN_B304                            0x0000b304
+
+#define REG_A6XX_SP_TP_UNKNOWN_B309                            0x0000b309
+
+#define REG_A6XX_SP_PS_2D_SRC_INFO                             0x0000b4c0
+#define A6XX_SP_PS_2D_SRC_INFO_COLOR_FORMAT__MASK              0x000000ff
+#define A6XX_SP_PS_2D_SRC_INFO_COLOR_FORMAT__SHIFT             0
+static inline uint32_t A6XX_SP_PS_2D_SRC_INFO_COLOR_FORMAT(enum a6xx_color_fmt val)
+{
+       return ((val) << A6XX_SP_PS_2D_SRC_INFO_COLOR_FORMAT__SHIFT) & A6XX_SP_PS_2D_SRC_INFO_COLOR_FORMAT__MASK;
+}
+#define A6XX_SP_PS_2D_SRC_INFO_TILE_MODE__MASK                 0x00000300
+#define A6XX_SP_PS_2D_SRC_INFO_TILE_MODE__SHIFT                        8
+static inline uint32_t A6XX_SP_PS_2D_SRC_INFO_TILE_MODE(enum a6xx_tile_mode val)
+{
+       return ((val) << A6XX_SP_PS_2D_SRC_INFO_TILE_MODE__SHIFT) & A6XX_SP_PS_2D_SRC_INFO_TILE_MODE__MASK;
+}
+#define A6XX_SP_PS_2D_SRC_INFO_COLOR_SWAP__MASK                        0x00000c00
+#define A6XX_SP_PS_2D_SRC_INFO_COLOR_SWAP__SHIFT               10
+static inline uint32_t A6XX_SP_PS_2D_SRC_INFO_COLOR_SWAP(enum a3xx_color_swap val)
+{
+       return ((val) << A6XX_SP_PS_2D_SRC_INFO_COLOR_SWAP__SHIFT) & A6XX_SP_PS_2D_SRC_INFO_COLOR_SWAP__MASK;
+}
+#define A6XX_SP_PS_2D_SRC_INFO_FLAGS                           0x00001000
+
+#define REG_A6XX_SP_PS_2D_SRC_LO                               0x0000b4c2
+
+#define REG_A6XX_SP_PS_2D_SRC_HI                               0x0000b4c3
+
+#define REG_A6XX_SP_PS_2D_SRC_FLAGS_LO                         0x0000b4ca
+
+#define REG_A6XX_SP_PS_2D_SRC_FLAGS_HI                         0x0000b4cb
+
+#define REG_A6XX_SP_UNKNOWN_B600                               0x0000b600
+
+#define REG_A6XX_SP_UNKNOWN_B605                               0x0000b605
+
+#define REG_A6XX_HLSQ_VS_CNTL                                  0x0000b800
+#define A6XX_HLSQ_VS_CNTL_CONSTLEN__MASK                       0x000000ff
+#define A6XX_HLSQ_VS_CNTL_CONSTLEN__SHIFT                      0
+static inline uint32_t A6XX_HLSQ_VS_CNTL_CONSTLEN(uint32_t val)
+{
+       assert(!(val & 0x3));
+       return ((val >> 2) << A6XX_HLSQ_VS_CNTL_CONSTLEN__SHIFT) & A6XX_HLSQ_VS_CNTL_CONSTLEN__MASK;
+}
+
+#define REG_A6XX_HLSQ_HS_CNTL                                  0x0000b801
+#define A6XX_HLSQ_HS_CNTL_CONSTLEN__MASK                       0x000000ff
+#define A6XX_HLSQ_HS_CNTL_CONSTLEN__SHIFT                      0
+static inline uint32_t A6XX_HLSQ_HS_CNTL_CONSTLEN(uint32_t val)
+{
+       assert(!(val & 0x3));
+       return ((val >> 2) << A6XX_HLSQ_HS_CNTL_CONSTLEN__SHIFT) & A6XX_HLSQ_HS_CNTL_CONSTLEN__MASK;
+}
+
+#define REG_A6XX_HLSQ_DS_CNTL                                  0x0000b802
+#define A6XX_HLSQ_DS_CNTL_CONSTLEN__MASK                       0x000000ff
+#define A6XX_HLSQ_DS_CNTL_CONSTLEN__SHIFT                      0
+static inline uint32_t A6XX_HLSQ_DS_CNTL_CONSTLEN(uint32_t val)
+{
+       assert(!(val & 0x3));
+       return ((val >> 2) << A6XX_HLSQ_DS_CNTL_CONSTLEN__SHIFT) & A6XX_HLSQ_DS_CNTL_CONSTLEN__MASK;
+}
+
+#define REG_A6XX_HLSQ_GS_CNTL                                  0x0000b803
+#define A6XX_HLSQ_GS_CNTL_CONSTLEN__MASK                       0x000000ff
+#define A6XX_HLSQ_GS_CNTL_CONSTLEN__SHIFT                      0
+static inline uint32_t A6XX_HLSQ_GS_CNTL_CONSTLEN(uint32_t val)
+{
+       assert(!(val & 0x3));
+       return ((val >> 2) << A6XX_HLSQ_GS_CNTL_CONSTLEN__SHIFT) & A6XX_HLSQ_GS_CNTL_CONSTLEN__MASK;
+}
+
+#define REG_A6XX_HLSQ_UNKNOWN_B980                             0x0000b980
+
+#define REG_A6XX_HLSQ_CONTROL_1_REG                            0x0000b982
+
+#define REG_A6XX_HLSQ_CONTROL_2_REG                            0x0000b983
+#define A6XX_HLSQ_CONTROL_2_REG_FACEREGID__MASK                        0x000000ff
+#define A6XX_HLSQ_CONTROL_2_REG_FACEREGID__SHIFT               0
+static inline uint32_t A6XX_HLSQ_CONTROL_2_REG_FACEREGID(uint32_t val)
+{
+       return ((val) << A6XX_HLSQ_CONTROL_2_REG_FACEREGID__SHIFT) & A6XX_HLSQ_CONTROL_2_REG_FACEREGID__MASK;
+}
+#define A6XX_HLSQ_CONTROL_2_REG_SAMPLEID__MASK                 0x0000ff00
+#define A6XX_HLSQ_CONTROL_2_REG_SAMPLEID__SHIFT                        8
+static inline uint32_t A6XX_HLSQ_CONTROL_2_REG_SAMPLEID(uint32_t val)
+{
+       return ((val) << A6XX_HLSQ_CONTROL_2_REG_SAMPLEID__SHIFT) & A6XX_HLSQ_CONTROL_2_REG_SAMPLEID__MASK;
+}
+#define A6XX_HLSQ_CONTROL_2_REG_SAMPLEMASK__MASK               0x00ff0000
+#define A6XX_HLSQ_CONTROL_2_REG_SAMPLEMASK__SHIFT              16
+static inline uint32_t A6XX_HLSQ_CONTROL_2_REG_SAMPLEMASK(uint32_t val)
+{
+       return ((val) << A6XX_HLSQ_CONTROL_2_REG_SAMPLEMASK__SHIFT) & A6XX_HLSQ_CONTROL_2_REG_SAMPLEMASK__MASK;
+}
+
+#define REG_A6XX_HLSQ_CONTROL_3_REG                            0x0000b984
+#define A6XX_HLSQ_CONTROL_3_REG_FRAGCOORDXYREGID__MASK         0x000000ff
+#define A6XX_HLSQ_CONTROL_3_REG_FRAGCOORDXYREGID__SHIFT                0
+static inline uint32_t A6XX_HLSQ_CONTROL_3_REG_FRAGCOORDXYREGID(uint32_t val)
+{
+       return ((val) << A6XX_HLSQ_CONTROL_3_REG_FRAGCOORDXYREGID__SHIFT) & A6XX_HLSQ_CONTROL_3_REG_FRAGCOORDXYREGID__MASK;
+}
+
+#define REG_A6XX_HLSQ_CONTROL_4_REG                            0x0000b985
+#define A6XX_HLSQ_CONTROL_4_REG_XYCOORDREGID__MASK             0x00ff0000
+#define A6XX_HLSQ_CONTROL_4_REG_XYCOORDREGID__SHIFT            16
+static inline uint32_t A6XX_HLSQ_CONTROL_4_REG_XYCOORDREGID(uint32_t val)
+{
+       return ((val) << A6XX_HLSQ_CONTROL_4_REG_XYCOORDREGID__SHIFT) & A6XX_HLSQ_CONTROL_4_REG_XYCOORDREGID__MASK;
+}
+#define A6XX_HLSQ_CONTROL_4_REG_ZWCOORDREGID__MASK             0xff000000
+#define A6XX_HLSQ_CONTROL_4_REG_ZWCOORDREGID__SHIFT            24
+static inline uint32_t A6XX_HLSQ_CONTROL_4_REG_ZWCOORDREGID(uint32_t val)
+{
+       return ((val) << A6XX_HLSQ_CONTROL_4_REG_ZWCOORDREGID__SHIFT) & A6XX_HLSQ_CONTROL_4_REG_ZWCOORDREGID__MASK;
+}
+
+#define REG_A6XX_HLSQ_CONTROL_5_REG                            0x0000b986
+
+#define REG_A6XX_HLSQ_CS_NDRANGE_0                             0x0000b990
+#define A6XX_HLSQ_CS_NDRANGE_0_KERNELDIM__MASK                 0x00000003
+#define A6XX_HLSQ_CS_NDRANGE_0_KERNELDIM__SHIFT                        0
+static inline uint32_t A6XX_HLSQ_CS_NDRANGE_0_KERNELDIM(uint32_t val)
+{
+       return ((val) << A6XX_HLSQ_CS_NDRANGE_0_KERNELDIM__SHIFT) & A6XX_HLSQ_CS_NDRANGE_0_KERNELDIM__MASK;
+}
+#define A6XX_HLSQ_CS_NDRANGE_0_LOCALSIZEX__MASK                        0x00000ffc
+#define A6XX_HLSQ_CS_NDRANGE_0_LOCALSIZEX__SHIFT               2
+static inline uint32_t A6XX_HLSQ_CS_NDRANGE_0_LOCALSIZEX(uint32_t val)
+{
+       return ((val) << A6XX_HLSQ_CS_NDRANGE_0_LOCALSIZEX__SHIFT) & A6XX_HLSQ_CS_NDRANGE_0_LOCALSIZEX__MASK;
+}
+#define A6XX_HLSQ_CS_NDRANGE_0_LOCALSIZEY__MASK                        0x003ff000
+#define A6XX_HLSQ_CS_NDRANGE_0_LOCALSIZEY__SHIFT               12
+static inline uint32_t A6XX_HLSQ_CS_NDRANGE_0_LOCALSIZEY(uint32_t val)
+{
+       return ((val) << A6XX_HLSQ_CS_NDRANGE_0_LOCALSIZEY__SHIFT) & A6XX_HLSQ_CS_NDRANGE_0_LOCALSIZEY__MASK;
+}
+#define A6XX_HLSQ_CS_NDRANGE_0_LOCALSIZEZ__MASK                        0xffc00000
+#define A6XX_HLSQ_CS_NDRANGE_0_LOCALSIZEZ__SHIFT               22
+static inline uint32_t A6XX_HLSQ_CS_NDRANGE_0_LOCALSIZEZ(uint32_t val)
+{
+       return ((val) << A6XX_HLSQ_CS_NDRANGE_0_LOCALSIZEZ__SHIFT) & A6XX_HLSQ_CS_NDRANGE_0_LOCALSIZEZ__MASK;
+}
+
+#define REG_A6XX_HLSQ_CS_NDRANGE_1                             0x0000b991
+#define A6XX_HLSQ_CS_NDRANGE_1_GLOBALSIZE_X__MASK              0xffffffff
+#define A6XX_HLSQ_CS_NDRANGE_1_GLOBALSIZE_X__SHIFT             0
+static inline uint32_t A6XX_HLSQ_CS_NDRANGE_1_GLOBALSIZE_X(uint32_t val)
+{
+       return ((val) << A6XX_HLSQ_CS_NDRANGE_1_GLOBALSIZE_X__SHIFT) & A6XX_HLSQ_CS_NDRANGE_1_GLOBALSIZE_X__MASK;
+}
+
+#define REG_A6XX_HLSQ_CS_NDRANGE_2                             0x0000b992
+#define A6XX_HLSQ_CS_NDRANGE_2_GLOBALOFF_X__MASK               0xffffffff
+#define A6XX_HLSQ_CS_NDRANGE_2_GLOBALOFF_X__SHIFT              0
+static inline uint32_t A6XX_HLSQ_CS_NDRANGE_2_GLOBALOFF_X(uint32_t val)
+{
+       return ((val) << A6XX_HLSQ_CS_NDRANGE_2_GLOBALOFF_X__SHIFT) & A6XX_HLSQ_CS_NDRANGE_2_GLOBALOFF_X__MASK;
+}
+
+#define REG_A6XX_HLSQ_CS_NDRANGE_3                             0x0000b993
+#define A6XX_HLSQ_CS_NDRANGE_3_GLOBALSIZE_Y__MASK              0xffffffff
+#define A6XX_HLSQ_CS_NDRANGE_3_GLOBALSIZE_Y__SHIFT             0
+static inline uint32_t A6XX_HLSQ_CS_NDRANGE_3_GLOBALSIZE_Y(uint32_t val)
+{
+       return ((val) << A6XX_HLSQ_CS_NDRANGE_3_GLOBALSIZE_Y__SHIFT) & A6XX_HLSQ_CS_NDRANGE_3_GLOBALSIZE_Y__MASK;
+}
+
+#define REG_A6XX_HLSQ_CS_NDRANGE_4                             0x0000b994
+#define A6XX_HLSQ_CS_NDRANGE_4_GLOBALOFF_Y__MASK               0xffffffff
+#define A6XX_HLSQ_CS_NDRANGE_4_GLOBALOFF_Y__SHIFT              0
+static inline uint32_t A6XX_HLSQ_CS_NDRANGE_4_GLOBALOFF_Y(uint32_t val)
+{
+       return ((val) << A6XX_HLSQ_CS_NDRANGE_4_GLOBALOFF_Y__SHIFT) & A6XX_HLSQ_CS_NDRANGE_4_GLOBALOFF_Y__MASK;
+}
+
+#define REG_A6XX_HLSQ_CS_NDRANGE_5                             0x0000b995
+#define A6XX_HLSQ_CS_NDRANGE_5_GLOBALSIZE_Z__MASK              0xffffffff
+#define A6XX_HLSQ_CS_NDRANGE_5_GLOBALSIZE_Z__SHIFT             0
+static inline uint32_t A6XX_HLSQ_CS_NDRANGE_5_GLOBALSIZE_Z(uint32_t val)
+{
+       return ((val) << A6XX_HLSQ_CS_NDRANGE_5_GLOBALSIZE_Z__SHIFT) & A6XX_HLSQ_CS_NDRANGE_5_GLOBALSIZE_Z__MASK;
+}
+
+#define REG_A6XX_HLSQ_CS_NDRANGE_6                             0x0000b996
+#define A6XX_HLSQ_CS_NDRANGE_6_GLOBALOFF_Z__MASK               0xffffffff
+#define A6XX_HLSQ_CS_NDRANGE_6_GLOBALOFF_Z__SHIFT              0
+static inline uint32_t A6XX_HLSQ_CS_NDRANGE_6_GLOBALOFF_Z(uint32_t val)
+{
+       return ((val) << A6XX_HLSQ_CS_NDRANGE_6_GLOBALOFF_Z__SHIFT) & A6XX_HLSQ_CS_NDRANGE_6_GLOBALOFF_Z__MASK;
+}
+
+#define REG_A6XX_HLSQ_CS_CNTL_0                                        0x0000b997
+#define A6XX_HLSQ_CS_CNTL_0_WGIDCONSTID__MASK                  0x000000ff
+#define A6XX_HLSQ_CS_CNTL_0_WGIDCONSTID__SHIFT                 0
+static inline uint32_t A6XX_HLSQ_CS_CNTL_0_WGIDCONSTID(uint32_t val)
+{
+       return ((val) << A6XX_HLSQ_CS_CNTL_0_WGIDCONSTID__SHIFT) & A6XX_HLSQ_CS_CNTL_0_WGIDCONSTID__MASK;
+}
+#define A6XX_HLSQ_CS_CNTL_0_UNK0__MASK                         0x0000ff00
+#define A6XX_HLSQ_CS_CNTL_0_UNK0__SHIFT                                8
+static inline uint32_t A6XX_HLSQ_CS_CNTL_0_UNK0(uint32_t val)
+{
+       return ((val) << A6XX_HLSQ_CS_CNTL_0_UNK0__SHIFT) & A6XX_HLSQ_CS_CNTL_0_UNK0__MASK;
+}
+#define A6XX_HLSQ_CS_CNTL_0_UNK1__MASK                         0x00ff0000
+#define A6XX_HLSQ_CS_CNTL_0_UNK1__SHIFT                                16
+static inline uint32_t A6XX_HLSQ_CS_CNTL_0_UNK1(uint32_t val)
+{
+       return ((val) << A6XX_HLSQ_CS_CNTL_0_UNK1__SHIFT) & A6XX_HLSQ_CS_CNTL_0_UNK1__MASK;
+}
+#define A6XX_HLSQ_CS_CNTL_0_LOCALIDREGID__MASK                 0xff000000
+#define A6XX_HLSQ_CS_CNTL_0_LOCALIDREGID__SHIFT                        24
+static inline uint32_t A6XX_HLSQ_CS_CNTL_0_LOCALIDREGID(uint32_t val)
+{
+       return ((val) << A6XX_HLSQ_CS_CNTL_0_LOCALIDREGID__SHIFT) & A6XX_HLSQ_CS_CNTL_0_LOCALIDREGID__MASK;
+}
+
+#define REG_A6XX_HLSQ_CS_KERNEL_GROUP_X                                0x0000b999
+
+#define REG_A6XX_HLSQ_CS_KERNEL_GROUP_Y                                0x0000b99a
+
+#define REG_A6XX_HLSQ_CS_KERNEL_GROUP_Z                                0x0000b99b
+
+#define REG_A6XX_HLSQ_UPDATE_CNTL                              0x0000bb08
+
+#define REG_A6XX_HLSQ_FS_CNTL                                  0x0000bb10
+#define A6XX_HLSQ_FS_CNTL_CONSTLEN__MASK                       0x000000ff
+#define A6XX_HLSQ_FS_CNTL_CONSTLEN__SHIFT                      0
+static inline uint32_t A6XX_HLSQ_FS_CNTL_CONSTLEN(uint32_t val)
+{
+       assert(!(val & 0x3));
+       return ((val >> 2) << A6XX_HLSQ_FS_CNTL_CONSTLEN__SHIFT) & A6XX_HLSQ_FS_CNTL_CONSTLEN__MASK;
+}
+
+#define REG_A6XX_HLSQ_UNKNOWN_BB11                             0x0000bb11
+
+#define REG_A6XX_HLSQ_UNKNOWN_BE00                             0x0000be00
+
+#define REG_A6XX_HLSQ_UNKNOWN_BE01                             0x0000be01
+
+#define REG_A6XX_HLSQ_UNKNOWN_BE04                             0x0000be04
+
+#define REG_A6XX_TEX_SAMP_0                                    0x00000000
+#define A6XX_TEX_SAMP_0_MIPFILTER_LINEAR_NEAR                  0x00000001
+#define A6XX_TEX_SAMP_0_XY_MAG__MASK                           0x00000006
+#define A6XX_TEX_SAMP_0_XY_MAG__SHIFT                          1
+static inline uint32_t A6XX_TEX_SAMP_0_XY_MAG(enum a6xx_tex_filter val)
+{
+       return ((val) << A6XX_TEX_SAMP_0_XY_MAG__SHIFT) & A6XX_TEX_SAMP_0_XY_MAG__MASK;
+}
+#define A6XX_TEX_SAMP_0_XY_MIN__MASK                           0x00000018
+#define A6XX_TEX_SAMP_0_XY_MIN__SHIFT                          3
+static inline uint32_t A6XX_TEX_SAMP_0_XY_MIN(enum a6xx_tex_filter val)
+{
+       return ((val) << A6XX_TEX_SAMP_0_XY_MIN__SHIFT) & A6XX_TEX_SAMP_0_XY_MIN__MASK;
+}
+#define A6XX_TEX_SAMP_0_WRAP_S__MASK                           0x000000e0
+#define A6XX_TEX_SAMP_0_WRAP_S__SHIFT                          5
+static inline uint32_t A6XX_TEX_SAMP_0_WRAP_S(enum a6xx_tex_clamp val)
+{
+       return ((val) << A6XX_TEX_SAMP_0_WRAP_S__SHIFT) & A6XX_TEX_SAMP_0_WRAP_S__MASK;
+}
+#define A6XX_TEX_SAMP_0_WRAP_T__MASK                           0x00000700
+#define A6XX_TEX_SAMP_0_WRAP_T__SHIFT                          8
+static inline uint32_t A6XX_TEX_SAMP_0_WRAP_T(enum a6xx_tex_clamp val)
+{
+       return ((val) << A6XX_TEX_SAMP_0_WRAP_T__SHIFT) & A6XX_TEX_SAMP_0_WRAP_T__MASK;
+}
+#define A6XX_TEX_SAMP_0_WRAP_R__MASK                           0x00003800
+#define A6XX_TEX_SAMP_0_WRAP_R__SHIFT                          11
+static inline uint32_t A6XX_TEX_SAMP_0_WRAP_R(enum a6xx_tex_clamp val)
+{
+       return ((val) << A6XX_TEX_SAMP_0_WRAP_R__SHIFT) & A6XX_TEX_SAMP_0_WRAP_R__MASK;
+}
+#define A6XX_TEX_SAMP_0_ANISO__MASK                            0x0001c000
+#define A6XX_TEX_SAMP_0_ANISO__SHIFT                           14
+static inline uint32_t A6XX_TEX_SAMP_0_ANISO(enum a6xx_tex_aniso val)
+{
+       return ((val) << A6XX_TEX_SAMP_0_ANISO__SHIFT) & A6XX_TEX_SAMP_0_ANISO__MASK;
+}
+#define A6XX_TEX_SAMP_0_LOD_BIAS__MASK                         0xfff80000
+#define A6XX_TEX_SAMP_0_LOD_BIAS__SHIFT                                19
+static inline uint32_t A6XX_TEX_SAMP_0_LOD_BIAS(float val)
+{
+       return ((((int32_t)(val * 256.0))) << A6XX_TEX_SAMP_0_LOD_BIAS__SHIFT) & A6XX_TEX_SAMP_0_LOD_BIAS__MASK;
+}
+
+#define REG_A6XX_TEX_SAMP_1                                    0x00000001
+#define A6XX_TEX_SAMP_1_COMPARE_FUNC__MASK                     0x0000000e
+#define A6XX_TEX_SAMP_1_COMPARE_FUNC__SHIFT                    1
+static inline uint32_t A6XX_TEX_SAMP_1_COMPARE_FUNC(enum adreno_compare_func val)
+{
+       return ((val) << A6XX_TEX_SAMP_1_COMPARE_FUNC__SHIFT) & A6XX_TEX_SAMP_1_COMPARE_FUNC__MASK;
+}
+#define A6XX_TEX_SAMP_1_CUBEMAPSEAMLESSFILTOFF                 0x00000010
+#define A6XX_TEX_SAMP_1_UNNORM_COORDS                          0x00000020
+#define A6XX_TEX_SAMP_1_MIPFILTER_LINEAR_FAR                   0x00000040
+#define A6XX_TEX_SAMP_1_MAX_LOD__MASK                          0x000fff00
+#define A6XX_TEX_SAMP_1_MAX_LOD__SHIFT                         8
+static inline uint32_t A6XX_TEX_SAMP_1_MAX_LOD(float val)
+{
+       return ((((uint32_t)(val * 256.0))) << A6XX_TEX_SAMP_1_MAX_LOD__SHIFT) & A6XX_TEX_SAMP_1_MAX_LOD__MASK;
+}
+#define A6XX_TEX_SAMP_1_MIN_LOD__MASK                          0xfff00000
+#define A6XX_TEX_SAMP_1_MIN_LOD__SHIFT                         20
+static inline uint32_t A6XX_TEX_SAMP_1_MIN_LOD(float val)
+{
+       return ((((uint32_t)(val * 256.0))) << A6XX_TEX_SAMP_1_MIN_LOD__SHIFT) & A6XX_TEX_SAMP_1_MIN_LOD__MASK;
+}
+
+#define REG_A6XX_TEX_SAMP_2                                    0x00000002
+#define A6XX_TEX_SAMP_2_BCOLOR_OFFSET__MASK                    0xfffffff0
+#define A6XX_TEX_SAMP_2_BCOLOR_OFFSET__SHIFT                   4
+static inline uint32_t A6XX_TEX_SAMP_2_BCOLOR_OFFSET(uint32_t val)
+{
+       return ((val) << A6XX_TEX_SAMP_2_BCOLOR_OFFSET__SHIFT) & A6XX_TEX_SAMP_2_BCOLOR_OFFSET__MASK;
+}
+
+#define REG_A6XX_TEX_SAMP_3                                    0x00000003
+
+#define REG_A6XX_TEX_CONST_0                                   0x00000000
+#define A6XX_TEX_CONST_0_TILE_MODE__MASK                       0x00000003
+#define A6XX_TEX_CONST_0_TILE_MODE__SHIFT                      0
+static inline uint32_t A6XX_TEX_CONST_0_TILE_MODE(enum a6xx_tile_mode val)
+{
+       return ((val) << A6XX_TEX_CONST_0_TILE_MODE__SHIFT) & A6XX_TEX_CONST_0_TILE_MODE__MASK;
+}
+#define A6XX_TEX_CONST_0_SRGB                                  0x00000004
+#define A6XX_TEX_CONST_0_SWIZ_X__MASK                          0x00000070
+#define A6XX_TEX_CONST_0_SWIZ_X__SHIFT                         4
+static inline uint32_t A6XX_TEX_CONST_0_SWIZ_X(enum a6xx_tex_swiz val)
+{
+       return ((val) << A6XX_TEX_CONST_0_SWIZ_X__SHIFT) & A6XX_TEX_CONST_0_SWIZ_X__MASK;
+}
+#define A6XX_TEX_CONST_0_SWIZ_Y__MASK                          0x00000380
+#define A6XX_TEX_CONST_0_SWIZ_Y__SHIFT                         7
+static inline uint32_t A6XX_TEX_CONST_0_SWIZ_Y(enum a6xx_tex_swiz val)
+{
+       return ((val) << A6XX_TEX_CONST_0_SWIZ_Y__SHIFT) & A6XX_TEX_CONST_0_SWIZ_Y__MASK;
+}
+#define A6XX_TEX_CONST_0_SWIZ_Z__MASK                          0x00001c00
+#define A6XX_TEX_CONST_0_SWIZ_Z__SHIFT                         10
+static inline uint32_t A6XX_TEX_CONST_0_SWIZ_Z(enum a6xx_tex_swiz val)
+{
+       return ((val) << A6XX_TEX_CONST_0_SWIZ_Z__SHIFT) & A6XX_TEX_CONST_0_SWIZ_Z__MASK;
+}
+#define A6XX_TEX_CONST_0_SWIZ_W__MASK                          0x0000e000
+#define A6XX_TEX_CONST_0_SWIZ_W__SHIFT                         13
+static inline uint32_t A6XX_TEX_CONST_0_SWIZ_W(enum a6xx_tex_swiz val)
+{
+       return ((val) << A6XX_TEX_CONST_0_SWIZ_W__SHIFT) & A6XX_TEX_CONST_0_SWIZ_W__MASK;
+}
+#define A6XX_TEX_CONST_0_MIPLVLS__MASK                         0x000f0000
+#define A6XX_TEX_CONST_0_MIPLVLS__SHIFT                                16
+static inline uint32_t A6XX_TEX_CONST_0_MIPLVLS(uint32_t val)
+{
+       return ((val) << A6XX_TEX_CONST_0_MIPLVLS__SHIFT) & A6XX_TEX_CONST_0_MIPLVLS__MASK;
+}
+#define A6XX_TEX_CONST_0_FMT__MASK                             0x3fc00000
+#define A6XX_TEX_CONST_0_FMT__SHIFT                            22
+static inline uint32_t A6XX_TEX_CONST_0_FMT(enum a6xx_tex_fmt val)
+{
+       return ((val) << A6XX_TEX_CONST_0_FMT__SHIFT) & A6XX_TEX_CONST_0_FMT__MASK;
+}
+#define A6XX_TEX_CONST_0_SWAP__MASK                            0xc0000000
+#define A6XX_TEX_CONST_0_SWAP__SHIFT                           30
+static inline uint32_t A6XX_TEX_CONST_0_SWAP(enum a3xx_color_swap val)
+{
+       return ((val) << A6XX_TEX_CONST_0_SWAP__SHIFT) & A6XX_TEX_CONST_0_SWAP__MASK;
+}
+
+#define REG_A6XX_TEX_CONST_1                                   0x00000001
+#define A6XX_TEX_CONST_1_WIDTH__MASK                           0x00007fff
+#define A6XX_TEX_CONST_1_WIDTH__SHIFT                          0
+static inline uint32_t A6XX_TEX_CONST_1_WIDTH(uint32_t val)
+{
+       return ((val) << A6XX_TEX_CONST_1_WIDTH__SHIFT) & A6XX_TEX_CONST_1_WIDTH__MASK;
+}
+#define A6XX_TEX_CONST_1_HEIGHT__MASK                          0x3fff8000
+#define A6XX_TEX_CONST_1_HEIGHT__SHIFT                         15
+static inline uint32_t A6XX_TEX_CONST_1_HEIGHT(uint32_t val)
+{
+       return ((val) << A6XX_TEX_CONST_1_HEIGHT__SHIFT) & A6XX_TEX_CONST_1_HEIGHT__MASK;
+}
+
+#define REG_A6XX_TEX_CONST_2                                   0x00000002
+#define A6XX_TEX_CONST_2_FETCHSIZE__MASK                       0x0000000f
+#define A6XX_TEX_CONST_2_FETCHSIZE__SHIFT                      0
+static inline uint32_t A6XX_TEX_CONST_2_FETCHSIZE(enum a6xx_tex_fetchsize val)
+{
+       return ((val) << A6XX_TEX_CONST_2_FETCHSIZE__SHIFT) & A6XX_TEX_CONST_2_FETCHSIZE__MASK;
+}
+#define A6XX_TEX_CONST_2_PITCH__MASK                           0x1fffff80
+#define A6XX_TEX_CONST_2_PITCH__SHIFT                          7
+static inline uint32_t A6XX_TEX_CONST_2_PITCH(uint32_t val)
+{
+       return ((val) << A6XX_TEX_CONST_2_PITCH__SHIFT) & A6XX_TEX_CONST_2_PITCH__MASK;
+}
+#define A6XX_TEX_CONST_2_TYPE__MASK                            0x60000000
+#define A6XX_TEX_CONST_2_TYPE__SHIFT                           29
+static inline uint32_t A6XX_TEX_CONST_2_TYPE(enum a6xx_tex_type val)
+{
+       return ((val) << A6XX_TEX_CONST_2_TYPE__SHIFT) & A6XX_TEX_CONST_2_TYPE__MASK;
+}
+
+#define REG_A6XX_TEX_CONST_3                                   0x00000003
+#define A6XX_TEX_CONST_3_ARRAY_PITCH__MASK                     0x00003fff
+#define A6XX_TEX_CONST_3_ARRAY_PITCH__SHIFT                    0
+static inline uint32_t A6XX_TEX_CONST_3_ARRAY_PITCH(uint32_t val)
+{
+       assert(!(val & 0xfff));
+       return ((val >> 12) << A6XX_TEX_CONST_3_ARRAY_PITCH__SHIFT) & A6XX_TEX_CONST_3_ARRAY_PITCH__MASK;
+}
+#define A6XX_TEX_CONST_3_FLAG                                  0x10000000
+
+#define REG_A6XX_TEX_CONST_4                                   0x00000004
+#define A6XX_TEX_CONST_4_BASE_LO__MASK                         0xffffffe0
+#define A6XX_TEX_CONST_4_BASE_LO__SHIFT                                5
+static inline uint32_t A6XX_TEX_CONST_4_BASE_LO(uint32_t val)
+{
+       assert(!(val & 0x1f));
+       return ((val >> 5) << A6XX_TEX_CONST_4_BASE_LO__SHIFT) & A6XX_TEX_CONST_4_BASE_LO__MASK;
+}
+
+#define REG_A6XX_TEX_CONST_5                                   0x00000005
+#define A6XX_TEX_CONST_5_BASE_HI__MASK                         0x0001ffff
+#define A6XX_TEX_CONST_5_BASE_HI__SHIFT                                0
+static inline uint32_t A6XX_TEX_CONST_5_BASE_HI(uint32_t val)
+{
+       return ((val) << A6XX_TEX_CONST_5_BASE_HI__SHIFT) & A6XX_TEX_CONST_5_BASE_HI__MASK;
+}
+#define A6XX_TEX_CONST_5_DEPTH__MASK                           0x3ffe0000
+#define A6XX_TEX_CONST_5_DEPTH__SHIFT                          17
+static inline uint32_t A6XX_TEX_CONST_5_DEPTH(uint32_t val)
+{
+       return ((val) << A6XX_TEX_CONST_5_DEPTH__SHIFT) & A6XX_TEX_CONST_5_DEPTH__MASK;
+}
+
+#define REG_A6XX_TEX_CONST_6                                   0x00000006
+
+#define REG_A6XX_TEX_CONST_7                                   0x00000007
+#define A6XX_TEX_CONST_7_FLAG_LO__MASK                         0xffffffe0
+#define A6XX_TEX_CONST_7_FLAG_LO__SHIFT                                5
+static inline uint32_t A6XX_TEX_CONST_7_FLAG_LO(uint32_t val)
+{
+       assert(!(val & 0x1f));
+       return ((val >> 5) << A6XX_TEX_CONST_7_FLAG_LO__SHIFT) & A6XX_TEX_CONST_7_FLAG_LO__MASK;
+}
+
+#define REG_A6XX_TEX_CONST_8                                   0x00000008
+#define A6XX_TEX_CONST_8_BASE_HI__MASK                         0x0001ffff
+#define A6XX_TEX_CONST_8_BASE_HI__SHIFT                                0
+static inline uint32_t A6XX_TEX_CONST_8_BASE_HI(uint32_t val)
+{
+       return ((val) << A6XX_TEX_CONST_8_BASE_HI__SHIFT) & A6XX_TEX_CONST_8_BASE_HI__MASK;
+}
+
+#define REG_A6XX_TEX_CONST_9                                   0x00000009
+
+#define REG_A6XX_TEX_CONST_10                                  0x0000000a
+
+#define REG_A6XX_TEX_CONST_11                                  0x0000000b
+
+#define REG_A6XX_TEX_CONST_12                                  0x0000000c
+
+#define REG_A6XX_TEX_CONST_13                                  0x0000000d
+
+#define REG_A6XX_TEX_CONST_14                                  0x0000000e
+
+#define REG_A6XX_TEX_CONST_15                                  0x0000000f
+
+
+#endif /* A6XX_XML */
index fc0dcb029ae08ffc6d23dc4a6a5574c0e4a2a720..00cde777b6f8d1088a906c2c86a7219a48cfb3d6 100644 (file)
@@ -8,17 +8,17 @@ http://github.com/freedreno/envytools/
 git clone https://github.com/freedreno/envytools.git
 
 The rules-ng-ng source files this header was generated from are:
-- /home/robclark/src/freedreno/envytools/rnndb/adreno.xml               (    501 bytes, from 2018-01-31 18:26:32)
-- /home/robclark/src/freedreno/envytools/rnndb/freedreno_copyright.xml  (   1572 bytes, from 2018-01-08 14:56:24)
-- /home/robclark/src/freedreno/envytools/rnndb/adreno/a2xx.xml          (  36805 bytes, from 2018-05-20 19:03:35)
-- /home/robclark/src/freedreno/envytools/rnndb/adreno/adreno_common.xml (  13634 bytes, from 2018-06-10 17:35:36)
-- /home/robclark/src/freedreno/envytools/rnndb/adreno/adreno_pm4.xml    (  41584 bytes, from 2018-06-18 14:25:44)
-- /home/robclark/src/freedreno/envytools/rnndb/adreno/a3xx.xml          (  83840 bytes, from 2018-01-10 16:21:40)
-- /home/robclark/src/freedreno/envytools/rnndb/adreno/a4xx.xml          ( 112086 bytes, from 2018-01-08 14:56:24)
-- /home/robclark/src/freedreno/envytools/rnndb/adreno/a5xx.xml          ( 147158 bytes, from 2018-06-18 14:25:44)
-- /home/robclark/src/freedreno/envytools/rnndb/adreno/a6xx.xml          (  88437 bytes, from 2018-06-18 14:25:44)
-- /home/robclark/src/freedreno/envytools/rnndb/adreno/a6xx_gmu.xml      (  10431 bytes, from 2018-06-10 17:37:04)
-- /home/robclark/src/freedreno/envytools/rnndb/adreno/ocmem.xml         (   1773 bytes, from 2018-01-08 14:56:24)
+- /home/robclark/src/envytools/rnndb/adreno.xml               (    501 bytes, from 2018-07-03 19:37:13)
+- /home/robclark/src/envytools/rnndb/freedreno_copyright.xml  (   1572 bytes, from 2018-07-03 19:37:13)
+- /home/robclark/src/envytools/rnndb/adreno/a2xx.xml          (  36805 bytes, from 2018-07-03 19:37:13)
+- /home/robclark/src/envytools/rnndb/adreno/adreno_common.xml (  13634 bytes, from 2018-07-03 19:37:13)
+- /home/robclark/src/envytools/rnndb/adreno/adreno_pm4.xml    (  42393 bytes, from 2018-08-14 22:24:38)
+- /home/robclark/src/envytools/rnndb/adreno/a3xx.xml          (  83840 bytes, from 2018-07-03 19:37:13)
+- /home/robclark/src/envytools/rnndb/adreno/a4xx.xml          ( 112086 bytes, from 2018-07-03 19:37:13)
+- /home/robclark/src/envytools/rnndb/adreno/a5xx.xml          ( 147240 bytes, from 2018-08-14 22:24:38)
+- /home/robclark/src/envytools/rnndb/adreno/a6xx.xml          ( 102772 bytes, from 2018-08-14 22:24:38)
+- /home/robclark/src/envytools/rnndb/adreno/a6xx_gmu.xml      (  10431 bytes, from 2018-07-03 19:37:13)
+- /home/robclark/src/envytools/rnndb/adreno/ocmem.xml         (   1773 bytes, from 2018-07-03 19:37:13)
 
 Copyright (C) 2013-2018 by the following authors:
 - Rob Clark <robdclark@gmail.com> (robclark)
@@ -51,6 +51,7 @@ enum chip {
        A3XX = 0,
        A4XX = 0,
        A5XX = 0,
+       A6XX = 0,
 };
 
 enum adreno_pa_su_sc_draw {
index 08f8ff2682893fa9e2af314fd30784b673d72dcc..1bf4e2d458e53417d49aaed2e9ad04f55d368517 100644 (file)
@@ -8,17 +8,17 @@ http://github.com/freedreno/envytools/
 git clone https://github.com/freedreno/envytools.git
 
 The rules-ng-ng source files this header was generated from are:
-- /home/robclark/src/freedreno/envytools/rnndb/adreno.xml               (    501 bytes, from 2018-01-31 18:26:32)
-- /home/robclark/src/freedreno/envytools/rnndb/freedreno_copyright.xml  (   1572 bytes, from 2018-01-08 14:56:24)
-- /home/robclark/src/freedreno/envytools/rnndb/adreno/a2xx.xml          (  36805 bytes, from 2018-05-20 19:03:35)
-- /home/robclark/src/freedreno/envytools/rnndb/adreno/adreno_common.xml (  13634 bytes, from 2018-06-10 17:35:36)
-- /home/robclark/src/freedreno/envytools/rnndb/adreno/adreno_pm4.xml    (  41584 bytes, from 2018-06-18 14:25:44)
-- /home/robclark/src/freedreno/envytools/rnndb/adreno/a3xx.xml          (  83840 bytes, from 2018-01-10 16:21:40)
-- /home/robclark/src/freedreno/envytools/rnndb/adreno/a4xx.xml          ( 112086 bytes, from 2018-01-08 14:56:24)
-- /home/robclark/src/freedreno/envytools/rnndb/adreno/a5xx.xml          ( 147158 bytes, from 2018-06-18 14:25:44)
-- /home/robclark/src/freedreno/envytools/rnndb/adreno/a6xx.xml          (  88437 bytes, from 2018-06-18 14:25:44)
-- /home/robclark/src/freedreno/envytools/rnndb/adreno/a6xx_gmu.xml      (  10431 bytes, from 2018-06-10 17:37:04)
-- /home/robclark/src/freedreno/envytools/rnndb/adreno/ocmem.xml         (   1773 bytes, from 2018-01-08 14:56:24)
+- /home/robclark/src/envytools/rnndb/adreno.xml               (    501 bytes, from 2018-07-03 19:37:13)
+- /home/robclark/src/envytools/rnndb/freedreno_copyright.xml  (   1572 bytes, from 2018-07-03 19:37:13)
+- /home/robclark/src/envytools/rnndb/adreno/a2xx.xml          (  36805 bytes, from 2018-07-03 19:37:13)
+- /home/robclark/src/envytools/rnndb/adreno/adreno_common.xml (  13634 bytes, from 2018-07-03 19:37:13)
+- /home/robclark/src/envytools/rnndb/adreno/adreno_pm4.xml    (  42393 bytes, from 2018-08-14 22:24:38)
+- /home/robclark/src/envytools/rnndb/adreno/a3xx.xml          (  83840 bytes, from 2018-07-03 19:37:13)
+- /home/robclark/src/envytools/rnndb/adreno/a4xx.xml          ( 112086 bytes, from 2018-07-03 19:37:13)
+- /home/robclark/src/envytools/rnndb/adreno/a5xx.xml          ( 147240 bytes, from 2018-08-14 22:24:38)
+- /home/robclark/src/envytools/rnndb/adreno/a6xx.xml          ( 102772 bytes, from 2018-08-14 22:24:38)
+- /home/robclark/src/envytools/rnndb/adreno/a6xx_gmu.xml      (  10431 bytes, from 2018-07-03 19:37:13)
+- /home/robclark/src/envytools/rnndb/adreno/ocmem.xml         (   1773 bytes, from 2018-07-03 19:37:13)
 
 Copyright (C) 2013-2018 by the following authors:
 - Rob Clark <robdclark@gmail.com> (robclark)
@@ -222,6 +222,9 @@ enum adreno_pm4_type3_packets {
        CP_MEM_TO_MEM = 115,
        CP_BLIT = 44,
        CP_REG_TEST = 57,
+       CP_SET_MODE = 99,
+       CP_LOAD_STATE6_GEOM = 50,
+       CP_LOAD_STATE6_FRAG = 52,
        IN_IB_PREFETCH_END = 23,
        IN_SUBBLK_PREFETCH = 31,
        IN_INSTR_PREFETCH = 32,
@@ -231,6 +234,10 @@ enum adreno_pm4_type3_packets {
        IN_INCR_UPDT_CONST = 86,
        IN_INCR_UPDT_INSTR = 87,
        PKT4 = 4,
+       CP_UNK_A6XX_14 = 20,
+       CP_UNK_A6XX_36 = 54,
+       CP_UNK_A6XX_55 = 85,
+       UNK_A6XX_6D = 109,
 };
 
 enum adreno_state_block {
@@ -285,6 +292,33 @@ enum a4xx_state_src {
        SS4_INDIRECT = 2,
 };
 
+enum a6xx_state_block {
+       SB6_VS_TEX = 0,
+       SB6_HS_TEX = 1,
+       SB6_DS_TEX = 2,
+       SB6_GS_TEX = 3,
+       SB6_FS_TEX = 4,
+       SB6_CS_TEX = 5,
+       SB6_VS_SHADER = 8,
+       SB6_HS_SHADER = 9,
+       SB6_DS_SHADER = 10,
+       SB6_GS_SHADER = 11,
+       SB6_FS_SHADER = 12,
+       SB6_CS_SHADER = 13,
+       SB6_SSBO = 14,
+       SB6_CS_SSBO = 15,
+};
+
+enum a6xx_state_type {
+       ST6_SHADER = 0,
+       ST6_CONSTANTS = 1,
+};
+
+enum a6xx_state_src {
+       SS6_DIRECT = 0,
+       SS6_INDIRECT = 2,
+};
+
 enum a4xx_index_size {
        INDEX4_SIZE_8_BIT = 0,
        INDEX4_SIZE_16_BIT = 1,
@@ -316,6 +350,22 @@ enum cp_blit_cmd {
        BLIT_OP_SCALE = 3,
 };
 
+enum a6xx_render_mode {
+       RM6_BYPASS = 1,
+       RM6_BINNING = 2,
+       RM6_GMEM = 4,
+       RM6_BLIT2D = 5,
+       RM6_RESOLVE = 6,
+};
+
+enum pseudo_reg {
+       SMMU_INFO = 0,
+       NON_SECURE_SAVE_ADDR = 1,
+       SECURE_SAVE_ADDR = 2,
+       NON_PRIV_SAVE_ADDR = 3,
+       COUNTER = 4,
+};
+
 #define REG_CP_LOAD_STATE_0                                    0x00000000
 #define CP_LOAD_STATE_0_DST_OFF__MASK                          0x0000ffff
 #define CP_LOAD_STATE_0_DST_OFF__SHIFT                         0
@@ -406,6 +456,55 @@ static inline uint32_t CP_LOAD_STATE4_2_EXT_SRC_ADDR_HI(uint32_t val)
        return ((val) << CP_LOAD_STATE4_2_EXT_SRC_ADDR_HI__SHIFT) & CP_LOAD_STATE4_2_EXT_SRC_ADDR_HI__MASK;
 }
 
+#define REG_CP_LOAD_STATE6_0                                   0x00000000
+#define CP_LOAD_STATE6_0_DST_OFF__MASK                         0x00003fff
+#define CP_LOAD_STATE6_0_DST_OFF__SHIFT                                0
+static inline uint32_t CP_LOAD_STATE6_0_DST_OFF(uint32_t val)
+{
+       return ((val) << CP_LOAD_STATE6_0_DST_OFF__SHIFT) & CP_LOAD_STATE6_0_DST_OFF__MASK;
+}
+#define CP_LOAD_STATE6_0_STATE_TYPE__MASK                      0x00004000
+#define CP_LOAD_STATE6_0_STATE_TYPE__SHIFT                     14
+static inline uint32_t CP_LOAD_STATE6_0_STATE_TYPE(enum a6xx_state_type val)
+{
+       return ((val) << CP_LOAD_STATE6_0_STATE_TYPE__SHIFT) & CP_LOAD_STATE6_0_STATE_TYPE__MASK;
+}
+#define CP_LOAD_STATE6_0_STATE_SRC__MASK                       0x00030000
+#define CP_LOAD_STATE6_0_STATE_SRC__SHIFT                      16
+static inline uint32_t CP_LOAD_STATE6_0_STATE_SRC(enum a6xx_state_src val)
+{
+       return ((val) << CP_LOAD_STATE6_0_STATE_SRC__SHIFT) & CP_LOAD_STATE6_0_STATE_SRC__MASK;
+}
+#define CP_LOAD_STATE6_0_STATE_BLOCK__MASK                     0x003c0000
+#define CP_LOAD_STATE6_0_STATE_BLOCK__SHIFT                    18
+static inline uint32_t CP_LOAD_STATE6_0_STATE_BLOCK(enum a6xx_state_block val)
+{
+       return ((val) << CP_LOAD_STATE6_0_STATE_BLOCK__SHIFT) & CP_LOAD_STATE6_0_STATE_BLOCK__MASK;
+}
+#define CP_LOAD_STATE6_0_NUM_UNIT__MASK                                0xffc00000
+#define CP_LOAD_STATE6_0_NUM_UNIT__SHIFT                       22
+static inline uint32_t CP_LOAD_STATE6_0_NUM_UNIT(uint32_t val)
+{
+       return ((val) << CP_LOAD_STATE6_0_NUM_UNIT__SHIFT) & CP_LOAD_STATE6_0_NUM_UNIT__MASK;
+}
+
+#define REG_CP_LOAD_STATE6_1                                   0x00000001
+#define CP_LOAD_STATE6_1_EXT_SRC_ADDR__MASK                    0xfffffffc
+#define CP_LOAD_STATE6_1_EXT_SRC_ADDR__SHIFT                   2
+static inline uint32_t CP_LOAD_STATE6_1_EXT_SRC_ADDR(uint32_t val)
+{
+       assert(!(val & 0x3));
+       return ((val >> 2) << CP_LOAD_STATE6_1_EXT_SRC_ADDR__SHIFT) & CP_LOAD_STATE6_1_EXT_SRC_ADDR__MASK;
+}
+
+#define REG_CP_LOAD_STATE6_2                                   0x00000002
+#define CP_LOAD_STATE6_2_EXT_SRC_ADDR_HI__MASK                 0xffffffff
+#define CP_LOAD_STATE6_2_EXT_SRC_ADDR_HI__SHIFT                        0
+static inline uint32_t CP_LOAD_STATE6_2_EXT_SRC_ADDR_HI(uint32_t val)
+{
+       return ((val) << CP_LOAD_STATE6_2_EXT_SRC_ADDR_HI__SHIFT) & CP_LOAD_STATE6_2_EXT_SRC_ADDR_HI__MASK;
+}
+
 #define REG_CP_DRAW_INDX_0                                     0x00000000
 #define CP_DRAW_INDX_0_VIZ_QUERY__MASK                         0xffffffff
 #define CP_DRAW_INDX_0_VIZ_QUERY__SHIFT                                0
@@ -750,6 +849,12 @@ static inline uint32_t CP_SET_DRAW_STATE__0_COUNT(uint32_t val)
 #define CP_SET_DRAW_STATE__0_DISABLE                           0x00020000
 #define CP_SET_DRAW_STATE__0_DISABLE_ALL_GROUPS                        0x00040000
 #define CP_SET_DRAW_STATE__0_LOAD_IMMED                                0x00080000
+#define CP_SET_DRAW_STATE__0_ENABLE_MASK__MASK                 0x00f00000
+#define CP_SET_DRAW_STATE__0_ENABLE_MASK__SHIFT                        20
+static inline uint32_t CP_SET_DRAW_STATE__0_ENABLE_MASK(uint32_t val)
+{
+       return ((val) << CP_SET_DRAW_STATE__0_ENABLE_MASK__SHIFT) & CP_SET_DRAW_STATE__0_ENABLE_MASK__MASK;
+}
 #define CP_SET_DRAW_STATE__0_GROUP_ID__MASK                    0x1f000000
 #define CP_SET_DRAW_STATE__0_GROUP_ID__SHIFT                   24
 static inline uint32_t CP_SET_DRAW_STATE__0_GROUP_ID(uint32_t val)
@@ -865,6 +970,22 @@ static inline uint32_t CP_SET_BIN_DATA5_4_BIN_SIZE_ADDRESS_HI(uint32_t val)
        return ((val) << CP_SET_BIN_DATA5_4_BIN_SIZE_ADDRESS_HI__SHIFT) & CP_SET_BIN_DATA5_4_BIN_SIZE_ADDRESS_HI__MASK;
 }
 
+#define REG_CP_SET_BIN_DATA5_5                                 0x00000005
+#define CP_SET_BIN_DATA5_5_XXX_ADDRESS_LO__MASK                        0xffffffff
+#define CP_SET_BIN_DATA5_5_XXX_ADDRESS_LO__SHIFT               0
+static inline uint32_t CP_SET_BIN_DATA5_5_XXX_ADDRESS_LO(uint32_t val)
+{
+       return ((val) << CP_SET_BIN_DATA5_5_XXX_ADDRESS_LO__SHIFT) & CP_SET_BIN_DATA5_5_XXX_ADDRESS_LO__MASK;
+}
+
+#define REG_CP_SET_BIN_DATA5_6                                 0x00000006
+#define CP_SET_BIN_DATA5_6_XXX_ADDRESS_HI__MASK                        0xffffffff
+#define CP_SET_BIN_DATA5_6_XXX_ADDRESS_HI__SHIFT               0
+static inline uint32_t CP_SET_BIN_DATA5_6_XXX_ADDRESS_HI(uint32_t val)
+{
+       return ((val) << CP_SET_BIN_DATA5_6_XXX_ADDRESS_HI__SHIFT) & CP_SET_BIN_DATA5_6_XXX_ADDRESS_HI__MASK;
+}
+
 #define REG_CP_REG_TO_MEM_0                                    0x00000000
 #define CP_REG_TO_MEM_0_REG__MASK                              0x0000ffff
 #define CP_REG_TO_MEM_0_REG__SHIFT                             0
@@ -889,6 +1010,46 @@ static inline uint32_t CP_REG_TO_MEM_1_DEST(uint32_t val)
        return ((val) << CP_REG_TO_MEM_1_DEST__SHIFT) & CP_REG_TO_MEM_1_DEST__MASK;
 }
 
+#define REG_CP_REG_TO_MEM_2                                    0x00000002
+#define CP_REG_TO_MEM_2_DEST_HI__MASK                          0xffffffff
+#define CP_REG_TO_MEM_2_DEST_HI__SHIFT                         0
+static inline uint32_t CP_REG_TO_MEM_2_DEST_HI(uint32_t val)
+{
+       return ((val) << CP_REG_TO_MEM_2_DEST_HI__SHIFT) & CP_REG_TO_MEM_2_DEST_HI__MASK;
+}
+
+#define REG_CP_MEM_TO_REG_0                                    0x00000000
+#define CP_MEM_TO_REG_0_REG__MASK                              0x0000ffff
+#define CP_MEM_TO_REG_0_REG__SHIFT                             0
+static inline uint32_t CP_MEM_TO_REG_0_REG(uint32_t val)
+{
+       return ((val) << CP_MEM_TO_REG_0_REG__SHIFT) & CP_MEM_TO_REG_0_REG__MASK;
+}
+#define CP_MEM_TO_REG_0_CNT__MASK                              0x3ff80000
+#define CP_MEM_TO_REG_0_CNT__SHIFT                             19
+static inline uint32_t CP_MEM_TO_REG_0_CNT(uint32_t val)
+{
+       return ((val) << CP_MEM_TO_REG_0_CNT__SHIFT) & CP_MEM_TO_REG_0_CNT__MASK;
+}
+#define CP_MEM_TO_REG_0_64B                                    0x40000000
+#define CP_MEM_TO_REG_0_ACCUMULATE                             0x80000000
+
+#define REG_CP_MEM_TO_REG_1                                    0x00000001
+#define CP_MEM_TO_REG_1_SRC__MASK                              0xffffffff
+#define CP_MEM_TO_REG_1_SRC__SHIFT                             0
+static inline uint32_t CP_MEM_TO_REG_1_SRC(uint32_t val)
+{
+       return ((val) << CP_MEM_TO_REG_1_SRC__SHIFT) & CP_MEM_TO_REG_1_SRC__MASK;
+}
+
+#define REG_CP_MEM_TO_REG_2                                    0x00000002
+#define CP_MEM_TO_REG_2_SRC_HI__MASK                           0xffffffff
+#define CP_MEM_TO_REG_2_SRC_HI__SHIFT                          0
+static inline uint32_t CP_MEM_TO_REG_2_SRC_HI(uint32_t val)
+{
+       return ((val) << CP_MEM_TO_REG_2_SRC_HI__SHIFT) & CP_MEM_TO_REG_2_SRC_HI__MASK;
+}
+
 #define REG_CP_MEM_TO_MEM_0                                    0x00000000
 #define CP_MEM_TO_MEM_0_NEG_A                                  0x00000001
 #define CP_MEM_TO_MEM_0_NEG_B                                  0x00000002
@@ -1340,5 +1501,61 @@ static inline uint32_t A5XX_CP_EXEC_CS_INDIRECT_3_LOCALSIZEZ(uint32_t val)
        return ((val) << A5XX_CP_EXEC_CS_INDIRECT_3_LOCALSIZEZ__SHIFT) & A5XX_CP_EXEC_CS_INDIRECT_3_LOCALSIZEZ__MASK;
 }
 
+#define REG_A2XX_CP_SET_MARKER_0                               0x00000000
+#define A2XX_CP_SET_MARKER_0_MARKER__MASK                      0x0000000f
+#define A2XX_CP_SET_MARKER_0_MARKER__SHIFT                     0
+static inline uint32_t A2XX_CP_SET_MARKER_0_MARKER(uint32_t val)
+{
+       return ((val) << A2XX_CP_SET_MARKER_0_MARKER__SHIFT) & A2XX_CP_SET_MARKER_0_MARKER__MASK;
+}
+#define A2XX_CP_SET_MARKER_0_MODE__MASK                                0x0000000f
+#define A2XX_CP_SET_MARKER_0_MODE__SHIFT                       0
+static inline uint32_t A2XX_CP_SET_MARKER_0_MODE(enum a6xx_render_mode val)
+{
+       return ((val) << A2XX_CP_SET_MARKER_0_MODE__SHIFT) & A2XX_CP_SET_MARKER_0_MODE__MASK;
+}
+#define A2XX_CP_SET_MARKER_0_IFPC                              0x00000100
+
+static inline uint32_t REG_A2XX_CP_SET_PSEUDO_REG_(uint32_t i0) { return 0x00000000 + 0x3*i0; }
+
+static inline uint32_t REG_A2XX_CP_SET_PSEUDO_REG__0(uint32_t i0) { return 0x00000000 + 0x3*i0; }
+#define A2XX_CP_SET_PSEUDO_REG__0_PSEUDO_REG__MASK             0x00000007
+#define A2XX_CP_SET_PSEUDO_REG__0_PSEUDO_REG__SHIFT            0
+static inline uint32_t A2XX_CP_SET_PSEUDO_REG__0_PSEUDO_REG(enum pseudo_reg val)
+{
+       return ((val) << A2XX_CP_SET_PSEUDO_REG__0_PSEUDO_REG__SHIFT) & A2XX_CP_SET_PSEUDO_REG__0_PSEUDO_REG__MASK;
+}
+
+static inline uint32_t REG_A2XX_CP_SET_PSEUDO_REG__1(uint32_t i0) { return 0x00000001 + 0x3*i0; }
+#define A2XX_CP_SET_PSEUDO_REG__1_LO__MASK                     0xffffffff
+#define A2XX_CP_SET_PSEUDO_REG__1_LO__SHIFT                    0
+static inline uint32_t A2XX_CP_SET_PSEUDO_REG__1_LO(uint32_t val)
+{
+       return ((val) << A2XX_CP_SET_PSEUDO_REG__1_LO__SHIFT) & A2XX_CP_SET_PSEUDO_REG__1_LO__MASK;
+}
+
+static inline uint32_t REG_A2XX_CP_SET_PSEUDO_REG__2(uint32_t i0) { return 0x00000002 + 0x3*i0; }
+#define A2XX_CP_SET_PSEUDO_REG__2_HI__MASK                     0xffffffff
+#define A2XX_CP_SET_PSEUDO_REG__2_HI__SHIFT                    0
+static inline uint32_t A2XX_CP_SET_PSEUDO_REG__2_HI(uint32_t val)
+{
+       return ((val) << A2XX_CP_SET_PSEUDO_REG__2_HI__SHIFT) & A2XX_CP_SET_PSEUDO_REG__2_HI__MASK;
+}
+
+#define REG_A2XX_CP_REG_TEST_0                                 0x00000000
+#define A2XX_CP_REG_TEST_0_REG__MASK                           0x00000fff
+#define A2XX_CP_REG_TEST_0_REG__SHIFT                          0
+static inline uint32_t A2XX_CP_REG_TEST_0_REG(uint32_t val)
+{
+       return ((val) << A2XX_CP_REG_TEST_0_REG__SHIFT) & A2XX_CP_REG_TEST_0_REG__MASK;
+}
+#define A2XX_CP_REG_TEST_0_BIT__MASK                           0x01f00000
+#define A2XX_CP_REG_TEST_0_BIT__SHIFT                          20
+static inline uint32_t A2XX_CP_REG_TEST_0_BIT(uint32_t val)
+{
+       return ((val) << A2XX_CP_REG_TEST_0_BIT__SHIFT) & A2XX_CP_REG_TEST_0_BIT__MASK;
+}
+#define A2XX_CP_REG_TEST_0_UNK25                               0x02000000
+
 
 #endif /* ADRENO_PM4_XML */