freedreno: update generated headers
[mesa.git] / src / gallium / drivers / freedreno / a3xx / a3xx.xml.h
index 918fb07a1a7dfeb1db6d0e82c61561e45e1b4419..5e593f12998cdbecbae0c6b07c1e5074adde0382 100644 (file)
@@ -8,16 +8,19 @@ 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               (    364 bytes, from 2013-11-30 14:47:15)
-- /home/robclark/src/freedreno/envytools/rnndb/freedreno_copyright.xml  (   1453 bytes, from 2013-03-31 16:51:27)
-- /home/robclark/src/freedreno/envytools/rnndb/adreno/a2xx.xml          (  32901 bytes, from 2014-06-02 15:21:30)
-- /home/robclark/src/freedreno/envytools/rnndb/adreno/adreno_common.xml (  10551 bytes, from 2014-11-13 22:44:30)
-- /home/robclark/src/freedreno/envytools/rnndb/adreno/adreno_pm4.xml    (  15053 bytes, from 2014-11-09 15:45:47)
-- /home/robclark/src/freedreno/envytools/rnndb/adreno/a3xx.xml          (  63601 bytes, from 2014-11-30 15:38:05)
-- /home/robclark/src/freedreno/envytools/rnndb/adreno/a4xx.xml          (  49147 bytes, from 2014-11-30 15:38:05)
-
-Copyright (C) 2013-2014 by the following authors:
+- /home/robclark/src/freedreno/envytools/rnndb/adreno.xml               (    431 bytes, from 2016-04-26 17:56:44)
+- /home/robclark/src/freedreno/envytools/rnndb/freedreno_copyright.xml  (   1572 bytes, from 2016-02-10 17:07:21)
+- /home/robclark/src/freedreno/envytools/rnndb/adreno/a2xx.xml          (  32907 bytes, from 2016-11-26 23:01:08)
+- /home/robclark/src/freedreno/envytools/rnndb/adreno/adreno_common.xml (  12025 bytes, from 2016-11-26 23:01:08)
+- /home/robclark/src/freedreno/envytools/rnndb/adreno/adreno_pm4.xml    (  23277 bytes, from 2016-12-24 05:01:47)
+- /home/robclark/src/freedreno/envytools/rnndb/adreno/a3xx.xml          (  83840 bytes, from 2016-11-26 23:01:08)
+- /home/robclark/src/freedreno/envytools/rnndb/adreno/a4xx.xml          ( 110757 bytes, from 2016-12-26 17:51:07)
+- /home/robclark/src/freedreno/envytools/rnndb/adreno/a5xx.xml          (  99224 bytes, from 2016-12-26 18:40:41)
+- /home/robclark/src/freedreno/envytools/rnndb/adreno/ocmem.xml         (   1773 bytes, from 2015-09-24 17:30:00)
+
+Copyright (C) 2013-2016 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
@@ -110,10 +113,14 @@ enum a3xx_vtx_fmt {
        VFMT_8_8_SNORM = 53,
        VFMT_8_8_8_SNORM = 54,
        VFMT_8_8_8_8_SNORM = 55,
-       VFMT_10_10_10_2_UINT = 60,
-       VFMT_10_10_10_2_UNORM = 61,
-       VFMT_10_10_10_2_SINT = 62,
-       VFMT_10_10_10_2_SNORM = 63,
+       VFMT_10_10_10_2_UINT = 56,
+       VFMT_10_10_10_2_UNORM = 57,
+       VFMT_10_10_10_2_SINT = 58,
+       VFMT_10_10_10_2_SNORM = 59,
+       VFMT_2_10_10_10_UINT = 60,
+       VFMT_2_10_10_10_UNORM = 61,
+       VFMT_2_10_10_10_SINT = 62,
+       VFMT_2_10_10_10_SNORM = 63,
 };
 
 enum a3xx_tex_fmt {
@@ -123,17 +130,30 @@ enum a3xx_tex_fmt {
        TFMT_Z16_UNORM = 9,
        TFMT_X8Z24_UNORM = 10,
        TFMT_Z32_FLOAT = 11,
-       TFMT_NV12_UV_TILED = 17,
-       TFMT_NV12_Y_TILED = 19,
-       TFMT_NV12_UV = 21,
-       TFMT_NV12_Y = 23,
+       TFMT_UV_64X32 = 16,
+       TFMT_VU_64X32 = 17,
+       TFMT_Y_64X32 = 18,
+       TFMT_NV12_64X32 = 19,
+       TFMT_UV_LINEAR = 20,
+       TFMT_VU_LINEAR = 21,
+       TFMT_Y_LINEAR = 22,
+       TFMT_NV12_LINEAR = 23,
        TFMT_I420_Y = 24,
        TFMT_I420_U = 26,
        TFMT_I420_V = 27,
+       TFMT_ATC_RGB = 32,
+       TFMT_ATC_RGBA_EXPLICIT = 33,
+       TFMT_ETC1 = 34,
+       TFMT_ATC_RGBA_INTERPOLATED = 35,
+       TFMT_DXT1 = 36,
+       TFMT_DXT3 = 37,
+       TFMT_DXT5 = 38,
+       TFMT_2_10_10_10_UNORM = 40,
        TFMT_10_10_10_2_UNORM = 41,
        TFMT_9_9_9_E5_FLOAT = 42,
        TFMT_11_11_10_FLOAT = 43,
        TFMT_A8_UNORM = 44,
+       TFMT_L8_UNORM = 45,
        TFMT_L8_A8_UNORM = 47,
        TFMT_8_UNORM = 48,
        TFMT_8_8_UNORM = 49,
@@ -175,6 +195,15 @@ enum a3xx_tex_fmt {
        TFMT_32_SINT = 92,
        TFMT_32_32_SINT = 93,
        TFMT_32_32_32_32_SINT = 95,
+       TFMT_2_10_10_10_UINT = 96,
+       TFMT_10_10_10_2_UINT = 97,
+       TFMT_ETC2_RG11_SNORM = 112,
+       TFMT_ETC2_RG11_UNORM = 113,
+       TFMT_ETC2_R11_SNORM = 114,
+       TFMT_ETC2_R11_UNORM = 115,
+       TFMT_ETC2_RGBA8 = 116,
+       TFMT_ETC2_RGB8A1 = 117,
+       TFMT_ETC2_RGB8 = 118,
 };
 
 enum a3xx_tex_fetchsize {
@@ -200,16 +229,29 @@ enum a3xx_color_fmt {
        RB_R8_UINT = 14,
        RB_R8_SINT = 15,
        RB_R10G10B10A2_UNORM = 16,
+       RB_A2R10G10B10_UNORM = 17,
+       RB_R10G10B10A2_UINT = 18,
+       RB_A2R10G10B10_UINT = 19,
        RB_A8_UNORM = 20,
        RB_R8_UNORM = 21,
+       RB_R16_FLOAT = 24,
+       RB_R16G16_FLOAT = 25,
        RB_R16G16B16A16_FLOAT = 27,
        RB_R11G11B10_FLOAT = 28,
+       RB_R16_SNORM = 32,
+       RB_R16G16_SNORM = 33,
+       RB_R16G16B16A16_SNORM = 35,
+       RB_R16_UNORM = 36,
+       RB_R16G16_UNORM = 37,
+       RB_R16G16B16A16_UNORM = 39,
        RB_R16_SINT = 40,
        RB_R16G16_SINT = 41,
        RB_R16G16B16A16_SINT = 43,
        RB_R16_UINT = 44,
        RB_R16G16_UINT = 45,
        RB_R16G16B16A16_UINT = 47,
+       RB_R32_FLOAT = 48,
+       RB_R32G32_FLOAT = 49,
        RB_R32G32B32A32_FLOAT = 51,
        RB_R32_SINT = 52,
        RB_R32G32_SINT = 53,
@@ -219,43 +261,286 @@ enum a3xx_color_fmt {
        RB_R32G32B32A32_UINT = 59,
 };
 
+enum a3xx_cp_perfcounter_select {
+       CP_ALWAYS_COUNT = 0,
+       CP_AHB_PFPTRANS_WAIT = 3,
+       CP_AHB_NRTTRANS_WAIT = 6,
+       CP_CSF_NRT_READ_WAIT = 8,
+       CP_CSF_I1_FIFO_FULL = 9,
+       CP_CSF_I2_FIFO_FULL = 10,
+       CP_CSF_ST_FIFO_FULL = 11,
+       CP_RESERVED_12 = 12,
+       CP_CSF_RING_ROQ_FULL = 13,
+       CP_CSF_I1_ROQ_FULL = 14,
+       CP_CSF_I2_ROQ_FULL = 15,
+       CP_CSF_ST_ROQ_FULL = 16,
+       CP_RESERVED_17 = 17,
+       CP_MIU_TAG_MEM_FULL = 18,
+       CP_MIU_NRT_WRITE_STALLED = 22,
+       CP_MIU_NRT_READ_STALLED = 23,
+       CP_ME_REGS_RB_DONE_FIFO_FULL = 26,
+       CP_ME_REGS_VS_EVENT_FIFO_FULL = 27,
+       CP_ME_REGS_PS_EVENT_FIFO_FULL = 28,
+       CP_ME_REGS_CF_EVENT_FIFO_FULL = 29,
+       CP_ME_MICRO_RB_STARVED = 30,
+       CP_AHB_RBBM_DWORD_SENT = 40,
+       CP_ME_BUSY_CLOCKS = 41,
+       CP_ME_WAIT_CONTEXT_AVAIL = 42,
+       CP_PFP_TYPE0_PACKET = 43,
+       CP_PFP_TYPE3_PACKET = 44,
+       CP_CSF_RB_WPTR_NEQ_RPTR = 45,
+       CP_CSF_I1_SIZE_NEQ_ZERO = 46,
+       CP_CSF_I2_SIZE_NEQ_ZERO = 47,
+       CP_CSF_RBI1I2_FETCHING = 48,
+};
+
+enum a3xx_gras_tse_perfcounter_select {
+       GRAS_TSEPERF_INPUT_PRIM = 0,
+       GRAS_TSEPERF_INPUT_NULL_PRIM = 1,
+       GRAS_TSEPERF_TRIVAL_REJ_PRIM = 2,
+       GRAS_TSEPERF_CLIPPED_PRIM = 3,
+       GRAS_TSEPERF_NEW_PRIM = 4,
+       GRAS_TSEPERF_ZERO_AREA_PRIM = 5,
+       GRAS_TSEPERF_FACENESS_CULLED_PRIM = 6,
+       GRAS_TSEPERF_ZERO_PIXEL_PRIM = 7,
+       GRAS_TSEPERF_OUTPUT_NULL_PRIM = 8,
+       GRAS_TSEPERF_OUTPUT_VISIBLE_PRIM = 9,
+       GRAS_TSEPERF_PRE_CLIP_PRIM = 10,
+       GRAS_TSEPERF_POST_CLIP_PRIM = 11,
+       GRAS_TSEPERF_WORKING_CYCLES = 12,
+       GRAS_TSEPERF_PC_STARVE = 13,
+       GRAS_TSERASPERF_STALL = 14,
+};
+
+enum a3xx_gras_ras_perfcounter_select {
+       GRAS_RASPERF_16X16_TILES = 0,
+       GRAS_RASPERF_8X8_TILES = 1,
+       GRAS_RASPERF_4X4_TILES = 2,
+       GRAS_RASPERF_WORKING_CYCLES = 3,
+       GRAS_RASPERF_STALL_CYCLES_BY_RB = 4,
+       GRAS_RASPERF_STALL_CYCLES_BY_VSC = 5,
+       GRAS_RASPERF_STARVE_CYCLES_BY_TSE = 6,
+};
+
+enum a3xx_hlsq_perfcounter_select {
+       HLSQ_PERF_SP_VS_CONSTANT = 0,
+       HLSQ_PERF_SP_VS_INSTRUCTIONS = 1,
+       HLSQ_PERF_SP_FS_CONSTANT = 2,
+       HLSQ_PERF_SP_FS_INSTRUCTIONS = 3,
+       HLSQ_PERF_TP_STATE = 4,
+       HLSQ_PERF_QUADS = 5,
+       HLSQ_PERF_PIXELS = 6,
+       HLSQ_PERF_VERTICES = 7,
+       HLSQ_PERF_FS8_THREADS = 8,
+       HLSQ_PERF_FS16_THREADS = 9,
+       HLSQ_PERF_FS32_THREADS = 10,
+       HLSQ_PERF_VS8_THREADS = 11,
+       HLSQ_PERF_VS16_THREADS = 12,
+       HLSQ_PERF_SP_VS_DATA_BYTES = 13,
+       HLSQ_PERF_SP_FS_DATA_BYTES = 14,
+       HLSQ_PERF_ACTIVE_CYCLES = 15,
+       HLSQ_PERF_STALL_CYCLES_SP_STATE = 16,
+       HLSQ_PERF_STALL_CYCLES_SP_VS = 17,
+       HLSQ_PERF_STALL_CYCLES_SP_FS = 18,
+       HLSQ_PERF_STALL_CYCLES_UCHE = 19,
+       HLSQ_PERF_RBBM_LOAD_CYCLES = 20,
+       HLSQ_PERF_DI_TO_VS_START_SP0 = 21,
+       HLSQ_PERF_DI_TO_FS_START_SP0 = 22,
+       HLSQ_PERF_VS_START_TO_DONE_SP0 = 23,
+       HLSQ_PERF_FS_START_TO_DONE_SP0 = 24,
+       HLSQ_PERF_SP_STATE_COPY_CYCLES_VS = 25,
+       HLSQ_PERF_SP_STATE_COPY_CYCLES_FS = 26,
+       HLSQ_PERF_UCHE_LATENCY_CYCLES = 27,
+       HLSQ_PERF_UCHE_LATENCY_COUNT = 28,
+};
+
+enum a3xx_pc_perfcounter_select {
+       PC_PCPERF_VISIBILITY_STREAMS = 0,
+       PC_PCPERF_TOTAL_INSTANCES = 1,
+       PC_PCPERF_PRIMITIVES_PC_VPC = 2,
+       PC_PCPERF_PRIMITIVES_KILLED_BY_VS = 3,
+       PC_PCPERF_PRIMITIVES_VISIBLE_BY_VS = 4,
+       PC_PCPERF_DRAWCALLS_KILLED_BY_VS = 5,
+       PC_PCPERF_DRAWCALLS_VISIBLE_BY_VS = 6,
+       PC_PCPERF_VERTICES_TO_VFD = 7,
+       PC_PCPERF_REUSED_VERTICES = 8,
+       PC_PCPERF_CYCLES_STALLED_BY_VFD = 9,
+       PC_PCPERF_CYCLES_STALLED_BY_TSE = 10,
+       PC_PCPERF_CYCLES_STALLED_BY_VBIF = 11,
+       PC_PCPERF_CYCLES_IS_WORKING = 12,
+};
+
+enum a3xx_rb_perfcounter_select {
+       RB_RBPERF_ACTIVE_CYCLES_ANY = 0,
+       RB_RBPERF_ACTIVE_CYCLES_ALL = 1,
+       RB_RBPERF_STARVE_CYCLES_BY_SP = 2,
+       RB_RBPERF_STARVE_CYCLES_BY_RAS = 3,
+       RB_RBPERF_STARVE_CYCLES_BY_MARB = 4,
+       RB_RBPERF_STALL_CYCLES_BY_MARB = 5,
+       RB_RBPERF_STALL_CYCLES_BY_HLSQ = 6,
+       RB_RBPERF_RB_MARB_DATA = 7,
+       RB_RBPERF_SP_RB_QUAD = 8,
+       RB_RBPERF_RAS_EARLY_Z_QUADS = 9,
+       RB_RBPERF_GMEM_CH0_READ = 10,
+       RB_RBPERF_GMEM_CH1_READ = 11,
+       RB_RBPERF_GMEM_CH0_WRITE = 12,
+       RB_RBPERF_GMEM_CH1_WRITE = 13,
+       RB_RBPERF_CP_CONTEXT_DONE = 14,
+       RB_RBPERF_CP_CACHE_FLUSH = 15,
+       RB_RBPERF_CP_ZPASS_DONE = 16,
+};
+
+enum a3xx_rbbm_perfcounter_select {
+       RBBM_ALAWYS_ON = 0,
+       RBBM_VBIF_BUSY = 1,
+       RBBM_TSE_BUSY = 2,
+       RBBM_RAS_BUSY = 3,
+       RBBM_PC_DCALL_BUSY = 4,
+       RBBM_PC_VSD_BUSY = 5,
+       RBBM_VFD_BUSY = 6,
+       RBBM_VPC_BUSY = 7,
+       RBBM_UCHE_BUSY = 8,
+       RBBM_VSC_BUSY = 9,
+       RBBM_HLSQ_BUSY = 10,
+       RBBM_ANY_RB_BUSY = 11,
+       RBBM_ANY_TEX_BUSY = 12,
+       RBBM_ANY_USP_BUSY = 13,
+       RBBM_ANY_MARB_BUSY = 14,
+       RBBM_ANY_ARB_BUSY = 15,
+       RBBM_AHB_STATUS_BUSY = 16,
+       RBBM_AHB_STATUS_STALLED = 17,
+       RBBM_AHB_STATUS_TXFR = 18,
+       RBBM_AHB_STATUS_TXFR_SPLIT = 19,
+       RBBM_AHB_STATUS_TXFR_ERROR = 20,
+       RBBM_AHB_STATUS_LONG_STALL = 21,
+       RBBM_RBBM_STATUS_MASKED = 22,
+};
+
 enum a3xx_sp_perfcounter_select {
+       SP_LM_LOAD_INSTRUCTIONS = 0,
+       SP_LM_STORE_INSTRUCTIONS = 1,
+       SP_LM_ATOMICS = 2,
+       SP_UCHE_LOAD_INSTRUCTIONS = 3,
+       SP_UCHE_STORE_INSTRUCTIONS = 4,
+       SP_UCHE_ATOMICS = 5,
+       SP_VS_TEX_INSTRUCTIONS = 6,
+       SP_VS_CFLOW_INSTRUCTIONS = 7,
+       SP_VS_EFU_INSTRUCTIONS = 8,
+       SP_VS_FULL_ALU_INSTRUCTIONS = 9,
+       SP_VS_HALF_ALU_INSTRUCTIONS = 10,
+       SP_FS_TEX_INSTRUCTIONS = 11,
        SP_FS_CFLOW_INSTRUCTIONS = 12,
+       SP_FS_EFU_INSTRUCTIONS = 13,
        SP_FS_FULL_ALU_INSTRUCTIONS = 14,
-       SP0_ICL1_MISSES = 26,
+       SP_FS_HALF_ALU_INSTRUCTIONS = 15,
+       SP_FS_BARY_INSTRUCTIONS = 16,
+       SP_VS_INSTRUCTIONS = 17,
+       SP_FS_INSTRUCTIONS = 18,
+       SP_ADDR_LOCK_COUNT = 19,
+       SP_UCHE_READ_TRANS = 20,
+       SP_UCHE_WRITE_TRANS = 21,
+       SP_EXPORT_VPC_TRANS = 22,
+       SP_EXPORT_RB_TRANS = 23,
+       SP_PIXELS_KILLED = 24,
+       SP_ICL1_REQUESTS = 25,
+       SP_ICL1_MISSES = 26,
+       SP_ICL0_REQUESTS = 27,
+       SP_ICL0_MISSES = 28,
        SP_ALU_ACTIVE_CYCLES = 29,
+       SP_EFU_ACTIVE_CYCLES = 30,
+       SP_STALL_CYCLES_BY_VPC = 31,
+       SP_STALL_CYCLES_BY_TP = 32,
+       SP_STALL_CYCLES_BY_UCHE = 33,
+       SP_STALL_CYCLES_BY_RB = 34,
+       SP_ACTIVE_CYCLES_ANY = 35,
+       SP_ACTIVE_CYCLES_ALL = 36,
 };
 
-enum a3xx_rop_code {
-       ROP_CLEAR = 0,
-       ROP_NOR = 1,
-       ROP_AND_INVERTED = 2,
-       ROP_COPY_INVERTED = 3,
-       ROP_AND_REVERSE = 4,
-       ROP_INVERT = 5,
-       ROP_XOR = 6,
-       ROP_NAND = 7,
-       ROP_AND = 8,
-       ROP_EQUIV = 9,
-       ROP_NOOP = 10,
-       ROP_OR_INVERTED = 11,
-       ROP_COPY = 12,
-       ROP_OR_REVERSE = 13,
-       ROP_OR = 14,
-       ROP_SET = 15,
+enum a3xx_tp_perfcounter_select {
+       TPL1_TPPERF_L1_REQUESTS = 0,
+       TPL1_TPPERF_TP0_L1_REQUESTS = 1,
+       TPL1_TPPERF_TP0_L1_MISSES = 2,
+       TPL1_TPPERF_TP1_L1_REQUESTS = 3,
+       TPL1_TPPERF_TP1_L1_MISSES = 4,
+       TPL1_TPPERF_TP2_L1_REQUESTS = 5,
+       TPL1_TPPERF_TP2_L1_MISSES = 6,
+       TPL1_TPPERF_TP3_L1_REQUESTS = 7,
+       TPL1_TPPERF_TP3_L1_MISSES = 8,
+       TPL1_TPPERF_OUTPUT_TEXELS_POINT = 9,
+       TPL1_TPPERF_OUTPUT_TEXELS_BILINEAR = 10,
+       TPL1_TPPERF_OUTPUT_TEXELS_MIP = 11,
+       TPL1_TPPERF_OUTPUT_TEXELS_ANISO = 12,
+       TPL1_TPPERF_BILINEAR_OPS = 13,
+       TPL1_TPPERF_QUADSQUADS_OFFSET = 14,
+       TPL1_TPPERF_QUADQUADS_SHADOW = 15,
+       TPL1_TPPERF_QUADS_ARRAY = 16,
+       TPL1_TPPERF_QUADS_PROJECTION = 17,
+       TPL1_TPPERF_QUADS_GRADIENT = 18,
+       TPL1_TPPERF_QUADS_1D2D = 19,
+       TPL1_TPPERF_QUADS_3DCUBE = 20,
+       TPL1_TPPERF_ZERO_LOD = 21,
+       TPL1_TPPERF_OUTPUT_TEXELS = 22,
+       TPL1_TPPERF_ACTIVE_CYCLES_ANY = 23,
+       TPL1_TPPERF_ACTIVE_CYCLES_ALL = 24,
+       TPL1_TPPERF_STALL_CYCLES_BY_ARB = 25,
+       TPL1_TPPERF_LATENCY = 26,
+       TPL1_TPPERF_LATENCY_TRANS = 27,
 };
 
-enum a3xx_rb_blend_opcode {
-       BLEND_DST_PLUS_SRC = 0,
-       BLEND_SRC_MINUS_DST = 1,
-       BLEND_DST_MINUS_SRC = 2,
-       BLEND_MIN_DST_SRC = 3,
-       BLEND_MAX_DST_SRC = 4,
+enum a3xx_vfd_perfcounter_select {
+       VFD_PERF_UCHE_BYTE_FETCHED = 0,
+       VFD_PERF_UCHE_TRANS = 1,
+       VFD_PERF_VPC_BYPASS_COMPONENTS = 2,
+       VFD_PERF_FETCH_INSTRUCTIONS = 3,
+       VFD_PERF_DECODE_INSTRUCTIONS = 4,
+       VFD_PERF_ACTIVE_CYCLES = 5,
+       VFD_PERF_STALL_CYCLES_UCHE = 6,
+       VFD_PERF_STALL_CYCLES_HLSQ = 7,
+       VFD_PERF_STALL_CYCLES_VPC_BYPASS = 8,
+       VFD_PERF_STALL_CYCLES_VPC_ALLOC = 9,
+};
+
+enum a3xx_vpc_perfcounter_select {
+       VPC_PERF_SP_LM_PRIMITIVES = 0,
+       VPC_PERF_COMPONENTS_FROM_SP = 1,
+       VPC_PERF_SP_LM_COMPONENTS = 2,
+       VPC_PERF_ACTIVE_CYCLES = 3,
+       VPC_PERF_STALL_CYCLES_LM = 4,
+       VPC_PERF_STALL_CYCLES_RAS = 5,
+};
+
+enum a3xx_uche_perfcounter_select {
+       UCHE_UCHEPERF_VBIF_READ_BEATS_TP = 0,
+       UCHE_UCHEPERF_VBIF_READ_BEATS_VFD = 1,
+       UCHE_UCHEPERF_VBIF_READ_BEATS_HLSQ = 2,
+       UCHE_UCHEPERF_VBIF_READ_BEATS_MARB = 3,
+       UCHE_UCHEPERF_VBIF_READ_BEATS_SP = 4,
+       UCHE_UCHEPERF_READ_REQUESTS_TP = 8,
+       UCHE_UCHEPERF_READ_REQUESTS_VFD = 9,
+       UCHE_UCHEPERF_READ_REQUESTS_HLSQ = 10,
+       UCHE_UCHEPERF_READ_REQUESTS_MARB = 11,
+       UCHE_UCHEPERF_READ_REQUESTS_SP = 12,
+       UCHE_UCHEPERF_WRITE_REQUESTS_MARB = 13,
+       UCHE_UCHEPERF_WRITE_REQUESTS_SP = 14,
+       UCHE_UCHEPERF_TAG_CHECK_FAILS = 15,
+       UCHE_UCHEPERF_EVICTS = 16,
+       UCHE_UCHEPERF_FLUSHES = 17,
+       UCHE_UCHEPERF_VBIF_LATENCY_CYCLES = 18,
+       UCHE_UCHEPERF_VBIF_LATENCY_SAMPLES = 19,
+       UCHE_UCHEPERF_ACTIVE_CYCLES = 20,
 };
 
 enum a3xx_intp_mode {
        SMOOTH = 0,
        FLAT = 1,
+       ZERO = 2,
+       ONE = 3,
+};
+
+enum a3xx_repl_mode {
+       S = 1,
+       T = 2,
+       ONE_T = 3,
 };
 
 enum a3xx_tex_filter {
@@ -272,6 +557,14 @@ enum a3xx_tex_clamp {
        A3XX_TEX_MIRROR_CLAMP = 4,
 };
 
+enum a3xx_tex_aniso {
+       A3XX_TEX_ANISO_1 = 0,
+       A3XX_TEX_ANISO_2 = 1,
+       A3XX_TEX_ANISO_4 = 2,
+       A3XX_TEX_ANISO_8 = 3,
+       A3XX_TEX_ANISO_16 = 4,
+};
+
 enum a3xx_tex_swiz {
        A3XX_TEX_X = 0,
        A3XX_TEX_Y = 1,
@@ -288,6 +581,13 @@ enum a3xx_tex_type {
        A3XX_TEX_3D = 3,
 };
 
+enum a3xx_tex_msaa {
+       A3XX_TPL1_MSAA1X = 0,
+       A3XX_TPL1_MSAA2X = 1,
+       A3XX_TPL1_MSAA4X = 2,
+       A3XX_TPL1_MSAA8X = 3,
+};
+
 #define A3XX_INT0_RBBM_GPU_IDLE                                        0x00000001
 #define A3XX_INT0_RBBM_AHB_ERROR                               0x00000002
 #define A3XX_INT0_RBBM_REG_TIMEOUT                             0x00000004
@@ -635,9 +935,16 @@ static inline uint32_t REG_A3XX_CP_PROTECT_REG(uint32_t i0) { return 0x00000460
 #define A3XX_GRAS_CL_CLIP_CNTL_VP_CLIP_CODE_IGNORE             0x00080000
 #define A3XX_GRAS_CL_CLIP_CNTL_VP_XFORM_DISABLE                        0x00100000
 #define A3XX_GRAS_CL_CLIP_CNTL_PERSP_DIVISION_DISABLE          0x00200000
+#define A3XX_GRAS_CL_CLIP_CNTL_ZERO_GB_SCALE_Z                 0x00400000
 #define A3XX_GRAS_CL_CLIP_CNTL_ZCOORD                          0x00800000
 #define A3XX_GRAS_CL_CLIP_CNTL_WCOORD                          0x01000000
 #define A3XX_GRAS_CL_CLIP_CNTL_ZCLIP_DISABLE                   0x02000000
+#define A3XX_GRAS_CL_CLIP_CNTL_NUM_USER_CLIP_PLANES__MASK      0x1c000000
+#define A3XX_GRAS_CL_CLIP_CNTL_NUM_USER_CLIP_PLANES__SHIFT     26
+static inline uint32_t A3XX_GRAS_CL_CLIP_CNTL_NUM_USER_CLIP_PLANES(uint32_t val)
+{
+       return ((val) << A3XX_GRAS_CL_CLIP_CNTL_NUM_USER_CLIP_PLANES__SHIFT) & A3XX_GRAS_CL_CLIP_CNTL_NUM_USER_CLIP_PLANES__MASK;
+}
 
 #define REG_A3XX_GRAS_CL_GB_CLIP_ADJ                           0x00002044
 #define A3XX_GRAS_CL_GB_CLIP_ADJ_HORZ__MASK                    0x000003ff
@@ -728,7 +1035,7 @@ static inline uint32_t A3XX_GRAS_SU_POINT_SIZE(float val)
 #define A3XX_GRAS_SU_POLY_OFFSET_SCALE_VAL__SHIFT              0
 static inline uint32_t A3XX_GRAS_SU_POLY_OFFSET_SCALE_VAL(float val)
 {
-       return ((((int32_t)(val * 16384.0))) << A3XX_GRAS_SU_POLY_OFFSET_SCALE_VAL__SHIFT) & A3XX_GRAS_SU_POLY_OFFSET_SCALE_VAL__MASK;
+       return ((((int32_t)(val * 1048576.0))) << A3XX_GRAS_SU_POLY_OFFSET_SCALE_VAL__SHIFT) & A3XX_GRAS_SU_POLY_OFFSET_SCALE_VAL__MASK;
 }
 
 #define REG_A3XX_GRAS_SU_POLY_OFFSET_OFFSET                    0x0000206d
@@ -736,7 +1043,7 @@ static inline uint32_t A3XX_GRAS_SU_POLY_OFFSET_SCALE_VAL(float val)
 #define A3XX_GRAS_SU_POLY_OFFSET_OFFSET__SHIFT                 0
 static inline uint32_t A3XX_GRAS_SU_POLY_OFFSET_OFFSET(float val)
 {
-       return ((((int32_t)(val * 16384.0))) << A3XX_GRAS_SU_POLY_OFFSET_OFFSET__SHIFT) & A3XX_GRAS_SU_POLY_OFFSET_OFFSET__MASK;
+       return ((((int32_t)(val * 64.0))) << A3XX_GRAS_SU_POLY_OFFSET_OFFSET__SHIFT) & A3XX_GRAS_SU_POLY_OFFSET_OFFSET__MASK;
 }
 
 #define REG_A3XX_GRAS_SU_MODE_CONTROL                          0x00002070
@@ -839,15 +1146,25 @@ static inline uint32_t A3XX_RB_MODE_CONTROL_RENDER_MODE(enum a3xx_render_mode va
 {
        return ((val) << A3XX_RB_MODE_CONTROL_RENDER_MODE__SHIFT) & A3XX_RB_MODE_CONTROL_RENDER_MODE__MASK;
 }
+#define A3XX_RB_MODE_CONTROL_MRT__MASK                         0x00003000
+#define A3XX_RB_MODE_CONTROL_MRT__SHIFT                                12
+static inline uint32_t A3XX_RB_MODE_CONTROL_MRT(uint32_t val)
+{
+       return ((val) << A3XX_RB_MODE_CONTROL_MRT__SHIFT) & A3XX_RB_MODE_CONTROL_MRT__MASK;
+}
 #define A3XX_RB_MODE_CONTROL_MARB_CACHE_SPLIT_MODE             0x00008000
 #define A3XX_RB_MODE_CONTROL_PACKER_TIMER_ENABLE               0x00010000
 
 #define REG_A3XX_RB_RENDER_CONTROL                             0x000020c1
+#define A3XX_RB_RENDER_CONTROL_DUAL_COLOR_IN_ENABLE            0x00000001
+#define A3XX_RB_RENDER_CONTROL_YUV_IN_ENABLE                   0x00000002
+#define A3XX_RB_RENDER_CONTROL_COV_VALUE_INPUT_ENABLE          0x00000004
 #define A3XX_RB_RENDER_CONTROL_FACENESS                                0x00000008
 #define A3XX_RB_RENDER_CONTROL_BIN_WIDTH__MASK                 0x00000ff0
 #define A3XX_RB_RENDER_CONTROL_BIN_WIDTH__SHIFT                        4
 static inline uint32_t A3XX_RB_RENDER_CONTROL_BIN_WIDTH(uint32_t val)
 {
+       assert(!(val & 0x1f));
        return ((val >> 5) << A3XX_RB_RENDER_CONTROL_BIN_WIDTH__SHIFT) & A3XX_RB_RENDER_CONTROL_BIN_WIDTH__MASK;
 }
 #define A3XX_RB_RENDER_CONTROL_DISABLE_COLOR_PIPE              0x00001000
@@ -856,6 +1173,8 @@ static inline uint32_t A3XX_RB_RENDER_CONTROL_BIN_WIDTH(uint32_t val)
 #define A3XX_RB_RENDER_CONTROL_YCOORD                          0x00008000
 #define A3XX_RB_RENDER_CONTROL_ZCOORD                          0x00010000
 #define A3XX_RB_RENDER_CONTROL_WCOORD                          0x00020000
+#define A3XX_RB_RENDER_CONTROL_I_CLAMP_ENABLE                  0x00080000
+#define A3XX_RB_RENDER_CONTROL_COV_VALUE_OUTPUT_ENABLE         0x00100000
 #define A3XX_RB_RENDER_CONTROL_ALPHA_TEST                      0x00400000
 #define A3XX_RB_RENDER_CONTROL_ALPHA_TEST_FUNC__MASK           0x07000000
 #define A3XX_RB_RENDER_CONTROL_ALPHA_TEST_FUNC__SHIFT          24
@@ -863,6 +1182,8 @@ static inline uint32_t A3XX_RB_RENDER_CONTROL_ALPHA_TEST_FUNC(enum adreno_compar
 {
        return ((val) << A3XX_RB_RENDER_CONTROL_ALPHA_TEST_FUNC__SHIFT) & A3XX_RB_RENDER_CONTROL_ALPHA_TEST_FUNC__MASK;
 }
+#define A3XX_RB_RENDER_CONTROL_ALPHA_TO_COVERAGE               0x40000000
+#define A3XX_RB_RENDER_CONTROL_ALPHA_TO_ONE                    0x80000000
 
 #define REG_A3XX_RB_MSAA_CONTROL                               0x000020c2
 #define A3XX_RB_MSAA_CONTROL_DISABLE                           0x00000400
@@ -942,6 +1263,7 @@ static inline uint32_t A3XX_RB_MRT_BUF_INFO_COLOR_SWAP(enum a3xx_color_swap val)
 #define A3XX_RB_MRT_BUF_INFO_COLOR_BUF_PITCH__SHIFT            17
 static inline uint32_t A3XX_RB_MRT_BUF_INFO_COLOR_BUF_PITCH(uint32_t val)
 {
+       assert(!(val & 0x1f));
        return ((val >> 5) << A3XX_RB_MRT_BUF_INFO_COLOR_BUF_PITCH__SHIFT) & A3XX_RB_MRT_BUF_INFO_COLOR_BUF_PITCH__MASK;
 }
 
@@ -950,6 +1272,7 @@ static inline uint32_t REG_A3XX_RB_MRT_BUF_BASE(uint32_t i0) { return 0x000020c6
 #define A3XX_RB_MRT_BUF_BASE_COLOR_BUF_BASE__SHIFT             4
 static inline uint32_t A3XX_RB_MRT_BUF_BASE_COLOR_BUF_BASE(uint32_t val)
 {
+       assert(!(val & 0x1f));
        return ((val >> 5) << A3XX_RB_MRT_BUF_BASE_COLOR_BUF_BASE__SHIFT) & A3XX_RB_MRT_BUF_BASE_COLOR_BUF_BASE__MASK;
 }
 
@@ -1070,17 +1393,19 @@ static inline uint32_t A3XX_RB_COPY_CONTROL_MODE(enum adreno_rb_copy_control_mod
 {
        return ((val) << A3XX_RB_COPY_CONTROL_MODE__SHIFT) & A3XX_RB_COPY_CONTROL_MODE__MASK;
 }
+#define A3XX_RB_COPY_CONTROL_MSAA_SRGB_DOWNSAMPLE              0x00000080
 #define A3XX_RB_COPY_CONTROL_FASTCLEAR__MASK                   0x00000f00
 #define A3XX_RB_COPY_CONTROL_FASTCLEAR__SHIFT                  8
 static inline uint32_t A3XX_RB_COPY_CONTROL_FASTCLEAR(uint32_t val)
 {
        return ((val) << A3XX_RB_COPY_CONTROL_FASTCLEAR__SHIFT) & A3XX_RB_COPY_CONTROL_FASTCLEAR__MASK;
 }
-#define A3XX_RB_COPY_CONTROL_UNK12                             0x00001000
+#define A3XX_RB_COPY_CONTROL_DEPTH32_RESOLVE                   0x00001000
 #define A3XX_RB_COPY_CONTROL_GMEM_BASE__MASK                   0xffffc000
 #define A3XX_RB_COPY_CONTROL_GMEM_BASE__SHIFT                  14
 static inline uint32_t A3XX_RB_COPY_CONTROL_GMEM_BASE(uint32_t val)
 {
+       assert(!(val & 0x3fff));
        return ((val >> 14) << A3XX_RB_COPY_CONTROL_GMEM_BASE__SHIFT) & A3XX_RB_COPY_CONTROL_GMEM_BASE__MASK;
 }
 
@@ -1089,6 +1414,7 @@ static inline uint32_t A3XX_RB_COPY_CONTROL_GMEM_BASE(uint32_t val)
 #define A3XX_RB_COPY_DEST_BASE_BASE__SHIFT                     4
 static inline uint32_t A3XX_RB_COPY_DEST_BASE_BASE(uint32_t val)
 {
+       assert(!(val & 0x1f));
        return ((val >> 5) << A3XX_RB_COPY_DEST_BASE_BASE__SHIFT) & A3XX_RB_COPY_DEST_BASE_BASE__MASK;
 }
 
@@ -1097,6 +1423,7 @@ static inline uint32_t A3XX_RB_COPY_DEST_BASE_BASE(uint32_t val)
 #define A3XX_RB_COPY_DEST_PITCH_PITCH__SHIFT                   0
 static inline uint32_t A3XX_RB_COPY_DEST_PITCH_PITCH(uint32_t val)
 {
+       assert(!(val & 0x1f));
        return ((val >> 5) << A3XX_RB_COPY_DEST_PITCH_PITCH__SHIFT) & A3XX_RB_COPY_DEST_PITCH_PITCH__MASK;
 }
 
@@ -1149,7 +1476,7 @@ static inline uint32_t A3XX_RB_DEPTH_CONTROL_ZFUNC(enum adreno_compare_func val)
 {
        return ((val) << A3XX_RB_DEPTH_CONTROL_ZFUNC__SHIFT) & A3XX_RB_DEPTH_CONTROL_ZFUNC__MASK;
 }
-#define A3XX_RB_DEPTH_CONTROL_BF_ENABLE                                0x00000080
+#define A3XX_RB_DEPTH_CONTROL_Z_CLAMP_ENABLE                   0x00000080
 #define A3XX_RB_DEPTH_CONTROL_Z_TEST_ENABLE                    0x80000000
 
 #define REG_A3XX_RB_DEPTH_CLEAR                                        0x00002101
@@ -1165,6 +1492,7 @@ static inline uint32_t A3XX_RB_DEPTH_INFO_DEPTH_FORMAT(enum adreno_rb_depth_form
 #define A3XX_RB_DEPTH_INFO_DEPTH_BASE__SHIFT                   11
 static inline uint32_t A3XX_RB_DEPTH_INFO_DEPTH_BASE(uint32_t val)
 {
+       assert(!(val & 0xfff));
        return ((val >> 12) << A3XX_RB_DEPTH_INFO_DEPTH_BASE__SHIFT) & A3XX_RB_DEPTH_INFO_DEPTH_BASE__MASK;
 }
 
@@ -1173,6 +1501,7 @@ static inline uint32_t A3XX_RB_DEPTH_INFO_DEPTH_BASE(uint32_t val)
 #define A3XX_RB_DEPTH_PITCH__SHIFT                             0
 static inline uint32_t A3XX_RB_DEPTH_PITCH(uint32_t val)
 {
+       assert(!(val & 0x7));
        return ((val >> 3) << A3XX_RB_DEPTH_PITCH__SHIFT) & A3XX_RB_DEPTH_PITCH__MASK;
 }
 
@@ -1231,9 +1560,23 @@ static inline uint32_t A3XX_RB_STENCIL_CONTROL_ZFAIL_BF(enum adreno_stencil_op v
 
 #define REG_A3XX_RB_STENCIL_CLEAR                              0x00002105
 
-#define REG_A3XX_RB_STENCIL_BUF_INFO                           0x00002106
+#define REG_A3XX_RB_STENCIL_INFO                               0x00002106
+#define A3XX_RB_STENCIL_INFO_STENCIL_BASE__MASK                        0xfffff800
+#define A3XX_RB_STENCIL_INFO_STENCIL_BASE__SHIFT               11
+static inline uint32_t A3XX_RB_STENCIL_INFO_STENCIL_BASE(uint32_t val)
+{
+       assert(!(val & 0xfff));
+       return ((val >> 12) << A3XX_RB_STENCIL_INFO_STENCIL_BASE__SHIFT) & A3XX_RB_STENCIL_INFO_STENCIL_BASE__MASK;
+}
 
-#define REG_A3XX_RB_STENCIL_BUF_PITCH                          0x00002107
+#define REG_A3XX_RB_STENCIL_PITCH                              0x00002107
+#define A3XX_RB_STENCIL_PITCH__MASK                            0xffffffff
+#define A3XX_RB_STENCIL_PITCH__SHIFT                           0
+static inline uint32_t A3XX_RB_STENCIL_PITCH(uint32_t val)
+{
+       assert(!(val & 0x7));
+       return ((val >> 3) << A3XX_RB_STENCIL_PITCH__SHIFT) & A3XX_RB_STENCIL_PITCH__MASK;
+}
 
 #define REG_A3XX_RB_STENCILREFMASK                             0x00002108
 #define A3XX_RB_STENCILREFMASK_STENCILREF__MASK                        0x000000ff
@@ -1341,6 +1684,7 @@ static inline uint32_t A3XX_PC_PRIM_VTX_CNTL_POLYMODE_BACK_PTYPE(enum adreno_pa_
 {
        return ((val) << A3XX_PC_PRIM_VTX_CNTL_POLYMODE_BACK_PTYPE__SHIFT) & A3XX_PC_PRIM_VTX_CNTL_POLYMODE_BACK_PTYPE__MASK;
 }
+#define A3XX_PC_PRIM_VTX_CNTL_POLYMODE_ENABLE                  0x00001000
 #define A3XX_PC_PRIM_VTX_CNTL_PRIMITIVE_RESTART                        0x00100000
 #define A3XX_PC_PRIM_VTX_CNTL_PROVOKING_VTX_LAST               0x02000000
 #define A3XX_PC_PRIM_VTX_CNTL_PSIZE                            0x04000000
@@ -1348,15 +1692,23 @@ static inline uint32_t A3XX_PC_PRIM_VTX_CNTL_POLYMODE_BACK_PTYPE(enum adreno_pa_
 #define REG_A3XX_PC_RESTART_INDEX                              0x000021ed
 
 #define REG_A3XX_HLSQ_CONTROL_0_REG                            0x00002200
-#define A3XX_HLSQ_CONTROL_0_REG_FSTHREADSIZE__MASK             0x00000010
+#define A3XX_HLSQ_CONTROL_0_REG_FSTHREADSIZE__MASK             0x00000030
 #define A3XX_HLSQ_CONTROL_0_REG_FSTHREADSIZE__SHIFT            4
 static inline uint32_t A3XX_HLSQ_CONTROL_0_REG_FSTHREADSIZE(enum a3xx_threadsize val)
 {
        return ((val) << A3XX_HLSQ_CONTROL_0_REG_FSTHREADSIZE__SHIFT) & A3XX_HLSQ_CONTROL_0_REG_FSTHREADSIZE__MASK;
 }
 #define A3XX_HLSQ_CONTROL_0_REG_FSSUPERTHREADENABLE            0x00000040
+#define A3XX_HLSQ_CONTROL_0_REG_COMPUTEMODE                    0x00000100
 #define A3XX_HLSQ_CONTROL_0_REG_SPSHADERRESTART                        0x00000200
 #define A3XX_HLSQ_CONTROL_0_REG_RESERVED2                      0x00000400
+#define A3XX_HLSQ_CONTROL_0_REG_CYCLETIMEOUTLIMITVPC__MASK     0x00fff000
+#define A3XX_HLSQ_CONTROL_0_REG_CYCLETIMEOUTLIMITVPC__SHIFT    12
+static inline uint32_t A3XX_HLSQ_CONTROL_0_REG_CYCLETIMEOUTLIMITVPC(uint32_t val)
+{
+       return ((val) << A3XX_HLSQ_CONTROL_0_REG_CYCLETIMEOUTLIMITVPC__SHIFT) & A3XX_HLSQ_CONTROL_0_REG_CYCLETIMEOUTLIMITVPC__MASK;
+}
+#define A3XX_HLSQ_CONTROL_0_REG_FSONLYTEX                      0x02000000
 #define A3XX_HLSQ_CONTROL_0_REG_CHUNKDISABLE                   0x04000000
 #define A3XX_HLSQ_CONTROL_0_REG_CONSTMODE__MASK                        0x08000000
 #define A3XX_HLSQ_CONTROL_0_REG_CONSTMODE__SHIFT               27
@@ -1370,17 +1722,39 @@ static inline uint32_t A3XX_HLSQ_CONTROL_0_REG_CONSTMODE(uint32_t val)
 #define A3XX_HLSQ_CONTROL_0_REG_SINGLECONTEXT                  0x80000000
 
 #define REG_A3XX_HLSQ_CONTROL_1_REG                            0x00002201
-#define A3XX_HLSQ_CONTROL_1_REG_VSTHREADSIZE__MASK             0x00000040
+#define A3XX_HLSQ_CONTROL_1_REG_VSTHREADSIZE__MASK             0x000000c0
 #define A3XX_HLSQ_CONTROL_1_REG_VSTHREADSIZE__SHIFT            6
 static inline uint32_t A3XX_HLSQ_CONTROL_1_REG_VSTHREADSIZE(enum a3xx_threadsize val)
 {
        return ((val) << A3XX_HLSQ_CONTROL_1_REG_VSTHREADSIZE__SHIFT) & A3XX_HLSQ_CONTROL_1_REG_VSTHREADSIZE__MASK;
 }
 #define A3XX_HLSQ_CONTROL_1_REG_VSSUPERTHREADENABLE            0x00000100
-#define A3XX_HLSQ_CONTROL_1_REG_RESERVED1                      0x00000200
-#define A3XX_HLSQ_CONTROL_1_REG_ZWCOORD                                0x02000000
+#define A3XX_HLSQ_CONTROL_1_REG_FRAGCOORDXYREGID__MASK         0x00ff0000
+#define A3XX_HLSQ_CONTROL_1_REG_FRAGCOORDXYREGID__SHIFT                16
+static inline uint32_t A3XX_HLSQ_CONTROL_1_REG_FRAGCOORDXYREGID(uint32_t val)
+{
+       return ((val) << A3XX_HLSQ_CONTROL_1_REG_FRAGCOORDXYREGID__SHIFT) & A3XX_HLSQ_CONTROL_1_REG_FRAGCOORDXYREGID__MASK;
+}
+#define A3XX_HLSQ_CONTROL_1_REG_FRAGCOORDZWREGID__MASK         0xff000000
+#define A3XX_HLSQ_CONTROL_1_REG_FRAGCOORDZWREGID__SHIFT                24
+static inline uint32_t A3XX_HLSQ_CONTROL_1_REG_FRAGCOORDZWREGID(uint32_t val)
+{
+       return ((val) << A3XX_HLSQ_CONTROL_1_REG_FRAGCOORDZWREGID__SHIFT) & A3XX_HLSQ_CONTROL_1_REG_FRAGCOORDZWREGID__MASK;
+}
 
 #define REG_A3XX_HLSQ_CONTROL_2_REG                            0x00002202
+#define A3XX_HLSQ_CONTROL_2_REG_FACENESSREGID__MASK            0x000003fc
+#define A3XX_HLSQ_CONTROL_2_REG_FACENESSREGID__SHIFT           2
+static inline uint32_t A3XX_HLSQ_CONTROL_2_REG_FACENESSREGID(uint32_t val)
+{
+       return ((val) << A3XX_HLSQ_CONTROL_2_REG_FACENESSREGID__SHIFT) & A3XX_HLSQ_CONTROL_2_REG_FACENESSREGID__MASK;
+}
+#define A3XX_HLSQ_CONTROL_2_REG_COVVALUEREGID__MASK            0x03fc0000
+#define A3XX_HLSQ_CONTROL_2_REG_COVVALUEREGID__SHIFT           18
+static inline uint32_t A3XX_HLSQ_CONTROL_2_REG_COVVALUEREGID(uint32_t val)
+{
+       return ((val) << A3XX_HLSQ_CONTROL_2_REG_COVVALUEREGID__SHIFT) & A3XX_HLSQ_CONTROL_2_REG_COVVALUEREGID__MASK;
+}
 #define A3XX_HLSQ_CONTROL_2_REG_PRIMALLOCTHRESHOLD__MASK       0xfc000000
 #define A3XX_HLSQ_CONTROL_2_REG_PRIMALLOCTHRESHOLD__SHIFT      26
 static inline uint32_t A3XX_HLSQ_CONTROL_2_REG_PRIMALLOCTHRESHOLD(uint32_t val)
@@ -1397,13 +1771,13 @@ static inline uint32_t A3XX_HLSQ_CONTROL_3_REG_REGID(uint32_t val)
 }
 
 #define REG_A3XX_HLSQ_VS_CONTROL_REG                           0x00002204
-#define A3XX_HLSQ_VS_CONTROL_REG_CONSTLENGTH__MASK             0x00000fff
+#define A3XX_HLSQ_VS_CONTROL_REG_CONSTLENGTH__MASK             0x000003ff
 #define A3XX_HLSQ_VS_CONTROL_REG_CONSTLENGTH__SHIFT            0
 static inline uint32_t A3XX_HLSQ_VS_CONTROL_REG_CONSTLENGTH(uint32_t val)
 {
        return ((val) << A3XX_HLSQ_VS_CONTROL_REG_CONSTLENGTH__SHIFT) & A3XX_HLSQ_VS_CONTROL_REG_CONSTLENGTH__MASK;
 }
-#define A3XX_HLSQ_VS_CONTROL_REG_CONSTSTARTOFFSET__MASK                0x00fff000
+#define A3XX_HLSQ_VS_CONTROL_REG_CONSTSTARTOFFSET__MASK                0x001ff000
 #define A3XX_HLSQ_VS_CONTROL_REG_CONSTSTARTOFFSET__SHIFT       12
 static inline uint32_t A3XX_HLSQ_VS_CONTROL_REG_CONSTSTARTOFFSET(uint32_t val)
 {
@@ -1417,13 +1791,13 @@ static inline uint32_t A3XX_HLSQ_VS_CONTROL_REG_INSTRLENGTH(uint32_t val)
 }
 
 #define REG_A3XX_HLSQ_FS_CONTROL_REG                           0x00002205
-#define A3XX_HLSQ_FS_CONTROL_REG_CONSTLENGTH__MASK             0x00000fff
+#define A3XX_HLSQ_FS_CONTROL_REG_CONSTLENGTH__MASK             0x000003ff
 #define A3XX_HLSQ_FS_CONTROL_REG_CONSTLENGTH__SHIFT            0
 static inline uint32_t A3XX_HLSQ_FS_CONTROL_REG_CONSTLENGTH(uint32_t val)
 {
        return ((val) << A3XX_HLSQ_FS_CONTROL_REG_CONSTLENGTH__SHIFT) & A3XX_HLSQ_FS_CONTROL_REG_CONSTLENGTH__MASK;
 }
-#define A3XX_HLSQ_FS_CONTROL_REG_CONSTSTARTOFFSET__MASK                0x00fff000
+#define A3XX_HLSQ_FS_CONTROL_REG_CONSTSTARTOFFSET__MASK                0x001ff000
 #define A3XX_HLSQ_FS_CONTROL_REG_CONSTSTARTOFFSET__SHIFT       12
 static inline uint32_t A3XX_HLSQ_FS_CONTROL_REG_CONSTSTARTOFFSET(uint32_t val)
 {
@@ -1437,13 +1811,13 @@ static inline uint32_t A3XX_HLSQ_FS_CONTROL_REG_INSTRLENGTH(uint32_t val)
 }
 
 #define REG_A3XX_HLSQ_CONST_VSPRESV_RANGE_REG                  0x00002206
-#define A3XX_HLSQ_CONST_VSPRESV_RANGE_REG_STARTENTRY__MASK     0x0000ffff
+#define A3XX_HLSQ_CONST_VSPRESV_RANGE_REG_STARTENTRY__MASK     0x000001ff
 #define A3XX_HLSQ_CONST_VSPRESV_RANGE_REG_STARTENTRY__SHIFT    0
 static inline uint32_t A3XX_HLSQ_CONST_VSPRESV_RANGE_REG_STARTENTRY(uint32_t val)
 {
        return ((val) << A3XX_HLSQ_CONST_VSPRESV_RANGE_REG_STARTENTRY__SHIFT) & A3XX_HLSQ_CONST_VSPRESV_RANGE_REG_STARTENTRY__MASK;
 }
-#define A3XX_HLSQ_CONST_VSPRESV_RANGE_REG_ENDENTRY__MASK       0xffff0000
+#define A3XX_HLSQ_CONST_VSPRESV_RANGE_REG_ENDENTRY__MASK       0x01ff0000
 #define A3XX_HLSQ_CONST_VSPRESV_RANGE_REG_ENDENTRY__SHIFT      16
 static inline uint32_t A3XX_HLSQ_CONST_VSPRESV_RANGE_REG_ENDENTRY(uint32_t val)
 {
@@ -1451,13 +1825,13 @@ static inline uint32_t A3XX_HLSQ_CONST_VSPRESV_RANGE_REG_ENDENTRY(uint32_t val)
 }
 
 #define REG_A3XX_HLSQ_CONST_FSPRESV_RANGE_REG                  0x00002207
-#define A3XX_HLSQ_CONST_FSPRESV_RANGE_REG_STARTENTRY__MASK     0x0000ffff
+#define A3XX_HLSQ_CONST_FSPRESV_RANGE_REG_STARTENTRY__MASK     0x000001ff
 #define A3XX_HLSQ_CONST_FSPRESV_RANGE_REG_STARTENTRY__SHIFT    0
 static inline uint32_t A3XX_HLSQ_CONST_FSPRESV_RANGE_REG_STARTENTRY(uint32_t val)
 {
        return ((val) << A3XX_HLSQ_CONST_FSPRESV_RANGE_REG_STARTENTRY__SHIFT) & A3XX_HLSQ_CONST_FSPRESV_RANGE_REG_STARTENTRY__MASK;
 }
-#define A3XX_HLSQ_CONST_FSPRESV_RANGE_REG_ENDENTRY__MASK       0xffff0000
+#define A3XX_HLSQ_CONST_FSPRESV_RANGE_REG_ENDENTRY__MASK       0x01ff0000
 #define A3XX_HLSQ_CONST_FSPRESV_RANGE_REG_ENDENTRY__SHIFT      16
 static inline uint32_t A3XX_HLSQ_CONST_FSPRESV_RANGE_REG_ENDENTRY(uint32_t val)
 {
@@ -1539,12 +1913,24 @@ static inline uint32_t A3XX_VFD_CONTROL_0_STRMFETCHINSTRCNT(uint32_t val)
 }
 
 #define REG_A3XX_VFD_CONTROL_1                                 0x00002241
-#define A3XX_VFD_CONTROL_1_MAXSTORAGE__MASK                    0x0000ffff
+#define A3XX_VFD_CONTROL_1_MAXSTORAGE__MASK                    0x0000000f
 #define A3XX_VFD_CONTROL_1_MAXSTORAGE__SHIFT                   0
 static inline uint32_t A3XX_VFD_CONTROL_1_MAXSTORAGE(uint32_t val)
 {
        return ((val) << A3XX_VFD_CONTROL_1_MAXSTORAGE__SHIFT) & A3XX_VFD_CONTROL_1_MAXSTORAGE__MASK;
 }
+#define A3XX_VFD_CONTROL_1_MAXTHRESHOLD__MASK                  0x000000f0
+#define A3XX_VFD_CONTROL_1_MAXTHRESHOLD__SHIFT                 4
+static inline uint32_t A3XX_VFD_CONTROL_1_MAXTHRESHOLD(uint32_t val)
+{
+       return ((val) << A3XX_VFD_CONTROL_1_MAXTHRESHOLD__SHIFT) & A3XX_VFD_CONTROL_1_MAXTHRESHOLD__MASK;
+}
+#define A3XX_VFD_CONTROL_1_MINTHRESHOLD__MASK                  0x00000f00
+#define A3XX_VFD_CONTROL_1_MINTHRESHOLD__SHIFT                 8
+static inline uint32_t A3XX_VFD_CONTROL_1_MINTHRESHOLD(uint32_t val)
+{
+       return ((val) << A3XX_VFD_CONTROL_1_MINTHRESHOLD__SHIFT) & A3XX_VFD_CONTROL_1_MINTHRESHOLD__MASK;
+}
 #define A3XX_VFD_CONTROL_1_REGID4VTX__MASK                     0x00ff0000
 #define A3XX_VFD_CONTROL_1_REGID4VTX__SHIFT                    16
 static inline uint32_t A3XX_VFD_CONTROL_1_REGID4VTX(uint32_t val)
@@ -1577,12 +1963,13 @@ static inline uint32_t A3XX_VFD_FETCH_INSTR_0_FETCHSIZE(uint32_t val)
 {
        return ((val) << A3XX_VFD_FETCH_INSTR_0_FETCHSIZE__SHIFT) & A3XX_VFD_FETCH_INSTR_0_FETCHSIZE__MASK;
 }
-#define A3XX_VFD_FETCH_INSTR_0_BUFSTRIDE__MASK                 0x0001ff80
+#define A3XX_VFD_FETCH_INSTR_0_BUFSTRIDE__MASK                 0x0000ff80
 #define A3XX_VFD_FETCH_INSTR_0_BUFSTRIDE__SHIFT                        7
 static inline uint32_t A3XX_VFD_FETCH_INSTR_0_BUFSTRIDE(uint32_t val)
 {
        return ((val) << A3XX_VFD_FETCH_INSTR_0_BUFSTRIDE__SHIFT) & A3XX_VFD_FETCH_INSTR_0_BUFSTRIDE__MASK;
 }
+#define A3XX_VFD_FETCH_INSTR_0_INSTANCED                       0x00010000
 #define A3XX_VFD_FETCH_INSTR_0_SWITCHNEXT                      0x00020000
 #define A3XX_VFD_FETCH_INSTR_0_INDEXCODE__MASK                 0x00fc0000
 #define A3XX_VFD_FETCH_INSTR_0_INDEXCODE__SHIFT                        18
@@ -1789,6 +2176,102 @@ static inline uint32_t A3XX_VPC_VARYING_INTERP_MODE_CF(enum a3xx_intp_mode val)
 static inline uint32_t REG_A3XX_VPC_VARYING_PS_REPL(uint32_t i0) { return 0x00002286 + 0x1*i0; }
 
 static inline uint32_t REG_A3XX_VPC_VARYING_PS_REPL_MODE(uint32_t i0) { return 0x00002286 + 0x1*i0; }
+#define A3XX_VPC_VARYING_PS_REPL_MODE_C0__MASK                 0x00000003
+#define A3XX_VPC_VARYING_PS_REPL_MODE_C0__SHIFT                        0
+static inline uint32_t A3XX_VPC_VARYING_PS_REPL_MODE_C0(enum a3xx_repl_mode val)
+{
+       return ((val) << A3XX_VPC_VARYING_PS_REPL_MODE_C0__SHIFT) & A3XX_VPC_VARYING_PS_REPL_MODE_C0__MASK;
+}
+#define A3XX_VPC_VARYING_PS_REPL_MODE_C1__MASK                 0x0000000c
+#define A3XX_VPC_VARYING_PS_REPL_MODE_C1__SHIFT                        2
+static inline uint32_t A3XX_VPC_VARYING_PS_REPL_MODE_C1(enum a3xx_repl_mode val)
+{
+       return ((val) << A3XX_VPC_VARYING_PS_REPL_MODE_C1__SHIFT) & A3XX_VPC_VARYING_PS_REPL_MODE_C1__MASK;
+}
+#define A3XX_VPC_VARYING_PS_REPL_MODE_C2__MASK                 0x00000030
+#define A3XX_VPC_VARYING_PS_REPL_MODE_C2__SHIFT                        4
+static inline uint32_t A3XX_VPC_VARYING_PS_REPL_MODE_C2(enum a3xx_repl_mode val)
+{
+       return ((val) << A3XX_VPC_VARYING_PS_REPL_MODE_C2__SHIFT) & A3XX_VPC_VARYING_PS_REPL_MODE_C2__MASK;
+}
+#define A3XX_VPC_VARYING_PS_REPL_MODE_C3__MASK                 0x000000c0
+#define A3XX_VPC_VARYING_PS_REPL_MODE_C3__SHIFT                        6
+static inline uint32_t A3XX_VPC_VARYING_PS_REPL_MODE_C3(enum a3xx_repl_mode val)
+{
+       return ((val) << A3XX_VPC_VARYING_PS_REPL_MODE_C3__SHIFT) & A3XX_VPC_VARYING_PS_REPL_MODE_C3__MASK;
+}
+#define A3XX_VPC_VARYING_PS_REPL_MODE_C4__MASK                 0x00000300
+#define A3XX_VPC_VARYING_PS_REPL_MODE_C4__SHIFT                        8
+static inline uint32_t A3XX_VPC_VARYING_PS_REPL_MODE_C4(enum a3xx_repl_mode val)
+{
+       return ((val) << A3XX_VPC_VARYING_PS_REPL_MODE_C4__SHIFT) & A3XX_VPC_VARYING_PS_REPL_MODE_C4__MASK;
+}
+#define A3XX_VPC_VARYING_PS_REPL_MODE_C5__MASK                 0x00000c00
+#define A3XX_VPC_VARYING_PS_REPL_MODE_C5__SHIFT                        10
+static inline uint32_t A3XX_VPC_VARYING_PS_REPL_MODE_C5(enum a3xx_repl_mode val)
+{
+       return ((val) << A3XX_VPC_VARYING_PS_REPL_MODE_C5__SHIFT) & A3XX_VPC_VARYING_PS_REPL_MODE_C5__MASK;
+}
+#define A3XX_VPC_VARYING_PS_REPL_MODE_C6__MASK                 0x00003000
+#define A3XX_VPC_VARYING_PS_REPL_MODE_C6__SHIFT                        12
+static inline uint32_t A3XX_VPC_VARYING_PS_REPL_MODE_C6(enum a3xx_repl_mode val)
+{
+       return ((val) << A3XX_VPC_VARYING_PS_REPL_MODE_C6__SHIFT) & A3XX_VPC_VARYING_PS_REPL_MODE_C6__MASK;
+}
+#define A3XX_VPC_VARYING_PS_REPL_MODE_C7__MASK                 0x0000c000
+#define A3XX_VPC_VARYING_PS_REPL_MODE_C7__SHIFT                        14
+static inline uint32_t A3XX_VPC_VARYING_PS_REPL_MODE_C7(enum a3xx_repl_mode val)
+{
+       return ((val) << A3XX_VPC_VARYING_PS_REPL_MODE_C7__SHIFT) & A3XX_VPC_VARYING_PS_REPL_MODE_C7__MASK;
+}
+#define A3XX_VPC_VARYING_PS_REPL_MODE_C8__MASK                 0x00030000
+#define A3XX_VPC_VARYING_PS_REPL_MODE_C8__SHIFT                        16
+static inline uint32_t A3XX_VPC_VARYING_PS_REPL_MODE_C8(enum a3xx_repl_mode val)
+{
+       return ((val) << A3XX_VPC_VARYING_PS_REPL_MODE_C8__SHIFT) & A3XX_VPC_VARYING_PS_REPL_MODE_C8__MASK;
+}
+#define A3XX_VPC_VARYING_PS_REPL_MODE_C9__MASK                 0x000c0000
+#define A3XX_VPC_VARYING_PS_REPL_MODE_C9__SHIFT                        18
+static inline uint32_t A3XX_VPC_VARYING_PS_REPL_MODE_C9(enum a3xx_repl_mode val)
+{
+       return ((val) << A3XX_VPC_VARYING_PS_REPL_MODE_C9__SHIFT) & A3XX_VPC_VARYING_PS_REPL_MODE_C9__MASK;
+}
+#define A3XX_VPC_VARYING_PS_REPL_MODE_CA__MASK                 0x00300000
+#define A3XX_VPC_VARYING_PS_REPL_MODE_CA__SHIFT                        20
+static inline uint32_t A3XX_VPC_VARYING_PS_REPL_MODE_CA(enum a3xx_repl_mode val)
+{
+       return ((val) << A3XX_VPC_VARYING_PS_REPL_MODE_CA__SHIFT) & A3XX_VPC_VARYING_PS_REPL_MODE_CA__MASK;
+}
+#define A3XX_VPC_VARYING_PS_REPL_MODE_CB__MASK                 0x00c00000
+#define A3XX_VPC_VARYING_PS_REPL_MODE_CB__SHIFT                        22
+static inline uint32_t A3XX_VPC_VARYING_PS_REPL_MODE_CB(enum a3xx_repl_mode val)
+{
+       return ((val) << A3XX_VPC_VARYING_PS_REPL_MODE_CB__SHIFT) & A3XX_VPC_VARYING_PS_REPL_MODE_CB__MASK;
+}
+#define A3XX_VPC_VARYING_PS_REPL_MODE_CC__MASK                 0x03000000
+#define A3XX_VPC_VARYING_PS_REPL_MODE_CC__SHIFT                        24
+static inline uint32_t A3XX_VPC_VARYING_PS_REPL_MODE_CC(enum a3xx_repl_mode val)
+{
+       return ((val) << A3XX_VPC_VARYING_PS_REPL_MODE_CC__SHIFT) & A3XX_VPC_VARYING_PS_REPL_MODE_CC__MASK;
+}
+#define A3XX_VPC_VARYING_PS_REPL_MODE_CD__MASK                 0x0c000000
+#define A3XX_VPC_VARYING_PS_REPL_MODE_CD__SHIFT                        26
+static inline uint32_t A3XX_VPC_VARYING_PS_REPL_MODE_CD(enum a3xx_repl_mode val)
+{
+       return ((val) << A3XX_VPC_VARYING_PS_REPL_MODE_CD__SHIFT) & A3XX_VPC_VARYING_PS_REPL_MODE_CD__MASK;
+}
+#define A3XX_VPC_VARYING_PS_REPL_MODE_CE__MASK                 0x30000000
+#define A3XX_VPC_VARYING_PS_REPL_MODE_CE__SHIFT                        28
+static inline uint32_t A3XX_VPC_VARYING_PS_REPL_MODE_CE(enum a3xx_repl_mode val)
+{
+       return ((val) << A3XX_VPC_VARYING_PS_REPL_MODE_CE__SHIFT) & A3XX_VPC_VARYING_PS_REPL_MODE_CE__MASK;
+}
+#define A3XX_VPC_VARYING_PS_REPL_MODE_CF__MASK                 0xc0000000
+#define A3XX_VPC_VARYING_PS_REPL_MODE_CF__SHIFT                        30
+static inline uint32_t A3XX_VPC_VARYING_PS_REPL_MODE_CF(enum a3xx_repl_mode val)
+{
+       return ((val) << A3XX_VPC_VARYING_PS_REPL_MODE_CF__SHIFT) & A3XX_VPC_VARYING_PS_REPL_MODE_CF__MASK;
+}
 
 #define REG_A3XX_VPC_VARY_CYLWRAP_ENABLE_0                     0x0000228a
 
@@ -1830,24 +2313,19 @@ static inline uint32_t A3XX_SP_VS_CTRL_REG0_INSTRBUFFERMODE(enum a3xx_instrbuffe
        return ((val) << A3XX_SP_VS_CTRL_REG0_INSTRBUFFERMODE__SHIFT) & A3XX_SP_VS_CTRL_REG0_INSTRBUFFERMODE__MASK;
 }
 #define A3XX_SP_VS_CTRL_REG0_CACHEINVALID                      0x00000004
+#define A3XX_SP_VS_CTRL_REG0_ALUSCHMODE                                0x00000008
 #define A3XX_SP_VS_CTRL_REG0_HALFREGFOOTPRINT__MASK            0x000003f0
 #define A3XX_SP_VS_CTRL_REG0_HALFREGFOOTPRINT__SHIFT           4
 static inline uint32_t A3XX_SP_VS_CTRL_REG0_HALFREGFOOTPRINT(uint32_t val)
 {
        return ((val) << A3XX_SP_VS_CTRL_REG0_HALFREGFOOTPRINT__SHIFT) & A3XX_SP_VS_CTRL_REG0_HALFREGFOOTPRINT__MASK;
 }
-#define A3XX_SP_VS_CTRL_REG0_FULLREGFOOTPRINT__MASK            0x0003fc00
+#define A3XX_SP_VS_CTRL_REG0_FULLREGFOOTPRINT__MASK            0x0000fc00
 #define A3XX_SP_VS_CTRL_REG0_FULLREGFOOTPRINT__SHIFT           10
 static inline uint32_t A3XX_SP_VS_CTRL_REG0_FULLREGFOOTPRINT(uint32_t val)
 {
        return ((val) << A3XX_SP_VS_CTRL_REG0_FULLREGFOOTPRINT__SHIFT) & A3XX_SP_VS_CTRL_REG0_FULLREGFOOTPRINT__MASK;
 }
-#define A3XX_SP_VS_CTRL_REG0_INOUTREGOVERLAP__MASK             0x000c0000
-#define A3XX_SP_VS_CTRL_REG0_INOUTREGOVERLAP__SHIFT            18
-static inline uint32_t A3XX_SP_VS_CTRL_REG0_INOUTREGOVERLAP(uint32_t val)
-{
-       return ((val) << A3XX_SP_VS_CTRL_REG0_INOUTREGOVERLAP__SHIFT) & A3XX_SP_VS_CTRL_REG0_INOUTREGOVERLAP__MASK;
-}
 #define A3XX_SP_VS_CTRL_REG0_THREADSIZE__MASK                  0x00100000
 #define A3XX_SP_VS_CTRL_REG0_THREADSIZE__SHIFT                 20
 static inline uint32_t A3XX_SP_VS_CTRL_REG0_THREADSIZE(enum a3xx_threadsize val)
@@ -1855,8 +2333,6 @@ static inline uint32_t A3XX_SP_VS_CTRL_REG0_THREADSIZE(enum a3xx_threadsize val)
        return ((val) << A3XX_SP_VS_CTRL_REG0_THREADSIZE__SHIFT) & A3XX_SP_VS_CTRL_REG0_THREADSIZE__MASK;
 }
 #define A3XX_SP_VS_CTRL_REG0_SUPERTHREADMODE                   0x00200000
-#define A3XX_SP_VS_CTRL_REG0_PIXLODENABLE                      0x00400000
-#define A3XX_SP_VS_CTRL_REG0_COMPUTEMODE                       0x00800000
 #define A3XX_SP_VS_CTRL_REG0_LENGTH__MASK                      0xff000000
 #define A3XX_SP_VS_CTRL_REG0_LENGTH__SHIFT                     24
 static inline uint32_t A3XX_SP_VS_CTRL_REG0_LENGTH(uint32_t val)
@@ -1897,7 +2373,8 @@ static inline uint32_t A3XX_SP_VS_PARAM_REG_PSIZEREGID(uint32_t val)
 {
        return ((val) << A3XX_SP_VS_PARAM_REG_PSIZEREGID__SHIFT) & A3XX_SP_VS_PARAM_REG_PSIZEREGID__MASK;
 }
-#define A3XX_SP_VS_PARAM_REG_TOTALVSOUTVAR__MASK               0xfff00000
+#define A3XX_SP_VS_PARAM_REG_POS2DMODE                         0x00010000
+#define A3XX_SP_VS_PARAM_REG_TOTALVSOUTVAR__MASK               0x01f00000
 #define A3XX_SP_VS_PARAM_REG_TOTALVSOUTVAR__SHIFT              20
 static inline uint32_t A3XX_SP_VS_PARAM_REG_TOTALVSOUTVAR(uint32_t val)
 {
@@ -1907,24 +2384,26 @@ static inline uint32_t A3XX_SP_VS_PARAM_REG_TOTALVSOUTVAR(uint32_t val)
 static inline uint32_t REG_A3XX_SP_VS_OUT(uint32_t i0) { return 0x000022c7 + 0x1*i0; }
 
 static inline uint32_t REG_A3XX_SP_VS_OUT_REG(uint32_t i0) { return 0x000022c7 + 0x1*i0; }
-#define A3XX_SP_VS_OUT_REG_A_REGID__MASK                       0x000001ff
+#define A3XX_SP_VS_OUT_REG_A_REGID__MASK                       0x000000ff
 #define A3XX_SP_VS_OUT_REG_A_REGID__SHIFT                      0
 static inline uint32_t A3XX_SP_VS_OUT_REG_A_REGID(uint32_t val)
 {
        return ((val) << A3XX_SP_VS_OUT_REG_A_REGID__SHIFT) & A3XX_SP_VS_OUT_REG_A_REGID__MASK;
 }
+#define A3XX_SP_VS_OUT_REG_A_HALF                              0x00000100
 #define A3XX_SP_VS_OUT_REG_A_COMPMASK__MASK                    0x00001e00
 #define A3XX_SP_VS_OUT_REG_A_COMPMASK__SHIFT                   9
 static inline uint32_t A3XX_SP_VS_OUT_REG_A_COMPMASK(uint32_t val)
 {
        return ((val) << A3XX_SP_VS_OUT_REG_A_COMPMASK__SHIFT) & A3XX_SP_VS_OUT_REG_A_COMPMASK__MASK;
 }
-#define A3XX_SP_VS_OUT_REG_B_REGID__MASK                       0x01ff0000
+#define A3XX_SP_VS_OUT_REG_B_REGID__MASK                       0x00ff0000
 #define A3XX_SP_VS_OUT_REG_B_REGID__SHIFT                      16
 static inline uint32_t A3XX_SP_VS_OUT_REG_B_REGID(uint32_t val)
 {
        return ((val) << A3XX_SP_VS_OUT_REG_B_REGID__SHIFT) & A3XX_SP_VS_OUT_REG_B_REGID__MASK;
 }
+#define A3XX_SP_VS_OUT_REG_B_HALF                              0x01000000
 #define A3XX_SP_VS_OUT_REG_B_COMPMASK__MASK                    0x1e000000
 #define A3XX_SP_VS_OUT_REG_B_COMPMASK__SHIFT                   25
 static inline uint32_t A3XX_SP_VS_OUT_REG_B_COMPMASK(uint32_t val)
@@ -1935,25 +2414,25 @@ static inline uint32_t A3XX_SP_VS_OUT_REG_B_COMPMASK(uint32_t val)
 static inline uint32_t REG_A3XX_SP_VS_VPC_DST(uint32_t i0) { return 0x000022d0 + 0x1*i0; }
 
 static inline uint32_t REG_A3XX_SP_VS_VPC_DST_REG(uint32_t i0) { return 0x000022d0 + 0x1*i0; }
-#define A3XX_SP_VS_VPC_DST_REG_OUTLOC0__MASK                   0x000000ff
+#define A3XX_SP_VS_VPC_DST_REG_OUTLOC0__MASK                   0x0000007f
 #define A3XX_SP_VS_VPC_DST_REG_OUTLOC0__SHIFT                  0
 static inline uint32_t A3XX_SP_VS_VPC_DST_REG_OUTLOC0(uint32_t val)
 {
        return ((val) << A3XX_SP_VS_VPC_DST_REG_OUTLOC0__SHIFT) & A3XX_SP_VS_VPC_DST_REG_OUTLOC0__MASK;
 }
-#define A3XX_SP_VS_VPC_DST_REG_OUTLOC1__MASK                   0x0000ff00
+#define A3XX_SP_VS_VPC_DST_REG_OUTLOC1__MASK                   0x00007f00
 #define A3XX_SP_VS_VPC_DST_REG_OUTLOC1__SHIFT                  8
 static inline uint32_t A3XX_SP_VS_VPC_DST_REG_OUTLOC1(uint32_t val)
 {
        return ((val) << A3XX_SP_VS_VPC_DST_REG_OUTLOC1__SHIFT) & A3XX_SP_VS_VPC_DST_REG_OUTLOC1__MASK;
 }
-#define A3XX_SP_VS_VPC_DST_REG_OUTLOC2__MASK                   0x00ff0000
+#define A3XX_SP_VS_VPC_DST_REG_OUTLOC2__MASK                   0x007f0000
 #define A3XX_SP_VS_VPC_DST_REG_OUTLOC2__SHIFT                  16
 static inline uint32_t A3XX_SP_VS_VPC_DST_REG_OUTLOC2(uint32_t val)
 {
        return ((val) << A3XX_SP_VS_VPC_DST_REG_OUTLOC2__SHIFT) & A3XX_SP_VS_VPC_DST_REG_OUTLOC2__MASK;
 }
-#define A3XX_SP_VS_VPC_DST_REG_OUTLOC3__MASK                   0xff000000
+#define A3XX_SP_VS_VPC_DST_REG_OUTLOC3__MASK                   0x7f000000
 #define A3XX_SP_VS_VPC_DST_REG_OUTLOC3__SHIFT                  24
 static inline uint32_t A3XX_SP_VS_VPC_DST_REG_OUTLOC3(uint32_t val)
 {
@@ -1961,6 +2440,12 @@ static inline uint32_t A3XX_SP_VS_VPC_DST_REG_OUTLOC3(uint32_t val)
 }
 
 #define REG_A3XX_SP_VS_OBJ_OFFSET_REG                          0x000022d4
+#define A3XX_SP_VS_OBJ_OFFSET_REG_FIRSTEXECINSTROFFSET__MASK   0x0000ffff
+#define A3XX_SP_VS_OBJ_OFFSET_REG_FIRSTEXECINSTROFFSET__SHIFT  0
+static inline uint32_t A3XX_SP_VS_OBJ_OFFSET_REG_FIRSTEXECINSTROFFSET(uint32_t val)
+{
+       return ((val) << A3XX_SP_VS_OBJ_OFFSET_REG_FIRSTEXECINSTROFFSET__SHIFT) & A3XX_SP_VS_OBJ_OFFSET_REG_FIRSTEXECINSTROFFSET__MASK;
+}
 #define A3XX_SP_VS_OBJ_OFFSET_REG_CONSTOBJECTOFFSET__MASK      0x01ff0000
 #define A3XX_SP_VS_OBJ_OFFSET_REG_CONSTOBJECTOFFSET__SHIFT     16
 static inline uint32_t A3XX_SP_VS_OBJ_OFFSET_REG_CONSTOBJECTOFFSET(uint32_t val)
@@ -1977,8 +2462,39 @@ static inline uint32_t A3XX_SP_VS_OBJ_OFFSET_REG_SHADEROBJOFFSET(uint32_t val)
 #define REG_A3XX_SP_VS_OBJ_START_REG                           0x000022d5
 
 #define REG_A3XX_SP_VS_PVT_MEM_PARAM_REG                       0x000022d6
+#define A3XX_SP_VS_PVT_MEM_PARAM_REG_MEMSIZEPERITEM__MASK      0x000000ff
+#define A3XX_SP_VS_PVT_MEM_PARAM_REG_MEMSIZEPERITEM__SHIFT     0
+static inline uint32_t A3XX_SP_VS_PVT_MEM_PARAM_REG_MEMSIZEPERITEM(uint32_t val)
+{
+       return ((val) << A3XX_SP_VS_PVT_MEM_PARAM_REG_MEMSIZEPERITEM__SHIFT) & A3XX_SP_VS_PVT_MEM_PARAM_REG_MEMSIZEPERITEM__MASK;
+}
+#define A3XX_SP_VS_PVT_MEM_PARAM_REG_HWSTACKOFFSET__MASK       0x00ffff00
+#define A3XX_SP_VS_PVT_MEM_PARAM_REG_HWSTACKOFFSET__SHIFT      8
+static inline uint32_t A3XX_SP_VS_PVT_MEM_PARAM_REG_HWSTACKOFFSET(uint32_t val)
+{
+       return ((val) << A3XX_SP_VS_PVT_MEM_PARAM_REG_HWSTACKOFFSET__SHIFT) & A3XX_SP_VS_PVT_MEM_PARAM_REG_HWSTACKOFFSET__MASK;
+}
+#define A3XX_SP_VS_PVT_MEM_PARAM_REG_HWSTACKSIZEPERTHREAD__MASK        0xff000000
+#define A3XX_SP_VS_PVT_MEM_PARAM_REG_HWSTACKSIZEPERTHREAD__SHIFT       24
+static inline uint32_t A3XX_SP_VS_PVT_MEM_PARAM_REG_HWSTACKSIZEPERTHREAD(uint32_t val)
+{
+       return ((val) << A3XX_SP_VS_PVT_MEM_PARAM_REG_HWSTACKSIZEPERTHREAD__SHIFT) & A3XX_SP_VS_PVT_MEM_PARAM_REG_HWSTACKSIZEPERTHREAD__MASK;
+}
 
 #define REG_A3XX_SP_VS_PVT_MEM_ADDR_REG                                0x000022d7
+#define A3XX_SP_VS_PVT_MEM_ADDR_REG_BURSTLEN__MASK             0x0000001f
+#define A3XX_SP_VS_PVT_MEM_ADDR_REG_BURSTLEN__SHIFT            0
+static inline uint32_t A3XX_SP_VS_PVT_MEM_ADDR_REG_BURSTLEN(uint32_t val)
+{
+       return ((val) << A3XX_SP_VS_PVT_MEM_ADDR_REG_BURSTLEN__SHIFT) & A3XX_SP_VS_PVT_MEM_ADDR_REG_BURSTLEN__MASK;
+}
+#define A3XX_SP_VS_PVT_MEM_ADDR_REG_SHADERSTARTADDRESS__MASK   0xffffffe0
+#define A3XX_SP_VS_PVT_MEM_ADDR_REG_SHADERSTARTADDRESS__SHIFT  5
+static inline uint32_t A3XX_SP_VS_PVT_MEM_ADDR_REG_SHADERSTARTADDRESS(uint32_t val)
+{
+       assert(!(val & 0x1f));
+       return ((val >> 5) << A3XX_SP_VS_PVT_MEM_ADDR_REG_SHADERSTARTADDRESS__SHIFT) & A3XX_SP_VS_PVT_MEM_ADDR_REG_SHADERSTARTADDRESS__MASK;
+}
 
 #define REG_A3XX_SP_VS_PVT_MEM_SIZE_REG                                0x000022d8
 
@@ -2004,24 +2520,22 @@ static inline uint32_t A3XX_SP_FS_CTRL_REG0_INSTRBUFFERMODE(enum a3xx_instrbuffe
        return ((val) << A3XX_SP_FS_CTRL_REG0_INSTRBUFFERMODE__SHIFT) & A3XX_SP_FS_CTRL_REG0_INSTRBUFFERMODE__MASK;
 }
 #define A3XX_SP_FS_CTRL_REG0_CACHEINVALID                      0x00000004
+#define A3XX_SP_FS_CTRL_REG0_ALUSCHMODE                                0x00000008
 #define A3XX_SP_FS_CTRL_REG0_HALFREGFOOTPRINT__MASK            0x000003f0
 #define A3XX_SP_FS_CTRL_REG0_HALFREGFOOTPRINT__SHIFT           4
 static inline uint32_t A3XX_SP_FS_CTRL_REG0_HALFREGFOOTPRINT(uint32_t val)
 {
        return ((val) << A3XX_SP_FS_CTRL_REG0_HALFREGFOOTPRINT__SHIFT) & A3XX_SP_FS_CTRL_REG0_HALFREGFOOTPRINT__MASK;
 }
-#define A3XX_SP_FS_CTRL_REG0_FULLREGFOOTPRINT__MASK            0x0003fc00
+#define A3XX_SP_FS_CTRL_REG0_FULLREGFOOTPRINT__MASK            0x0000fc00
 #define A3XX_SP_FS_CTRL_REG0_FULLREGFOOTPRINT__SHIFT           10
 static inline uint32_t A3XX_SP_FS_CTRL_REG0_FULLREGFOOTPRINT(uint32_t val)
 {
        return ((val) << A3XX_SP_FS_CTRL_REG0_FULLREGFOOTPRINT__SHIFT) & A3XX_SP_FS_CTRL_REG0_FULLREGFOOTPRINT__MASK;
 }
-#define A3XX_SP_FS_CTRL_REG0_INOUTREGOVERLAP__MASK             0x000c0000
-#define A3XX_SP_FS_CTRL_REG0_INOUTREGOVERLAP__SHIFT            18
-static inline uint32_t A3XX_SP_FS_CTRL_REG0_INOUTREGOVERLAP(uint32_t val)
-{
-       return ((val) << A3XX_SP_FS_CTRL_REG0_INOUTREGOVERLAP__SHIFT) & A3XX_SP_FS_CTRL_REG0_INOUTREGOVERLAP__MASK;
-}
+#define A3XX_SP_FS_CTRL_REG0_FSBYPASSENABLE                    0x00020000
+#define A3XX_SP_FS_CTRL_REG0_INOUTREGOVERLAP                   0x00040000
+#define A3XX_SP_FS_CTRL_REG0_OUTORDERED                                0x00080000
 #define A3XX_SP_FS_CTRL_REG0_THREADSIZE__MASK                  0x00100000
 #define A3XX_SP_FS_CTRL_REG0_THREADSIZE__SHIFT                 20
 static inline uint32_t A3XX_SP_FS_CTRL_REG0_THREADSIZE(enum a3xx_threadsize val)
@@ -2057,7 +2571,7 @@ static inline uint32_t A3XX_SP_FS_CTRL_REG1_INITIALOUTSTANDING(uint32_t val)
 {
        return ((val) << A3XX_SP_FS_CTRL_REG1_INITIALOUTSTANDING__SHIFT) & A3XX_SP_FS_CTRL_REG1_INITIALOUTSTANDING__MASK;
 }
-#define A3XX_SP_FS_CTRL_REG1_HALFPRECVAROFFSET__MASK           0x3f000000
+#define A3XX_SP_FS_CTRL_REG1_HALFPRECVAROFFSET__MASK           0x7f000000
 #define A3XX_SP_FS_CTRL_REG1_HALFPRECVAROFFSET__SHIFT          24
 static inline uint32_t A3XX_SP_FS_CTRL_REG1_HALFPRECVAROFFSET(uint32_t val)
 {
@@ -2065,6 +2579,12 @@ static inline uint32_t A3XX_SP_FS_CTRL_REG1_HALFPRECVAROFFSET(uint32_t val)
 }
 
 #define REG_A3XX_SP_FS_OBJ_OFFSET_REG                          0x000022e2
+#define A3XX_SP_FS_OBJ_OFFSET_REG_FIRSTEXECINSTROFFSET__MASK   0x0000ffff
+#define A3XX_SP_FS_OBJ_OFFSET_REG_FIRSTEXECINSTROFFSET__SHIFT  0
+static inline uint32_t A3XX_SP_FS_OBJ_OFFSET_REG_FIRSTEXECINSTROFFSET(uint32_t val)
+{
+       return ((val) << A3XX_SP_FS_OBJ_OFFSET_REG_FIRSTEXECINSTROFFSET__SHIFT) & A3XX_SP_FS_OBJ_OFFSET_REG_FIRSTEXECINSTROFFSET__MASK;
+}
 #define A3XX_SP_FS_OBJ_OFFSET_REG_CONSTOBJECTOFFSET__MASK      0x01ff0000
 #define A3XX_SP_FS_OBJ_OFFSET_REG_CONSTOBJECTOFFSET__SHIFT     16
 static inline uint32_t A3XX_SP_FS_OBJ_OFFSET_REG_CONSTOBJECTOFFSET(uint32_t val)
@@ -2081,8 +2601,39 @@ static inline uint32_t A3XX_SP_FS_OBJ_OFFSET_REG_SHADEROBJOFFSET(uint32_t val)
 #define REG_A3XX_SP_FS_OBJ_START_REG                           0x000022e3
 
 #define REG_A3XX_SP_FS_PVT_MEM_PARAM_REG                       0x000022e4
+#define A3XX_SP_FS_PVT_MEM_PARAM_REG_MEMSIZEPERITEM__MASK      0x000000ff
+#define A3XX_SP_FS_PVT_MEM_PARAM_REG_MEMSIZEPERITEM__SHIFT     0
+static inline uint32_t A3XX_SP_FS_PVT_MEM_PARAM_REG_MEMSIZEPERITEM(uint32_t val)
+{
+       return ((val) << A3XX_SP_FS_PVT_MEM_PARAM_REG_MEMSIZEPERITEM__SHIFT) & A3XX_SP_FS_PVT_MEM_PARAM_REG_MEMSIZEPERITEM__MASK;
+}
+#define A3XX_SP_FS_PVT_MEM_PARAM_REG_HWSTACKOFFSET__MASK       0x00ffff00
+#define A3XX_SP_FS_PVT_MEM_PARAM_REG_HWSTACKOFFSET__SHIFT      8
+static inline uint32_t A3XX_SP_FS_PVT_MEM_PARAM_REG_HWSTACKOFFSET(uint32_t val)
+{
+       return ((val) << A3XX_SP_FS_PVT_MEM_PARAM_REG_HWSTACKOFFSET__SHIFT) & A3XX_SP_FS_PVT_MEM_PARAM_REG_HWSTACKOFFSET__MASK;
+}
+#define A3XX_SP_FS_PVT_MEM_PARAM_REG_HWSTACKSIZEPERTHREAD__MASK        0xff000000
+#define A3XX_SP_FS_PVT_MEM_PARAM_REG_HWSTACKSIZEPERTHREAD__SHIFT       24
+static inline uint32_t A3XX_SP_FS_PVT_MEM_PARAM_REG_HWSTACKSIZEPERTHREAD(uint32_t val)
+{
+       return ((val) << A3XX_SP_FS_PVT_MEM_PARAM_REG_HWSTACKSIZEPERTHREAD__SHIFT) & A3XX_SP_FS_PVT_MEM_PARAM_REG_HWSTACKSIZEPERTHREAD__MASK;
+}
 
 #define REG_A3XX_SP_FS_PVT_MEM_ADDR_REG                                0x000022e5
+#define A3XX_SP_FS_PVT_MEM_ADDR_REG_BURSTLEN__MASK             0x0000001f
+#define A3XX_SP_FS_PVT_MEM_ADDR_REG_BURSTLEN__SHIFT            0
+static inline uint32_t A3XX_SP_FS_PVT_MEM_ADDR_REG_BURSTLEN(uint32_t val)
+{
+       return ((val) << A3XX_SP_FS_PVT_MEM_ADDR_REG_BURSTLEN__SHIFT) & A3XX_SP_FS_PVT_MEM_ADDR_REG_BURSTLEN__MASK;
+}
+#define A3XX_SP_FS_PVT_MEM_ADDR_REG_SHADERSTARTADDRESS__MASK   0xffffffe0
+#define A3XX_SP_FS_PVT_MEM_ADDR_REG_SHADERSTARTADDRESS__SHIFT  5
+static inline uint32_t A3XX_SP_FS_PVT_MEM_ADDR_REG_SHADERSTARTADDRESS(uint32_t val)
+{
+       assert(!(val & 0x1f));
+       return ((val >> 5) << A3XX_SP_FS_PVT_MEM_ADDR_REG_SHADERSTARTADDRESS__SHIFT) & A3XX_SP_FS_PVT_MEM_ADDR_REG_SHADERSTARTADDRESS__MASK;
+}
 
 #define REG_A3XX_SP_FS_PVT_MEM_SIZE_REG                                0x000022e6
 
@@ -2091,6 +2642,12 @@ static inline uint32_t A3XX_SP_FS_OBJ_OFFSET_REG_SHADEROBJOFFSET(uint32_t val)
 #define REG_A3XX_SP_FS_FLAT_SHAD_MODE_REG_1                    0x000022e9
 
 #define REG_A3XX_SP_FS_OUTPUT_REG                              0x000022ec
+#define A3XX_SP_FS_OUTPUT_REG_MRT__MASK                                0x00000003
+#define A3XX_SP_FS_OUTPUT_REG_MRT__SHIFT                       0
+static inline uint32_t A3XX_SP_FS_OUTPUT_REG_MRT(uint32_t val)
+{
+       return ((val) << A3XX_SP_FS_OUTPUT_REG_MRT__SHIFT) & A3XX_SP_FS_OUTPUT_REG_MRT__MASK;
+}
 #define A3XX_SP_FS_OUTPUT_REG_DEPTH_ENABLE                     0x00000080
 #define A3XX_SP_FS_OUTPUT_REG_DEPTH_REGID__MASK                        0x0000ff00
 #define A3XX_SP_FS_OUTPUT_REG_DEPTH_REGID__SHIFT               8
@@ -2255,12 +2812,14 @@ static inline uint32_t A3XX_TPL1_TP_FS_TEX_OFFSET_BASETABLEPTR(uint32_t val)
 #define A3XX_VSC_BIN_SIZE_WIDTH__SHIFT                         0
 static inline uint32_t A3XX_VSC_BIN_SIZE_WIDTH(uint32_t val)
 {
+       assert(!(val & 0x1f));
        return ((val >> 5) << A3XX_VSC_BIN_SIZE_WIDTH__SHIFT) & A3XX_VSC_BIN_SIZE_WIDTH__MASK;
 }
 #define A3XX_VSC_BIN_SIZE_HEIGHT__MASK                         0x000003e0
 #define A3XX_VSC_BIN_SIZE_HEIGHT__SHIFT                                5
 static inline uint32_t A3XX_VSC_BIN_SIZE_HEIGHT(uint32_t val)
 {
+       assert(!(val & 0x1f));
        return ((val >> 5) << A3XX_VSC_BIN_SIZE_HEIGHT__SHIFT) & A3XX_VSC_BIN_SIZE_HEIGHT__MASK;
 }
 
@@ -2492,6 +3051,7 @@ static inline uint32_t A3XX_VGT_DRAW_INITIATOR_NUM_INSTANCES(uint32_t val)
 #define REG_A3XX_VGT_IMMED_DATA                                        0x000021fd
 
 #define REG_A3XX_TEX_SAMP_0                                    0x00000000
+#define A3XX_TEX_SAMP_0_CLAMPENABLE                            0x00000001
 #define A3XX_TEX_SAMP_0_MIPFILTER_LINEAR                       0x00000002
 #define A3XX_TEX_SAMP_0_XY_MAG__MASK                           0x0000000c
 #define A3XX_TEX_SAMP_0_XY_MAG__SHIFT                          2
@@ -2523,12 +3083,19 @@ static inline uint32_t A3XX_TEX_SAMP_0_WRAP_R(enum a3xx_tex_clamp val)
 {
        return ((val) << A3XX_TEX_SAMP_0_WRAP_R__SHIFT) & A3XX_TEX_SAMP_0_WRAP_R__MASK;
 }
+#define A3XX_TEX_SAMP_0_ANISO__MASK                            0x00038000
+#define A3XX_TEX_SAMP_0_ANISO__SHIFT                           15
+static inline uint32_t A3XX_TEX_SAMP_0_ANISO(enum a3xx_tex_aniso val)
+{
+       return ((val) << A3XX_TEX_SAMP_0_ANISO__SHIFT) & A3XX_TEX_SAMP_0_ANISO__MASK;
+}
 #define A3XX_TEX_SAMP_0_COMPARE_FUNC__MASK                     0x00700000
 #define A3XX_TEX_SAMP_0_COMPARE_FUNC__SHIFT                    20
 static inline uint32_t A3XX_TEX_SAMP_0_COMPARE_FUNC(enum adreno_compare_func val)
 {
        return ((val) << A3XX_TEX_SAMP_0_COMPARE_FUNC__SHIFT) & A3XX_TEX_SAMP_0_COMPARE_FUNC__MASK;
 }
+#define A3XX_TEX_SAMP_0_CUBEMAPSEAMLESSFILTOFF                 0x01000000
 #define A3XX_TEX_SAMP_0_UNNORM_COORDS                          0x80000000
 
 #define REG_A3XX_TEX_SAMP_1                                    0x00000001
@@ -2584,6 +3151,12 @@ static inline uint32_t A3XX_TEX_CONST_0_MIPLVLS(uint32_t val)
 {
        return ((val) << A3XX_TEX_CONST_0_MIPLVLS__SHIFT) & A3XX_TEX_CONST_0_MIPLVLS__MASK;
 }
+#define A3XX_TEX_CONST_0_MSAATEX__MASK                         0x00300000
+#define A3XX_TEX_CONST_0_MSAATEX__SHIFT                                20
+static inline uint32_t A3XX_TEX_CONST_0_MSAATEX(enum a3xx_tex_msaa val)
+{
+       return ((val) << A3XX_TEX_CONST_0_MSAATEX__SHIFT) & A3XX_TEX_CONST_0_MSAATEX__MASK;
+}
 #define A3XX_TEX_CONST_0_FMT__MASK                             0x1fc00000
 #define A3XX_TEX_CONST_0_FMT__SHIFT                            22
 static inline uint32_t A3XX_TEX_CONST_0_FMT(enum a3xx_tex_fmt val)
@@ -2619,7 +3192,7 @@ static inline uint32_t A3XX_TEX_CONST_1_FETCHSIZE(enum a3xx_tex_fetchsize val)
 }
 
 #define REG_A3XX_TEX_CONST_2                                   0x00000002
-#define A3XX_TEX_CONST_2_INDX__MASK                            0x000000ff
+#define A3XX_TEX_CONST_2_INDX__MASK                            0x000001ff
 #define A3XX_TEX_CONST_2_INDX__SHIFT                           0
 static inline uint32_t A3XX_TEX_CONST_2_INDX(uint32_t val)
 {
@@ -2639,10 +3212,11 @@ static inline uint32_t A3XX_TEX_CONST_2_SWAP(enum a3xx_color_swap val)
 }
 
 #define REG_A3XX_TEX_CONST_3                                   0x00000003
-#define A3XX_TEX_CONST_3_LAYERSZ1__MASK                                0x0000000f
+#define A3XX_TEX_CONST_3_LAYERSZ1__MASK                                0x0001ffff
 #define A3XX_TEX_CONST_3_LAYERSZ1__SHIFT                       0
 static inline uint32_t A3XX_TEX_CONST_3_LAYERSZ1(uint32_t val)
 {
+       assert(!(val & 0xfff));
        return ((val >> 12) << A3XX_TEX_CONST_3_LAYERSZ1__SHIFT) & A3XX_TEX_CONST_3_LAYERSZ1__MASK;
 }
 #define A3XX_TEX_CONST_3_DEPTH__MASK                           0x0ffe0000
@@ -2655,6 +3229,7 @@ static inline uint32_t A3XX_TEX_CONST_3_DEPTH(uint32_t val)
 #define A3XX_TEX_CONST_3_LAYERSZ2__SHIFT                       28
 static inline uint32_t A3XX_TEX_CONST_3_LAYERSZ2(uint32_t val)
 {
+       assert(!(val & 0xfff));
        return ((val >> 12) << A3XX_TEX_CONST_3_LAYERSZ2__SHIFT) & A3XX_TEX_CONST_3_LAYERSZ2__MASK;
 }