Messages in this thread | | | Date | Fri, 10 Jul 2020 12:02:01 -0600 | From | Jordan Crouse <> | Subject | Re: [PATCH 1/2] drm/msm: sync generated headers |
| |
On Tue, Jul 07, 2020 at 01:34:59PM -0700, Rob Clark wrote: > From: Rob Clark <robdclark@chromium.org> > > We haven't sync'd for a while.. pull in updates to get definitions for > some fields in pkt7 payloads.
Acked-by: Jordan Crouse <jcrouse@codeaurora.org>
> Signed-off-by: Rob Clark <robdclark@chromium.org> > --- > drivers/gpu/drm/msm/adreno/a2xx.xml.h | 1102 +++++++- > drivers/gpu/drm/msm/adreno/a3xx.xml.h | 85 +- > drivers/gpu/drm/msm/adreno/a4xx.xml.h | 87 +- > drivers/gpu/drm/msm/adreno/a5xx.xml.h | 156 +- > drivers/gpu/drm/msm/adreno/a6xx.xml.h | 2305 ++++++++++++++--- > drivers/gpu/drm/msm/adreno/a6xx_gmu.xml.h | 28 +- > .../gpu/drm/msm/adreno/adreno_common.xml.h | 29 +- > drivers/gpu/drm/msm/adreno/adreno_pm4.xml.h | 932 ++++++- > drivers/gpu/drm/msm/disp/mdp4/mdp4.xml.h | 2 +- > drivers/gpu/drm/msm/disp/mdp5/mdp5.xml.h | 2 +- > drivers/gpu/drm/msm/disp/mdp_common.xml.h | 2 +- > drivers/gpu/drm/msm/dsi/dsi.xml.h | 208 +- > drivers/gpu/drm/msm/dsi/dsi_host.c | 14 +- > drivers/gpu/drm/msm/dsi/mmss_cc.xml.h | 2 +- > drivers/gpu/drm/msm/dsi/sfpb.xml.h | 2 +- > drivers/gpu/drm/msm/edp/edp.xml.h | 2 +- > drivers/gpu/drm/msm/hdmi/hdmi.xml.h | 2 +- > drivers/gpu/drm/msm/hdmi/qfprom.xml.h | 2 +- > 18 files changed, 4318 insertions(+), 644 deletions(-) > > diff --git a/drivers/gpu/drm/msm/adreno/a2xx.xml.h b/drivers/gpu/drm/msm/adreno/a2xx.xml.h > index 14eb52f3e605..7e49e50c6d9e 100644 > --- a/drivers/gpu/drm/msm/adreno/a2xx.xml.h > +++ b/drivers/gpu/drm/msm/adreno/a2xx.xml.h > @@ -8,19 +8,21 @@ This file was generated by the rules-ng-ng headergen tool in this git repository > 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 ( 42463 bytes, from 2018-11-19 13:44:03) > -- /home/robclark/src/envytools/rnndb/adreno/adreno_common.xml ( 14201 bytes, from 2018-12-02 17:29:54) > -- /home/robclark/src/envytools/rnndb/adreno/adreno_pm4.xml ( 43052 bytes, from 2018-12-02 17:29:54) > -- /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-12-02 17:29:54) > -- /home/robclark/src/envytools/rnndb/adreno/a6xx.xml ( 140790 bytes, from 2018-12-02 17:29:54) > -- /home/robclark/src/envytools/rnndb/adreno/a6xx_gmu.xml ( 10431 bytes, from 2018-09-14 13:03:07) > -- /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: > +- /home/robclark/src/envytools/rnndb/adreno.xml ( 594 bytes, from 2020-06-21 22:29:16) > +- /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 ( 89649 bytes, from 2020-07-04 19:55:04) > +- /home/robclark/src/envytools/rnndb/adreno/adreno_common.xml ( 14239 bytes, from 2020-07-04 19:55:04) > +- /home/robclark/src/envytools/rnndb/adreno/adreno_pm4.xml ( 63258 bytes, from 2020-07-07 19:26:50) > +- /home/robclark/src/envytools/rnndb/adreno/a3xx.xml ( 84246 bytes, from 2020-07-04 19:55:04) > +- /home/robclark/src/envytools/rnndb/adreno/a4xx.xml ( 112247 bytes, from 2020-07-04 19:55:04) > +- /home/robclark/src/envytools/rnndb/adreno/a5xx.xml ( 148499 bytes, from 2020-07-04 20:00:49) > +- /home/robclark/src/envytools/rnndb/adreno/a6xx.xml ( 174474 bytes, from 2020-07-04 20:56:59) > +- /home/robclark/src/envytools/rnndb/adreno/a6xx_gmu.xml ( 10768 bytes, from 2020-05-20 19:42:03) > +- /home/robclark/src/envytools/rnndb/adreno/ocmem.xml ( 1773 bytes, from 2018-07-03 19:37:13) > +- /home/robclark/src/envytools/rnndb/adreno/adreno_control_regs.xml ( 4559 bytes, from 2020-06-21 22:29:16) > +- /home/robclark/src/envytools/rnndb/adreno/adreno_pipe_regs.xml ( 2872 bytes, from 2020-06-21 22:29:43) > + > +Copyright (C) 2013-2020 by the following authors: > - Rob Clark <robdclark@gmail.com> (robclark) > - Ilia Mirkin <imirkin@alum.mit.edu> (imirkin) > > @@ -210,6 +212,854 @@ enum a2xx_rb_blend_opcode { > BLEND2_DST_PLUS_SRC_BIAS = 5, > }; > > +enum a2xx_su_perfcnt_select { > + PERF_PAPC_PASX_REQ = 0, > + PERF_PAPC_PASX_FIRST_VECTOR = 2, > + PERF_PAPC_PASX_SECOND_VECTOR = 3, > + PERF_PAPC_PASX_FIRST_DEAD = 4, > + PERF_PAPC_PASX_SECOND_DEAD = 5, > + PERF_PAPC_PASX_VTX_KILL_DISCARD = 6, > + PERF_PAPC_PASX_VTX_NAN_DISCARD = 7, > + PERF_PAPC_PA_INPUT_PRIM = 8, > + PERF_PAPC_PA_INPUT_NULL_PRIM = 9, > + PERF_PAPC_PA_INPUT_EVENT_FLAG = 10, > + PERF_PAPC_PA_INPUT_FIRST_PRIM_SLOT = 11, > + PERF_PAPC_PA_INPUT_END_OF_PACKET = 12, > + PERF_PAPC_CLPR_CULL_PRIM = 13, > + PERF_PAPC_CLPR_VV_CULL_PRIM = 15, > + PERF_PAPC_CLPR_VTX_KILL_CULL_PRIM = 17, > + PERF_PAPC_CLPR_VTX_NAN_CULL_PRIM = 18, > + PERF_PAPC_CLPR_CULL_TO_NULL_PRIM = 19, > + PERF_PAPC_CLPR_VV_CLIP_PRIM = 21, > + PERF_PAPC_CLPR_POINT_CLIP_CANDIDATE = 23, > + PERF_PAPC_CLPR_CLIP_PLANE_CNT_1 = 24, > + PERF_PAPC_CLPR_CLIP_PLANE_CNT_2 = 25, > + PERF_PAPC_CLPR_CLIP_PLANE_CNT_3 = 26, > + PERF_PAPC_CLPR_CLIP_PLANE_CNT_4 = 27, > + PERF_PAPC_CLPR_CLIP_PLANE_CNT_5 = 28, > + PERF_PAPC_CLPR_CLIP_PLANE_CNT_6 = 29, > + PERF_PAPC_CLPR_CLIP_PLANE_NEAR = 30, > + PERF_PAPC_CLPR_CLIP_PLANE_FAR = 31, > + PERF_PAPC_CLPR_CLIP_PLANE_LEFT = 32, > + PERF_PAPC_CLPR_CLIP_PLANE_RIGHT = 33, > + PERF_PAPC_CLPR_CLIP_PLANE_TOP = 34, > + PERF_PAPC_CLPR_CLIP_PLANE_BOTTOM = 35, > + PERF_PAPC_CLSM_NULL_PRIM = 36, > + PERF_PAPC_CLSM_TOTALLY_VISIBLE_PRIM = 37, > + PERF_PAPC_CLSM_CLIP_PRIM = 38, > + PERF_PAPC_CLSM_CULL_TO_NULL_PRIM = 39, > + PERF_PAPC_CLSM_OUT_PRIM_CNT_1 = 40, > + PERF_PAPC_CLSM_OUT_PRIM_CNT_2 = 41, > + PERF_PAPC_CLSM_OUT_PRIM_CNT_3 = 42, > + PERF_PAPC_CLSM_OUT_PRIM_CNT_4 = 43, > + PERF_PAPC_CLSM_OUT_PRIM_CNT_5 = 44, > + PERF_PAPC_CLSM_OUT_PRIM_CNT_6_7 = 45, > + PERF_PAPC_CLSM_NON_TRIVIAL_CULL = 46, > + PERF_PAPC_SU_INPUT_PRIM = 47, > + PERF_PAPC_SU_INPUT_CLIP_PRIM = 48, > + PERF_PAPC_SU_INPUT_NULL_PRIM = 49, > + PERF_PAPC_SU_ZERO_AREA_CULL_PRIM = 50, > + PERF_PAPC_SU_BACK_FACE_CULL_PRIM = 51, > + PERF_PAPC_SU_FRONT_FACE_CULL_PRIM = 52, > + PERF_PAPC_SU_POLYMODE_FACE_CULL = 53, > + PERF_PAPC_SU_POLYMODE_BACK_CULL = 54, > + PERF_PAPC_SU_POLYMODE_FRONT_CULL = 55, > + PERF_PAPC_SU_POLYMODE_INVALID_FILL = 56, > + PERF_PAPC_SU_OUTPUT_PRIM = 57, > + PERF_PAPC_SU_OUTPUT_CLIP_PRIM = 58, > + PERF_PAPC_SU_OUTPUT_NULL_PRIM = 59, > + PERF_PAPC_SU_OUTPUT_EVENT_FLAG = 60, > + PERF_PAPC_SU_OUTPUT_FIRST_PRIM_SLOT = 61, > + PERF_PAPC_SU_OUTPUT_END_OF_PACKET = 62, > + PERF_PAPC_SU_OUTPUT_POLYMODE_FACE = 63, > + PERF_PAPC_SU_OUTPUT_POLYMODE_BACK = 64, > + PERF_PAPC_SU_OUTPUT_POLYMODE_FRONT = 65, > + PERF_PAPC_SU_OUT_CLIP_POLYMODE_FACE = 66, > + PERF_PAPC_SU_OUT_CLIP_POLYMODE_BACK = 67, > + PERF_PAPC_SU_OUT_CLIP_POLYMODE_FRONT = 68, > + PERF_PAPC_PASX_REQ_IDLE = 69, > + PERF_PAPC_PASX_REQ_BUSY = 70, > + PERF_PAPC_PASX_REQ_STALLED = 71, > + PERF_PAPC_PASX_REC_IDLE = 72, > + PERF_PAPC_PASX_REC_BUSY = 73, > + PERF_PAPC_PASX_REC_STARVED_SX = 74, > + PERF_PAPC_PASX_REC_STALLED = 75, > + PERF_PAPC_PASX_REC_STALLED_POS_MEM = 76, > + PERF_PAPC_PASX_REC_STALLED_CCGSM_IN = 77, > + PERF_PAPC_CCGSM_IDLE = 78, > + PERF_PAPC_CCGSM_BUSY = 79, > + PERF_PAPC_CCGSM_STALLED = 80, > + PERF_PAPC_CLPRIM_IDLE = 81, > + PERF_PAPC_CLPRIM_BUSY = 82, > + PERF_PAPC_CLPRIM_STALLED = 83, > + PERF_PAPC_CLPRIM_STARVED_CCGSM = 84, > + PERF_PAPC_CLIPSM_IDLE = 85, > + PERF_PAPC_CLIPSM_BUSY = 86, > + PERF_PAPC_CLIPSM_WAIT_CLIP_VERT_ENGH = 87, > + PERF_PAPC_CLIPSM_WAIT_HIGH_PRI_SEQ = 88, > + PERF_PAPC_CLIPSM_WAIT_CLIPGA = 89, > + PERF_PAPC_CLIPSM_WAIT_AVAIL_VTE_CLIP = 90, > + PERF_PAPC_CLIPSM_WAIT_CLIP_OUTSM = 91, > + PERF_PAPC_CLIPGA_IDLE = 92, > + PERF_PAPC_CLIPGA_BUSY = 93, > + PERF_PAPC_CLIPGA_STARVED_VTE_CLIP = 94, > + PERF_PAPC_CLIPGA_STALLED = 95, > + PERF_PAPC_CLIP_IDLE = 96, > + PERF_PAPC_CLIP_BUSY = 97, > + PERF_PAPC_SU_IDLE = 98, > + PERF_PAPC_SU_BUSY = 99, > + PERF_PAPC_SU_STARVED_CLIP = 100, > + PERF_PAPC_SU_STALLED_SC = 101, > + PERF_PAPC_SU_FACENESS_CULL = 102, > +}; > + > +enum a2xx_sc_perfcnt_select { > + SC_SR_WINDOW_VALID = 0, > + SC_CW_WINDOW_VALID = 1, > + SC_QM_WINDOW_VALID = 2, > + SC_FW_WINDOW_VALID = 3, > + SC_EZ_WINDOW_VALID = 4, > + SC_IT_WINDOW_VALID = 5, > + SC_STARVED_BY_PA = 6, > + SC_STALLED_BY_RB_TILE = 7, > + SC_STALLED_BY_RB_SAMP = 8, > + SC_STARVED_BY_RB_EZ = 9, > + SC_STALLED_BY_SAMPLE_FF = 10, > + SC_STALLED_BY_SQ = 11, > + SC_STALLED_BY_SP = 12, > + SC_TOTAL_NO_PRIMS = 13, > + SC_NON_EMPTY_PRIMS = 14, > + SC_NO_TILES_PASSING_QM = 15, > + SC_NO_PIXELS_PRE_EZ = 16, > + SC_NO_PIXELS_POST_EZ = 17, > +}; > + > +enum a2xx_vgt_perfcount_select { > + VGT_SQ_EVENT_WINDOW_ACTIVE = 0, > + VGT_SQ_SEND = 1, > + VGT_SQ_STALLED = 2, > + VGT_SQ_STARVED_BUSY = 3, > + VGT_SQ_STARVED_IDLE = 4, > + VGT_SQ_STATIC = 5, > + VGT_PA_EVENT_WINDOW_ACTIVE = 6, > + VGT_PA_CLIP_V_SEND = 7, > + VGT_PA_CLIP_V_STALLED = 8, > + VGT_PA_CLIP_V_STARVED_BUSY = 9, > + VGT_PA_CLIP_V_STARVED_IDLE = 10, > + VGT_PA_CLIP_V_STATIC = 11, > + VGT_PA_CLIP_P_SEND = 12, > + VGT_PA_CLIP_P_STALLED = 13, > + VGT_PA_CLIP_P_STARVED_BUSY = 14, > + VGT_PA_CLIP_P_STARVED_IDLE = 15, > + VGT_PA_CLIP_P_STATIC = 16, > + VGT_PA_CLIP_S_SEND = 17, > + VGT_PA_CLIP_S_STALLED = 18, > + VGT_PA_CLIP_S_STARVED_BUSY = 19, > + VGT_PA_CLIP_S_STARVED_IDLE = 20, > + VGT_PA_CLIP_S_STATIC = 21, > + RBIU_FIFOS_EVENT_WINDOW_ACTIVE = 22, > + RBIU_IMMED_DATA_FIFO_STARVED = 23, > + RBIU_IMMED_DATA_FIFO_STALLED = 24, > + RBIU_DMA_REQUEST_FIFO_STARVED = 25, > + RBIU_DMA_REQUEST_FIFO_STALLED = 26, > + RBIU_DRAW_INITIATOR_FIFO_STARVED = 27, > + RBIU_DRAW_INITIATOR_FIFO_STALLED = 28, > + BIN_PRIM_NEAR_CULL = 29, > + BIN_PRIM_ZERO_CULL = 30, > + BIN_PRIM_FAR_CULL = 31, > + BIN_PRIM_BIN_CULL = 32, > + BIN_PRIM_FACE_CULL = 33, > + SPARE34 = 34, > + SPARE35 = 35, > + SPARE36 = 36, > + SPARE37 = 37, > + SPARE38 = 38, > + SPARE39 = 39, > + TE_SU_IN_VALID = 40, > + TE_SU_IN_READ = 41, > + TE_SU_IN_PRIM = 42, > + TE_SU_IN_EOP = 43, > + TE_SU_IN_NULL_PRIM = 44, > + TE_WK_IN_VALID = 45, > + TE_WK_IN_READ = 46, > + TE_OUT_PRIM_VALID = 47, > + TE_OUT_PRIM_READ = 48, > +}; > + > +enum a2xx_tcr_perfcount_select { > + DGMMPD_IPMUX0_STALL = 0, > + DGMMPD_IPMUX_ALL_STALL = 4, > + OPMUX0_L2_WRITES = 5, > +}; > + > +enum a2xx_tp_perfcount_select { > + POINT_QUADS = 0, > + BILIN_QUADS = 1, > + ANISO_QUADS = 2, > + MIP_QUADS = 3, > + VOL_QUADS = 4, > + MIP_VOL_QUADS = 5, > + MIP_ANISO_QUADS = 6, > + VOL_ANISO_QUADS = 7, > + ANISO_2_1_QUADS = 8, > + ANISO_4_1_QUADS = 9, > + ANISO_6_1_QUADS = 10, > + ANISO_8_1_QUADS = 11, > + ANISO_10_1_QUADS = 12, > + ANISO_12_1_QUADS = 13, > + ANISO_14_1_QUADS = 14, > + ANISO_16_1_QUADS = 15, > + MIP_VOL_ANISO_QUADS = 16, > + ALIGN_2_QUADS = 17, > + ALIGN_4_QUADS = 18, > + PIX_0_QUAD = 19, > + PIX_1_QUAD = 20, > + PIX_2_QUAD = 21, > + PIX_3_QUAD = 22, > + PIX_4_QUAD = 23, > + TP_MIPMAP_LOD0 = 24, > + TP_MIPMAP_LOD1 = 25, > + TP_MIPMAP_LOD2 = 26, > + TP_MIPMAP_LOD3 = 27, > + TP_MIPMAP_LOD4 = 28, > + TP_MIPMAP_LOD5 = 29, > + TP_MIPMAP_LOD6 = 30, > + TP_MIPMAP_LOD7 = 31, > + TP_MIPMAP_LOD8 = 32, > + TP_MIPMAP_LOD9 = 33, > + TP_MIPMAP_LOD10 = 34, > + TP_MIPMAP_LOD11 = 35, > + TP_MIPMAP_LOD12 = 36, > + TP_MIPMAP_LOD13 = 37, > + TP_MIPMAP_LOD14 = 38, > +}; > + > +enum a2xx_tcm_perfcount_select { > + QUAD0_RD_LAT_FIFO_EMPTY = 0, > + QUAD0_RD_LAT_FIFO_4TH_FULL = 3, > + QUAD0_RD_LAT_FIFO_HALF_FULL = 4, > + QUAD0_RD_LAT_FIFO_FULL = 5, > + QUAD0_RD_LAT_FIFO_LT_4TH_FULL = 6, > + READ_STARVED_QUAD0 = 28, > + READ_STARVED = 32, > + READ_STALLED_QUAD0 = 33, > + READ_STALLED = 37, > + VALID_READ_QUAD0 = 38, > + TC_TP_STARVED_QUAD0 = 42, > + TC_TP_STARVED = 46, > +}; > + > +enum a2xx_tcf_perfcount_select { > + VALID_CYCLES = 0, > + SINGLE_PHASES = 1, > + ANISO_PHASES = 2, > + MIP_PHASES = 3, > + VOL_PHASES = 4, > + MIP_VOL_PHASES = 5, > + MIP_ANISO_PHASES = 6, > + VOL_ANISO_PHASES = 7, > + ANISO_2_1_PHASES = 8, > + ANISO_4_1_PHASES = 9, > + ANISO_6_1_PHASES = 10, > + ANISO_8_1_PHASES = 11, > + ANISO_10_1_PHASES = 12, > + ANISO_12_1_PHASES = 13, > + ANISO_14_1_PHASES = 14, > + ANISO_16_1_PHASES = 15, > + MIP_VOL_ANISO_PHASES = 16, > + ALIGN_2_PHASES = 17, > + ALIGN_4_PHASES = 18, > + TPC_BUSY = 19, > + TPC_STALLED = 20, > + TPC_STARVED = 21, > + TPC_WORKING = 22, > + TPC_WALKER_BUSY = 23, > + TPC_WALKER_STALLED = 24, > + TPC_WALKER_WORKING = 25, > + TPC_ALIGNER_BUSY = 26, > + TPC_ALIGNER_STALLED = 27, > + TPC_ALIGNER_STALLED_BY_BLEND = 28, > + TPC_ALIGNER_STALLED_BY_CACHE = 29, > + TPC_ALIGNER_WORKING = 30, > + TPC_BLEND_BUSY = 31, > + TPC_BLEND_SYNC = 32, > + TPC_BLEND_STARVED = 33, > + TPC_BLEND_WORKING = 34, > + OPCODE_0x00 = 35, > + OPCODE_0x01 = 36, > + OPCODE_0x04 = 37, > + OPCODE_0x10 = 38, > + OPCODE_0x11 = 39, > + OPCODE_0x12 = 40, > + OPCODE_0x13 = 41, > + OPCODE_0x18 = 42, > + OPCODE_0x19 = 43, > + OPCODE_0x1A = 44, > + OPCODE_OTHER = 45, > + IN_FIFO_0_EMPTY = 56, > + IN_FIFO_0_LT_HALF_FULL = 57, > + IN_FIFO_0_HALF_FULL = 58, > + IN_FIFO_0_FULL = 59, > + IN_FIFO_TPC_EMPTY = 72, > + IN_FIFO_TPC_LT_HALF_FULL = 73, > + IN_FIFO_TPC_HALF_FULL = 74, > + IN_FIFO_TPC_FULL = 75, > + TPC_TC_XFC = 76, > + TPC_TC_STATE = 77, > + TC_STALL = 78, > + QUAD0_TAPS = 79, > + QUADS = 83, > + TCA_SYNC_STALL = 84, > + TAG_STALL = 85, > + TCB_SYNC_STALL = 88, > + TCA_VALID = 89, > + PROBES_VALID = 90, > + MISS_STALL = 91, > + FETCH_FIFO_STALL = 92, > + TCO_STALL = 93, > + ANY_STALL = 94, > + TAG_MISSES = 95, > + TAG_HITS = 96, > + SUB_TAG_MISSES = 97, > + SET0_INVALIDATES = 98, > + SET1_INVALIDATES = 99, > + SET2_INVALIDATES = 100, > + SET3_INVALIDATES = 101, > + SET0_TAG_MISSES = 102, > + SET1_TAG_MISSES = 103, > + SET2_TAG_MISSES = 104, > + SET3_TAG_MISSES = 105, > + SET0_TAG_HITS = 106, > + SET1_TAG_HITS = 107, > + SET2_TAG_HITS = 108, > + SET3_TAG_HITS = 109, > + SET0_SUB_TAG_MISSES = 110, > + SET1_SUB_TAG_MISSES = 111, > + SET2_SUB_TAG_MISSES = 112, > + SET3_SUB_TAG_MISSES = 113, > + SET0_EVICT1 = 114, > + SET0_EVICT2 = 115, > + SET0_EVICT3 = 116, > + SET0_EVICT4 = 117, > + SET0_EVICT5 = 118, > + SET0_EVICT6 = 119, > + SET0_EVICT7 = 120, > + SET0_EVICT8 = 121, > + SET1_EVICT1 = 130, > + SET1_EVICT2 = 131, > + SET1_EVICT3 = 132, > + SET1_EVICT4 = 133, > + SET1_EVICT5 = 134, > + SET1_EVICT6 = 135, > + SET1_EVICT7 = 136, > + SET1_EVICT8 = 137, > + SET2_EVICT1 = 146, > + SET2_EVICT2 = 147, > + SET2_EVICT3 = 148, > + SET2_EVICT4 = 149, > + SET2_EVICT5 = 150, > + SET2_EVICT6 = 151, > + SET2_EVICT7 = 152, > + SET2_EVICT8 = 153, > + SET3_EVICT1 = 162, > + SET3_EVICT2 = 163, > + SET3_EVICT3 = 164, > + SET3_EVICT4 = 165, > + SET3_EVICT5 = 166, > + SET3_EVICT6 = 167, > + SET3_EVICT7 = 168, > + SET3_EVICT8 = 169, > + FF_EMPTY = 178, > + FF_LT_HALF_FULL = 179, > + FF_HALF_FULL = 180, > + FF_FULL = 181, > + FF_XFC = 182, > + FF_STALLED = 183, > + FG_MASKS = 184, > + FG_LEFT_MASKS = 185, > + FG_LEFT_MASK_STALLED = 186, > + FG_LEFT_NOT_DONE_STALL = 187, > + FG_LEFT_FG_STALL = 188, > + FG_LEFT_SECTORS = 189, > + FG0_REQUESTS = 195, > + FG0_STALLED = 196, > + MEM_REQ512 = 199, > + MEM_REQ_SENT = 200, > + MEM_LOCAL_READ_REQ = 202, > + TC0_MH_STALLED = 203, > +}; > + > +enum a2xx_sq_perfcnt_select { > + SQ_PIXEL_VECTORS_SUB = 0, > + SQ_VERTEX_VECTORS_SUB = 1, > + SQ_ALU0_ACTIVE_VTX_SIMD0 = 2, > + SQ_ALU1_ACTIVE_VTX_SIMD0 = 3, > + SQ_ALU0_ACTIVE_PIX_SIMD0 = 4, > + SQ_ALU1_ACTIVE_PIX_SIMD0 = 5, > + SQ_ALU0_ACTIVE_VTX_SIMD1 = 6, > + SQ_ALU1_ACTIVE_VTX_SIMD1 = 7, > + SQ_ALU0_ACTIVE_PIX_SIMD1 = 8, > + SQ_ALU1_ACTIVE_PIX_SIMD1 = 9, > + SQ_EXPORT_CYCLES = 10, > + SQ_ALU_CST_WRITTEN = 11, > + SQ_TEX_CST_WRITTEN = 12, > + SQ_ALU_CST_STALL = 13, > + SQ_ALU_TEX_STALL = 14, > + SQ_INST_WRITTEN = 15, > + SQ_BOOLEAN_WRITTEN = 16, > + SQ_LOOPS_WRITTEN = 17, > + SQ_PIXEL_SWAP_IN = 18, > + SQ_PIXEL_SWAP_OUT = 19, > + SQ_VERTEX_SWAP_IN = 20, > + SQ_VERTEX_SWAP_OUT = 21, > + SQ_ALU_VTX_INST_ISSUED = 22, > + SQ_TEX_VTX_INST_ISSUED = 23, > + SQ_VC_VTX_INST_ISSUED = 24, > + SQ_CF_VTX_INST_ISSUED = 25, > + SQ_ALU_PIX_INST_ISSUED = 26, > + SQ_TEX_PIX_INST_ISSUED = 27, > + SQ_VC_PIX_INST_ISSUED = 28, > + SQ_CF_PIX_INST_ISSUED = 29, > + SQ_ALU0_FIFO_EMPTY_SIMD0 = 30, > + SQ_ALU1_FIFO_EMPTY_SIMD0 = 31, > + SQ_ALU0_FIFO_EMPTY_SIMD1 = 32, > + SQ_ALU1_FIFO_EMPTY_SIMD1 = 33, > + SQ_ALU_NOPS = 34, > + SQ_PRED_SKIP = 35, > + SQ_SYNC_ALU_STALL_SIMD0_VTX = 36, > + SQ_SYNC_ALU_STALL_SIMD1_VTX = 37, > + SQ_SYNC_TEX_STALL_VTX = 38, > + SQ_SYNC_VC_STALL_VTX = 39, > + SQ_CONSTANTS_USED_SIMD0 = 40, > + SQ_CONSTANTS_SENT_SP_SIMD0 = 41, > + SQ_GPR_STALL_VTX = 42, > + SQ_GPR_STALL_PIX = 43, > + SQ_VTX_RS_STALL = 44, > + SQ_PIX_RS_STALL = 45, > + SQ_SX_PC_FULL = 46, > + SQ_SX_EXP_BUFF_FULL = 47, > + SQ_SX_POS_BUFF_FULL = 48, > + SQ_INTERP_QUADS = 49, > + SQ_INTERP_ACTIVE = 50, > + SQ_IN_PIXEL_STALL = 51, > + SQ_IN_VTX_STALL = 52, > + SQ_VTX_CNT = 53, > + SQ_VTX_VECTOR2 = 54, > + SQ_VTX_VECTOR3 = 55, > + SQ_VTX_VECTOR4 = 56, > + SQ_PIXEL_VECTOR1 = 57, > + SQ_PIXEL_VECTOR23 = 58, > + SQ_PIXEL_VECTOR4 = 59, > + SQ_CONSTANTS_USED_SIMD1 = 60, > + SQ_CONSTANTS_SENT_SP_SIMD1 = 61, > + SQ_SX_MEM_EXP_FULL = 62, > + SQ_ALU0_ACTIVE_VTX_SIMD2 = 63, > + SQ_ALU1_ACTIVE_VTX_SIMD2 = 64, > + SQ_ALU0_ACTIVE_PIX_SIMD2 = 65, > + SQ_ALU1_ACTIVE_PIX_SIMD2 = 66, > + SQ_ALU0_ACTIVE_VTX_SIMD3 = 67, > + SQ_PERFCOUNT_VTX_QUAL_TP_DONE = 68, > + SQ_ALU0_ACTIVE_PIX_SIMD3 = 69, > + SQ_PERFCOUNT_PIX_QUAL_TP_DONE = 70, > + SQ_ALU0_FIFO_EMPTY_SIMD2 = 71, > + SQ_ALU1_FIFO_EMPTY_SIMD2 = 72, > + SQ_ALU0_FIFO_EMPTY_SIMD3 = 73, > + SQ_ALU1_FIFO_EMPTY_SIMD3 = 74, > + SQ_SYNC_ALU_STALL_SIMD2_VTX = 75, > + SQ_PERFCOUNT_VTX_POP_THREAD = 76, > + SQ_SYNC_ALU_STALL_SIMD0_PIX = 77, > + SQ_SYNC_ALU_STALL_SIMD1_PIX = 78, > + SQ_SYNC_ALU_STALL_SIMD2_PIX = 79, > + SQ_PERFCOUNT_PIX_POP_THREAD = 80, > + SQ_SYNC_TEX_STALL_PIX = 81, > + SQ_SYNC_VC_STALL_PIX = 82, > + SQ_CONSTANTS_USED_SIMD2 = 83, > + SQ_CONSTANTS_SENT_SP_SIMD2 = 84, > + SQ_PERFCOUNT_VTX_DEALLOC_ACK = 85, > + SQ_PERFCOUNT_PIX_DEALLOC_ACK = 86, > + SQ_ALU0_FIFO_FULL_SIMD0 = 87, > + SQ_ALU1_FIFO_FULL_SIMD0 = 88, > + SQ_ALU0_FIFO_FULL_SIMD1 = 89, > + SQ_ALU1_FIFO_FULL_SIMD1 = 90, > + SQ_ALU0_FIFO_FULL_SIMD2 = 91, > + SQ_ALU1_FIFO_FULL_SIMD2 = 92, > + SQ_ALU0_FIFO_FULL_SIMD3 = 93, > + SQ_ALU1_FIFO_FULL_SIMD3 = 94, > + VC_PERF_STATIC = 95, > + VC_PERF_STALLED = 96, > + VC_PERF_STARVED = 97, > + VC_PERF_SEND = 98, > + VC_PERF_ACTUAL_STARVED = 99, > + PIXEL_THREAD_0_ACTIVE = 100, > + VERTEX_THREAD_0_ACTIVE = 101, > + PIXEL_THREAD_0_NUMBER = 102, > + VERTEX_THREAD_0_NUMBER = 103, > + VERTEX_EVENT_NUMBER = 104, > + PIXEL_EVENT_NUMBER = 105, > + PTRBUFF_EF_PUSH = 106, > + PTRBUFF_EF_POP_EVENT = 107, > + PTRBUFF_EF_POP_NEW_VTX = 108, > + PTRBUFF_EF_POP_DEALLOC = 109, > + PTRBUFF_EF_POP_PVECTOR = 110, > + PTRBUFF_EF_POP_PVECTOR_X = 111, > + PTRBUFF_EF_POP_PVECTOR_VNZ = 112, > + PTRBUFF_PB_DEALLOC = 113, > + PTRBUFF_PI_STATE_PPB_POP = 114, > + PTRBUFF_PI_RTR = 115, > + PTRBUFF_PI_READ_EN = 116, > + PTRBUFF_PI_BUFF_SWAP = 117, > + PTRBUFF_SQ_FREE_BUFF = 118, > + PTRBUFF_SQ_DEC = 119, > + PTRBUFF_SC_VALID_CNTL_EVENT = 120, > + PTRBUFF_SC_VALID_IJ_XFER = 121, > + PTRBUFF_SC_NEW_VECTOR_1_Q = 122, > + PTRBUFF_QUAL_NEW_VECTOR = 123, > + PTRBUFF_QUAL_EVENT = 124, > + PTRBUFF_END_BUFFER = 125, > + PTRBUFF_FILL_QUAD = 126, > + VERTS_WRITTEN_SPI = 127, > + TP_FETCH_INSTR_EXEC = 128, > + TP_FETCH_INSTR_REQ = 129, > + TP_DATA_RETURN = 130, > + SPI_WRITE_CYCLES_SP = 131, > + SPI_WRITES_SP = 132, > + SP_ALU_INSTR_EXEC = 133, > + SP_CONST_ADDR_TO_SQ = 134, > + SP_PRED_KILLS_TO_SQ = 135, > + SP_EXPORT_CYCLES_TO_SX = 136, > + SP_EXPORTS_TO_SX = 137, > + SQ_CYCLES_ELAPSED = 138, > + SQ_TCFS_OPT_ALLOC_EXEC = 139, > + SQ_TCFS_NO_OPT_ALLOC = 140, > + SQ_ALU0_NO_OPT_ALLOC = 141, > + SQ_ALU1_NO_OPT_ALLOC = 142, > + SQ_TCFS_ARB_XFC_CNT = 143, > + SQ_ALU0_ARB_XFC_CNT = 144, > + SQ_ALU1_ARB_XFC_CNT = 145, > + SQ_TCFS_CFS_UPDATE_CNT = 146, > + SQ_ALU0_CFS_UPDATE_CNT = 147, > + SQ_ALU1_CFS_UPDATE_CNT = 148, > + SQ_VTX_PUSH_THREAD_CNT = 149, > + SQ_VTX_POP_THREAD_CNT = 150, > + SQ_PIX_PUSH_THREAD_CNT = 151, > + SQ_PIX_POP_THREAD_CNT = 152, > + SQ_PIX_TOTAL = 153, > + SQ_PIX_KILLED = 154, > +}; > + > +enum a2xx_sx_perfcnt_select { > + SX_EXPORT_VECTORS = 0, > + SX_DUMMY_QUADS = 1, > + SX_ALPHA_FAIL = 2, > + SX_RB_QUAD_BUSY = 3, > + SX_RB_COLOR_BUSY = 4, > + SX_RB_QUAD_STALL = 5, > + SX_RB_COLOR_STALL = 6, > +}; > + > +enum a2xx_rbbm_perfcount1_sel { > + RBBM1_COUNT = 0, > + RBBM1_NRT_BUSY = 1, > + RBBM1_RB_BUSY = 2, > + RBBM1_SQ_CNTX0_BUSY = 3, > + RBBM1_SQ_CNTX17_BUSY = 4, > + RBBM1_VGT_BUSY = 5, > + RBBM1_VGT_NODMA_BUSY = 6, > + RBBM1_PA_BUSY = 7, > + RBBM1_SC_CNTX_BUSY = 8, > + RBBM1_TPC_BUSY = 9, > + RBBM1_TC_BUSY = 10, > + RBBM1_SX_BUSY = 11, > + RBBM1_CP_COHER_BUSY = 12, > + RBBM1_CP_NRT_BUSY = 13, > + RBBM1_GFX_IDLE_STALL = 14, > + RBBM1_INTERRUPT = 15, > +}; > + > +enum a2xx_cp_perfcount_sel { > + ALWAYS_COUNT = 0, > + TRANS_FIFO_FULL = 1, > + TRANS_FIFO_AF = 2, > + RCIU_PFPTRANS_WAIT = 3, > + RCIU_NRTTRANS_WAIT = 6, > + CSF_NRT_READ_WAIT = 8, > + CSF_I1_FIFO_FULL = 9, > + CSF_I2_FIFO_FULL = 10, > + CSF_ST_FIFO_FULL = 11, > + CSF_RING_ROQ_FULL = 13, > + CSF_I1_ROQ_FULL = 14, > + CSF_I2_ROQ_FULL = 15, > + CSF_ST_ROQ_FULL = 16, > + MIU_TAG_MEM_FULL = 18, > + MIU_WRITECLEAN = 19, > + MIU_NRT_WRITE_STALLED = 22, > + MIU_NRT_READ_STALLED = 23, > + ME_WRITE_CONFIRM_FIFO_FULL = 24, > + ME_VS_DEALLOC_FIFO_FULL = 25, > + ME_PS_DEALLOC_FIFO_FULL = 26, > + ME_REGS_VS_EVENT_FIFO_FULL = 27, > + ME_REGS_PS_EVENT_FIFO_FULL = 28, > + ME_REGS_CF_EVENT_FIFO_FULL = 29, > + ME_MICRO_RB_STARVED = 30, > + ME_MICRO_I1_STARVED = 31, > + ME_MICRO_I2_STARVED = 32, > + ME_MICRO_ST_STARVED = 33, > + RCIU_RBBM_DWORD_SENT = 40, > + ME_BUSY_CLOCKS = 41, > + ME_WAIT_CONTEXT_AVAIL = 42, > + PFP_TYPE0_PACKET = 43, > + PFP_TYPE3_PACKET = 44, > + CSF_RB_WPTR_NEQ_RPTR = 45, > + CSF_I1_SIZE_NEQ_ZERO = 46, > + CSF_I2_SIZE_NEQ_ZERO = 47, > + CSF_RBI1I2_FETCHING = 48, > +}; > + > +enum a2xx_rb_perfcnt_select { > + RBPERF_CNTX_BUSY = 0, > + RBPERF_CNTX_BUSY_MAX = 1, > + RBPERF_SX_QUAD_STARVED = 2, > + RBPERF_SX_QUAD_STARVED_MAX = 3, > + RBPERF_GA_GC_CH0_SYS_REQ = 4, > + RBPERF_GA_GC_CH0_SYS_REQ_MAX = 5, > + RBPERF_GA_GC_CH1_SYS_REQ = 6, > + RBPERF_GA_GC_CH1_SYS_REQ_MAX = 7, > + RBPERF_MH_STARVED = 8, > + RBPERF_MH_STARVED_MAX = 9, > + RBPERF_AZ_BC_COLOR_BUSY = 10, > + RBPERF_AZ_BC_COLOR_BUSY_MAX = 11, > + RBPERF_AZ_BC_Z_BUSY = 12, > + RBPERF_AZ_BC_Z_BUSY_MAX = 13, > + RBPERF_RB_SC_TILE_RTR_N = 14, > + RBPERF_RB_SC_TILE_RTR_N_MAX = 15, > + RBPERF_RB_SC_SAMP_RTR_N = 16, > + RBPERF_RB_SC_SAMP_RTR_N_MAX = 17, > + RBPERF_RB_SX_QUAD_RTR_N = 18, > + RBPERF_RB_SX_QUAD_RTR_N_MAX = 19, > + RBPERF_RB_SX_COLOR_RTR_N = 20, > + RBPERF_RB_SX_COLOR_RTR_N_MAX = 21, > + RBPERF_RB_SC_SAMP_LZ_BUSY = 22, > + RBPERF_RB_SC_SAMP_LZ_BUSY_MAX = 23, > + RBPERF_ZXP_STALL = 24, > + RBPERF_ZXP_STALL_MAX = 25, > + RBPERF_EVENT_PENDING = 26, > + RBPERF_EVENT_PENDING_MAX = 27, > + RBPERF_RB_MH_VALID = 28, > + RBPERF_RB_MH_VALID_MAX = 29, > + RBPERF_SX_RB_QUAD_SEND = 30, > + RBPERF_SX_RB_COLOR_SEND = 31, > + RBPERF_SC_RB_TILE_SEND = 32, > + RBPERF_SC_RB_SAMPLE_SEND = 33, > + RBPERF_SX_RB_MEM_EXPORT = 34, > + RBPERF_SX_RB_QUAD_EVENT = 35, > + RBPERF_SC_RB_TILE_EVENT_FILTERED = 36, > + RBPERF_SC_RB_TILE_EVENT_ALL = 37, > + RBPERF_RB_SC_EZ_SEND = 38, > + RBPERF_RB_SX_INDEX_SEND = 39, > + RBPERF_GMEM_INTFO_RD = 40, > + RBPERF_GMEM_INTF1_RD = 41, > + RBPERF_GMEM_INTFO_WR = 42, > + RBPERF_GMEM_INTF1_WR = 43, > + RBPERF_RB_CP_CONTEXT_DONE = 44, > + RBPERF_RB_CP_CACHE_FLUSH = 45, > + RBPERF_ZPASS_DONE = 46, > + RBPERF_ZCMD_VALID = 47, > + RBPERF_CCMD_VALID = 48, > + RBPERF_ACCUM_GRANT = 49, > + RBPERF_ACCUM_C0_GRANT = 50, > + RBPERF_ACCUM_C1_GRANT = 51, > + RBPERF_ACCUM_FULL_BE_WR = 52, > + RBPERF_ACCUM_REQUEST_NO_GRANT = 53, > + RBPERF_ACCUM_TIMEOUT_PULSE = 54, > + RBPERF_ACCUM_LIN_TIMEOUT_PULSE = 55, > + RBPERF_ACCUM_CAM_HIT_FLUSHING = 56, > +}; > + > +enum a2xx_mh_perfcnt_select { > + CP_R0_REQUESTS = 0, > + CP_R1_REQUESTS = 1, > + CP_R2_REQUESTS = 2, > + CP_R3_REQUESTS = 3, > + CP_R4_REQUESTS = 4, > + CP_TOTAL_READ_REQUESTS = 5, > + CP_TOTAL_WRITE_REQUESTS = 6, > + CP_TOTAL_REQUESTS = 7, > + CP_DATA_BYTES_WRITTEN = 8, > + CP_WRITE_CLEAN_RESPONSES = 9, > + CP_R0_READ_BURSTS_RECEIVED = 10, > + CP_R1_READ_BURSTS_RECEIVED = 11, > + CP_R2_READ_BURSTS_RECEIVED = 12, > + CP_R3_READ_BURSTS_RECEIVED = 13, > + CP_R4_READ_BURSTS_RECEIVED = 14, > + CP_TOTAL_READ_BURSTS_RECEIVED = 15, > + CP_R0_DATA_BEATS_READ = 16, > + CP_R1_DATA_BEATS_READ = 17, > + CP_R2_DATA_BEATS_READ = 18, > + CP_R3_DATA_BEATS_READ = 19, > + CP_R4_DATA_BEATS_READ = 20, > + CP_TOTAL_DATA_BEATS_READ = 21, > + VGT_R0_REQUESTS = 22, > + VGT_R1_REQUESTS = 23, > + VGT_TOTAL_REQUESTS = 24, > + VGT_R0_READ_BURSTS_RECEIVED = 25, > + VGT_R1_READ_BURSTS_RECEIVED = 26, > + VGT_TOTAL_READ_BURSTS_RECEIVED = 27, > + VGT_R0_DATA_BEATS_READ = 28, > + VGT_R1_DATA_BEATS_READ = 29, > + VGT_TOTAL_DATA_BEATS_READ = 30, > + TC_TOTAL_REQUESTS = 31, > + TC_ROQ_REQUESTS = 32, > + TC_INFO_SENT = 33, > + TC_READ_BURSTS_RECEIVED = 34, > + TC_DATA_BEATS_READ = 35, > + TCD_BURSTS_READ = 36, > + RB_REQUESTS = 37, > + RB_DATA_BYTES_WRITTEN = 38, > + RB_WRITE_CLEAN_RESPONSES = 39, > + AXI_READ_REQUESTS_ID_0 = 40, > + AXI_READ_REQUESTS_ID_1 = 41, > + AXI_READ_REQUESTS_ID_2 = 42, > + AXI_READ_REQUESTS_ID_3 = 43, > + AXI_READ_REQUESTS_ID_4 = 44, > + AXI_READ_REQUESTS_ID_5 = 45, > + AXI_READ_REQUESTS_ID_6 = 46, > + AXI_READ_REQUESTS_ID_7 = 47, > + AXI_TOTAL_READ_REQUESTS = 48, > + AXI_WRITE_REQUESTS_ID_0 = 49, > + AXI_WRITE_REQUESTS_ID_1 = 50, > + AXI_WRITE_REQUESTS_ID_2 = 51, > + AXI_WRITE_REQUESTS_ID_3 = 52, > + AXI_WRITE_REQUESTS_ID_4 = 53, > + AXI_WRITE_REQUESTS_ID_5 = 54, > + AXI_WRITE_REQUESTS_ID_6 = 55, > + AXI_WRITE_REQUESTS_ID_7 = 56, > + AXI_TOTAL_WRITE_REQUESTS = 57, > + AXI_TOTAL_REQUESTS_ID_0 = 58, > + AXI_TOTAL_REQUESTS_ID_1 = 59, > + AXI_TOTAL_REQUESTS_ID_2 = 60, > + AXI_TOTAL_REQUESTS_ID_3 = 61, > + AXI_TOTAL_REQUESTS_ID_4 = 62, > + AXI_TOTAL_REQUESTS_ID_5 = 63, > + AXI_TOTAL_REQUESTS_ID_6 = 64, > + AXI_TOTAL_REQUESTS_ID_7 = 65, > + AXI_TOTAL_REQUESTS = 66, > + AXI_READ_CHANNEL_BURSTS_ID_0 = 67, > + AXI_READ_CHANNEL_BURSTS_ID_1 = 68, > + AXI_READ_CHANNEL_BURSTS_ID_2 = 69, > + AXI_READ_CHANNEL_BURSTS_ID_3 = 70, > + AXI_READ_CHANNEL_BURSTS_ID_4 = 71, > + AXI_READ_CHANNEL_BURSTS_ID_5 = 72, > + AXI_READ_CHANNEL_BURSTS_ID_6 = 73, > + AXI_READ_CHANNEL_BURSTS_ID_7 = 74, > + AXI_READ_CHANNEL_TOTAL_BURSTS = 75, > + AXI_READ_CHANNEL_DATA_BEATS_READ_ID_0 = 76, > + AXI_READ_CHANNEL_DATA_BEATS_READ_ID_1 = 77, > + AXI_READ_CHANNEL_DATA_BEATS_READ_ID_2 = 78, > + AXI_READ_CHANNEL_DATA_BEATS_READ_ID_3 = 79, > + AXI_READ_CHANNEL_DATA_BEATS_READ_ID_4 = 80, > + AXI_READ_CHANNEL_DATA_BEATS_READ_ID_5 = 81, > + AXI_READ_CHANNEL_DATA_BEATS_READ_ID_6 = 82, > + AXI_READ_CHANNEL_DATA_BEATS_READ_ID_7 = 83, > + AXI_READ_CHANNEL_TOTAL_DATA_BEATS_READ = 84, > + AXI_WRITE_CHANNEL_BURSTS_ID_0 = 85, > + AXI_WRITE_CHANNEL_BURSTS_ID_1 = 86, > + AXI_WRITE_CHANNEL_BURSTS_ID_2 = 87, > + AXI_WRITE_CHANNEL_BURSTS_ID_3 = 88, > + AXI_WRITE_CHANNEL_BURSTS_ID_4 = 89, > + AXI_WRITE_CHANNEL_BURSTS_ID_5 = 90, > + AXI_WRITE_CHANNEL_BURSTS_ID_6 = 91, > + AXI_WRITE_CHANNEL_BURSTS_ID_7 = 92, > + AXI_WRITE_CHANNEL_TOTAL_BURSTS = 93, > + AXI_WRITE_CHANNEL_DATA_BYTES_WRITTEN_ID_0 = 94, > + AXI_WRITE_CHANNEL_DATA_BYTES_WRITTEN_ID_1 = 95, > + AXI_WRITE_CHANNEL_DATA_BYTES_WRITTEN_ID_2 = 96, > + AXI_WRITE_CHANNEL_DATA_BYTES_WRITTEN_ID_3 = 97, > + AXI_WRITE_CHANNEL_DATA_BYTES_WRITTEN_ID_4 = 98, > + AXI_WRITE_CHANNEL_DATA_BYTES_WRITTEN_ID_5 = 99, > + AXI_WRITE_CHANNEL_DATA_BYTES_WRITTEN_ID_6 = 100, > + AXI_WRITE_CHANNEL_DATA_BYTES_WRITTEN_ID_7 = 101, > + AXI_WRITE_CHANNEL_TOTAL_DATA_BYTES_WRITTEN = 102, > + AXI_WRITE_RESPONSE_CHANNEL_RESPONSES_ID_0 = 103, > + AXI_WRITE_RESPONSE_CHANNEL_RESPONSES_ID_1 = 104, > + AXI_WRITE_RESPONSE_CHANNEL_RESPONSES_ID_2 = 105, > + AXI_WRITE_RESPONSE_CHANNEL_RESPONSES_ID_3 = 106, > + AXI_WRITE_RESPONSE_CHANNEL_RESPONSES_ID_4 = 107, > + AXI_WRITE_RESPONSE_CHANNEL_RESPONSES_ID_5 = 108, > + AXI_WRITE_RESPONSE_CHANNEL_RESPONSES_ID_6 = 109, > + AXI_WRITE_RESPONSE_CHANNEL_RESPONSES_ID_7 = 110, > + AXI_WRITE_RESPONSE_CHANNEL_TOTAL_RESPONSES = 111, > + TOTAL_MMU_MISSES = 112, > + MMU_READ_MISSES = 113, > + MMU_WRITE_MISSES = 114, > + TOTAL_MMU_HITS = 115, > + MMU_READ_HITS = 116, > + MMU_WRITE_HITS = 117, > + SPLIT_MODE_TC_HITS = 118, > + SPLIT_MODE_TC_MISSES = 119, > + SPLIT_MODE_NON_TC_HITS = 120, > + SPLIT_MODE_NON_TC_MISSES = 121, > + STALL_AWAITING_TLB_MISS_FETCH = 122, > + MMU_TLB_MISS_READ_BURSTS_RECEIVED = 123, > + MMU_TLB_MISS_DATA_BEATS_READ = 124, > + CP_CYCLES_HELD_OFF = 125, > + VGT_CYCLES_HELD_OFF = 126, > + TC_CYCLES_HELD_OFF = 127, > + TC_ROQ_CYCLES_HELD_OFF = 128, > + TC_CYCLES_HELD_OFF_TCD_FULL = 129, > + RB_CYCLES_HELD_OFF = 130, > + TOTAL_CYCLES_ANY_CLNT_HELD_OFF = 131, > + TLB_MISS_CYCLES_HELD_OFF = 132, > + AXI_READ_REQUEST_HELD_OFF = 133, > + AXI_WRITE_REQUEST_HELD_OFF = 134, > + AXI_REQUEST_HELD_OFF = 135, > + AXI_REQUEST_HELD_OFF_INFLIGHT_LIMIT = 136, > + AXI_WRITE_DATA_HELD_OFF = 137, > + CP_SAME_PAGE_BANK_REQUESTS = 138, > + VGT_SAME_PAGE_BANK_REQUESTS = 139, > + TC_SAME_PAGE_BANK_REQUESTS = 140, > + TC_ARB_HOLD_SAME_PAGE_BANK_REQUESTS = 141, > + RB_SAME_PAGE_BANK_REQUESTS = 142, > + TOTAL_SAME_PAGE_BANK_REQUESTS = 143, > + CP_SAME_PAGE_BANK_REQUESTS_KILLED_FAIRNESS_LIMIT = 144, > + VGT_SAME_PAGE_BANK_REQUESTS_KILLED_FAIRNESS_LIMIT = 145, > + TC_SAME_PAGE_BANK_REQUESTS_KILLED_FAIRNESS_LIMIT = 146, > + RB_SAME_PAGE_BANK_REQUESTS_KILLED_FAIRNESS_LIMIT = 147, > + TOTAL_SAME_PAGE_BANK_KILLED_FAIRNESS_LIMIT = 148, > + TOTAL_MH_READ_REQUESTS = 149, > + TOTAL_MH_WRITE_REQUESTS = 150, > + TOTAL_MH_REQUESTS = 151, > + MH_BUSY = 152, > + CP_NTH_ACCESS_SAME_PAGE_BANK_SEQUENCE = 153, > + VGT_NTH_ACCESS_SAME_PAGE_BANK_SEQUENCE = 154, > + TC_NTH_ACCESS_SAME_PAGE_BANK_SEQUENCE = 155, > + RB_NTH_ACCESS_SAME_PAGE_BANK_SEQUENCE = 156, > + TC_ROQ_N_VALID_ENTRIES = 157, > + ARQ_N_ENTRIES = 158, > + WDB_N_ENTRIES = 159, > + MH_READ_LATENCY_OUTST_REQ_SUM = 160, > + MC_READ_LATENCY_OUTST_REQ_SUM = 161, > + MC_TOTAL_READ_REQUESTS = 162, > + ELAPSED_CYCLES_MH_GATED_CLK = 163, > + ELAPSED_CLK_CYCLES = 164, > + CP_W_16B_REQUESTS = 165, > + CP_W_32B_REQUESTS = 166, > + TC_16B_REQUESTS = 167, > + TC_32B_REQUESTS = 168, > + PA_REQUESTS = 169, > + PA_DATA_BYTES_WRITTEN = 170, > + PA_WRITE_CLEAN_RESPONSES = 171, > + PA_CYCLES_HELD_OFF = 172, > + AXI_READ_REQUEST_DATA_BEATS_ID_0 = 173, > + AXI_READ_REQUEST_DATA_BEATS_ID_1 = 174, > + AXI_READ_REQUEST_DATA_BEATS_ID_2 = 175, > + AXI_READ_REQUEST_DATA_BEATS_ID_3 = 176, > + AXI_READ_REQUEST_DATA_BEATS_ID_4 = 177, > + AXI_READ_REQUEST_DATA_BEATS_ID_5 = 178, > + AXI_READ_REQUEST_DATA_BEATS_ID_6 = 179, > + AXI_READ_REQUEST_DATA_BEATS_ID_7 = 180, > + AXI_TOTAL_READ_REQUEST_DATA_BEATS = 181, > +}; > + > enum adreno_mmu_clnt_beh { > BEH_NEVR = 0, > BEH_TRAN_RNG = 1, > @@ -268,9 +1118,9 @@ enum sq_tex_border_color { > }; > > enum sq_tex_sign { > - SQ_TEX_SIGN_UNISIGNED = 0, > + SQ_TEX_SIGN_UNSIGNED = 0, > SQ_TEX_SIGN_SIGNED = 1, > - SQ_TEX_SIGN_UNISIGNED_BIASED = 2, > + SQ_TEX_SIGN_UNSIGNED_BIASED = 2, > SQ_TEX_SIGN_GAMMA = 3, > }; > > @@ -1842,6 +2692,10 @@ static inline uint32_t A2XX_RB_COPY_DEST_OFFSET_Y(uint32_t val) > > #define REG_A2XX_PA_SU_POLY_OFFSET_FRONT_SCALE 0x00002380 > > +#define REG_A2XX_PA_SU_POLY_OFFSET_FRONT_OFFSET 0x00002381 > + > +#define REG_A2XX_PA_SU_POLY_OFFSET_BACK_SCALE 0x00002382 > + > #define REG_A2XX_PA_SU_POLY_OFFSET_BACK_OFFSET 0x00002383 > > #define REG_A2XX_SQ_CONSTANT_0 0x00004000 > @@ -1858,6 +2712,220 @@ static inline uint32_t A2XX_RB_COPY_DEST_OFFSET_Y(uint32_t val) > > #define REG_A2XX_COHER_STATUS_PM4 0x00000a2b > > +#define REG_A2XX_PA_SU_PERFCOUNTER0_SELECT 0x00000c88 > + > +#define REG_A2XX_PA_SU_PERFCOUNTER1_SELECT 0x00000c89 > + > +#define REG_A2XX_PA_SU_PERFCOUNTER2_SELECT 0x00000c8a > + > +#define REG_A2XX_PA_SU_PERFCOUNTER3_SELECT 0x00000c8b > + > +#define REG_A2XX_PA_SU_PERFCOUNTER0_LOW 0x00000c8c > + > +#define REG_A2XX_PA_SU_PERFCOUNTER0_HI 0x00000c8d > + > +#define REG_A2XX_PA_SU_PERFCOUNTER1_LOW 0x00000c8e > + > +#define REG_A2XX_PA_SU_PERFCOUNTER1_HI 0x00000c8f > + > +#define REG_A2XX_PA_SU_PERFCOUNTER2_LOW 0x00000c90 > + > +#define REG_A2XX_PA_SU_PERFCOUNTER2_HI 0x00000c91 > + > +#define REG_A2XX_PA_SU_PERFCOUNTER3_LOW 0x00000c92 > + > +#define REG_A2XX_PA_SU_PERFCOUNTER3_HI 0x00000c93 > + > +#define REG_A2XX_PA_SC_PERFCOUNTER0_SELECT 0x00000c98 > + > +#define REG_A2XX_PA_SC_PERFCOUNTER0_LOW 0x00000c99 > + > +#define REG_A2XX_PA_SC_PERFCOUNTER0_HI 0x00000c9a > + > +#define REG_A2XX_VGT_PERFCOUNTER0_SELECT 0x00000c48 > + > +#define REG_A2XX_VGT_PERFCOUNTER1_SELECT 0x00000c49 > + > +#define REG_A2XX_VGT_PERFCOUNTER2_SELECT 0x00000c4a > + > +#define REG_A2XX_VGT_PERFCOUNTER3_SELECT 0x00000c4b > + > +#define REG_A2XX_VGT_PERFCOUNTER0_LOW 0x00000c4c > + > +#define REG_A2XX_VGT_PERFCOUNTER1_LOW 0x00000c4e > + > +#define REG_A2XX_VGT_PERFCOUNTER2_LOW 0x00000c50 > + > +#define REG_A2XX_VGT_PERFCOUNTER3_LOW 0x00000c52 > + > +#define REG_A2XX_VGT_PERFCOUNTER0_HI 0x00000c4d > + > +#define REG_A2XX_VGT_PERFCOUNTER1_HI 0x00000c4f > + > +#define REG_A2XX_VGT_PERFCOUNTER2_HI 0x00000c51 > + > +#define REG_A2XX_VGT_PERFCOUNTER3_HI 0x00000c53 > + > +#define REG_A2XX_TCR_PERFCOUNTER0_SELECT 0x00000e05 > + > +#define REG_A2XX_TCR_PERFCOUNTER1_SELECT 0x00000e08 > + > +#define REG_A2XX_TCR_PERFCOUNTER0_HI 0x00000e06 > + > +#define REG_A2XX_TCR_PERFCOUNTER1_HI 0x00000e09 > + > +#define REG_A2XX_TCR_PERFCOUNTER0_LOW 0x00000e07 > + > +#define REG_A2XX_TCR_PERFCOUNTER1_LOW 0x00000e0a > + > +#define REG_A2XX_TP0_PERFCOUNTER0_SELECT 0x00000e1f > + > +#define REG_A2XX_TP0_PERFCOUNTER0_HI 0x00000e20 > + > +#define REG_A2XX_TP0_PERFCOUNTER0_LOW 0x00000e21 > + > +#define REG_A2XX_TP0_PERFCOUNTER1_SELECT 0x00000e22 > + > +#define REG_A2XX_TP0_PERFCOUNTER1_HI 0x00000e23 > + > +#define REG_A2XX_TP0_PERFCOUNTER1_LOW 0x00000e24 > + > +#define REG_A2XX_TCM_PERFCOUNTER0_SELECT 0x00000e54 > + > +#define REG_A2XX_TCM_PERFCOUNTER1_SELECT 0x00000e57 > + > +#define REG_A2XX_TCM_PERFCOUNTER0_HI 0x00000e55 > + > +#define REG_A2XX_TCM_PERFCOUNTER1_HI 0x00000e58 > + > +#define REG_A2XX_TCM_PERFCOUNTER0_LOW 0x00000e56 > + > +#define REG_A2XX_TCM_PERFCOUNTER1_LOW 0x00000e59 > + > +#define REG_A2XX_TCF_PERFCOUNTER0_SELECT 0x00000e5a > + > +#define REG_A2XX_TCF_PERFCOUNTER1_SELECT 0x00000e5d > + > +#define REG_A2XX_TCF_PERFCOUNTER2_SELECT 0x00000e60 > + > +#define REG_A2XX_TCF_PERFCOUNTER3_SELECT 0x00000e63 > + > +#define REG_A2XX_TCF_PERFCOUNTER4_SELECT 0x00000e66 > + > +#define REG_A2XX_TCF_PERFCOUNTER5_SELECT 0x00000e69 > + > +#define REG_A2XX_TCF_PERFCOUNTER6_SELECT 0x00000e6c > + > +#define REG_A2XX_TCF_PERFCOUNTER7_SELECT 0x00000e6f > + > +#define REG_A2XX_TCF_PERFCOUNTER8_SELECT 0x00000e72 > + > +#define REG_A2XX_TCF_PERFCOUNTER9_SELECT 0x00000e75 > + > +#define REG_A2XX_TCF_PERFCOUNTER10_SELECT 0x00000e78 > + > +#define REG_A2XX_TCF_PERFCOUNTER11_SELECT 0x00000e7b > + > +#define REG_A2XX_TCF_PERFCOUNTER0_HI 0x00000e5b > + > +#define REG_A2XX_TCF_PERFCOUNTER1_HI 0x00000e5e > + > +#define REG_A2XX_TCF_PERFCOUNTER2_HI 0x00000e61 > + > +#define REG_A2XX_TCF_PERFCOUNTER3_HI 0x00000e64 > + > +#define REG_A2XX_TCF_PERFCOUNTER4_HI 0x00000e67 > + > +#define REG_A2XX_TCF_PERFCOUNTER5_HI 0x00000e6a > + > +#define REG_A2XX_TCF_PERFCOUNTER6_HI 0x00000e6d > + > +#define REG_A2XX_TCF_PERFCOUNTER7_HI 0x00000e70 > + > +#define REG_A2XX_TCF_PERFCOUNTER8_HI 0x00000e73 > + > +#define REG_A2XX_TCF_PERFCOUNTER9_HI 0x00000e76 > + > +#define REG_A2XX_TCF_PERFCOUNTER10_HI 0x00000e79 > + > +#define REG_A2XX_TCF_PERFCOUNTER11_HI 0x00000e7c > + > +#define REG_A2XX_TCF_PERFCOUNTER0_LOW 0x00000e5c > + > +#define REG_A2XX_TCF_PERFCOUNTER1_LOW 0x00000e5f > + > +#define REG_A2XX_TCF_PERFCOUNTER2_LOW 0x00000e62 > + > +#define REG_A2XX_TCF_PERFCOUNTER3_LOW 0x00000e65 > + > +#define REG_A2XX_TCF_PERFCOUNTER4_LOW 0x00000e68 > + > +#define REG_A2XX_TCF_PERFCOUNTER5_LOW 0x00000e6b > + > +#define REG_A2XX_TCF_PERFCOUNTER6_LOW 0x00000e6e > + > +#define REG_A2XX_TCF_PERFCOUNTER7_LOW 0x00000e71 > + > +#define REG_A2XX_TCF_PERFCOUNTER8_LOW 0x00000e74 > + > +#define REG_A2XX_TCF_PERFCOUNTER9_LOW 0x00000e77 > + > +#define REG_A2XX_TCF_PERFCOUNTER10_LOW 0x00000e7a > + > +#define REG_A2XX_TCF_PERFCOUNTER11_LOW 0x00000e7d > + > +#define REG_A2XX_SQ_PERFCOUNTER0_SELECT 0x00000dc8 > + > +#define REG_A2XX_SQ_PERFCOUNTER1_SELECT 0x00000dc9 > + > +#define REG_A2XX_SQ_PERFCOUNTER2_SELECT 0x00000dca > + > +#define REG_A2XX_SQ_PERFCOUNTER3_SELECT 0x00000dcb > + > +#define REG_A2XX_SQ_PERFCOUNTER0_LOW 0x00000dcc > + > +#define REG_A2XX_SQ_PERFCOUNTER0_HI 0x00000dcd > + > +#define REG_A2XX_SQ_PERFCOUNTER1_LOW 0x00000dce > + > +#define REG_A2XX_SQ_PERFCOUNTER1_HI 0x00000dcf > + > +#define REG_A2XX_SQ_PERFCOUNTER2_LOW 0x00000dd0 > + > +#define REG_A2XX_SQ_PERFCOUNTER2_HI 0x00000dd1 > + > +#define REG_A2XX_SQ_PERFCOUNTER3_LOW 0x00000dd2 > + > +#define REG_A2XX_SQ_PERFCOUNTER3_HI 0x00000dd3 > + > +#define REG_A2XX_SX_PERFCOUNTER0_SELECT 0x00000dd4 > + > +#define REG_A2XX_SX_PERFCOUNTER0_LOW 0x00000dd8 > + > +#define REG_A2XX_SX_PERFCOUNTER0_HI 0x00000dd9 > + > +#define REG_A2XX_MH_PERFCOUNTER0_SELECT 0x00000a46 > + > +#define REG_A2XX_MH_PERFCOUNTER1_SELECT 0x00000a4a > + > +#define REG_A2XX_MH_PERFCOUNTER0_CONFIG 0x00000a47 > + > +#define REG_A2XX_MH_PERFCOUNTER1_CONFIG 0x00000a4b > + > +#define REG_A2XX_MH_PERFCOUNTER0_LOW 0x00000a48 > + > +#define REG_A2XX_MH_PERFCOUNTER1_LOW 0x00000a4c > + > +#define REG_A2XX_MH_PERFCOUNTER0_HI 0x00000a49 > + > +#define REG_A2XX_MH_PERFCOUNTER1_HI 0x00000a4d > + > +#define REG_A2XX_RB_PERFCOUNTER0_SELECT 0x00000f04 > + > +#define REG_A2XX_RB_PERFCOUNTER0_LOW 0x00000f08 > + > +#define REG_A2XX_RB_PERFCOUNTER0_HI 0x00000f09 > + > #define REG_A2XX_SQ_TEX_0 0x00000000 > #define A2XX_SQ_TEX_0_TYPE__MASK 0x00000003 > #define A2XX_SQ_TEX_0_TYPE__SHIFT 0 > @@ -1913,7 +2981,7 @@ static inline uint32_t A2XX_SQ_TEX_0_PITCH(uint32_t val) > { > return ((val >> 5) << A2XX_SQ_TEX_0_PITCH__SHIFT) & A2XX_SQ_TEX_0_PITCH__MASK; > } > -#define A2XX_SQ_TEX_0_TILED 0x00000002 > +#define A2XX_SQ_TEX_0_TILED 0x80000000 > > #define REG_A2XX_SQ_TEX_1 0x00000001 > #define A2XX_SQ_TEX_1_FORMAT__MASK 0x0000003f > @@ -2001,7 +3069,7 @@ static inline uint32_t A2XX_SQ_TEX_3_SWIZ_W(enum sq_tex_swiz val) > } > #define A2XX_SQ_TEX_3_EXP_ADJUST__MASK 0x0007e000 > #define A2XX_SQ_TEX_3_EXP_ADJUST__SHIFT 13 > -static inline uint32_t A2XX_SQ_TEX_3_EXP_ADJUST(uint32_t val) > +static inline uint32_t A2XX_SQ_TEX_3_EXP_ADJUST(int32_t val) > { > return ((val) << A2XX_SQ_TEX_3_EXP_ADJUST__SHIFT) & A2XX_SQ_TEX_3_EXP_ADJUST__MASK; > } > diff --git a/drivers/gpu/drm/msm/adreno/a3xx.xml.h b/drivers/gpu/drm/msm/adreno/a3xx.xml.h > index 17059f242a98..88c90d31d567 100644 > --- a/drivers/gpu/drm/msm/adreno/a3xx.xml.h > +++ b/drivers/gpu/drm/msm/adreno/a3xx.xml.h > @@ -8,19 +8,21 @@ This file was generated by the rules-ng-ng headergen tool in this git repository > 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 ( 42463 bytes, from 2018-11-19 13:44:03) > -- /home/robclark/src/envytools/rnndb/adreno/adreno_common.xml ( 14201 bytes, from 2018-12-02 17:29:54) > -- /home/robclark/src/envytools/rnndb/adreno/adreno_pm4.xml ( 43052 bytes, from 2018-12-02 17:29:54) > -- /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-12-02 17:29:54) > -- /home/robclark/src/envytools/rnndb/adreno/a6xx.xml ( 140790 bytes, from 2018-12-02 17:29:54) > -- /home/robclark/src/envytools/rnndb/adreno/a6xx_gmu.xml ( 10431 bytes, from 2018-09-14 13:03:07) > -- /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: > +- /home/robclark/src/envytools/rnndb/adreno.xml ( 594 bytes, from 2020-06-21 22:29:16) > +- /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 ( 89649 bytes, from 2020-07-04 19:55:04) > +- /home/robclark/src/envytools/rnndb/adreno/adreno_common.xml ( 14239 bytes, from 2020-07-04 19:55:04) > +- /home/robclark/src/envytools/rnndb/adreno/adreno_pm4.xml ( 63258 bytes, from 2020-07-07 19:26:50) > +- /home/robclark/src/envytools/rnndb/adreno/a3xx.xml ( 84246 bytes, from 2020-07-04 19:55:04) > +- /home/robclark/src/envytools/rnndb/adreno/a4xx.xml ( 112247 bytes, from 2020-07-04 19:55:04) > +- /home/robclark/src/envytools/rnndb/adreno/a5xx.xml ( 148499 bytes, from 2020-07-04 20:00:49) > +- /home/robclark/src/envytools/rnndb/adreno/a6xx.xml ( 174474 bytes, from 2020-07-04 20:56:59) > +- /home/robclark/src/envytools/rnndb/adreno/a6xx_gmu.xml ( 10768 bytes, from 2020-05-20 19:42:03) > +- /home/robclark/src/envytools/rnndb/adreno/ocmem.xml ( 1773 bytes, from 2018-07-03 19:37:13) > +- /home/robclark/src/envytools/rnndb/adreno/adreno_control_regs.xml ( 4559 bytes, from 2020-06-21 22:29:16) > +- /home/robclark/src/envytools/rnndb/adreno/adreno_pipe_regs.xml ( 2872 bytes, from 2020-06-21 22:29:43) > + > +Copyright (C) 2013-2020 by the following authors: > - Rob Clark <robdclark@gmail.com> (robclark) > - Ilia Mirkin <imirkin@alum.mit.edu> (imirkin) > > @@ -48,7 +50,9 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. > > enum a3xx_tile_mode { > LINEAR = 0, > + TILE_4X4 = 1, > TILE_32X32 = 2, > + TILE_4X2 = 3, > }; > > enum a3xx_state_block_id { > @@ -123,6 +127,7 @@ enum a3xx_vtx_fmt { > VFMT_2_10_10_10_UNORM = 61, > VFMT_2_10_10_10_SINT = 62, > VFMT_2_10_10_10_SNORM = 63, > + VFMT_NONE = 255, > }; > > enum a3xx_tex_fmt { > @@ -206,6 +211,7 @@ enum a3xx_tex_fmt { > TFMT_ETC2_RGBA8 = 116, > TFMT_ETC2_RGB8A1 = 117, > TFMT_ETC2_RGB8 = 118, > + TFMT_NONE = 255, > }; > > enum a3xx_tex_fetchsize { > @@ -228,8 +234,8 @@ enum a3xx_color_fmt { > RB_R8G8B8A8_SINT = 11, > RB_R8G8_UNORM = 12, > RB_R8G8_SNORM = 13, > - RB_R8_UINT = 14, > - RB_R8_SINT = 15, > + RB_R8G8_UINT = 14, > + RB_R8G8_SINT = 15, > RB_R10G10B10A2_UNORM = 16, > RB_A2R10G10B10_UNORM = 17, > RB_R10G10B10A2_UINT = 18, > @@ -261,6 +267,7 @@ enum a3xx_color_fmt { > RB_R32_UINT = 56, > RB_R32G32_UINT = 57, > RB_R32G32B32A32_UINT = 59, > + RB_NONE = 255, > }; > > enum a3xx_cp_perfcounter_select { > @@ -932,6 +939,9 @@ static inline uint32_t REG_A3XX_CP_PROTECT_REG(uint32_t i0) { return 0x00000460 > > #define REG_A3XX_GRAS_CL_CLIP_CNTL 0x00002040 > #define A3XX_GRAS_CL_CLIP_CNTL_IJ_PERSP_CENTER 0x00001000 > +#define A3XX_GRAS_CL_CLIP_CNTL_IJ_NON_PERSP_CENTER 0x00002000 > +#define A3XX_GRAS_CL_CLIP_CNTL_IJ_PERSP_CENTROID 0x00004000 > +#define A3XX_GRAS_CL_CLIP_CNTL_IJ_NON_PERSP_CENTROID 0x00008000 > #define A3XX_GRAS_CL_CLIP_CNTL_CLIP_DISABLE 0x00010000 > #define A3XX_GRAS_CL_CLIP_CNTL_ZFAR_CLIP_DISABLE 0x00020000 > #define A3XX_GRAS_CL_CLIP_CNTL_VP_CLIP_CODE_IGNORE 0x00080000 > @@ -1170,10 +1180,12 @@ static inline uint32_t A3XX_RB_RENDER_CONTROL_BIN_WIDTH(uint32_t val) > } > #define A3XX_RB_RENDER_CONTROL_DISABLE_COLOR_PIPE 0x00001000 > #define A3XX_RB_RENDER_CONTROL_ENABLE_GMEM 0x00002000 > -#define A3XX_RB_RENDER_CONTROL_XCOORD 0x00004000 > -#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_COORD_MASK__MASK 0x0003c000 > +#define A3XX_RB_RENDER_CONTROL_COORD_MASK__SHIFT 14 > +static inline uint32_t A3XX_RB_RENDER_CONTROL_COORD_MASK(uint32_t val) > +{ > + return ((val) << A3XX_RB_RENDER_CONTROL_COORD_MASK__SHIFT) & A3XX_RB_RENDER_CONTROL_COORD_MASK__MASK; > +} > #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 > @@ -1755,11 +1767,29 @@ static inline uint32_t A3XX_HLSQ_CONTROL_2_REG_PRIMALLOCTHRESHOLD(uint32_t val) > } > > #define REG_A3XX_HLSQ_CONTROL_3_REG 0x00002203 > -#define A3XX_HLSQ_CONTROL_3_REG_REGID__MASK 0x000000ff > -#define A3XX_HLSQ_CONTROL_3_REG_REGID__SHIFT 0 > -static inline uint32_t A3XX_HLSQ_CONTROL_3_REG_REGID(uint32_t val) > +#define A3XX_HLSQ_CONTROL_3_REG_IJPERSPCENTERREGID__MASK 0x000000ff > +#define A3XX_HLSQ_CONTROL_3_REG_IJPERSPCENTERREGID__SHIFT 0 > +static inline uint32_t A3XX_HLSQ_CONTROL_3_REG_IJPERSPCENTERREGID(uint32_t val) > +{ > + return ((val) << A3XX_HLSQ_CONTROL_3_REG_IJPERSPCENTERREGID__SHIFT) & A3XX_HLSQ_CONTROL_3_REG_IJPERSPCENTERREGID__MASK; > +} > +#define A3XX_HLSQ_CONTROL_3_REG_IJNONPERSPCENTERREGID__MASK 0x0000ff00 > +#define A3XX_HLSQ_CONTROL_3_REG_IJNONPERSPCENTERREGID__SHIFT 8 > +static inline uint32_t A3XX_HLSQ_CONTROL_3_REG_IJNONPERSPCENTERREGID(uint32_t val) > +{ > + return ((val) << A3XX_HLSQ_CONTROL_3_REG_IJNONPERSPCENTERREGID__SHIFT) & A3XX_HLSQ_CONTROL_3_REG_IJNONPERSPCENTERREGID__MASK; > +} > +#define A3XX_HLSQ_CONTROL_3_REG_IJPERSPCENTROIDREGID__MASK 0x00ff0000 > +#define A3XX_HLSQ_CONTROL_3_REG_IJPERSPCENTROIDREGID__SHIFT 16 > +static inline uint32_t A3XX_HLSQ_CONTROL_3_REG_IJPERSPCENTROIDREGID(uint32_t val) > { > - return ((val) << A3XX_HLSQ_CONTROL_3_REG_REGID__SHIFT) & A3XX_HLSQ_CONTROL_3_REG_REGID__MASK; > + return ((val) << A3XX_HLSQ_CONTROL_3_REG_IJPERSPCENTROIDREGID__SHIFT) & A3XX_HLSQ_CONTROL_3_REG_IJPERSPCENTROIDREGID__MASK; > +} > +#define A3XX_HLSQ_CONTROL_3_REG_IJNONPERSPCENTROIDREGID__MASK 0xff000000 > +#define A3XX_HLSQ_CONTROL_3_REG_IJNONPERSPCENTROIDREGID__SHIFT 24 > +static inline uint32_t A3XX_HLSQ_CONTROL_3_REG_IJNONPERSPCENTROIDREGID(uint32_t val) > +{ > + return ((val) << A3XX_HLSQ_CONTROL_3_REG_IJNONPERSPCENTROIDREGID__SHIFT) & A3XX_HLSQ_CONTROL_3_REG_IJNONPERSPCENTROIDREGID__MASK; > } > > #define REG_A3XX_HLSQ_VS_CONTROL_REG 0x00002204 > @@ -1944,8 +1974,6 @@ static inline uint32_t A3XX_VFD_CONTROL_1_REGID4INST(uint32_t val) > > #define REG_A3XX_VFD_INDEX_OFFSET 0x00002245 > > -#define REG_A3XX_VFD_INDEX_OFFSET 0x00002245 > - > static inline uint32_t REG_A3XX_VFD_FETCH(uint32_t i0) { return 0x00002246 + 0x2*i0; } > > static inline uint32_t REG_A3XX_VFD_FETCH_INSTR_0(uint32_t i0) { return 0x00002246 + 0x2*i0; } > @@ -3107,7 +3135,12 @@ static inline uint32_t A3XX_TEX_SAMP_1_MIN_LOD(float val) > } > > #define REG_A3XX_TEX_CONST_0 0x00000000 > -#define A3XX_TEX_CONST_0_TILED 0x00000001 > +#define A3XX_TEX_CONST_0_TILE_MODE__MASK 0x00000003 > +#define A3XX_TEX_CONST_0_TILE_MODE__SHIFT 0 > +static inline uint32_t A3XX_TEX_CONST_0_TILE_MODE(enum a3xx_tile_mode val) > +{ > + return ((val) << A3XX_TEX_CONST_0_TILE_MODE__SHIFT) & A3XX_TEX_CONST_0_TILE_MODE__MASK; > +} > #define A3XX_TEX_CONST_0_SRGB 0x00000004 > #define A3XX_TEX_CONST_0_SWIZ_X__MASK 0x00000070 > #define A3XX_TEX_CONST_0_SWIZ_X__SHIFT 4 > diff --git a/drivers/gpu/drm/msm/adreno/a4xx.xml.h b/drivers/gpu/drm/msm/adreno/a4xx.xml.h > index 9b51e25a9583..b21deffcbf2e 100644 > --- a/drivers/gpu/drm/msm/adreno/a4xx.xml.h > +++ b/drivers/gpu/drm/msm/adreno/a4xx.xml.h > @@ -8,19 +8,21 @@ This file was generated by the rules-ng-ng headergen tool in this git repository > 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 ( 42463 bytes, from 2018-11-19 13:44:03) > -- /home/robclark/src/envytools/rnndb/adreno/adreno_common.xml ( 14201 bytes, from 2018-12-02 17:29:54) > -- /home/robclark/src/envytools/rnndb/adreno/adreno_pm4.xml ( 43052 bytes, from 2018-12-02 17:29:54) > -- /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-12-02 17:29:54) > -- /home/robclark/src/envytools/rnndb/adreno/a6xx.xml ( 140790 bytes, from 2018-12-02 17:29:54) > -- /home/robclark/src/envytools/rnndb/adreno/a6xx_gmu.xml ( 10431 bytes, from 2018-09-14 13:03:07) > -- /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: > +- /home/robclark/src/envytools/rnndb/adreno.xml ( 594 bytes, from 2020-06-21 22:29:16) > +- /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 ( 89649 bytes, from 2020-07-04 19:55:04) > +- /home/robclark/src/envytools/rnndb/adreno/adreno_common.xml ( 14239 bytes, from 2020-07-04 19:55:04) > +- /home/robclark/src/envytools/rnndb/adreno/adreno_pm4.xml ( 63258 bytes, from 2020-07-07 19:26:50) > +- /home/robclark/src/envytools/rnndb/adreno/a3xx.xml ( 84246 bytes, from 2020-07-04 19:55:04) > +- /home/robclark/src/envytools/rnndb/adreno/a4xx.xml ( 112247 bytes, from 2020-07-04 19:55:04) > +- /home/robclark/src/envytools/rnndb/adreno/a5xx.xml ( 148499 bytes, from 2020-07-04 20:00:49) > +- /home/robclark/src/envytools/rnndb/adreno/a6xx.xml ( 174474 bytes, from 2020-07-04 20:56:59) > +- /home/robclark/src/envytools/rnndb/adreno/a6xx_gmu.xml ( 10768 bytes, from 2020-05-20 19:42:03) > +- /home/robclark/src/envytools/rnndb/adreno/ocmem.xml ( 1773 bytes, from 2018-07-03 19:37:13) > +- /home/robclark/src/envytools/rnndb/adreno/adreno_control_regs.xml ( 4559 bytes, from 2020-06-21 22:29:16) > +- /home/robclark/src/envytools/rnndb/adreno/adreno_pipe_regs.xml ( 2872 bytes, from 2020-06-21 22:29:43) > + > +Copyright (C) 2013-2020 by the following authors: > - Rob Clark <robdclark@gmail.com> (robclark) > - Ilia Mirkin <imirkin@alum.mit.edu> (imirkin) > > @@ -91,6 +93,7 @@ enum a4xx_color_fmt { > RB4_R32G32B32A32_FLOAT = 60, > RB4_R32G32B32A32_UINT = 61, > RB4_R32G32B32A32_SINT = 62, > + RB4_NONE = 255, > }; > > enum a4xx_tile_mode { > @@ -161,6 +164,7 @@ enum a4xx_vtx_fmt { > VFMT4_2_10_10_10_UNORM = 61, > VFMT4_2_10_10_10_SINT = 62, > VFMT4_2_10_10_10_SNORM = 63, > + VFMT4_NONE = 255, > }; > > enum a4xx_tex_fmt { > @@ -248,6 +252,7 @@ enum a4xx_tex_fmt { > TFMT4_ASTC_10x10 = 122, > TFMT4_ASTC_12x10 = 123, > TFMT4_ASTC_12x12 = 124, > + TFMT4_NONE = 255, > }; > > enum a4xx_tex_fetchsize { > @@ -949,10 +954,12 @@ static inline uint32_t A4XX_RB_MSAA_CONTROL_SAMPLES(uint32_t val) > } > > #define REG_A4XX_RB_RENDER_CONTROL2 0x000020a3 > -#define A4XX_RB_RENDER_CONTROL2_XCOORD 0x00000001 > -#define A4XX_RB_RENDER_CONTROL2_YCOORD 0x00000002 > -#define A4XX_RB_RENDER_CONTROL2_ZCOORD 0x00000004 > -#define A4XX_RB_RENDER_CONTROL2_WCOORD 0x00000008 > +#define A4XX_RB_RENDER_CONTROL2_COORD_MASK__MASK 0x0000000f > +#define A4XX_RB_RENDER_CONTROL2_COORD_MASK__SHIFT 0 > +static inline uint32_t A4XX_RB_RENDER_CONTROL2_COORD_MASK(uint32_t val) > +{ > + return ((val) << A4XX_RB_RENDER_CONTROL2_COORD_MASK__SHIFT) & A4XX_RB_RENDER_CONTROL2_COORD_MASK__MASK; > +} > #define A4XX_RB_RENDER_CONTROL2_SAMPLEMASK 0x00000010 > #define A4XX_RB_RENDER_CONTROL2_FACENESS 0x00000020 > #define A4XX_RB_RENDER_CONTROL2_SAMPLEID 0x00000040 > @@ -1877,10 +1884,6 @@ static inline uint32_t REG_A4XX_RBBM_CLOCK_DELAY_TP_REG(uint32_t i0) { return 0x > > #define REG_A4XX_RBBM_PERFCTR_TP_0_HI 0x00000115 > > -#define REG_A4XX_RBBM_PERFCTR_TP_0_LO 0x00000114 > - > -#define REG_A4XX_RBBM_PERFCTR_TP_0_HI 0x00000115 > - > #define REG_A4XX_RBBM_PERFCTR_TP_1_LO 0x00000116 > > #define REG_A4XX_RBBM_PERFCTR_TP_1_HI 0x00000117 > @@ -2061,8 +2064,6 @@ static inline uint32_t REG_A4XX_RBBM_CLOCK_DELAY_RB_MARB_CCU_L1_REG(uint32_t i0) > > #define REG_A4XX_RBBM_SP_REGFILE_SLEEP_CNTL_1 0x0000009a > > -#define REG_A4XX_RBBM_PERFCTR_PWR_1_LO 0x00000168 > - > #define REG_A4XX_RBBM_PERFCTR_CTL 0x00000170 > > #define REG_A4XX_RBBM_PERFCTR_LOAD_CMD0 0x00000171 > @@ -3524,14 +3525,44 @@ static inline uint32_t A4XX_HLSQ_CONTROL_2_REG_SAMPLEMASK_REGID(uint32_t val) > } > > #define REG_A4XX_HLSQ_CONTROL_3_REG 0x000023c3 > -#define A4XX_HLSQ_CONTROL_3_REG_REGID__MASK 0x000000ff > -#define A4XX_HLSQ_CONTROL_3_REG_REGID__SHIFT 0 > -static inline uint32_t A4XX_HLSQ_CONTROL_3_REG_REGID(uint32_t val) > +#define A4XX_HLSQ_CONTROL_3_REG_IJ_PERSP_PIXEL__MASK 0x000000ff > +#define A4XX_HLSQ_CONTROL_3_REG_IJ_PERSP_PIXEL__SHIFT 0 > +static inline uint32_t A4XX_HLSQ_CONTROL_3_REG_IJ_PERSP_PIXEL(uint32_t val) > +{ > + return ((val) << A4XX_HLSQ_CONTROL_3_REG_IJ_PERSP_PIXEL__SHIFT) & A4XX_HLSQ_CONTROL_3_REG_IJ_PERSP_PIXEL__MASK; > +} > +#define A4XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_PIXEL__MASK 0x0000ff00 > +#define A4XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_PIXEL__SHIFT 8 > +static inline uint32_t A4XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_PIXEL(uint32_t val) > +{ > + return ((val) << A4XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_PIXEL__SHIFT) & A4XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_PIXEL__MASK; > +} > +#define A4XX_HLSQ_CONTROL_3_REG_IJ_PERSP_CENTROID__MASK 0x00ff0000 > +#define A4XX_HLSQ_CONTROL_3_REG_IJ_PERSP_CENTROID__SHIFT 16 > +static inline uint32_t A4XX_HLSQ_CONTROL_3_REG_IJ_PERSP_CENTROID(uint32_t val) > +{ > + return ((val) << A4XX_HLSQ_CONTROL_3_REG_IJ_PERSP_CENTROID__SHIFT) & A4XX_HLSQ_CONTROL_3_REG_IJ_PERSP_CENTROID__MASK; > +} > +#define A4XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_CENTROID__MASK 0xff000000 > +#define A4XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_CENTROID__SHIFT 24 > +static inline uint32_t A4XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_CENTROID(uint32_t val) > { > - return ((val) << A4XX_HLSQ_CONTROL_3_REG_REGID__SHIFT) & A4XX_HLSQ_CONTROL_3_REG_REGID__MASK; > + return ((val) << A4XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_CENTROID__SHIFT) & A4XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_CENTROID__MASK; > } > > -#define REG_A4XX_HLSQ_CONTROL_4_REG 0x000023c4 > +#define REG_A4XX_HLSQ_CONTROL_4_REG 0x0000b985 > +#define A4XX_HLSQ_CONTROL_4_REG_IJ_PERSP_SAMPLE__MASK 0x000000ff > +#define A4XX_HLSQ_CONTROL_4_REG_IJ_PERSP_SAMPLE__SHIFT 0 > +static inline uint32_t A4XX_HLSQ_CONTROL_4_REG_IJ_PERSP_SAMPLE(uint32_t val) > +{ > + return ((val) << A4XX_HLSQ_CONTROL_4_REG_IJ_PERSP_SAMPLE__SHIFT) & A4XX_HLSQ_CONTROL_4_REG_IJ_PERSP_SAMPLE__MASK; > +} > +#define A4XX_HLSQ_CONTROL_4_REG_IJ_LINEAR_SAMPLE__MASK 0x0000ff00 > +#define A4XX_HLSQ_CONTROL_4_REG_IJ_LINEAR_SAMPLE__SHIFT 8 > +static inline uint32_t A4XX_HLSQ_CONTROL_4_REG_IJ_LINEAR_SAMPLE(uint32_t val) > +{ > + return ((val) << A4XX_HLSQ_CONTROL_4_REG_IJ_LINEAR_SAMPLE__SHIFT) & A4XX_HLSQ_CONTROL_4_REG_IJ_LINEAR_SAMPLE__MASK; > +} > > #define REG_A4XX_HLSQ_VS_CONTROL_REG 0x000023c5 > #define A4XX_HLSQ_VS_CONTROL_REG_CONSTLENGTH__MASK 0x000000ff > diff --git a/drivers/gpu/drm/msm/adreno/a5xx.xml.h b/drivers/gpu/drm/msm/adreno/a5xx.xml.h > index 4a61d4e72c98..6c42524993a2 100644 > --- a/drivers/gpu/drm/msm/adreno/a5xx.xml.h > +++ b/drivers/gpu/drm/msm/adreno/a5xx.xml.h > @@ -8,19 +8,21 @@ This file was generated by the rules-ng-ng headergen tool in this git repository > git clone https://github.com/freedreno/envytools.git > > The rules-ng-ng source files this header was generated from are: > -- /home/ubuntu/envytools/envytools/rnndb/./adreno.xml ( 501 bytes, from 2019-05-29 01:28:15) > -- /home/ubuntu/envytools/envytools/rnndb/freedreno_copyright.xml ( 1572 bytes, from 2019-05-29 01:28:15) > -- /home/ubuntu/envytools/envytools/rnndb/adreno/a2xx.xml ( 79608 bytes, from 2019-05-29 01:28:15) > -- /home/ubuntu/envytools/envytools/rnndb/adreno/adreno_common.xml ( 14239 bytes, from 2019-05-29 01:28:15) > -- /home/ubuntu/envytools/envytools/rnndb/adreno/adreno_pm4.xml ( 43155 bytes, from 2019-05-29 01:28:15) > -- /home/ubuntu/envytools/envytools/rnndb/adreno/a3xx.xml ( 83840 bytes, from 2019-05-29 01:28:15) > -- /home/ubuntu/envytools/envytools/rnndb/adreno/a4xx.xml ( 112086 bytes, from 2019-05-29 01:28:15) > -- /home/ubuntu/envytools/envytools/rnndb/adreno/a5xx.xml ( 147291 bytes, from 2019-05-29 14:51:41) > -- /home/ubuntu/envytools/envytools/rnndb/adreno/a6xx.xml ( 148461 bytes, from 2019-05-29 01:28:15) > -- /home/ubuntu/envytools/envytools/rnndb/adreno/a6xx_gmu.xml ( 10431 bytes, from 2019-05-29 01:28:15) > -- /home/ubuntu/envytools/envytools/rnndb/adreno/ocmem.xml ( 1773 bytes, from 2019-05-29 01:28:15) > - > -Copyright (C) 2013-2019 by the following authors: > +- /home/robclark/src/envytools/rnndb/adreno.xml ( 594 bytes, from 2020-06-21 22:29:16) > +- /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 ( 89649 bytes, from 2020-07-04 19:55:04) > +- /home/robclark/src/envytools/rnndb/adreno/adreno_common.xml ( 14239 bytes, from 2020-07-04 19:55:04) > +- /home/robclark/src/envytools/rnndb/adreno/adreno_pm4.xml ( 63258 bytes, from 2020-07-07 19:26:50) > +- /home/robclark/src/envytools/rnndb/adreno/a3xx.xml ( 84246 bytes, from 2020-07-04 19:55:04) > +- /home/robclark/src/envytools/rnndb/adreno/a4xx.xml ( 112247 bytes, from 2020-07-04 19:55:04) > +- /home/robclark/src/envytools/rnndb/adreno/a5xx.xml ( 148499 bytes, from 2020-07-04 20:00:49) > +- /home/robclark/src/envytools/rnndb/adreno/a6xx.xml ( 174474 bytes, from 2020-07-04 20:56:59) > +- /home/robclark/src/envytools/rnndb/adreno/a6xx_gmu.xml ( 10768 bytes, from 2020-05-20 19:42:03) > +- /home/robclark/src/envytools/rnndb/adreno/ocmem.xml ( 1773 bytes, from 2018-07-03 19:37:13) > +- /home/robclark/src/envytools/rnndb/adreno/adreno_control_regs.xml ( 4559 bytes, from 2020-06-21 22:29:16) > +- /home/robclark/src/envytools/rnndb/adreno/adreno_pipe_regs.xml ( 2872 bytes, from 2020-06-21 22:29:43) > + > +Copyright (C) 2013-2020 by the following authors: > - Rob Clark <robdclark@gmail.com> (robclark) > - Ilia Mirkin <imirkin@alum.mit.edu> (imirkin) > > @@ -91,6 +93,7 @@ enum a5xx_color_fmt { > RB5_R32G32B32A32_FLOAT = 130, > RB5_R32G32B32A32_UINT = 131, > RB5_R32G32B32A32_SINT = 132, > + RB5_NONE = 255, > }; > > enum a5xx_tile_mode { > @@ -165,6 +168,7 @@ enum a5xx_vtx_fmt { > VFMT5_32_32_32_32_UINT = 131, > VFMT5_32_32_32_32_SINT = 132, > VFMT5_32_32_32_32_FIXED = 133, > + VFMT5_NONE = 255, > }; > > enum a5xx_tex_fmt { > @@ -250,6 +254,7 @@ enum a5xx_tex_fmt { > TFMT5_ASTC_10x10 = 204, > TFMT5_ASTC_12x10 = 205, > TFMT5_ASTC_12x12 = 206, > + TFMT5_NONE = 255, > }; > > enum a5xx_tex_fetchsize { > @@ -1884,14 +1889,6 @@ static inline uint32_t A5XX_CP_PROTECT_REG_MASK_LEN(uint32_t val) > > #define REG_A5XX_RBBM_PERFCTR_LOAD_VALUE_HI 0x0000046a > > -#define REG_A5XX_RBBM_PERFCTR_RBBM_SEL_0 0x0000046b > - > -#define REG_A5XX_RBBM_PERFCTR_RBBM_SEL_1 0x0000046c > - > -#define REG_A5XX_RBBM_PERFCTR_RBBM_SEL_2 0x0000046d > - > -#define REG_A5XX_RBBM_PERFCTR_RBBM_SEL_3 0x0000046e > - > #define REG_A5XX_RBBM_PERFCTR_GPU_BUSY_MASKED 0x0000046f > > #define REG_A5XX_RBBM_AHB_ERROR 0x000004ed > @@ -2455,8 +2452,6 @@ static inline uint32_t A5XX_VSC_RESOLVE_CNTL_Y(uint32_t val) > > #define REG_A5XX_GPMU_PWR_COL_BINNING_CTRL 0x0000a894 > > -#define REG_A5XX_GPMU_CLOCK_THROTTLE_CTRL 0x0000a8a3 > - > #define REG_A5XX_GPMU_WFI_CONFIG 0x0000a8c1 > > #define REG_A5XX_GPMU_RBBM_INTR_INFO 0x0000a8d6 > @@ -2659,12 +2654,16 @@ static inline uint32_t A5XX_VSC_RESOLVE_CNTL_Y(uint32_t val) > #define REG_A5XX_UNKNOWN_E004 0x0000e004 > > #define REG_A5XX_GRAS_CNTL 0x0000e005 > -#define A5XX_GRAS_CNTL_VARYING 0x00000001 > -#define A5XX_GRAS_CNTL_UNK3 0x00000008 > -#define A5XX_GRAS_CNTL_XCOORD 0x00000040 > -#define A5XX_GRAS_CNTL_YCOORD 0x00000080 > -#define A5XX_GRAS_CNTL_ZCOORD 0x00000100 > -#define A5XX_GRAS_CNTL_WCOORD 0x00000200 > +#define A5XX_GRAS_CNTL_IJ_PERSP_PIXEL 0x00000001 > +#define A5XX_GRAS_CNTL_IJ_PERSP_CENTROID 0x00000002 > +#define A5XX_GRAS_CNTL_IJ_PERSP_SAMPLE 0x00000004 > +#define A5XX_GRAS_CNTL_SIZE 0x00000008 > +#define A5XX_GRAS_CNTL_COORD_MASK__MASK 0x000003c0 > +#define A5XX_GRAS_CNTL_COORD_MASK__SHIFT 6 > +static inline uint32_t A5XX_GRAS_CNTL_COORD_MASK(uint32_t val) > +{ > + return ((val) << A5XX_GRAS_CNTL_COORD_MASK__SHIFT) & A5XX_GRAS_CNTL_COORD_MASK__MASK; > +} > > #define REG_A5XX_GRAS_CL_GUARDBAND_CLIP_ADJ 0x0000e006 > #define A5XX_GRAS_CL_GUARDBAND_CLIP_ADJ_HORZ__MASK 0x000003ff > @@ -2991,12 +2990,16 @@ static inline uint32_t A5XX_RB_DEST_MSAA_CNTL_SAMPLES(enum a3xx_msaa_samples val > #define A5XX_RB_DEST_MSAA_CNTL_MSAA_DISABLE 0x00000004 > > #define REG_A5XX_RB_RENDER_CONTROL0 0x0000e144 > -#define A5XX_RB_RENDER_CONTROL0_VARYING 0x00000001 > -#define A5XX_RB_RENDER_CONTROL0_UNK3 0x00000008 > -#define A5XX_RB_RENDER_CONTROL0_XCOORD 0x00000040 > -#define A5XX_RB_RENDER_CONTROL0_YCOORD 0x00000080 > -#define A5XX_RB_RENDER_CONTROL0_ZCOORD 0x00000100 > -#define A5XX_RB_RENDER_CONTROL0_WCOORD 0x00000200 > +#define A5XX_RB_RENDER_CONTROL0_IJ_PERSP_PIXEL 0x00000001 > +#define A5XX_RB_RENDER_CONTROL0_IJ_PERSP_CENTROID 0x00000002 > +#define A5XX_RB_RENDER_CONTROL0_IJ_PERSP_SAMPLE 0x00000004 > +#define A5XX_RB_RENDER_CONTROL0_SIZE 0x00000008 > +#define A5XX_RB_RENDER_CONTROL0_COORD_MASK__MASK 0x000003c0 > +#define A5XX_RB_RENDER_CONTROL0_COORD_MASK__SHIFT 6 > +static inline uint32_t A5XX_RB_RENDER_CONTROL0_COORD_MASK(uint32_t val) > +{ > + return ((val) << A5XX_RB_RENDER_CONTROL0_COORD_MASK__SHIFT) & A5XX_RB_RENDER_CONTROL0_COORD_MASK__MASK; > +} > > #define REG_A5XX_RB_RENDER_CONTROL1 0x0000e145 > #define A5XX_RB_RENDER_CONTROL1_SAMPLEMASK 0x00000001 > @@ -4450,16 +4453,52 @@ static inline uint32_t A5XX_HLSQ_CONTROL_2_REG_SAMPLEMASK(uint32_t val) > { > return ((val) << A5XX_HLSQ_CONTROL_2_REG_SAMPLEMASK__SHIFT) & A5XX_HLSQ_CONTROL_2_REG_SAMPLEMASK__MASK; > } > +#define A5XX_HLSQ_CONTROL_2_REG_SIZE__MASK 0xff000000 > +#define A5XX_HLSQ_CONTROL_2_REG_SIZE__SHIFT 24 > +static inline uint32_t A5XX_HLSQ_CONTROL_2_REG_SIZE(uint32_t val) > +{ > + return ((val) << A5XX_HLSQ_CONTROL_2_REG_SIZE__SHIFT) & A5XX_HLSQ_CONTROL_2_REG_SIZE__MASK; > +} > > #define REG_A5XX_HLSQ_CONTROL_3_REG 0x0000e787 > -#define A5XX_HLSQ_CONTROL_3_REG_FRAGCOORDXYREGID__MASK 0x000000ff > -#define A5XX_HLSQ_CONTROL_3_REG_FRAGCOORDXYREGID__SHIFT 0 > -static inline uint32_t A5XX_HLSQ_CONTROL_3_REG_FRAGCOORDXYREGID(uint32_t val) > +#define A5XX_HLSQ_CONTROL_3_REG_IJ_PERSP_PIXEL__MASK 0x000000ff > +#define A5XX_HLSQ_CONTROL_3_REG_IJ_PERSP_PIXEL__SHIFT 0 > +static inline uint32_t A5XX_HLSQ_CONTROL_3_REG_IJ_PERSP_PIXEL(uint32_t val) > +{ > + return ((val) << A5XX_HLSQ_CONTROL_3_REG_IJ_PERSP_PIXEL__SHIFT) & A5XX_HLSQ_CONTROL_3_REG_IJ_PERSP_PIXEL__MASK; > +} > +#define A5XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_PIXEL__MASK 0x0000ff00 > +#define A5XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_PIXEL__SHIFT 8 > +static inline uint32_t A5XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_PIXEL(uint32_t val) > +{ > + return ((val) << A5XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_PIXEL__SHIFT) & A5XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_PIXEL__MASK; > +} > +#define A5XX_HLSQ_CONTROL_3_REG_IJ_PERSP_CENTROID__MASK 0x00ff0000 > +#define A5XX_HLSQ_CONTROL_3_REG_IJ_PERSP_CENTROID__SHIFT 16 > +static inline uint32_t A5XX_HLSQ_CONTROL_3_REG_IJ_PERSP_CENTROID(uint32_t val) > { > - return ((val) << A5XX_HLSQ_CONTROL_3_REG_FRAGCOORDXYREGID__SHIFT) & A5XX_HLSQ_CONTROL_3_REG_FRAGCOORDXYREGID__MASK; > + return ((val) << A5XX_HLSQ_CONTROL_3_REG_IJ_PERSP_CENTROID__SHIFT) & A5XX_HLSQ_CONTROL_3_REG_IJ_PERSP_CENTROID__MASK; > +} > +#define A5XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_CENTROID__MASK 0xff000000 > +#define A5XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_CENTROID__SHIFT 24 > +static inline uint32_t A5XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_CENTROID(uint32_t val) > +{ > + return ((val) << A5XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_CENTROID__SHIFT) & A5XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_CENTROID__MASK; > } > > #define REG_A5XX_HLSQ_CONTROL_4_REG 0x0000e788 > +#define A5XX_HLSQ_CONTROL_4_REG_IJ_PERSP_SAMPLE__MASK 0x000000ff > +#define A5XX_HLSQ_CONTROL_4_REG_IJ_PERSP_SAMPLE__SHIFT 0 > +static inline uint32_t A5XX_HLSQ_CONTROL_4_REG_IJ_PERSP_SAMPLE(uint32_t val) > +{ > + return ((val) << A5XX_HLSQ_CONTROL_4_REG_IJ_PERSP_SAMPLE__SHIFT) & A5XX_HLSQ_CONTROL_4_REG_IJ_PERSP_SAMPLE__MASK; > +} > +#define A5XX_HLSQ_CONTROL_4_REG_IJ_LINEAR_SAMPLE__MASK 0x0000ff00 > +#define A5XX_HLSQ_CONTROL_4_REG_IJ_LINEAR_SAMPLE__SHIFT 8 > +static inline uint32_t A5XX_HLSQ_CONTROL_4_REG_IJ_LINEAR_SAMPLE(uint32_t val) > +{ > + return ((val) << A5XX_HLSQ_CONTROL_4_REG_IJ_LINEAR_SAMPLE__SHIFT) & A5XX_HLSQ_CONTROL_4_REG_IJ_LINEAR_SAMPLE__MASK; > +} > #define A5XX_HLSQ_CONTROL_4_REG_XYCOORDREGID__MASK 0x00ff0000 > #define A5XX_HLSQ_CONTROL_4_REG_XYCOORDREGID__SHIFT 16 > static inline uint32_t A5XX_HLSQ_CONTROL_4_REG_XYCOORDREGID(uint32_t val) > @@ -4855,10 +4894,26 @@ static inline uint32_t A5XX_RB_2D_DST_SIZE_ARRAY_PITCH(uint32_t val) > > #define REG_A5XX_RB_2D_SRC_FLAGS_HI 0x00002141 > > +#define REG_A5XX_RB_2D_SRC_FLAGS_PITCH 0x00002142 > +#define A5XX_RB_2D_SRC_FLAGS_PITCH__MASK 0xffffffff > +#define A5XX_RB_2D_SRC_FLAGS_PITCH__SHIFT 0 > +static inline uint32_t A5XX_RB_2D_SRC_FLAGS_PITCH(uint32_t val) > +{ > + return ((val >> 6) << A5XX_RB_2D_SRC_FLAGS_PITCH__SHIFT) & A5XX_RB_2D_SRC_FLAGS_PITCH__MASK; > +} > + > #define REG_A5XX_RB_2D_DST_FLAGS_LO 0x00002143 > > #define REG_A5XX_RB_2D_DST_FLAGS_HI 0x00002144 > > +#define REG_A5XX_RB_2D_DST_FLAGS_PITCH 0x00002145 > +#define A5XX_RB_2D_DST_FLAGS_PITCH__MASK 0xffffffff > +#define A5XX_RB_2D_DST_FLAGS_PITCH__SHIFT 0 > +static inline uint32_t A5XX_RB_2D_DST_FLAGS_PITCH(uint32_t val) > +{ > + return ((val >> 6) << A5XX_RB_2D_DST_FLAGS_PITCH__SHIFT) & A5XX_RB_2D_DST_FLAGS_PITCH__MASK; > +} > + > #define REG_A5XX_GRAS_2D_BLIT_CNTL 0x00002180 > > #define REG_A5XX_GRAS_2D_SRC_INFO 0x00002181 > @@ -5085,6 +5140,13 @@ static inline uint32_t A5XX_TEX_CONST_3_ARRAY_PITCH(uint32_t val) > { > return ((val >> 12) << A5XX_TEX_CONST_3_ARRAY_PITCH__SHIFT) & A5XX_TEX_CONST_3_ARRAY_PITCH__MASK; > } > +#define A5XX_TEX_CONST_3_MIN_LAYERSZ__MASK 0x07800000 > +#define A5XX_TEX_CONST_3_MIN_LAYERSZ__SHIFT 23 > +static inline uint32_t A5XX_TEX_CONST_3_MIN_LAYERSZ(uint32_t val) > +{ > + return ((val >> 12) << A5XX_TEX_CONST_3_MIN_LAYERSZ__SHIFT) & A5XX_TEX_CONST_3_MIN_LAYERSZ__MASK; > +} > +#define A5XX_TEX_CONST_3_TILE_ALL 0x08000000 > #define A5XX_TEX_CONST_3_FLAG 0x10000000 > > #define REG_A5XX_TEX_CONST_4 0x00000004 > @@ -5197,5 +5259,21 @@ static inline uint32_t A5XX_SSBO_2_1_BASE_HI(uint32_t val) > return ((val) << A5XX_SSBO_2_1_BASE_HI__SHIFT) & A5XX_SSBO_2_1_BASE_HI__MASK; > } > > +#define REG_A5XX_UBO_0 0x00000000 > +#define A5XX_UBO_0_BASE_LO__MASK 0xffffffff > +#define A5XX_UBO_0_BASE_LO__SHIFT 0 > +static inline uint32_t A5XX_UBO_0_BASE_LO(uint32_t val) > +{ > + return ((val) << A5XX_UBO_0_BASE_LO__SHIFT) & A5XX_UBO_0_BASE_LO__MASK; > +} > + > +#define REG_A5XX_UBO_1 0x00000001 > +#define A5XX_UBO_1_BASE_HI__MASK 0x0001ffff > +#define A5XX_UBO_1_BASE_HI__SHIFT 0 > +static inline uint32_t A5XX_UBO_1_BASE_HI(uint32_t val) > +{ > + return ((val) << A5XX_UBO_1_BASE_HI__SHIFT) & A5XX_UBO_1_BASE_HI__MASK; > +} > + > > #endif /* A5XX_XML */ > diff --git a/drivers/gpu/drm/msm/adreno/a6xx.xml.h b/drivers/gpu/drm/msm/adreno/a6xx.xml.h > index 47840b73cdda..0e341b082db8 100644 > --- a/drivers/gpu/drm/msm/adreno/a6xx.xml.h > +++ b/drivers/gpu/drm/msm/adreno/a6xx.xml.h > @@ -8,19 +8,21 @@ This file was generated by the rules-ng-ng headergen tool in this git repository > 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 ( 42463 bytes, from 2018-11-19 13:44:03) > -- /home/robclark/src/envytools/rnndb/adreno/adreno_common.xml ( 14201 bytes, from 2018-12-02 17:29:54) > -- /home/robclark/src/envytools/rnndb/adreno/adreno_pm4.xml ( 43052 bytes, from 2018-12-02 17:29:54) > -- /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-12-02 17:29:54) > -- /home/smasetty/playarea/envytools/rnndb/adreno/a6xx.xml ( 161969 bytes, from 2019-11-29 07:18:16) > -- /home/robclark/src/envytools/rnndb/adreno/a6xx_gmu.xml ( 10431 bytes, from 2018-09-14 13:03:07) > -- /home/robclark/src/envytools/rnndb/adreno/ocmem.xml ( 1773 bytes, from 2018-07-03 19:37:13) > - > -Copyright (C) 2013-2019 by the following authors: > +- /home/robclark/src/envytools/rnndb/adreno.xml ( 594 bytes, from 2020-06-21 22:29:16) > +- /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 ( 89649 bytes, from 2020-07-04 19:55:04) > +- /home/robclark/src/envytools/rnndb/adreno/adreno_common.xml ( 14239 bytes, from 2020-07-04 19:55:04) > +- /home/robclark/src/envytools/rnndb/adreno/adreno_pm4.xml ( 63258 bytes, from 2020-07-07 19:26:50) > +- /home/robclark/src/envytools/rnndb/adreno/a3xx.xml ( 84246 bytes, from 2020-07-04 19:55:04) > +- /home/robclark/src/envytools/rnndb/adreno/a4xx.xml ( 112247 bytes, from 2020-07-04 19:55:04) > +- /home/robclark/src/envytools/rnndb/adreno/a5xx.xml ( 148499 bytes, from 2020-07-04 20:00:49) > +- /home/robclark/src/envytools/rnndb/adreno/a6xx.xml ( 174474 bytes, from 2020-07-04 20:56:59) > +- /home/robclark/src/envytools/rnndb/adreno/a6xx_gmu.xml ( 10768 bytes, from 2020-05-20 19:42:03) > +- /home/robclark/src/envytools/rnndb/adreno/ocmem.xml ( 1773 bytes, from 2018-07-03 19:37:13) > +- /home/robclark/src/envytools/rnndb/adreno/adreno_control_regs.xml ( 4559 bytes, from 2020-06-21 22:29:16) > +- /home/robclark/src/envytools/rnndb/adreno/adreno_pipe_regs.xml ( 2872 bytes, from 2020-06-21 22:29:43) > + > +Copyright (C) 2013-2020 by the following authors: > - Rob Clark <robdclark@gmail.com> (robclark) > - Ilia Mirkin <imirkin@alum.mit.edu> (imirkin) > > @@ -46,219 +48,134 @@ 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_format { > + FMT6_A8_UNORM = 2, > + FMT6_8_UNORM = 3, > + FMT6_8_SNORM = 4, > + FMT6_8_UINT = 5, > + FMT6_8_SINT = 6, > + FMT6_4_4_4_4_UNORM = 8, > + FMT6_5_5_5_1_UNORM = 10, > + FMT6_1_5_5_5_UNORM = 12, > + FMT6_5_6_5_UNORM = 14, > + FMT6_8_8_UNORM = 15, > + FMT6_8_8_SNORM = 16, > + FMT6_8_8_UINT = 17, > + FMT6_8_8_SINT = 18, > + FMT6_L8_A8_UNORM = 19, > + FMT6_16_UNORM = 21, > + FMT6_16_SNORM = 22, > + FMT6_16_FLOAT = 23, > + FMT6_16_UINT = 24, > + FMT6_16_SINT = 25, > + FMT6_8_8_8_UNORM = 33, > + FMT6_8_8_8_SNORM = 34, > + FMT6_8_8_8_UINT = 35, > + FMT6_8_8_8_SINT = 36, > + FMT6_8_8_8_8_UNORM = 48, > + FMT6_8_8_8_X8_UNORM = 49, > + FMT6_8_8_8_8_SNORM = 50, > + FMT6_8_8_8_8_UINT = 51, > + FMT6_8_8_8_8_SINT = 52, > + FMT6_9_9_9_E5_FLOAT = 53, > + FMT6_10_10_10_2_UNORM = 54, > + FMT6_10_10_10_2_UNORM_DEST = 55, > + FMT6_10_10_10_2_SNORM = 57, > + FMT6_10_10_10_2_UINT = 58, > + FMT6_10_10_10_2_SINT = 59, > + FMT6_11_11_10_FLOAT = 66, > + FMT6_16_16_UNORM = 67, > + FMT6_16_16_SNORM = 68, > + FMT6_16_16_FLOAT = 69, > + FMT6_16_16_UINT = 70, > + FMT6_16_16_SINT = 71, > + FMT6_32_UNORM = 72, > + FMT6_32_SNORM = 73, > + FMT6_32_FLOAT = 74, > + FMT6_32_UINT = 75, > + FMT6_32_SINT = 76, > + FMT6_32_FIXED = 77, > + FMT6_16_16_16_UNORM = 88, > + FMT6_16_16_16_SNORM = 89, > + FMT6_16_16_16_FLOAT = 90, > + FMT6_16_16_16_UINT = 91, > + FMT6_16_16_16_SINT = 92, > + FMT6_16_16_16_16_UNORM = 96, > + FMT6_16_16_16_16_SNORM = 97, > + FMT6_16_16_16_16_FLOAT = 98, > + FMT6_16_16_16_16_UINT = 99, > + FMT6_16_16_16_16_SINT = 100, > + FMT6_32_32_UNORM = 101, > + FMT6_32_32_SNORM = 102, > + FMT6_32_32_FLOAT = 103, > + FMT6_32_32_UINT = 104, > + FMT6_32_32_SINT = 105, > + FMT6_32_32_FIXED = 106, > + FMT6_32_32_32_UNORM = 112, > + FMT6_32_32_32_SNORM = 113, > + FMT6_32_32_32_UINT = 114, > + FMT6_32_32_32_SINT = 115, > + FMT6_32_32_32_FLOAT = 116, > + FMT6_32_32_32_FIXED = 117, > + FMT6_32_32_32_32_UNORM = 128, > + FMT6_32_32_32_32_SNORM = 129, > + FMT6_32_32_32_32_FLOAT = 130, > + FMT6_32_32_32_32_UINT = 131, > + FMT6_32_32_32_32_SINT = 132, > + FMT6_32_32_32_32_FIXED = 133, > + FMT6_G8R8B8R8_422_UNORM = 140, > + FMT6_R8G8R8B8_422_UNORM = 141, > + FMT6_R8_G8B8_2PLANE_420_UNORM = 142, > + FMT6_R8_G8_B8_3PLANE_420_UNORM = 144, > + FMT6_Z24_UNORM_S8_UINT_AS_R8G8B8A8 = 145, > + FMT6_8_PLANE_UNORM = 148, > + FMT6_Z24_UNORM_S8_UINT = 160, > + FMT6_ETC2_RG11_UNORM = 171, > + FMT6_ETC2_RG11_SNORM = 172, > + FMT6_ETC2_R11_UNORM = 173, > + FMT6_ETC2_R11_SNORM = 174, > + FMT6_ETC1 = 175, > + FMT6_ETC2_RGB8 = 176, > + FMT6_ETC2_RGBA8 = 177, > + FMT6_ETC2_RGB8A1 = 178, > + FMT6_DXT1 = 179, > + FMT6_DXT3 = 180, > + FMT6_DXT5 = 181, > + FMT6_RGTC1_UNORM = 183, > + FMT6_RGTC1_SNORM = 184, > + FMT6_RGTC2_UNORM = 187, > + FMT6_RGTC2_SNORM = 188, > + FMT6_BPTC_UFLOAT = 190, > + FMT6_BPTC_FLOAT = 191, > + FMT6_BPTC = 192, > + FMT6_ASTC_4x4 = 193, > + FMT6_ASTC_5x4 = 194, > + FMT6_ASTC_5x5 = 195, > + FMT6_ASTC_6x5 = 196, > + FMT6_ASTC_6x6 = 197, > + FMT6_ASTC_8x5 = 198, > + FMT6_ASTC_8x6 = 199, > + FMT6_ASTC_8x8 = 200, > + FMT6_ASTC_10x5 = 201, > + FMT6_ASTC_10x6 = 202, > + FMT6_ASTC_10x8 = 203, > + FMT6_ASTC_10x10 = 204, > + FMT6_ASTC_12x10 = 205, > + FMT6_ASTC_12x12 = 206, > + FMT6_S8Z24_UINT = 234, > + FMT6_NONE = 255, > }; > > -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_polygon_mode { > + POLYMODE6_POINTS = 1, > + POLYMODE6_LINES = 2, > + POLYMODE6_TRIANGLES = 3, > }; > > enum a6xx_depth_format { > @@ -951,10 +868,57 @@ enum a6xx_cmp_perfcounter_select { > PERF_CMPDECMP_2D_PIXELS = 39, > }; > > +enum a6xx_2d_ifmt { > + R2D_UNORM8 = 16, > + R2D_INT32 = 7, > + R2D_INT16 = 6, > + R2D_INT8 = 5, > + R2D_FLOAT32 = 4, > + R2D_FLOAT16 = 3, > + R2D_UNORM8_SRGB = 1, > + R2D_RAW = 0, > +}; > + > +enum a6xx_ztest_mode { > + A6XX_EARLY_Z = 0, > + A6XX_LATE_Z = 1, > + A6XX_EARLY_LRZ_LATE_Z = 2, > +}; > + > +enum a6xx_layer_type { > + LAYER_MULTISAMPLE_ARRAY = 0, > + LAYER_3D = 1, > + LAYER_CUBEMAP = 2, > + LAYER_2D_ARRAY = 3, > +}; > + > +enum a6xx_rotation { > + ROTATE_0 = 0, > + ROTATE_90 = 1, > + ROTATE_180 = 2, > + ROTATE_270 = 3, > + ROTATE_HFLIP = 4, > + ROTATE_VFLIP = 5, > +}; > + > +enum a6xx_tess_spacing { > + TESS_EQUAL = 0, > + TESS_FRACTIONAL_ODD = 2, > + TESS_FRACTIONAL_EVEN = 3, > +}; > + > +enum a6xx_tess_output { > + TESS_POINTS = 0, > + TESS_LINES = 1, > + TESS_CW_TRIS = 2, > + TESS_CCW_TRIS = 3, > +}; > + > enum a6xx_tex_filter { > A6XX_TEX_NEAREST = 0, > A6XX_TEX_LINEAR = 1, > A6XX_TEX_ANISO = 2, > + A6XX_TEX_CUBIC = 3, > }; > > enum a6xx_tex_clamp { > @@ -973,6 +937,12 @@ enum a6xx_tex_aniso { > A6XX_TEX_ANISO_16 = 4, > }; > > +enum a6xx_reduction_mode { > + A6XX_REDUCTION_MODE_AVERAGE = 0, > + A6XX_REDUCTION_MODE_MIN = 1, > + A6XX_REDUCTION_MODE_MAX = 2, > +}; > + > enum a6xx_tex_swiz { > A6XX_TEX_X = 0, > A6XX_TEX_Y = 1, > @@ -1035,6 +1005,9 @@ enum a6xx_tex_type { > > #define REG_A6XX_CP_SQE_CNTL 0x00000808 > > +#define REG_A6XX_CP_CP2GMU_STATUS 0x00000812 > +#define A6XX_CP_CP2GMU_STATUS_IFPC 0x00000001 > + > #define REG_A6XX_CP_HW_FAULT 0x00000821 > > #define REG_A6XX_CP_INTERRUPT_STATUS 0x00000823 > @@ -1050,8 +1023,44 @@ enum a6xx_tex_type { > #define REG_A6XX_CP_APRIV_CNTL 0x00000844 > > #define REG_A6XX_CP_ROQ_THRESHOLDS_1 0x000008c1 > +#define A6XX_CP_ROQ_THRESHOLDS_1_RB_LO__MASK 0x000000ff > +#define A6XX_CP_ROQ_THRESHOLDS_1_RB_LO__SHIFT 0 > +static inline uint32_t A6XX_CP_ROQ_THRESHOLDS_1_RB_LO(uint32_t val) > +{ > + return ((val >> 2) << A6XX_CP_ROQ_THRESHOLDS_1_RB_LO__SHIFT) & A6XX_CP_ROQ_THRESHOLDS_1_RB_LO__MASK; > +} > +#define A6XX_CP_ROQ_THRESHOLDS_1_RB_HI__MASK 0x0000ff00 > +#define A6XX_CP_ROQ_THRESHOLDS_1_RB_HI__SHIFT 8 > +static inline uint32_t A6XX_CP_ROQ_THRESHOLDS_1_RB_HI(uint32_t val) > +{ > + return ((val >> 2) << A6XX_CP_ROQ_THRESHOLDS_1_RB_HI__SHIFT) & A6XX_CP_ROQ_THRESHOLDS_1_RB_HI__MASK; > +} > +#define A6XX_CP_ROQ_THRESHOLDS_1_IB1_START__MASK 0x00ff0000 > +#define A6XX_CP_ROQ_THRESHOLDS_1_IB1_START__SHIFT 16 > +static inline uint32_t A6XX_CP_ROQ_THRESHOLDS_1_IB1_START(uint32_t val) > +{ > + return ((val >> 2) << A6XX_CP_ROQ_THRESHOLDS_1_IB1_START__SHIFT) & A6XX_CP_ROQ_THRESHOLDS_1_IB1_START__MASK; > +} > +#define A6XX_CP_ROQ_THRESHOLDS_1_IB2_START__MASK 0xff000000 > +#define A6XX_CP_ROQ_THRESHOLDS_1_IB2_START__SHIFT 24 > +static inline uint32_t A6XX_CP_ROQ_THRESHOLDS_1_IB2_START(uint32_t val) > +{ > + return ((val >> 2) << A6XX_CP_ROQ_THRESHOLDS_1_IB2_START__SHIFT) & A6XX_CP_ROQ_THRESHOLDS_1_IB2_START__MASK; > +} > > #define REG_A6XX_CP_ROQ_THRESHOLDS_2 0x000008c2 > +#define A6XX_CP_ROQ_THRESHOLDS_2_SDS_START__MASK 0x000001ff > +#define A6XX_CP_ROQ_THRESHOLDS_2_SDS_START__SHIFT 0 > +static inline uint32_t A6XX_CP_ROQ_THRESHOLDS_2_SDS_START(uint32_t val) > +{ > + return ((val >> 2) << A6XX_CP_ROQ_THRESHOLDS_2_SDS_START__SHIFT) & A6XX_CP_ROQ_THRESHOLDS_2_SDS_START__MASK; > +} > +#define A6XX_CP_ROQ_THRESHOLDS_2_ROQ_SIZE__MASK 0xffff0000 > +#define A6XX_CP_ROQ_THRESHOLDS_2_ROQ_SIZE__SHIFT 16 > +static inline uint32_t A6XX_CP_ROQ_THRESHOLDS_2_ROQ_SIZE(uint32_t val) > +{ > + return ((val >> 2) << A6XX_CP_ROQ_THRESHOLDS_2_ROQ_SIZE__SHIFT) & A6XX_CP_ROQ_THRESHOLDS_2_ROQ_SIZE__MASK; > +} > > #define REG_A6XX_CP_MEM_POOL_SIZE 0x000008c3 > > @@ -1170,6 +1179,36 @@ static inline uint32_t A6XX_CP_PROTECT_REG_MASK_LEN(uint32_t val) > > #define REG_A6XX_CP_IB2_REM_SIZE 0x0000092d > > +#define REG_A6XX_CP_SDS_BASE 0x0000092e > + > +#define REG_A6XX_CP_SDS_BASE_HI 0x0000092f > + > +#define REG_A6XX_CP_SDS_REM_SIZE 0x0000092e > + > +#define REG_A6XX_CP_BIN_SIZE_ADDRESS 0x00000931 > + > +#define REG_A6XX_CP_BIN_SIZE_ADDRESS_HI 0x00000932 > + > +#define REG_A6XX_CP_BIN_DATA_ADDR 0x00000934 > + > +#define REG_A6XX_CP_BIN_DATA_ADDR_HI 0x00000935 > + > +#define REG_A6XX_CP_CSQ_IB1_STAT 0x00000949 > +#define A6XX_CP_CSQ_IB1_STAT_REM__MASK 0xffff0000 > +#define A6XX_CP_CSQ_IB1_STAT_REM__SHIFT 16 > +static inline uint32_t A6XX_CP_CSQ_IB1_STAT_REM(uint32_t val) > +{ > + return ((val) << A6XX_CP_CSQ_IB1_STAT_REM__SHIFT) & A6XX_CP_CSQ_IB1_STAT_REM__MASK; > +} > + > +#define REG_A6XX_CP_CSQ_IB2_STAT 0x0000094a > +#define A6XX_CP_CSQ_IB2_STAT_REM__MASK 0xffff0000 > +#define A6XX_CP_CSQ_IB2_STAT_REM__SHIFT 16 > +static inline uint32_t A6XX_CP_CSQ_IB2_STAT_REM(uint32_t val) > +{ > + return ((val) << A6XX_CP_CSQ_IB2_STAT_REM__SHIFT) & A6XX_CP_CSQ_IB2_STAT_REM__MASK; > +} > + > #define REG_A6XX_CP_ALWAYS_ON_COUNTER_LO 0x00000980 > > #define REG_A6XX_CP_ALWAYS_ON_COUNTER_HI 0x00000981 > @@ -1211,6 +1250,7 @@ static inline uint32_t A6XX_CP_PROTECT_REG_MASK_LEN(uint32_t val) > #define A6XX_RBBM_STATUS_CP_AHB_BUSY_CX_MASTER 0x00000001 > > #define REG_A6XX_RBBM_STATUS3 0x00000213 > +#define A6XX_RBBM_STATUS3_SMMU_STALLED_ON_FAULT 0x01000000 > > #define REG_A6XX_RBBM_VBIF_GX_RESET_STATUS 0x00000215 > > @@ -1428,18 +1468,6 @@ static inline uint32_t A6XX_CP_PROTECT_REG_MASK_LEN(uint32_t val) > > #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 > @@ -1752,6 +1780,50 @@ static inline uint32_t A6XX_CP_PROTECT_REG_MASK_LEN(uint32_t val) > > #define REG_A6XX_RBBM_ISDB_CNT 0x00000533 > > +#define REG_A6XX_RBBM_PRIMCTR_0_LO 0x00000540 > + > +#define REG_A6XX_RBBM_PRIMCTR_0_HI 0x00000541 > + > +#define REG_A6XX_RBBM_PRIMCTR_1_LO 0x00000542 > + > +#define REG_A6XX_RBBM_PRIMCTR_1_HI 0x00000543 > + > +#define REG_A6XX_RBBM_PRIMCTR_2_LO 0x00000544 > + > +#define REG_A6XX_RBBM_PRIMCTR_2_HI 0x00000545 > + > +#define REG_A6XX_RBBM_PRIMCTR_3_LO 0x00000546 > + > +#define REG_A6XX_RBBM_PRIMCTR_3_HI 0x00000547 > + > +#define REG_A6XX_RBBM_PRIMCTR_4_LO 0x00000548 > + > +#define REG_A6XX_RBBM_PRIMCTR_4_HI 0x00000549 > + > +#define REG_A6XX_RBBM_PRIMCTR_5_LO 0x0000054a > + > +#define REG_A6XX_RBBM_PRIMCTR_5_HI 0x0000054b > + > +#define REG_A6XX_RBBM_PRIMCTR_6_LO 0x0000054c > + > +#define REG_A6XX_RBBM_PRIMCTR_6_HI 0x0000054d > + > +#define REG_A6XX_RBBM_PRIMCTR_7_LO 0x0000054e > + > +#define REG_A6XX_RBBM_PRIMCTR_7_HI 0x0000054f > + > +#define REG_A6XX_RBBM_PRIMCTR_8_LO 0x00000550 > + > +#define REG_A6XX_RBBM_PRIMCTR_8_HI 0x00000551 > + > +#define REG_A6XX_RBBM_PRIMCTR_9_LO 0x00000552 > + > +#define REG_A6XX_RBBM_PRIMCTR_9_HI 0x00000553 > + > +#define REG_A6XX_RBBM_PRIMCTR_10_LO 0x00000554 > + > +#define REG_A6XX_RBBM_PRIMCTR_10_HI 0x00000555 > + > #define REG_A6XX_RBBM_SECVID_TRUST_CNTL 0x0000f400 > > #define REG_A6XX_RBBM_SECVID_TSB_TRUSTED_BASE_LO 0x0000f800 > @@ -1768,6 +1840,9 @@ static inline uint32_t A6XX_CP_PROTECT_REG_MASK_LEN(uint32_t val) > > #define REG_A6XX_RBBM_GBIF_CLIENT_QOS_CNTL 0x00000011 > > +#define REG_A6XX_RBBM_WAIT_FOR_GPU_IDLE_CMD 0x0000001c > +#define A6XX_RBBM_WAIT_FOR_GPU_IDLE_CMD_WAIT_GPU_IDLE 0x00000001 > + > #define REG_A6XX_RBBM_INTERFACE_HANG_INT_CNTL 0x0000001f > > #define REG_A6XX_RBBM_INT_CLEAR_CMD 0x00000037 > @@ -2670,9 +2745,11 @@ static inline uint32_t A6XX_VSC_BIN_SIZE_HEIGHT(uint32_t val) > 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_DRAW_STRM_SIZE_ADDRESS_LO 0x00000c03 > + > +#define REG_A6XX_VSC_DRAW_STRM_SIZE_ADDRESS_HI 0x00000c04 > > -#define REG_A6XX_VSC_SIZE_ADDRESS_HI 0x00000c04 > +#define REG_A6XX_VSC_DRAW_STRM_SIZE_ADDRESS 0x00000c03 > > #define REG_A6XX_VSC_BIN_COUNT 0x00000c06 > #define A6XX_VSC_BIN_COUNT_NX__MASK 0x000007fe > @@ -2716,53 +2793,70 @@ 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_PIPE_DATA2_ADDRESS_LO 0x00000c30 > +#define REG_A6XX_VSC_PRIM_STRM_ADDRESS_LO 0x00000c30 > > -#define REG_A6XX_VSC_PIPE_DATA2_ADDRESS_HI 0x00000c31 > +#define REG_A6XX_VSC_PRIM_STRM_ADDRESS_HI 0x00000c31 > > -#define REG_A6XX_VSC_PIPE_DATA2_PITCH 0x00000c32 > +#define REG_A6XX_VSC_PRIM_STRM_ADDRESS 0x00000c30 > > -#define REG_A6XX_VSC_PIPE_DATA2_ARRAY_PITCH 0x00000c33 > -#define A6XX_VSC_PIPE_DATA2_ARRAY_PITCH__MASK 0xffffffff > -#define A6XX_VSC_PIPE_DATA2_ARRAY_PITCH__SHIFT 0 > -static inline uint32_t A6XX_VSC_PIPE_DATA2_ARRAY_PITCH(uint32_t val) > -{ > - return ((val >> 4) << A6XX_VSC_PIPE_DATA2_ARRAY_PITCH__SHIFT) & A6XX_VSC_PIPE_DATA2_ARRAY_PITCH__MASK; > -} > +#define REG_A6XX_VSC_PRIM_STRM_PITCH 0x00000c32 > > -#define REG_A6XX_VSC_PIPE_DATA_ADDRESS_LO 0x00000c34 > +#define REG_A6XX_VSC_PRIM_STRM_LIMIT 0x00000c33 > > -#define REG_A6XX_VSC_PIPE_DATA_ADDRESS_HI 0x00000c35 > +#define REG_A6XX_VSC_DRAW_STRM_ADDRESS_LO 0x00000c34 > > -#define REG_A6XX_VSC_PIPE_DATA_PITCH 0x00000c36 > +#define REG_A6XX_VSC_DRAW_STRM_ADDRESS_HI 0x00000c35 > > -#define REG_A6XX_VSC_PIPE_DATA_ARRAY_PITCH 0x00000c37 > -#define A6XX_VSC_PIPE_DATA_ARRAY_PITCH__MASK 0xffffffff > -#define A6XX_VSC_PIPE_DATA_ARRAY_PITCH__SHIFT 0 > -static inline uint32_t A6XX_VSC_PIPE_DATA_ARRAY_PITCH(uint32_t val) > -{ > - return ((val >> 4) << A6XX_VSC_PIPE_DATA_ARRAY_PITCH__SHIFT) & A6XX_VSC_PIPE_DATA_ARRAY_PITCH__MASK; > -} > +#define REG_A6XX_VSC_DRAW_STRM_ADDRESS 0x00000c34 > + > +#define REG_A6XX_VSC_DRAW_STRM_PITCH 0x00000c36 > + > +#define REG_A6XX_VSC_DRAW_STRM_LIMIT 0x00000c37 > + > +static inline uint32_t REG_A6XX_VSC_STATE(uint32_t i0) { return 0x00000c38 + 0x1*i0; } > + > +static inline uint32_t REG_A6XX_VSC_STATE_REG(uint32_t i0) { return 0x00000c38 + 0x1*i0; } > > -static inline uint32_t REG_A6XX_VSC_SIZE(uint32_t i0) { return 0x00000c78 + 0x1*i0; } > +static inline uint32_t REG_A6XX_VSC_PRIM_STRM_SIZE(uint32_t i0) { return 0x00000c58 + 0x1*i0; } > > -static inline uint32_t REG_A6XX_VSC_SIZE_REG(uint32_t i0) { return 0x00000c78 + 0x1*i0; } > +static inline uint32_t REG_A6XX_VSC_PRIM_STRM_SIZE_REG(uint32_t i0) { return 0x00000c58 + 0x1*i0; } > + > +static inline uint32_t REG_A6XX_VSC_DRAW_STRM_SIZE(uint32_t i0) { return 0x00000c78 + 0x1*i0; } > + > +static inline uint32_t REG_A6XX_VSC_DRAW_STRM_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_CL_CNTL 0x00008000 > +#define A6XX_GRAS_CL_CNTL_CLIP_DISABLE 0x00000001 > +#define A6XX_GRAS_CL_CNTL_ZNEAR_CLIP_DISABLE 0x00000002 > +#define A6XX_GRAS_CL_CNTL_ZFAR_CLIP_DISABLE 0x00000004 > +#define A6XX_GRAS_CL_CNTL_UNK5 0x00000020 > +#define A6XX_GRAS_CL_CNTL_ZERO_GB_SCALE_Z 0x00000040 > +#define A6XX_GRAS_CL_CNTL_VP_CLIP_CODE_IGNORE 0x00000080 > +#define A6XX_GRAS_CL_CNTL_VP_XFORM_DISABLE 0x00000100 > +#define A6XX_GRAS_CL_CNTL_PERSP_DIVISION_DISABLE 0x00000200 > > #define REG_A6XX_GRAS_UNKNOWN_8001 0x00008001 > > -#define REG_A6XX_GRAS_UNKNOWN_8004 0x00008004 > +#define REG_A6XX_GRAS_UNKNOWN_8002 0x00008002 > + > +#define REG_A6XX_GRAS_UNKNOWN_8003 0x00008003 > + > +#define REG_A6XX_GRAS_MAX_LAYER_INDEX 0x00008004 > > #define REG_A6XX_GRAS_CNTL 0x00008005 > -#define A6XX_GRAS_CNTL_VARYING 0x00000001 > -#define A6XX_GRAS_CNTL_UNK3 0x00000008 > -#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 A6XX_GRAS_CNTL_IJ_PERSP_PIXEL 0x00000001 > +#define A6XX_GRAS_CNTL_IJ_PERSP_CENTROID 0x00000002 > +#define A6XX_GRAS_CNTL_IJ_PERSP_SAMPLE 0x00000004 > +#define A6XX_GRAS_CNTL_SIZE 0x00000008 > +#define A6XX_GRAS_CNTL_SIZE_PERSAMP 0x00000020 > +#define A6XX_GRAS_CNTL_COORD_MASK__MASK 0x000003c0 > +#define A6XX_GRAS_CNTL_COORD_MASK__SHIFT 6 > +static inline uint32_t A6XX_GRAS_CNTL_COORD_MASK(uint32_t val) > +{ > + return ((val) << A6XX_GRAS_CNTL_COORD_MASK__SHIFT) & A6XX_GRAS_CNTL_COORD_MASK__MASK; > +} > > #define REG_A6XX_GRAS_CL_GUARDBAND_CLIP_ADJ 0x00008006 > #define A6XX_GRAS_CL_GUARDBAND_CLIP_ADJ_HORZ__MASK 0x000003ff > @@ -2826,6 +2920,22 @@ 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_CL_Z_CLAMP_MIN 0x00008070 > +#define A6XX_GRAS_CL_Z_CLAMP_MIN__MASK 0xffffffff > +#define A6XX_GRAS_CL_Z_CLAMP_MIN__SHIFT 0 > +static inline uint32_t A6XX_GRAS_CL_Z_CLAMP_MIN(float val) > +{ > + return ((fui(val)) << A6XX_GRAS_CL_Z_CLAMP_MIN__SHIFT) & A6XX_GRAS_CL_Z_CLAMP_MIN__MASK; > +} > + > +#define REG_A6XX_GRAS_CL_Z_CLAMP_MAX 0x00008071 > +#define A6XX_GRAS_CL_Z_CLAMP_MAX__MASK 0xffffffff > +#define A6XX_GRAS_CL_Z_CLAMP_MAX__SHIFT 0 > +static inline uint32_t A6XX_GRAS_CL_Z_CLAMP_MAX(float val) > +{ > + return ((fui(val)) << A6XX_GRAS_CL_Z_CLAMP_MAX__SHIFT) & A6XX_GRAS_CL_Z_CLAMP_MAX__MASK; > +} > + > #define REG_A6XX_GRAS_SU_CNTL 0x00008090 > #define A6XX_GRAS_SU_CNTL_CULL_FRONT 0x00000001 > #define A6XX_GRAS_SU_CNTL_CULL_BACK 0x00000002 > @@ -2862,7 +2972,12 @@ static inline uint32_t A6XX_GRAS_SU_POINT_SIZE(float val) > } > > #define REG_A6XX_GRAS_SU_DEPTH_PLANE_CNTL 0x00008094 > -#define A6XX_GRAS_SU_DEPTH_PLANE_CNTL_FRAG_WRITES_Z 0x00000001 > +#define A6XX_GRAS_SU_DEPTH_PLANE_CNTL_Z_MODE__MASK 0x00000003 > +#define A6XX_GRAS_SU_DEPTH_PLANE_CNTL_Z_MODE__SHIFT 0 > +static inline uint32_t A6XX_GRAS_SU_DEPTH_PLANE_CNTL_Z_MODE(enum a6xx_ztest_mode val) > +{ > + return ((val) << A6XX_GRAS_SU_DEPTH_PLANE_CNTL_Z_MODE__SHIFT) & A6XX_GRAS_SU_DEPTH_PLANE_CNTL_Z_MODE__MASK; > +} > > #define REG_A6XX_GRAS_SU_POLY_OFFSET_SCALE 0x00008095 > #define A6XX_GRAS_SU_POLY_OFFSET_SCALE__MASK 0xffffffff > @@ -2900,6 +3015,11 @@ static inline uint32_t A6XX_GRAS_SU_DEPTH_BUFFER_INFO_DEPTH_FORMAT(enum a6xx_dep > > #define REG_A6XX_GRAS_UNKNOWN_809B 0x0000809b > > +#define REG_A6XX_GRAS_UNKNOWN_809C 0x0000809c > +#define A6XX_GRAS_UNKNOWN_809C_GS_WRITES_LAYER 0x00000001 > + > +#define REG_A6XX_GRAS_UNKNOWN_809D 0x0000809d > + > #define REG_A6XX_GRAS_UNKNOWN_80A0 0x000080a0 > > #define REG_A6XX_GRAS_RAS_MSAA_CNTL 0x000080a2 > @@ -2919,11 +3039,108 @@ static inline uint32_t A6XX_GRAS_DEST_MSAA_CNTL_SAMPLES(enum a3xx_msaa_samples v > } > #define A6XX_GRAS_DEST_MSAA_CNTL_MSAA_DISABLE 0x00000004 > > -#define REG_A6XX_GRAS_UNKNOWN_80A4 0x000080a4 > +#define REG_A6XX_GRAS_SAMPLE_CONFIG 0x000080a4 > +#define A6XX_GRAS_SAMPLE_CONFIG_LOCATION_ENABLE 0x00000002 > > -#define REG_A6XX_GRAS_UNKNOWN_80A5 0x000080a5 > +#define REG_A6XX_GRAS_SAMPLE_LOCATION_0 0x000080a5 > +#define A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_0_X__MASK 0x0000000f > +#define A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_0_X__SHIFT 0 > +static inline uint32_t A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_0_X(float val) > +{ > + return ((((int32_t)(val * 1.0))) << A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_0_X__SHIFT) & A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_0_X__MASK; > +} > +#define A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_0_Y__MASK 0x000000f0 > +#define A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_0_Y__SHIFT 4 > +static inline uint32_t A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_0_Y(float val) > +{ > + return ((((int32_t)(val * 1.0))) << A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_0_Y__SHIFT) & A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_0_Y__MASK; > +} > +#define A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_1_X__MASK 0x00000f00 > +#define A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_1_X__SHIFT 8 > +static inline uint32_t A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_1_X(float val) > +{ > + return ((((int32_t)(val * 1.0))) << A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_1_X__SHIFT) & A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_1_X__MASK; > +} > +#define A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_1_Y__MASK 0x0000f000 > +#define A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_1_Y__SHIFT 12 > +static inline uint32_t A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_1_Y(float val) > +{ > + return ((((int32_t)(val * 1.0))) << A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_1_Y__SHIFT) & A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_1_Y__MASK; > +} > +#define A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_2_X__MASK 0x000f0000 > +#define A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_2_X__SHIFT 16 > +static inline uint32_t A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_2_X(float val) > +{ > + return ((((int32_t)(val * 1.0))) << A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_2_X__SHIFT) & A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_2_X__MASK; > +} > +#define A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_2_Y__MASK 0x00f00000 > +#define A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_2_Y__SHIFT 20 > +static inline uint32_t A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_2_Y(float val) > +{ > + return ((((int32_t)(val * 1.0))) << A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_2_Y__SHIFT) & A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_2_Y__MASK; > +} > +#define A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_3_X__MASK 0x0f000000 > +#define A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_3_X__SHIFT 24 > +static inline uint32_t A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_3_X(float val) > +{ > + return ((((int32_t)(val * 1.0))) << A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_3_X__SHIFT) & A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_3_X__MASK; > +} > +#define A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_3_Y__MASK 0xf0000000 > +#define A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_3_Y__SHIFT 28 > +static inline uint32_t A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_3_Y(float val) > +{ > + return ((((int32_t)(val * 1.0))) << A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_3_Y__SHIFT) & A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_3_Y__MASK; > +} > > -#define REG_A6XX_GRAS_UNKNOWN_80A6 0x000080a6 > +#define REG_A6XX_GRAS_SAMPLE_LOCATION_1 0x000080a6 > +#define A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_0_X__MASK 0x0000000f > +#define A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_0_X__SHIFT 0 > +static inline uint32_t A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_0_X(float val) > +{ > + return ((((int32_t)(val * 1.0))) << A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_0_X__SHIFT) & A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_0_X__MASK; > +} > +#define A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_0_Y__MASK 0x000000f0 > +#define A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_0_Y__SHIFT 4 > +static inline uint32_t A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_0_Y(float val) > +{ > + return ((((int32_t)(val * 1.0))) << A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_0_Y__SHIFT) & A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_0_Y__MASK; > +} > +#define A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_1_X__MASK 0x00000f00 > +#define A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_1_X__SHIFT 8 > +static inline uint32_t A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_1_X(float val) > +{ > + return ((((int32_t)(val * 1.0))) << A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_1_X__SHIFT) & A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_1_X__MASK; > +} > +#define A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_1_Y__MASK 0x0000f000 > +#define A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_1_Y__SHIFT 12 > +static inline uint32_t A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_1_Y(float val) > +{ > + return ((((int32_t)(val * 1.0))) << A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_1_Y__SHIFT) & A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_1_Y__MASK; > +} > +#define A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_2_X__MASK 0x000f0000 > +#define A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_2_X__SHIFT 16 > +static inline uint32_t A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_2_X(float val) > +{ > + return ((((int32_t)(val * 1.0))) << A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_2_X__SHIFT) & A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_2_X__MASK; > +} > +#define A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_2_Y__MASK 0x00f00000 > +#define A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_2_Y__SHIFT 20 > +static inline uint32_t A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_2_Y(float val) > +{ > + return ((((int32_t)(val * 1.0))) << A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_2_Y__SHIFT) & A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_2_Y__MASK; > +} > +#define A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_3_X__MASK 0x0f000000 > +#define A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_3_X__SHIFT 24 > +static inline uint32_t A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_3_X(float val) > +{ > + return ((((int32_t)(val * 1.0))) << A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_3_X__SHIFT) & A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_3_X__MASK; > +} > +#define A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_3_Y__MASK 0xf0000000 > +#define A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_3_Y__SHIFT 28 > +static inline uint32_t A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_3_Y(float val) > +{ > + return ((((int32_t)(val * 1.0))) << A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_3_Y__SHIFT) & A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_3_Y__MASK; > +} > > #define REG_A6XX_GRAS_UNKNOWN_80AF 0x000080af > > @@ -3021,15 +3238,15 @@ static inline uint32_t A6XX_GRAS_SC_WINDOW_SCISSOR_BR_Y(uint32_t val) > #define A6XX_GRAS_LRZ_CNTL_ENABLE 0x00000001 > #define A6XX_GRAS_LRZ_CNTL_LRZ_WRITE 0x00000002 > #define A6XX_GRAS_LRZ_CNTL_GREATER 0x00000004 > -#define A6XX_GRAS_LRZ_CNTL_UNK3 0x00000008 > -#define A6XX_GRAS_LRZ_CNTL_UNK4 0x00000010 > +#define A6XX_GRAS_LRZ_CNTL_FC_ENABLE 0x00000008 > +#define A6XX_GRAS_LRZ_CNTL_Z_TEST_ENABLE 0x00000010 > > #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) > +static inline uint32_t A6XX_GRAS_2D_BLIT_INFO_COLOR_FORMAT(enum a6xx_format val) > { > return ((val) << A6XX_GRAS_2D_BLIT_INFO_COLOR_FORMAT__SHIFT) & A6XX_GRAS_2D_BLIT_INFO_COLOR_FORMAT__MASK; > } > @@ -3038,6 +3255,8 @@ static inline uint32_t A6XX_GRAS_2D_BLIT_INFO_COLOR_FORMAT(enum a6xx_color_fmt v > > #define REG_A6XX_GRAS_LRZ_BUFFER_BASE_HI 0x00008104 > > +#define REG_A6XX_GRAS_LRZ_BUFFER_BASE 0x00008103 > + > #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 > @@ -3056,47 +3275,76 @@ static inline uint32_t A6XX_GRAS_LRZ_BUFFER_PITCH_ARRAY_PITCH(uint32_t val) > > #define REG_A6XX_GRAS_LRZ_FAST_CLEAR_BUFFER_BASE_HI 0x00008107 > > -#define REG_A6XX_GRAS_UNKNOWN_8109 0x00008109 > +#define REG_A6XX_GRAS_LRZ_FAST_CLEAR_BUFFER_BASE 0x00008106 > + > +#define REG_A6XX_GRAS_SAMPLE_CNTL 0x00008109 > +#define A6XX_GRAS_SAMPLE_CNTL_PER_SAMP_MODE 0x00000001 > > #define REG_A6XX_GRAS_UNKNOWN_8110 0x00008110 > > #define REG_A6XX_GRAS_2D_BLIT_CNTL 0x00008400 > +#define A6XX_GRAS_2D_BLIT_CNTL_ROTATE__MASK 0x00000007 > +#define A6XX_GRAS_2D_BLIT_CNTL_ROTATE__SHIFT 0 > +static inline uint32_t A6XX_GRAS_2D_BLIT_CNTL_ROTATE(enum a6xx_rotation val) > +{ > + return ((val) << A6XX_GRAS_2D_BLIT_CNTL_ROTATE__SHIFT) & A6XX_GRAS_2D_BLIT_CNTL_ROTATE__MASK; > +} > +#define A6XX_GRAS_2D_BLIT_CNTL_SOLID_COLOR 0x00000080 > #define A6XX_GRAS_2D_BLIT_CNTL_COLOR_FORMAT__MASK 0x0000ff00 > #define A6XX_GRAS_2D_BLIT_CNTL_COLOR_FORMAT__SHIFT 8 > -static inline uint32_t A6XX_GRAS_2D_BLIT_CNTL_COLOR_FORMAT(enum a6xx_color_fmt val) > +static inline uint32_t A6XX_GRAS_2D_BLIT_CNTL_COLOR_FORMAT(enum a6xx_format val) > { > return ((val) << A6XX_GRAS_2D_BLIT_CNTL_COLOR_FORMAT__SHIFT) & A6XX_GRAS_2D_BLIT_CNTL_COLOR_FORMAT__MASK; > } > #define A6XX_GRAS_2D_BLIT_CNTL_SCISSOR 0x00010000 > +#define A6XX_GRAS_2D_BLIT_CNTL_UNK__MASK 0x00060000 > +#define A6XX_GRAS_2D_BLIT_CNTL_UNK__SHIFT 17 > +static inline uint32_t A6XX_GRAS_2D_BLIT_CNTL_UNK(uint32_t val) > +{ > + return ((val) << A6XX_GRAS_2D_BLIT_CNTL_UNK__SHIFT) & A6XX_GRAS_2D_BLIT_CNTL_UNK__MASK; > +} > +#define A6XX_GRAS_2D_BLIT_CNTL_D24S8 0x00080000 > +#define A6XX_GRAS_2D_BLIT_CNTL_MASK__MASK 0x00f00000 > +#define A6XX_GRAS_2D_BLIT_CNTL_MASK__SHIFT 20 > +static inline uint32_t A6XX_GRAS_2D_BLIT_CNTL_MASK(uint32_t val) > +{ > + return ((val) << A6XX_GRAS_2D_BLIT_CNTL_MASK__SHIFT) & A6XX_GRAS_2D_BLIT_CNTL_MASK__MASK; > +} > +#define A6XX_GRAS_2D_BLIT_CNTL_IFMT__MASK 0x1f000000 > +#define A6XX_GRAS_2D_BLIT_CNTL_IFMT__SHIFT 24 > +static inline uint32_t A6XX_GRAS_2D_BLIT_CNTL_IFMT(enum a6xx_2d_ifmt val) > +{ > + return ((val) << A6XX_GRAS_2D_BLIT_CNTL_IFMT__SHIFT) & A6XX_GRAS_2D_BLIT_CNTL_IFMT__MASK; > +} > > #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__MASK 0xffffff00 > #define A6XX_GRAS_2D_SRC_TL_X_X__SHIFT 8 > -static inline uint32_t A6XX_GRAS_2D_SRC_TL_X_X(uint32_t val) > +static inline uint32_t A6XX_GRAS_2D_SRC_TL_X_X(int32_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__MASK 0xffffff00 > #define A6XX_GRAS_2D_SRC_BR_X_X__SHIFT 8 > -static inline uint32_t A6XX_GRAS_2D_SRC_BR_X_X(uint32_t val) > +static inline uint32_t A6XX_GRAS_2D_SRC_BR_X_X(int32_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__MASK 0xffffff00 > #define A6XX_GRAS_2D_SRC_TL_Y_Y__SHIFT 8 > -static inline uint32_t A6XX_GRAS_2D_SRC_TL_Y_Y(uint32_t val) > +static inline uint32_t A6XX_GRAS_2D_SRC_TL_Y_Y(int32_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__MASK 0xffffff00 > #define A6XX_GRAS_2D_SRC_BR_Y_Y__SHIFT 8 > -static inline uint32_t A6XX_GRAS_2D_SRC_BR_Y_Y(uint32_t val) > +static inline uint32_t A6XX_GRAS_2D_SRC_BR_Y_Y(int32_t val) > { > return ((val) << A6XX_GRAS_2D_SRC_BR_Y_Y__SHIFT) & A6XX_GRAS_2D_SRC_BR_Y_Y__MASK; > } > @@ -3207,28 +3455,135 @@ static inline uint32_t A6XX_RB_DEST_MSAA_CNTL_SAMPLES(enum a3xx_msaa_samples val > } > #define A6XX_RB_DEST_MSAA_CNTL_MSAA_DISABLE 0x00000004 > > -#define REG_A6XX_RB_UNKNOWN_8804 0x00008804 > +#define REG_A6XX_RB_SAMPLE_CONFIG 0x00008804 > +#define A6XX_RB_SAMPLE_CONFIG_LOCATION_ENABLE 0x00000002 > > -#define REG_A6XX_RB_UNKNOWN_8805 0x00008805 > +#define REG_A6XX_RB_SAMPLE_LOCATION_0 0x00008805 > +#define A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_0_X__MASK 0x0000000f > +#define A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_0_X__SHIFT 0 > +static inline uint32_t A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_0_X(float val) > +{ > + return ((((int32_t)(val * 1.0))) << A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_0_X__SHIFT) & A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_0_X__MASK; > +} > +#define A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_0_Y__MASK 0x000000f0 > +#define A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_0_Y__SHIFT 4 > +static inline uint32_t A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_0_Y(float val) > +{ > + return ((((int32_t)(val * 1.0))) << A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_0_Y__SHIFT) & A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_0_Y__MASK; > +} > +#define A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_1_X__MASK 0x00000f00 > +#define A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_1_X__SHIFT 8 > +static inline uint32_t A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_1_X(float val) > +{ > + return ((((int32_t)(val * 1.0))) << A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_1_X__SHIFT) & A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_1_X__MASK; > +} > +#define A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_1_Y__MASK 0x0000f000 > +#define A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_1_Y__SHIFT 12 > +static inline uint32_t A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_1_Y(float val) > +{ > + return ((((int32_t)(val * 1.0))) << A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_1_Y__SHIFT) & A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_1_Y__MASK; > +} > +#define A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_2_X__MASK 0x000f0000 > +#define A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_2_X__SHIFT 16 > +static inline uint32_t A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_2_X(float val) > +{ > + return ((((int32_t)(val * 1.0))) << A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_2_X__SHIFT) & A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_2_X__MASK; > +} > +#define A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_2_Y__MASK 0x00f00000 > +#define A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_2_Y__SHIFT 20 > +static inline uint32_t A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_2_Y(float val) > +{ > + return ((((int32_t)(val * 1.0))) << A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_2_Y__SHIFT) & A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_2_Y__MASK; > +} > +#define A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_3_X__MASK 0x0f000000 > +#define A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_3_X__SHIFT 24 > +static inline uint32_t A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_3_X(float val) > +{ > + return ((((int32_t)(val * 1.0))) << A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_3_X__SHIFT) & A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_3_X__MASK; > +} > +#define A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_3_Y__MASK 0xf0000000 > +#define A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_3_Y__SHIFT 28 > +static inline uint32_t A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_3_Y(float val) > +{ > + return ((((int32_t)(val * 1.0))) << A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_3_Y__SHIFT) & A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_3_Y__MASK; > +} > > -#define REG_A6XX_RB_UNKNOWN_8806 0x00008806 > +#define REG_A6XX_RB_SAMPLE_LOCATION_1 0x00008806 > +#define A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_0_X__MASK 0x0000000f > +#define A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_0_X__SHIFT 0 > +static inline uint32_t A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_0_X(float val) > +{ > + return ((((int32_t)(val * 1.0))) << A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_0_X__SHIFT) & A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_0_X__MASK; > +} > +#define A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_0_Y__MASK 0x000000f0 > +#define A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_0_Y__SHIFT 4 > +static inline uint32_t A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_0_Y(float val) > +{ > + return ((((int32_t)(val * 1.0))) << A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_0_Y__SHIFT) & A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_0_Y__MASK; > +} > +#define A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_1_X__MASK 0x00000f00 > +#define A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_1_X__SHIFT 8 > +static inline uint32_t A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_1_X(float val) > +{ > + return ((((int32_t)(val * 1.0))) << A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_1_X__SHIFT) & A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_1_X__MASK; > +} > +#define A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_1_Y__MASK 0x0000f000 > +#define A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_1_Y__SHIFT 12 > +static inline uint32_t A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_1_Y(float val) > +{ > + return ((((int32_t)(val * 1.0))) << A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_1_Y__SHIFT) & A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_1_Y__MASK; > +} > +#define A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_2_X__MASK 0x000f0000 > +#define A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_2_X__SHIFT 16 > +static inline uint32_t A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_2_X(float val) > +{ > + return ((((int32_t)(val * 1.0))) << A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_2_X__SHIFT) & A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_2_X__MASK; > +} > +#define A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_2_Y__MASK 0x00f00000 > +#define A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_2_Y__SHIFT 20 > +static inline uint32_t A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_2_Y(float val) > +{ > + return ((((int32_t)(val * 1.0))) << A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_2_Y__SHIFT) & A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_2_Y__MASK; > +} > +#define A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_3_X__MASK 0x0f000000 > +#define A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_3_X__SHIFT 24 > +static inline uint32_t A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_3_X(float val) > +{ > + return ((((int32_t)(val * 1.0))) << A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_3_X__SHIFT) & A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_3_X__MASK; > +} > +#define A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_3_Y__MASK 0xf0000000 > +#define A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_3_Y__SHIFT 28 > +static inline uint32_t A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_3_Y(float val) > +{ > + return ((((int32_t)(val * 1.0))) << A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_3_Y__SHIFT) & A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_3_Y__MASK; > +} > > #define REG_A6XX_RB_RENDER_CONTROL0 0x00008809 > -#define A6XX_RB_RENDER_CONTROL0_VARYING 0x00000001 > -#define A6XX_RB_RENDER_CONTROL0_UNK3 0x00000008 > -#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_IJ_PERSP_PIXEL 0x00000001 > +#define A6XX_RB_RENDER_CONTROL0_IJ_PERSP_CENTROID 0x00000002 > +#define A6XX_RB_RENDER_CONTROL0_IJ_PERSP_SAMPLE 0x00000004 > +#define A6XX_RB_RENDER_CONTROL0_SIZE 0x00000008 > +#define A6XX_RB_RENDER_CONTROL0_SIZE_PERSAMP 0x00000020 > +#define A6XX_RB_RENDER_CONTROL0_COORD_MASK__MASK 0x000003c0 > +#define A6XX_RB_RENDER_CONTROL0_COORD_MASK__SHIFT 6 > +static inline uint32_t A6XX_RB_RENDER_CONTROL0_COORD_MASK(uint32_t val) > +{ > + return ((val) << A6XX_RB_RENDER_CONTROL0_COORD_MASK__SHIFT) & A6XX_RB_RENDER_CONTROL0_COORD_MASK__MASK; > +} > #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_FACENESS 0x00000004 > #define A6XX_RB_RENDER_CONTROL1_SAMPLEID 0x00000008 > +#define A6XX_RB_RENDER_CONTROL1_UNK4 0x00000010 > +#define A6XX_RB_RENDER_CONTROL1_UNK5 0x00000020 > +#define A6XX_RB_RENDER_CONTROL1_SIZE 0x00000040 > > #define REG_A6XX_RB_FS_OUTPUT_CNTL0 0x0000880b > +#define A6XX_RB_FS_OUTPUT_CNTL0_DUAL_COLOR_IN_ENABLE 0x00000001 > #define A6XX_RB_FS_OUTPUT_CNTL0_FRAG_WRITES_Z 0x00000002 > +#define A6XX_RB_FS_OUTPUT_CNTL0_FRAG_WRITES_SAMPMASK 0x00000004 > > #define REG_A6XX_RB_FS_OUTPUT_CNTL1 0x0000880c > #define A6XX_RB_FS_OUTPUT_CNTL1_MRT__MASK 0x0000000f > @@ -3348,7 +3703,8 @@ static inline uint32_t A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT7(enum adreno_rb_dithe > #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_SAMPLE_CNTL 0x00008810 > +#define A6XX_RB_SAMPLE_CNTL_PER_SAMP_MODE 0x00000001 > > #define REG_A6XX_RB_UNKNOWN_8811 0x00008811 > > @@ -3426,7 +3782,7 @@ static inline uint32_t A6XX_RB_MRT_BLEND_CONTROL_ALPHA_DEST_FACTOR(enum adreno_r > 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) > +static inline uint32_t A6XX_RB_MRT_BUF_INFO_COLOR_FORMAT(enum a6xx_format val) > { > return ((val) << A6XX_RB_MRT_BUF_INFO_COLOR_FORMAT__SHIFT) & A6XX_RB_MRT_BUF_INFO_COLOR_FORMAT__MASK; > } > @@ -3463,6 +3819,8 @@ static inline uint32_t REG_A6XX_RB_MRT_BASE_LO(uint32_t i0) { return 0x00008825 > > 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(uint32_t i0) { return 0x00008825 + 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 > @@ -3520,7 +3878,9 @@ 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_DUAL_COLOR_IN_ENABLE 0x00000200 > #define A6XX_RB_BLEND_CNTL_ALPHA_TO_COVERAGE 0x00000400 > +#define A6XX_RB_BLEND_CNTL_ALPHA_TO_ONE 0x00000800 > #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) > @@ -3529,7 +3889,12 @@ static inline uint32_t A6XX_RB_BLEND_CNTL_SAMPLE_MASK(uint32_t val) > } > > #define REG_A6XX_RB_DEPTH_PLANE_CNTL 0x00008870 > -#define A6XX_RB_DEPTH_PLANE_CNTL_FRAG_WRITES_Z 0x00000001 > +#define A6XX_RB_DEPTH_PLANE_CNTL_Z_MODE__MASK 0x00000003 > +#define A6XX_RB_DEPTH_PLANE_CNTL_Z_MODE__SHIFT 0 > +static inline uint32_t A6XX_RB_DEPTH_PLANE_CNTL_Z_MODE(enum a6xx_ztest_mode val) > +{ > + return ((val) << A6XX_RB_DEPTH_PLANE_CNTL_Z_MODE__SHIFT) & A6XX_RB_DEPTH_PLANE_CNTL_Z_MODE__MASK; > +} > > #define REG_A6XX_RB_DEPTH_CNTL 0x00008871 > #define A6XX_RB_DEPTH_CNTL_Z_ENABLE 0x00000001 > @@ -3540,7 +3905,9 @@ 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_CLAMP_ENABLE 0x00000020 > #define A6XX_RB_DEPTH_CNTL_Z_TEST_ENABLE 0x00000040 > +#define A6XX_RB_DEPTH_CNTL_Z_BOUNDS_ENABLE 0x00000080 > > #define REG_A6XX_RB_DEPTH_BUFFER_INFO 0x00008872 > #define A6XX_RB_DEPTH_BUFFER_INFO_DEPTH_FORMAT__MASK 0x00000007 > @@ -3570,11 +3937,25 @@ static inline uint32_t A6XX_RB_DEPTH_BUFFER_ARRAY_PITCH(uint32_t val) > > #define REG_A6XX_RB_DEPTH_BUFFER_BASE_HI 0x00008876 > > +#define REG_A6XX_RB_DEPTH_BUFFER_BASE 0x00008875 > + > #define REG_A6XX_RB_DEPTH_BUFFER_BASE_GMEM 0x00008877 > > -#define REG_A6XX_RB_UNKNOWN_8878 0x00008878 > +#define REG_A6XX_RB_Z_BOUNDS_MIN 0x00008878 > +#define A6XX_RB_Z_BOUNDS_MIN__MASK 0xffffffff > +#define A6XX_RB_Z_BOUNDS_MIN__SHIFT 0 > +static inline uint32_t A6XX_RB_Z_BOUNDS_MIN(float val) > +{ > + return ((fui(val)) << A6XX_RB_Z_BOUNDS_MIN__SHIFT) & A6XX_RB_Z_BOUNDS_MIN__MASK; > +} > > -#define REG_A6XX_RB_UNKNOWN_8879 0x00008879 > +#define REG_A6XX_RB_Z_BOUNDS_MAX 0x00008879 > +#define A6XX_RB_Z_BOUNDS_MAX__MASK 0xffffffff > +#define A6XX_RB_Z_BOUNDS_MAX__SHIFT 0 > +static inline uint32_t A6XX_RB_Z_BOUNDS_MAX(float val) > +{ > + return ((fui(val)) << A6XX_RB_Z_BOUNDS_MAX__SHIFT) & A6XX_RB_Z_BOUNDS_MAX__MASK; > +} > > #define REG_A6XX_RB_STENCIL_CONTROL 0x00008880 > #define A6XX_RB_STENCIL_CONTROL_STENCIL_ENABLE 0x00000001 > @@ -3652,6 +4033,8 @@ static inline uint32_t A6XX_RB_STENCIL_BUFFER_ARRAY_PITCH(uint32_t val) > > #define REG_A6XX_RB_STENCIL_BUFFER_BASE_HI 0x00008885 > > +#define REG_A6XX_RB_STENCIL_BUFFER_BASE 0x00008884 > + > #define REG_A6XX_RB_STENCIL_BUFFER_BASE_GMEM 0x00008886 > > #define REG_A6XX_RB_STENCILREF 0x00008887 > @@ -3717,6 +4100,22 @@ static inline uint32_t A6XX_RB_WINDOW_OFFSET_Y(uint32_t val) > #define REG_A6XX_RB_LRZ_CNTL 0x00008898 > #define A6XX_RB_LRZ_CNTL_ENABLE 0x00000001 > > +#define REG_A6XX_RB_Z_CLAMP_MIN 0x000088c0 > +#define A6XX_RB_Z_CLAMP_MIN__MASK 0xffffffff > +#define A6XX_RB_Z_CLAMP_MIN__SHIFT 0 > +static inline uint32_t A6XX_RB_Z_CLAMP_MIN(float val) > +{ > + return ((fui(val)) << A6XX_RB_Z_CLAMP_MIN__SHIFT) & A6XX_RB_Z_CLAMP_MIN__MASK; > +} > + > +#define REG_A6XX_RB_Z_CLAMP_MAX 0x000088c1 > +#define A6XX_RB_Z_CLAMP_MAX__MASK 0xffffffff > +#define A6XX_RB_Z_CLAMP_MAX__SHIFT 0 > +static inline uint32_t A6XX_RB_Z_CLAMP_MAX(float val) > +{ > + return ((fui(val)) << A6XX_RB_Z_CLAMP_MAX__SHIFT) & A6XX_RB_Z_CLAMP_MAX__MASK; > +} > + > #define REG_A6XX_RB_UNKNOWN_88D0 0x000088d0 > > #define REG_A6XX_RB_BLIT_SCISSOR_TL 0x000088d1 > @@ -3775,7 +4174,7 @@ static inline uint32_t A6XX_RB_BLIT_DST_INFO_SAMPLES(enum a3xx_msaa_samples val) > } > #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) > +static inline uint32_t A6XX_RB_BLIT_DST_INFO_COLOR_FORMAT(enum a6xx_format val) > { > return ((val) << A6XX_RB_BLIT_DST_INFO_COLOR_FORMAT__SHIFT) & A6XX_RB_BLIT_DST_INFO_COLOR_FORMAT__MASK; > } > @@ -3786,6 +4185,8 @@ 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 0x000088d8 > + > #define REG_A6XX_RB_BLIT_DST_LO 0x000088d8 > > #define REG_A6XX_RB_BLIT_DST_HI 0x000088d9 > @@ -3806,10 +4207,26 @@ static inline uint32_t A6XX_RB_BLIT_DST_ARRAY_PITCH(uint32_t val) > return ((val >> 6) << A6XX_RB_BLIT_DST_ARRAY_PITCH__SHIFT) & A6XX_RB_BLIT_DST_ARRAY_PITCH__MASK; > } > > +#define REG_A6XX_RB_BLIT_FLAG_DST 0x000088dc > + > #define REG_A6XX_RB_BLIT_FLAG_DST_LO 0x000088dc > > #define REG_A6XX_RB_BLIT_FLAG_DST_HI 0x000088dd > > +#define REG_A6XX_RB_BLIT_FLAG_DST_PITCH 0x000088de > +#define A6XX_RB_BLIT_FLAG_DST_PITCH_PITCH__MASK 0x000007ff > +#define A6XX_RB_BLIT_FLAG_DST_PITCH_PITCH__SHIFT 0 > +static inline uint32_t A6XX_RB_BLIT_FLAG_DST_PITCH_PITCH(uint32_t val) > +{ > + return ((val >> 6) << A6XX_RB_BLIT_FLAG_DST_PITCH_PITCH__SHIFT) & A6XX_RB_BLIT_FLAG_DST_PITCH_PITCH__MASK; > +} > +#define A6XX_RB_BLIT_FLAG_DST_PITCH_ARRAY_PITCH__MASK 0x003ff800 > +#define A6XX_RB_BLIT_FLAG_DST_PITCH_ARRAY_PITCH__SHIFT 11 > +static inline uint32_t A6XX_RB_BLIT_FLAG_DST_PITCH_ARRAY_PITCH(uint32_t val) > +{ > + return ((val >> 7) << A6XX_RB_BLIT_FLAG_DST_PITCH_ARRAY_PITCH__SHIFT) & A6XX_RB_BLIT_FLAG_DST_PITCH_ARRAY_PITCH__MASK; > +} > + > #define REG_A6XX_RB_BLIT_CLEAR_COLOR_DW0 0x000088df > > #define REG_A6XX_RB_BLIT_CLEAR_COLOR_DW1 0x000088e0 > @@ -3836,7 +4253,21 @@ static inline uint32_t A6XX_RB_BLIT_INFO_CLEAR_MASK(uint32_t val) > > #define REG_A6XX_RB_DEPTH_FLAG_BUFFER_BASE_HI 0x00008901 > > +#define REG_A6XX_RB_DEPTH_FLAG_BUFFER_BASE 0x00008900 > + > #define REG_A6XX_RB_DEPTH_FLAG_BUFFER_PITCH 0x00008902 > +#define A6XX_RB_DEPTH_FLAG_BUFFER_PITCH_PITCH__MASK 0x000007ff > +#define A6XX_RB_DEPTH_FLAG_BUFFER_PITCH_PITCH__SHIFT 0 > +static inline uint32_t A6XX_RB_DEPTH_FLAG_BUFFER_PITCH_PITCH(uint32_t val) > +{ > + return ((val >> 6) << A6XX_RB_DEPTH_FLAG_BUFFER_PITCH_PITCH__SHIFT) & A6XX_RB_DEPTH_FLAG_BUFFER_PITCH_PITCH__MASK; > +} > +#define A6XX_RB_DEPTH_FLAG_BUFFER_PITCH_ARRAY_PITCH__MASK 0x01fff800 > +#define A6XX_RB_DEPTH_FLAG_BUFFER_PITCH_ARRAY_PITCH__SHIFT 11 > +static inline uint32_t A6XX_RB_DEPTH_FLAG_BUFFER_PITCH_ARRAY_PITCH(uint32_t val) > +{ > + return ((val >> 7) << A6XX_RB_DEPTH_FLAG_BUFFER_PITCH_ARRAY_PITCH__SHIFT) & A6XX_RB_DEPTH_FLAG_BUFFER_PITCH_ARRAY_PITCH__MASK; > +} > > static inline uint32_t REG_A6XX_RB_MRT_FLAG_BUFFER(uint32_t i0) { return 0x00008903 + 0x3*i0; } > > @@ -3844,18 +4275,20 @@ static inline uint32_t REG_A6XX_RB_MRT_FLAG_BUFFER_ADDR_LO(uint32_t i0) { return > > 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_ADDR(uint32_t i0) { return 0x00008903 + 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) > { > - return ((val >> 5) << A6XX_RB_MRT_FLAG_BUFFER_PITCH_PITCH__SHIFT) & A6XX_RB_MRT_FLAG_BUFFER_PITCH_PITCH__MASK; > + return ((val >> 6) << 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__MASK 0x01fff800 > #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) > { > - return ((val >> 5) << A6XX_RB_MRT_FLAG_BUFFER_PITCH_ARRAY_PITCH__SHIFT) & A6XX_RB_MRT_FLAG_BUFFER_PITCH_ARRAY_PITCH__MASK; > + return ((val >> 7) << 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 > @@ -3863,20 +4296,46 @@ static inline uint32_t A6XX_RB_MRT_FLAG_BUFFER_PITCH_ARRAY_PITCH(uint32_t val) > #define REG_A6XX_RB_SAMPLE_COUNT_ADDR_HI 0x00008928 > > #define REG_A6XX_RB_2D_BLIT_CNTL 0x00008c00 > +#define A6XX_RB_2D_BLIT_CNTL_ROTATE__MASK 0x00000007 > +#define A6XX_RB_2D_BLIT_CNTL_ROTATE__SHIFT 0 > +static inline uint32_t A6XX_RB_2D_BLIT_CNTL_ROTATE(enum a6xx_rotation val) > +{ > + return ((val) << A6XX_RB_2D_BLIT_CNTL_ROTATE__SHIFT) & A6XX_RB_2D_BLIT_CNTL_ROTATE__MASK; > +} > +#define A6XX_RB_2D_BLIT_CNTL_SOLID_COLOR 0x00000080 > #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) > +static inline uint32_t A6XX_RB_2D_BLIT_CNTL_COLOR_FORMAT(enum a6xx_format val) > { > return ((val) << A6XX_RB_2D_BLIT_CNTL_COLOR_FORMAT__SHIFT) & A6XX_RB_2D_BLIT_CNTL_COLOR_FORMAT__MASK; > } > #define A6XX_RB_2D_BLIT_CNTL_SCISSOR 0x00010000 > +#define A6XX_RB_2D_BLIT_CNTL_UNK__MASK 0x00060000 > +#define A6XX_RB_2D_BLIT_CNTL_UNK__SHIFT 17 > +static inline uint32_t A6XX_RB_2D_BLIT_CNTL_UNK(uint32_t val) > +{ > + return ((val) << A6XX_RB_2D_BLIT_CNTL_UNK__SHIFT) & A6XX_RB_2D_BLIT_CNTL_UNK__MASK; > +} > +#define A6XX_RB_2D_BLIT_CNTL_D24S8 0x00080000 > +#define A6XX_RB_2D_BLIT_CNTL_MASK__MASK 0x00f00000 > +#define A6XX_RB_2D_BLIT_CNTL_MASK__SHIFT 20 > +static inline uint32_t A6XX_RB_2D_BLIT_CNTL_MASK(uint32_t val) > +{ > + return ((val) << A6XX_RB_2D_BLIT_CNTL_MASK__SHIFT) & A6XX_RB_2D_BLIT_CNTL_MASK__MASK; > +} > +#define A6XX_RB_2D_BLIT_CNTL_IFMT__MASK 0x1f000000 > +#define A6XX_RB_2D_BLIT_CNTL_IFMT__SHIFT 24 > +static inline uint32_t A6XX_RB_2D_BLIT_CNTL_IFMT(enum a6xx_2d_ifmt val) > +{ > + return ((val) << A6XX_RB_2D_BLIT_CNTL_IFMT__SHIFT) & A6XX_RB_2D_BLIT_CNTL_IFMT__MASK; > +} > > #define REG_A6XX_RB_UNKNOWN_8C01 0x00008c01 > > #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) > +static inline uint32_t A6XX_RB_2D_DST_INFO_COLOR_FORMAT(enum a6xx_format val) > { > return ((val) << A6XX_RB_2D_DST_INFO_COLOR_FORMAT__SHIFT) & A6XX_RB_2D_DST_INFO_COLOR_FORMAT__MASK; > } > @@ -3893,11 +4352,24 @@ 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 A6XX_RB_2D_DST_INFO_SRGB 0x00002000 > +#define A6XX_RB_2D_DST_INFO_SAMPLES__MASK 0x0000c000 > +#define A6XX_RB_2D_DST_INFO_SAMPLES__SHIFT 14 > +static inline uint32_t A6XX_RB_2D_DST_INFO_SAMPLES(enum a3xx_msaa_samples val) > +{ > + return ((val) << A6XX_RB_2D_DST_INFO_SAMPLES__SHIFT) & A6XX_RB_2D_DST_INFO_SAMPLES__MASK; > +} > +#define A6XX_RB_2D_DST_INFO_FILTER 0x00010000 > +#define A6XX_RB_2D_DST_INFO_SAMPLES_AVERAGE 0x00040000 > +#define A6XX_RB_2D_DST_INFO_UNK20 0x00100000 > +#define A6XX_RB_2D_DST_INFO_UNK22 0x00400000 > > #define REG_A6XX_RB_2D_DST_LO 0x00008c18 > > #define REG_A6XX_RB_2D_DST_HI 0x00008c19 > > +#define REG_A6XX_RB_2D_DST 0x00008c18 > + > #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 > @@ -3910,6 +4382,22 @@ static inline uint32_t A6XX_RB_2D_DST_SIZE_PITCH(uint32_t val) > > #define REG_A6XX_RB_2D_DST_FLAGS_HI 0x00008c21 > > +#define REG_A6XX_RB_2D_DST_FLAGS 0x00008c20 > + > +#define REG_A6XX_RB_2D_DST_FLAGS_PITCH 0x00008c22 > +#define A6XX_RB_2D_DST_FLAGS_PITCH_PITCH__MASK 0x000007ff > +#define A6XX_RB_2D_DST_FLAGS_PITCH_PITCH__SHIFT 0 > +static inline uint32_t A6XX_RB_2D_DST_FLAGS_PITCH_PITCH(uint32_t val) > +{ > + return ((val >> 6) << A6XX_RB_2D_DST_FLAGS_PITCH_PITCH__SHIFT) & A6XX_RB_2D_DST_FLAGS_PITCH_PITCH__MASK; > +} > +#define A6XX_RB_2D_DST_FLAGS_PITCH_ARRAY_PITCH__MASK 0x003ff800 > +#define A6XX_RB_2D_DST_FLAGS_PITCH_ARRAY_PITCH__SHIFT 11 > +static inline uint32_t A6XX_RB_2D_DST_FLAGS_PITCH_ARRAY_PITCH(uint32_t val) > +{ > + return ((val >> 7) << A6XX_RB_2D_DST_FLAGS_PITCH_ARRAY_PITCH__SHIFT) & A6XX_RB_2D_DST_FLAGS_PITCH_ARRAY_PITCH__MASK; > +} > + > #define REG_A6XX_RB_2D_SRC_SOLID_C0 0x00008c2c > > #define REG_A6XX_RB_2D_SRC_SOLID_C1 0x00008c2d > @@ -3923,14 +4411,44 @@ static inline uint32_t A6XX_RB_2D_DST_SIZE_PITCH(uint32_t val) > #define REG_A6XX_RB_UNKNOWN_8E04 0x00008e04 > > #define REG_A6XX_RB_CCU_CNTL 0x00008e07 > +#define A6XX_RB_CCU_CNTL_OFFSET__MASK 0xff800000 > +#define A6XX_RB_CCU_CNTL_OFFSET__SHIFT 23 > +static inline uint32_t A6XX_RB_CCU_CNTL_OFFSET(uint32_t val) > +{ > + return ((val >> 12) << A6XX_RB_CCU_CNTL_OFFSET__SHIFT) & A6XX_RB_CCU_CNTL_OFFSET__MASK; > +} > +#define A6XX_RB_CCU_CNTL_GMEM 0x00400000 > +#define A6XX_RB_CCU_CNTL_UNK2 0x00000004 > + > +#define REG_A6XX_VPC_UNKNOWN_9100 0x00009100 > > #define REG_A6XX_VPC_UNKNOWN_9101 0x00009101 > > +#define REG_A6XX_VPC_UNKNOWN_9102 0x00009102 > + > +#define REG_A6XX_VPC_UNKNOWN_9103 0x00009103 > + > #define REG_A6XX_VPC_GS_SIV_CNTL 0x00009104 > > +#define REG_A6XX_VPC_UNKNOWN_9105 0x00009105 > +#define A6XX_VPC_UNKNOWN_9105_LAYERLOC__MASK 0x000000ff > +#define A6XX_VPC_UNKNOWN_9105_LAYERLOC__SHIFT 0 > +static inline uint32_t A6XX_VPC_UNKNOWN_9105_LAYERLOC(uint32_t val) > +{ > + return ((val) << A6XX_VPC_UNKNOWN_9105_LAYERLOC__SHIFT) & A6XX_VPC_UNKNOWN_9105_LAYERLOC__MASK; > +} > + > +#define REG_A6XX_VPC_UNKNOWN_9106 0x00009106 > + > #define REG_A6XX_VPC_UNKNOWN_9107 0x00009107 > > -#define REG_A6XX_VPC_UNKNOWN_9108 0x00009108 > +#define REG_A6XX_VPC_POLYGON_MODE 0x00009108 > +#define A6XX_VPC_POLYGON_MODE_MODE__MASK 0x00000003 > +#define A6XX_VPC_POLYGON_MODE_MODE__SHIFT 0 > +static inline uint32_t A6XX_VPC_POLYGON_MODE_MODE(enum a6xx_polygon_mode val) > +{ > + return ((val) << A6XX_VPC_POLYGON_MODE_MODE__SHIFT) & A6XX_VPC_POLYGON_MODE_MODE__MASK; > +} > > static inline uint32_t REG_A6XX_VPC_VARYING_INTERP(uint32_t i0) { return 0x00009200 + 0x1*i0; } > > @@ -3979,8 +4497,14 @@ static inline uint32_t A6XX_VPC_SO_PROG_B_OFF(uint32_t val) > } > #define A6XX_VPC_SO_PROG_B_EN 0x00800000 > > +#define REG_A6XX_VPC_SO_STREAM_COUNTS_LO 0x00009218 > + > +#define REG_A6XX_VPC_SO_STREAM_COUNTS_HI 0x00009219 > + > 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(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; } > @@ -3991,11 +4515,19 @@ static inline uint32_t REG_A6XX_VPC_SO_NCOMP(uint32_t i0) { return 0x0000921d + > > 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(uint32_t i0) { return 0x0000921f + 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 A6XX_VPC_UNKNOWN_9236_POINT_COORD_INVERT__MASK 0x00000001 > +#define A6XX_VPC_UNKNOWN_9236_POINT_COORD_INVERT__SHIFT 0 > +static inline uint32_t A6XX_VPC_UNKNOWN_9236_POINT_COORD_INVERT(uint32_t val) > +{ > + return ((val) << A6XX_VPC_UNKNOWN_9236_POINT_COORD_INVERT__SHIFT) & A6XX_VPC_UNKNOWN_9236_POINT_COORD_INVERT__MASK; > +} > > #define REG_A6XX_VPC_UNKNOWN_9300 0x00009300 > > @@ -4006,11 +4538,11 @@ 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) > +#define A6XX_VPC_PACK_POSITIONLOC__MASK 0x0000ff00 > +#define A6XX_VPC_PACK_POSITIONLOC__SHIFT 8 > +static inline uint32_t A6XX_VPC_PACK_POSITIONLOC(uint32_t val) > { > - return ((val) << A6XX_VPC_PACK_NUMNONPOSVAR__SHIFT) & A6XX_VPC_PACK_NUMNONPOSVAR__MASK; > + return ((val) << A6XX_VPC_PACK_POSITIONLOC__SHIFT) & A6XX_VPC_PACK_POSITIONLOC__MASK; > } > #define A6XX_VPC_PACK_PSIZELOC__MASK 0x00ff0000 > #define A6XX_VPC_PACK_PSIZELOC__SHIFT 16 > @@ -4019,6 +4551,46 @@ 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_PACK_GS 0x00009302 > +#define A6XX_VPC_PACK_GS_STRIDE_IN_VPC__MASK 0x000000ff > +#define A6XX_VPC_PACK_GS_STRIDE_IN_VPC__SHIFT 0 > +static inline uint32_t A6XX_VPC_PACK_GS_STRIDE_IN_VPC(uint32_t val) > +{ > + return ((val) << A6XX_VPC_PACK_GS_STRIDE_IN_VPC__SHIFT) & A6XX_VPC_PACK_GS_STRIDE_IN_VPC__MASK; > +} > +#define A6XX_VPC_PACK_GS_POSITIONLOC__MASK 0x0000ff00 > +#define A6XX_VPC_PACK_GS_POSITIONLOC__SHIFT 8 > +static inline uint32_t A6XX_VPC_PACK_GS_POSITIONLOC(uint32_t val) > +{ > + return ((val) << A6XX_VPC_PACK_GS_POSITIONLOC__SHIFT) & A6XX_VPC_PACK_GS_POSITIONLOC__MASK; > +} > +#define A6XX_VPC_PACK_GS_PSIZELOC__MASK 0x00ff0000 > +#define A6XX_VPC_PACK_GS_PSIZELOC__SHIFT 16 > +static inline uint32_t A6XX_VPC_PACK_GS_PSIZELOC(uint32_t val) > +{ > + return ((val) << A6XX_VPC_PACK_GS_PSIZELOC__SHIFT) & A6XX_VPC_PACK_GS_PSIZELOC__MASK; > +} > + > +#define REG_A6XX_VPC_PACK_3 0x00009303 > +#define A6XX_VPC_PACK_3_STRIDE_IN_VPC__MASK 0x000000ff > +#define A6XX_VPC_PACK_3_STRIDE_IN_VPC__SHIFT 0 > +static inline uint32_t A6XX_VPC_PACK_3_STRIDE_IN_VPC(uint32_t val) > +{ > + return ((val) << A6XX_VPC_PACK_3_STRIDE_IN_VPC__SHIFT) & A6XX_VPC_PACK_3_STRIDE_IN_VPC__MASK; > +} > +#define A6XX_VPC_PACK_3_POSITIONLOC__MASK 0x0000ff00 > +#define A6XX_VPC_PACK_3_POSITIONLOC__SHIFT 8 > +static inline uint32_t A6XX_VPC_PACK_3_POSITIONLOC(uint32_t val) > +{ > + return ((val) << A6XX_VPC_PACK_3_POSITIONLOC__SHIFT) & A6XX_VPC_PACK_3_POSITIONLOC__MASK; > +} > +#define A6XX_VPC_PACK_3_PSIZELOC__MASK 0x00ff0000 > +#define A6XX_VPC_PACK_3_PSIZELOC__SHIFT 16 > +static inline uint32_t A6XX_VPC_PACK_3_PSIZELOC(uint32_t val) > +{ > + return ((val) << A6XX_VPC_PACK_3_PSIZELOC__SHIFT) & A6XX_VPC_PACK_3_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 > @@ -4026,7 +4598,19 @@ 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_PRIMIDLOC__MASK 0x0000ff00 > +#define A6XX_VPC_CNTL_0_PRIMIDLOC__SHIFT 8 > +static inline uint32_t A6XX_VPC_CNTL_0_PRIMIDLOC(uint32_t val) > +{ > + return ((val) << A6XX_VPC_CNTL_0_PRIMIDLOC__SHIFT) & A6XX_VPC_CNTL_0_PRIMIDLOC__MASK; > +} > #define A6XX_VPC_CNTL_0_VARYING 0x00010000 > +#define A6XX_VPC_CNTL_0_UNKLOC__MASK 0xff000000 > +#define A6XX_VPC_CNTL_0_UNKLOC__SHIFT 24 > +static inline uint32_t A6XX_VPC_CNTL_0_UNKLOC(uint32_t val) > +{ > + return ((val) << A6XX_VPC_CNTL_0_UNKLOC__SHIFT) & A6XX_VPC_CNTL_0_UNKLOC__MASK; > +} > > #define REG_A6XX_VPC_SO_BUF_CNTL 0x00009305 > #define A6XX_VPC_SO_BUF_CNTL_BUF0 0x00000001 > @@ -4042,28 +4626,82 @@ static inline uint32_t A6XX_VPC_CNTL_0_NUMNONPOSVAR(uint32_t val) > > #define REG_A6XX_VPC_UNKNOWN_9602 0x00009602 > > +#define REG_A6XX_PC_TESS_NUM_VERTEX 0x00009800 > + > #define REG_A6XX_PC_UNKNOWN_9801 0x00009801 > > +#define REG_A6XX_PC_TESS_CNTL 0x00009802 > +#define A6XX_PC_TESS_CNTL_SPACING__MASK 0x00000003 > +#define A6XX_PC_TESS_CNTL_SPACING__SHIFT 0 > +static inline uint32_t A6XX_PC_TESS_CNTL_SPACING(enum a6xx_tess_spacing val) > +{ > + return ((val) << A6XX_PC_TESS_CNTL_SPACING__SHIFT) & A6XX_PC_TESS_CNTL_SPACING__MASK; > +} > +#define A6XX_PC_TESS_CNTL_OUTPUT__MASK 0x0000000c > +#define A6XX_PC_TESS_CNTL_OUTPUT__SHIFT 2 > +static inline uint32_t A6XX_PC_TESS_CNTL_OUTPUT(enum a6xx_tess_output val) > +{ > + return ((val) << A6XX_PC_TESS_CNTL_OUTPUT__SHIFT) & A6XX_PC_TESS_CNTL_OUTPUT__MASK; > +} > + > #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_PRIMID_CNTL 0x00009806 > +#define A6XX_PC_PRIMID_CNTL_PRIMID_PASSTHRU 0x00000001 > + > +#define REG_A6XX_PC_DRAW_CMD 0x00009840 > +#define A6XX_PC_DRAW_CMD_STATE_ID__MASK 0x000000ff > +#define A6XX_PC_DRAW_CMD_STATE_ID__SHIFT 0 > +static inline uint32_t A6XX_PC_DRAW_CMD_STATE_ID(uint32_t val) > +{ > + return ((val) << A6XX_PC_DRAW_CMD_STATE_ID__SHIFT) & A6XX_PC_DRAW_CMD_STATE_ID__MASK; > +} > + > +#define REG_A6XX_PC_DISPATCH_CMD 0x00009841 > +#define A6XX_PC_DISPATCH_CMD_STATE_ID__MASK 0x000000ff > +#define A6XX_PC_DISPATCH_CMD_STATE_ID__SHIFT 0 > +static inline uint32_t A6XX_PC_DISPATCH_CMD_STATE_ID(uint32_t val) > +{ > + return ((val) << A6XX_PC_DISPATCH_CMD_STATE_ID__SHIFT) & A6XX_PC_DISPATCH_CMD_STATE_ID__MASK; > +} > + > +#define REG_A6XX_PC_EVENT_CMD 0x00009842 > +#define A6XX_PC_EVENT_CMD_STATE_ID__MASK 0x00ff0000 > +#define A6XX_PC_EVENT_CMD_STATE_ID__SHIFT 16 > +static inline uint32_t A6XX_PC_EVENT_CMD_STATE_ID(uint32_t val) > +{ > + return ((val) << A6XX_PC_EVENT_CMD_STATE_ID__SHIFT) & A6XX_PC_EVENT_CMD_STATE_ID__MASK; > +} > +#define A6XX_PC_EVENT_CMD_EVENT__MASK 0x0000007f > +#define A6XX_PC_EVENT_CMD_EVENT__SHIFT 0 > +static inline uint32_t A6XX_PC_EVENT_CMD_EVENT(enum vgt_event_type val) > +{ > + return ((val) << A6XX_PC_EVENT_CMD_EVENT__SHIFT) & A6XX_PC_EVENT_CMD_EVENT__MASK; > +} > > #define REG_A6XX_PC_UNKNOWN_9980 0x00009980 > > -#define REG_A6XX_PC_UNKNOWN_9981 0x00009981 > +#define REG_A6XX_PC_POLYGON_MODE 0x00009981 > +#define A6XX_PC_POLYGON_MODE_MODE__MASK 0x00000003 > +#define A6XX_PC_POLYGON_MODE_MODE__SHIFT 0 > +static inline uint32_t A6XX_PC_POLYGON_MODE_MODE(enum a6xx_polygon_mode val) > +{ > + return ((val) << A6XX_PC_POLYGON_MODE_MODE__SHIFT) & A6XX_PC_POLYGON_MODE_MODE__MASK; > +} > > #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 A6XX_PC_PRIMITIVE_CNTL_0_TESS_UPPER_LEFT_DOMAIN_ORIGIN 0x00000004 > > #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__MASK 0x000000ff > #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) > { > @@ -4071,7 +4709,62 @@ static inline uint32_t A6XX_PC_PRIMITIVE_CNTL_1_STRIDE_IN_VPC(uint32_t val) > } > #define A6XX_PC_PRIMITIVE_CNTL_1_PSIZE 0x00000100 > > -#define REG_A6XX_PC_UNKNOWN_9B06 0x00009b06 > +#define REG_A6XX_PC_PRIMITIVE_CNTL_2 0x00009b02 > +#define A6XX_PC_PRIMITIVE_CNTL_2_STRIDE_IN_VPC__MASK 0x000000ff > +#define A6XX_PC_PRIMITIVE_CNTL_2_STRIDE_IN_VPC__SHIFT 0 > +static inline uint32_t A6XX_PC_PRIMITIVE_CNTL_2_STRIDE_IN_VPC(uint32_t val) > +{ > + return ((val) << A6XX_PC_PRIMITIVE_CNTL_2_STRIDE_IN_VPC__SHIFT) & A6XX_PC_PRIMITIVE_CNTL_2_STRIDE_IN_VPC__MASK; > +} > +#define A6XX_PC_PRIMITIVE_CNTL_2_PSIZE 0x00000100 > +#define A6XX_PC_PRIMITIVE_CNTL_2_LAYER 0x00000200 > +#define A6XX_PC_PRIMITIVE_CNTL_2_PRIMITIVE_ID 0x00000800 > + > +#define REG_A6XX_PC_PRIMITIVE_CNTL_3 0x00009b03 > +#define A6XX_PC_PRIMITIVE_CNTL_3_STRIDE_IN_VPC__MASK 0x000000ff > +#define A6XX_PC_PRIMITIVE_CNTL_3_STRIDE_IN_VPC__SHIFT 0 > +static inline uint32_t A6XX_PC_PRIMITIVE_CNTL_3_STRIDE_IN_VPC(uint32_t val) > +{ > + return ((val) << A6XX_PC_PRIMITIVE_CNTL_3_STRIDE_IN_VPC__SHIFT) & A6XX_PC_PRIMITIVE_CNTL_3_STRIDE_IN_VPC__MASK; > +} > +#define A6XX_PC_PRIMITIVE_CNTL_3_PSIZE 0x00000100 > + > +#define REG_A6XX_PC_PRIMITIVE_CNTL_4 0x00009b04 > +#define A6XX_PC_PRIMITIVE_CNTL_4_STRIDE_IN_VPC__MASK 0x000000ff > +#define A6XX_PC_PRIMITIVE_CNTL_4_STRIDE_IN_VPC__SHIFT 0 > +static inline uint32_t A6XX_PC_PRIMITIVE_CNTL_4_STRIDE_IN_VPC(uint32_t val) > +{ > + return ((val) << A6XX_PC_PRIMITIVE_CNTL_4_STRIDE_IN_VPC__SHIFT) & A6XX_PC_PRIMITIVE_CNTL_4_STRIDE_IN_VPC__MASK; > +} > +#define A6XX_PC_PRIMITIVE_CNTL_4_PSIZE 0x00000100 > + > +#define REG_A6XX_PC_PRIMITIVE_CNTL_5 0x00009b05 > +#define A6XX_PC_PRIMITIVE_CNTL_5_GS_VERTICES_OUT__MASK 0x000000ff > +#define A6XX_PC_PRIMITIVE_CNTL_5_GS_VERTICES_OUT__SHIFT 0 > +static inline uint32_t A6XX_PC_PRIMITIVE_CNTL_5_GS_VERTICES_OUT(uint32_t val) > +{ > + return ((val) << A6XX_PC_PRIMITIVE_CNTL_5_GS_VERTICES_OUT__SHIFT) & A6XX_PC_PRIMITIVE_CNTL_5_GS_VERTICES_OUT__MASK; > +} > +#define A6XX_PC_PRIMITIVE_CNTL_5_GS_INVOCATIONS__MASK 0x00007c00 > +#define A6XX_PC_PRIMITIVE_CNTL_5_GS_INVOCATIONS__SHIFT 10 > +static inline uint32_t A6XX_PC_PRIMITIVE_CNTL_5_GS_INVOCATIONS(uint32_t val) > +{ > + return ((val) << A6XX_PC_PRIMITIVE_CNTL_5_GS_INVOCATIONS__SHIFT) & A6XX_PC_PRIMITIVE_CNTL_5_GS_INVOCATIONS__MASK; > +} > +#define A6XX_PC_PRIMITIVE_CNTL_5_GS_OUTPUT__MASK 0x00030000 > +#define A6XX_PC_PRIMITIVE_CNTL_5_GS_OUTPUT__SHIFT 16 > +static inline uint32_t A6XX_PC_PRIMITIVE_CNTL_5_GS_OUTPUT(enum a6xx_tess_output val) > +{ > + return ((val) << A6XX_PC_PRIMITIVE_CNTL_5_GS_OUTPUT__SHIFT) & A6XX_PC_PRIMITIVE_CNTL_5_GS_OUTPUT__MASK; > +} > + > +#define REG_A6XX_PC_PRIMITIVE_CNTL_6 0x00009b06 > +#define A6XX_PC_PRIMITIVE_CNTL_6_STRIDE_IN_VPC__MASK 0x000001ff > +#define A6XX_PC_PRIMITIVE_CNTL_6_STRIDE_IN_VPC__SHIFT 0 > +static inline uint32_t A6XX_PC_PRIMITIVE_CNTL_6_STRIDE_IN_VPC(uint32_t val) > +{ > + return ((val) << A6XX_PC_PRIMITIVE_CNTL_6_STRIDE_IN_VPC__SHIFT) & A6XX_PC_PRIMITIVE_CNTL_6_STRIDE_IN_VPC__MASK; > +} > > #define REG_A6XX_PC_UNKNOWN_9B07 0x00009b07 > > @@ -4079,14 +4772,56 @@ static inline uint32_t A6XX_PC_PRIMITIVE_CNTL_1_STRIDE_IN_VPC(uint32_t val) > > #define REG_A6XX_PC_TESSFACTOR_ADDR_HI 0x00009e09 > > +#define REG_A6XX_PC_VSTREAM_CONTROL 0x00009e11 > +#define A6XX_PC_VSTREAM_CONTROL_VSC_SIZE__MASK 0x003f0000 > +#define A6XX_PC_VSTREAM_CONTROL_VSC_SIZE__SHIFT 16 > +static inline uint32_t A6XX_PC_VSTREAM_CONTROL_VSC_SIZE(uint32_t val) > +{ > + return ((val) << A6XX_PC_VSTREAM_CONTROL_VSC_SIZE__SHIFT) & A6XX_PC_VSTREAM_CONTROL_VSC_SIZE__MASK; > +} > +#define A6XX_PC_VSTREAM_CONTROL_VSC_N__MASK 0x07c00000 > +#define A6XX_PC_VSTREAM_CONTROL_VSC_N__SHIFT 22 > +static inline uint32_t A6XX_PC_VSTREAM_CONTROL_VSC_N(uint32_t val) > +{ > + return ((val) << A6XX_PC_VSTREAM_CONTROL_VSC_N__SHIFT) & A6XX_PC_VSTREAM_CONTROL_VSC_N__MASK; > +} > + > +#define REG_A6XX_PC_BIN_DATA_ADDR2_LO 0x00009e12 > + > +#define REG_A6XX_PC_BIN_DATA_ADDR2_HI 0x00009e13 > + > +#define REG_A6XX_PC_BIN_DATA_ADDR_LO 0x00009e14 > + > +#define REG_A6XX_PC_BIN_DATA_ADDR_HI 0x00009e15 > + > +#define REG_A6XX_PC_2D_EVENT_CMD 0x00009c00 > +#define A6XX_PC_2D_EVENT_CMD_STATE_ID__MASK 0x0000ff00 > +#define A6XX_PC_2D_EVENT_CMD_STATE_ID__SHIFT 8 > +static inline uint32_t A6XX_PC_2D_EVENT_CMD_STATE_ID(uint32_t val) > +{ > + return ((val) << A6XX_PC_2D_EVENT_CMD_STATE_ID__SHIFT) & A6XX_PC_2D_EVENT_CMD_STATE_ID__MASK; > +} > +#define A6XX_PC_2D_EVENT_CMD_EVENT__MASK 0x0000007f > +#define A6XX_PC_2D_EVENT_CMD_EVENT__SHIFT 0 > +static inline uint32_t A6XX_PC_2D_EVENT_CMD_EVENT(enum vgt_event_type val) > +{ > + return ((val) << A6XX_PC_2D_EVENT_CMD_EVENT__SHIFT) & A6XX_PC_2D_EVENT_CMD_EVENT__MASK; > +} > + > #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) > +#define A6XX_VFD_CONTROL_0_FETCH_CNT__MASK 0x0000003f > +#define A6XX_VFD_CONTROL_0_FETCH_CNT__SHIFT 0 > +static inline uint32_t A6XX_VFD_CONTROL_0_FETCH_CNT(uint32_t val) > { > - return ((val) << A6XX_VFD_CONTROL_0_VTXCNT__SHIFT) & A6XX_VFD_CONTROL_0_VTXCNT__MASK; > + return ((val) << A6XX_VFD_CONTROL_0_FETCH_CNT__SHIFT) & A6XX_VFD_CONTROL_0_FETCH_CNT__MASK; > +} > +#define A6XX_VFD_CONTROL_0_DECODE_CNT__MASK 0x00003f00 > +#define A6XX_VFD_CONTROL_0_DECODE_CNT__SHIFT 8 > +static inline uint32_t A6XX_VFD_CONTROL_0_DECODE_CNT(uint32_t val) > +{ > + return ((val) << A6XX_VFD_CONTROL_0_DECODE_CNT__SHIFT) & A6XX_VFD_CONTROL_0_DECODE_CNT__MASK; > } > > #define REG_A6XX_VFD_CONTROL_1 0x0000a001 > @@ -4110,19 +4845,25 @@ static inline uint32_t A6XX_VFD_CONTROL_1_REGID4PRIMID(uint32_t val) > } > > #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) > +#define A6XX_VFD_CONTROL_2_REGID_HSPATCHID__MASK 0x000000ff > +#define A6XX_VFD_CONTROL_2_REGID_HSPATCHID__SHIFT 0 > +static inline uint32_t A6XX_VFD_CONTROL_2_REGID_HSPATCHID(uint32_t val) > +{ > + return ((val) << A6XX_VFD_CONTROL_2_REGID_HSPATCHID__SHIFT) & A6XX_VFD_CONTROL_2_REGID_HSPATCHID__MASK; > +} > +#define A6XX_VFD_CONTROL_2_REGID_INVOCATIONID__MASK 0x0000ff00 > +#define A6XX_VFD_CONTROL_2_REGID_INVOCATIONID__SHIFT 8 > +static inline uint32_t A6XX_VFD_CONTROL_2_REGID_INVOCATIONID(uint32_t val) > { > - return ((val) << A6XX_VFD_CONTROL_2_REGID_PATCHID__SHIFT) & A6XX_VFD_CONTROL_2_REGID_PATCHID__MASK; > + return ((val) << A6XX_VFD_CONTROL_2_REGID_INVOCATIONID__SHIFT) & A6XX_VFD_CONTROL_2_REGID_INVOCATIONID__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) > +#define A6XX_VFD_CONTROL_3_REGID_DSPATCHID__MASK 0x0000ff00 > +#define A6XX_VFD_CONTROL_3_REGID_DSPATCHID__SHIFT 8 > +static inline uint32_t A6XX_VFD_CONTROL_3_REGID_DSPATCHID(uint32_t val) > { > - return ((val) << A6XX_VFD_CONTROL_3_REGID_PATCHID__SHIFT) & A6XX_VFD_CONTROL_3_REGID_PATCHID__MASK; > + return ((val) << A6XX_VFD_CONTROL_3_REGID_DSPATCHID__SHIFT) & A6XX_VFD_CONTROL_3_REGID_DSPATCHID__MASK; > } > #define A6XX_VFD_CONTROL_3_REGID_TESSX__MASK 0x00ff0000 > #define A6XX_VFD_CONTROL_3_REGID_TESSX__SHIFT 16 > @@ -4140,15 +4881,24 @@ static inline uint32_t A6XX_VFD_CONTROL_3_REGID_TESSY(uint32_t val) > #define REG_A6XX_VFD_CONTROL_4 0x0000a004 > > #define REG_A6XX_VFD_CONTROL_5 0x0000a005 > +#define A6XX_VFD_CONTROL_5_REGID_GSHEADER__MASK 0x000000ff > +#define A6XX_VFD_CONTROL_5_REGID_GSHEADER__SHIFT 0 > +static inline uint32_t A6XX_VFD_CONTROL_5_REGID_GSHEADER(uint32_t val) > +{ > + return ((val) << A6XX_VFD_CONTROL_5_REGID_GSHEADER__SHIFT) & A6XX_VFD_CONTROL_5_REGID_GSHEADER__MASK; > +} > > #define REG_A6XX_VFD_CONTROL_6 0x0000a006 > +#define A6XX_VFD_CONTROL_6_PRIMID_PASSTHRU 0x00000001 > > #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_ADD_OFFSET 0x0000a009 > +#define A6XX_VFD_ADD_OFFSET_VERTEX 0x00000001 > +#define A6XX_VFD_ADD_OFFSET_INSTANCE 0x00000002 > > #define REG_A6XX_VFD_INDEX_OFFSET 0x0000a00e > > @@ -4156,6 +4906,8 @@ static inline uint32_t A6XX_VFD_CONTROL_3_REGID_TESSY(uint32_t val) > > static inline uint32_t REG_A6XX_VFD_FETCH(uint32_t i0) { return 0x0000a010 + 0x4*i0; } > > +static inline uint32_t REG_A6XX_VFD_FETCH_BASE(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; } > @@ -4173,10 +4925,16 @@ 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_OFFSET__MASK 0x0001ffe0 > +#define A6XX_VFD_DECODE_INSTR_OFFSET__SHIFT 5 > +static inline uint32_t A6XX_VFD_DECODE_INSTR_OFFSET(uint32_t val) > +{ > + return ((val) << A6XX_VFD_DECODE_INSTR_OFFSET__SHIFT) & A6XX_VFD_DECODE_INSTR_OFFSET__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) > +static inline uint32_t A6XX_VFD_DECODE_INSTR_FORMAT(enum a6xx_format val) > { > return ((val) << A6XX_VFD_DECODE_INSTR_FORMAT__SHIFT) & A6XX_VFD_DECODE_INSTR_FORMAT__MASK; > } > @@ -4209,8 +4967,40 @@ static inline uint32_t A6XX_VFD_DEST_CNTL_INSTR_REGID(uint32_t val) > > #define REG_A6XX_SP_UNKNOWN_A0F8 0x0000a0f8 > > +#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_DIFF_FINE 0x00800000 > +#define A6XX_SP_VS_CTRL_REG0_PIXLODENABLE 0x04000000 > +#define A6XX_SP_VS_CTRL_REG0_MERGEDREGS 0x80000000 > + > +#define REG_A6XX_SP_VS_BRANCH_COND 0x0000a801 > + > #define REG_A6XX_SP_PRIMITIVE_CNTL 0x0000a802 > -#define A6XX_SP_PRIMITIVE_CNTL_VSOUT__MASK 0x0000001f > +#define A6XX_SP_PRIMITIVE_CNTL_VSOUT__MASK 0x0000003f > #define A6XX_SP_PRIMITIVE_CNTL_VSOUT__SHIFT 0 > static inline uint32_t A6XX_SP_PRIMITIVE_CNTL_VSOUT(uint32_t val) > { > @@ -4273,35 +5063,6 @@ 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 > @@ -4311,6 +5072,10 @@ static inline uint32_t A6XX_SP_VS_CTRL_REG0_THREADSIZE(enum a3xx_threadsize val) > #define REG_A6XX_SP_VS_TEX_COUNT 0x0000a822 > > #define REG_A6XX_SP_VS_CONFIG 0x0000a823 > +#define A6XX_SP_VS_CONFIG_BINDLESS_TEX 0x00000001 > +#define A6XX_SP_VS_CONFIG_BINDLESS_SAMP 0x00000002 > +#define A6XX_SP_VS_CONFIG_BINDLESS_IBO 0x00000004 > +#define A6XX_SP_VS_CONFIG_BINDLESS_UBO 0x00000008 > #define A6XX_SP_VS_CONFIG_ENABLED 0x00000100 > #define A6XX_SP_VS_CONFIG_NTEX__MASK 0x0001fe00 > #define A6XX_SP_VS_CONFIG_NTEX__SHIFT 9 > @@ -4318,12 +5083,18 @@ 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__MASK 0x003e0000 > #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 A6XX_SP_VS_CONFIG_NIBO__MASK 0x3fc00000 > +#define A6XX_SP_VS_CONFIG_NIBO__SHIFT 22 > +static inline uint32_t A6XX_SP_VS_CONFIG_NIBO(uint32_t val) > +{ > + return ((val) << A6XX_SP_VS_CONFIG_NIBO__SHIFT) & A6XX_SP_VS_CONFIG_NIBO__MASK; > +} > > #define REG_A6XX_SP_VS_INSTRLEN 0x0000a824 > > @@ -4353,11 +5124,14 @@ 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_DIFF_FINE 0x00800000 > #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_UNKNOWN_A833 0x0000a833 > + > #define REG_A6XX_SP_HS_OBJ_START_LO 0x0000a834 > > #define REG_A6XX_SP_HS_OBJ_START_HI 0x0000a835 > @@ -4365,6 +5139,10 @@ static inline uint32_t A6XX_SP_HS_CTRL_REG0_THREADSIZE(enum a3xx_threadsize val) > #define REG_A6XX_SP_HS_TEX_COUNT 0x0000a83a > > #define REG_A6XX_SP_HS_CONFIG 0x0000a83b > +#define A6XX_SP_HS_CONFIG_BINDLESS_TEX 0x00000001 > +#define A6XX_SP_HS_CONFIG_BINDLESS_SAMP 0x00000002 > +#define A6XX_SP_HS_CONFIG_BINDLESS_IBO 0x00000004 > +#define A6XX_SP_HS_CONFIG_BINDLESS_UBO 0x00000008 > #define A6XX_SP_HS_CONFIG_ENABLED 0x00000100 > #define A6XX_SP_HS_CONFIG_NTEX__MASK 0x0001fe00 > #define A6XX_SP_HS_CONFIG_NTEX__SHIFT 9 > @@ -4372,12 +5150,18 @@ 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__MASK 0x003e0000 > #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 A6XX_SP_HS_CONFIG_NIBO__MASK 0x3fc00000 > +#define A6XX_SP_HS_CONFIG_NIBO__SHIFT 22 > +static inline uint32_t A6XX_SP_HS_CONFIG_NIBO(uint32_t val) > +{ > + return ((val) << A6XX_SP_HS_CONFIG_NIBO__SHIFT) & A6XX_SP_HS_CONFIG_NIBO__MASK; > +} > > #define REG_A6XX_SP_HS_INSTRLEN 0x0000a83c > > @@ -4407,9 +5191,76 @@ 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_DIFF_FINE 0x00800000 > #define A6XX_SP_DS_CTRL_REG0_PIXLODENABLE 0x04000000 > #define A6XX_SP_DS_CTRL_REG0_MERGEDREGS 0x80000000 > > +#define REG_A6XX_SP_DS_PRIMITIVE_CNTL 0x0000a842 > +#define A6XX_SP_DS_PRIMITIVE_CNTL_DSOUT__MASK 0x0000001f > +#define A6XX_SP_DS_PRIMITIVE_CNTL_DSOUT__SHIFT 0 > +static inline uint32_t A6XX_SP_DS_PRIMITIVE_CNTL_DSOUT(uint32_t val) > +{ > + return ((val) << A6XX_SP_DS_PRIMITIVE_CNTL_DSOUT__SHIFT) & A6XX_SP_DS_PRIMITIVE_CNTL_DSOUT__MASK; > +} > + > +static inline uint32_t REG_A6XX_SP_DS_OUT(uint32_t i0) { return 0x0000a843 + 0x1*i0; } > + > +static inline uint32_t REG_A6XX_SP_DS_OUT_REG(uint32_t i0) { return 0x0000a843 + 0x1*i0; } > +#define A6XX_SP_DS_OUT_REG_A_REGID__MASK 0x000000ff > +#define A6XX_SP_DS_OUT_REG_A_REGID__SHIFT 0 > +static inline uint32_t A6XX_SP_DS_OUT_REG_A_REGID(uint32_t val) > +{ > + return ((val) << A6XX_SP_DS_OUT_REG_A_REGID__SHIFT) & A6XX_SP_DS_OUT_REG_A_REGID__MASK; > +} > +#define A6XX_SP_DS_OUT_REG_A_COMPMASK__MASK 0x00000f00 > +#define A6XX_SP_DS_OUT_REG_A_COMPMASK__SHIFT 8 > +static inline uint32_t A6XX_SP_DS_OUT_REG_A_COMPMASK(uint32_t val) > +{ > + return ((val) << A6XX_SP_DS_OUT_REG_A_COMPMASK__SHIFT) & A6XX_SP_DS_OUT_REG_A_COMPMASK__MASK; > +} > +#define A6XX_SP_DS_OUT_REG_B_REGID__MASK 0x00ff0000 > +#define A6XX_SP_DS_OUT_REG_B_REGID__SHIFT 16 > +static inline uint32_t A6XX_SP_DS_OUT_REG_B_REGID(uint32_t val) > +{ > + return ((val) << A6XX_SP_DS_OUT_REG_B_REGID__SHIFT) & A6XX_SP_DS_OUT_REG_B_REGID__MASK; > +} > +#define A6XX_SP_DS_OUT_REG_B_COMPMASK__MASK 0x0f000000 > +#define A6XX_SP_DS_OUT_REG_B_COMPMASK__SHIFT 24 > +static inline uint32_t A6XX_SP_DS_OUT_REG_B_COMPMASK(uint32_t val) > +{ > + return ((val) << A6XX_SP_DS_OUT_REG_B_COMPMASK__SHIFT) & A6XX_SP_DS_OUT_REG_B_COMPMASK__MASK; > +} > + > +static inline uint32_t REG_A6XX_SP_DS_VPC_DST(uint32_t i0) { return 0x0000a853 + 0x1*i0; } > + > +static inline uint32_t REG_A6XX_SP_DS_VPC_DST_REG(uint32_t i0) { return 0x0000a853 + 0x1*i0; } > +#define A6XX_SP_DS_VPC_DST_REG_OUTLOC0__MASK 0x000000ff > +#define A6XX_SP_DS_VPC_DST_REG_OUTLOC0__SHIFT 0 > +static inline uint32_t A6XX_SP_DS_VPC_DST_REG_OUTLOC0(uint32_t val) > +{ > + return ((val) << A6XX_SP_DS_VPC_DST_REG_OUTLOC0__SHIFT) & A6XX_SP_DS_VPC_DST_REG_OUTLOC0__MASK; > +} > +#define A6XX_SP_DS_VPC_DST_REG_OUTLOC1__MASK 0x0000ff00 > +#define A6XX_SP_DS_VPC_DST_REG_OUTLOC1__SHIFT 8 > +static inline uint32_t A6XX_SP_DS_VPC_DST_REG_OUTLOC1(uint32_t val) > +{ > + return ((val) << A6XX_SP_DS_VPC_DST_REG_OUTLOC1__SHIFT) & A6XX_SP_DS_VPC_DST_REG_OUTLOC1__MASK; > +} > +#define A6XX_SP_DS_VPC_DST_REG_OUTLOC2__MASK 0x00ff0000 > +#define A6XX_SP_DS_VPC_DST_REG_OUTLOC2__SHIFT 16 > +static inline uint32_t A6XX_SP_DS_VPC_DST_REG_OUTLOC2(uint32_t val) > +{ > + return ((val) << A6XX_SP_DS_VPC_DST_REG_OUTLOC2__SHIFT) & A6XX_SP_DS_VPC_DST_REG_OUTLOC2__MASK; > +} > +#define A6XX_SP_DS_VPC_DST_REG_OUTLOC3__MASK 0xff000000 > +#define A6XX_SP_DS_VPC_DST_REG_OUTLOC3__SHIFT 24 > +static inline uint32_t A6XX_SP_DS_VPC_DST_REG_OUTLOC3(uint32_t val) > +{ > + return ((val) << A6XX_SP_DS_VPC_DST_REG_OUTLOC3__SHIFT) & A6XX_SP_DS_VPC_DST_REG_OUTLOC3__MASK; > +} > + > +#define REG_A6XX_SP_DS_UNKNOWN_A85B 0x0000a85b > + > #define REG_A6XX_SP_DS_OBJ_START_LO 0x0000a85c > > #define REG_A6XX_SP_DS_OBJ_START_HI 0x0000a85d > @@ -4417,6 +5268,10 @@ static inline uint32_t A6XX_SP_DS_CTRL_REG0_THREADSIZE(enum a3xx_threadsize val) > #define REG_A6XX_SP_DS_TEX_COUNT 0x0000a862 > > #define REG_A6XX_SP_DS_CONFIG 0x0000a863 > +#define A6XX_SP_DS_CONFIG_BINDLESS_TEX 0x00000001 > +#define A6XX_SP_DS_CONFIG_BINDLESS_SAMP 0x00000002 > +#define A6XX_SP_DS_CONFIG_BINDLESS_IBO 0x00000004 > +#define A6XX_SP_DS_CONFIG_BINDLESS_UBO 0x00000008 > #define A6XX_SP_DS_CONFIG_ENABLED 0x00000100 > #define A6XX_SP_DS_CONFIG_NTEX__MASK 0x0001fe00 > #define A6XX_SP_DS_CONFIG_NTEX__SHIFT 9 > @@ -4424,12 +5279,18 @@ 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__MASK 0x003e0000 > #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 A6XX_SP_DS_CONFIG_NIBO__MASK 0x3fc00000 > +#define A6XX_SP_DS_CONFIG_NIBO__SHIFT 22 > +static inline uint32_t A6XX_SP_DS_CONFIG_NIBO(uint32_t val) > +{ > + return ((val) << A6XX_SP_DS_CONFIG_NIBO__SHIFT) & A6XX_SP_DS_CONFIG_NIBO__MASK; > +} > > #define REG_A6XX_SP_DS_INSTRLEN 0x0000a864 > > @@ -4459,10 +5320,83 @@ 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_DIFF_FINE 0x00800000 > #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_PRIM_SIZE 0x0000a871 > + > +#define REG_A6XX_SP_GS_BRANCH_COND 0x0000a872 > + > +#define REG_A6XX_SP_PRIMITIVE_CNTL_GS 0x0000a873 > +#define A6XX_SP_PRIMITIVE_CNTL_GS_GSOUT__MASK 0x0000003f > +#define A6XX_SP_PRIMITIVE_CNTL_GS_GSOUT__SHIFT 0 > +static inline uint32_t A6XX_SP_PRIMITIVE_CNTL_GS_GSOUT(uint32_t val) > +{ > + return ((val) << A6XX_SP_PRIMITIVE_CNTL_GS_GSOUT__SHIFT) & A6XX_SP_PRIMITIVE_CNTL_GS_GSOUT__MASK; > +} > +#define A6XX_SP_PRIMITIVE_CNTL_GS_FLAGS_REGID__MASK 0x00003fc0 > +#define A6XX_SP_PRIMITIVE_CNTL_GS_FLAGS_REGID__SHIFT 6 > +static inline uint32_t A6XX_SP_PRIMITIVE_CNTL_GS_FLAGS_REGID(uint32_t val) > +{ > + return ((val) << A6XX_SP_PRIMITIVE_CNTL_GS_FLAGS_REGID__SHIFT) & A6XX_SP_PRIMITIVE_CNTL_GS_FLAGS_REGID__MASK; > +} > + > +static inline uint32_t REG_A6XX_SP_GS_OUT(uint32_t i0) { return 0x0000a874 + 0x1*i0; } > + > +static inline uint32_t REG_A6XX_SP_GS_OUT_REG(uint32_t i0) { return 0x0000a874 + 0x1*i0; } > +#define A6XX_SP_GS_OUT_REG_A_REGID__MASK 0x000000ff > +#define A6XX_SP_GS_OUT_REG_A_REGID__SHIFT 0 > +static inline uint32_t A6XX_SP_GS_OUT_REG_A_REGID(uint32_t val) > +{ > + return ((val) << A6XX_SP_GS_OUT_REG_A_REGID__SHIFT) & A6XX_SP_GS_OUT_REG_A_REGID__MASK; > +} > +#define A6XX_SP_GS_OUT_REG_A_COMPMASK__MASK 0x00000f00 > +#define A6XX_SP_GS_OUT_REG_A_COMPMASK__SHIFT 8 > +static inline uint32_t A6XX_SP_GS_OUT_REG_A_COMPMASK(uint32_t val) > +{ > + return ((val) << A6XX_SP_GS_OUT_REG_A_COMPMASK__SHIFT) & A6XX_SP_GS_OUT_REG_A_COMPMASK__MASK; > +} > +#define A6XX_SP_GS_OUT_REG_B_REGID__MASK 0x00ff0000 > +#define A6XX_SP_GS_OUT_REG_B_REGID__SHIFT 16 > +static inline uint32_t A6XX_SP_GS_OUT_REG_B_REGID(uint32_t val) > +{ > + return ((val) << A6XX_SP_GS_OUT_REG_B_REGID__SHIFT) & A6XX_SP_GS_OUT_REG_B_REGID__MASK; > +} > +#define A6XX_SP_GS_OUT_REG_B_COMPMASK__MASK 0x0f000000 > +#define A6XX_SP_GS_OUT_REG_B_COMPMASK__SHIFT 24 > +static inline uint32_t A6XX_SP_GS_OUT_REG_B_COMPMASK(uint32_t val) > +{ > + return ((val) << A6XX_SP_GS_OUT_REG_B_COMPMASK__SHIFT) & A6XX_SP_GS_OUT_REG_B_COMPMASK__MASK; > +} > + > +static inline uint32_t REG_A6XX_SP_GS_VPC_DST(uint32_t i0) { return 0x0000a884 + 0x1*i0; } > + > +static inline uint32_t REG_A6XX_SP_GS_VPC_DST_REG(uint32_t i0) { return 0x0000a884 + 0x1*i0; } > +#define A6XX_SP_GS_VPC_DST_REG_OUTLOC0__MASK 0x000000ff > +#define A6XX_SP_GS_VPC_DST_REG_OUTLOC0__SHIFT 0 > +static inline uint32_t A6XX_SP_GS_VPC_DST_REG_OUTLOC0(uint32_t val) > +{ > + return ((val) << A6XX_SP_GS_VPC_DST_REG_OUTLOC0__SHIFT) & A6XX_SP_GS_VPC_DST_REG_OUTLOC0__MASK; > +} > +#define A6XX_SP_GS_VPC_DST_REG_OUTLOC1__MASK 0x0000ff00 > +#define A6XX_SP_GS_VPC_DST_REG_OUTLOC1__SHIFT 8 > +static inline uint32_t A6XX_SP_GS_VPC_DST_REG_OUTLOC1(uint32_t val) > +{ > + return ((val) << A6XX_SP_GS_VPC_DST_REG_OUTLOC1__SHIFT) & A6XX_SP_GS_VPC_DST_REG_OUTLOC1__MASK; > +} > +#define A6XX_SP_GS_VPC_DST_REG_OUTLOC2__MASK 0x00ff0000 > +#define A6XX_SP_GS_VPC_DST_REG_OUTLOC2__SHIFT 16 > +static inline uint32_t A6XX_SP_GS_VPC_DST_REG_OUTLOC2(uint32_t val) > +{ > + return ((val) << A6XX_SP_GS_VPC_DST_REG_OUTLOC2__SHIFT) & A6XX_SP_GS_VPC_DST_REG_OUTLOC2__MASK; > +} > +#define A6XX_SP_GS_VPC_DST_REG_OUTLOC3__MASK 0xff000000 > +#define A6XX_SP_GS_VPC_DST_REG_OUTLOC3__SHIFT 24 > +static inline uint32_t A6XX_SP_GS_VPC_DST_REG_OUTLOC3(uint32_t val) > +{ > + return ((val) << A6XX_SP_GS_VPC_DST_REG_OUTLOC3__SHIFT) & A6XX_SP_GS_VPC_DST_REG_OUTLOC3__MASK; > +} > > #define REG_A6XX_SP_GS_OBJ_START_LO 0x0000a88d > > @@ -4471,6 +5405,10 @@ static inline uint32_t A6XX_SP_GS_CTRL_REG0_THREADSIZE(enum a3xx_threadsize val) > #define REG_A6XX_SP_GS_TEX_COUNT 0x0000a893 > > #define REG_A6XX_SP_GS_CONFIG 0x0000a894 > +#define A6XX_SP_GS_CONFIG_BINDLESS_TEX 0x00000001 > +#define A6XX_SP_GS_CONFIG_BINDLESS_SAMP 0x00000002 > +#define A6XX_SP_GS_CONFIG_BINDLESS_IBO 0x00000004 > +#define A6XX_SP_GS_CONFIG_BINDLESS_UBO 0x00000008 > #define A6XX_SP_GS_CONFIG_ENABLED 0x00000100 > #define A6XX_SP_GS_CONFIG_NTEX__MASK 0x0001fe00 > #define A6XX_SP_GS_CONFIG_NTEX__SHIFT 9 > @@ -4478,12 +5416,18 @@ 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__MASK 0x003e0000 > #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 A6XX_SP_GS_CONFIG_NIBO__MASK 0x3fc00000 > +#define A6XX_SP_GS_CONFIG_NIBO__SHIFT 22 > +static inline uint32_t A6XX_SP_GS_CONFIG_NIBO(uint32_t val) > +{ > + return ((val) << A6XX_SP_GS_CONFIG_NIBO__SHIFT) & A6XX_SP_GS_CONFIG_NIBO__MASK; > +} > > #define REG_A6XX_SP_GS_INSTRLEN 0x0000a895 > > @@ -4545,9 +5489,12 @@ 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_DIFF_FINE 0x00800000 > #define A6XX_SP_FS_CTRL_REG0_PIXLODENABLE 0x04000000 > #define A6XX_SP_FS_CTRL_REG0_MERGEDREGS 0x80000000 > > +#define REG_A6XX_SP_FS_BRANCH_COND 0x0000a981 > + > #define REG_A6XX_SP_UNKNOWN_A982 0x0000a982 > > #define REG_A6XX_SP_FS_OBJ_START_LO 0x0000a983 > @@ -4557,6 +5504,7 @@ static inline uint32_t A6XX_SP_FS_CTRL_REG0_THREADSIZE(enum a3xx_threadsize val) > #define REG_A6XX_SP_BLEND_CNTL 0x0000a989 > #define A6XX_SP_BLEND_CNTL_ENABLED 0x00000001 > #define A6XX_SP_BLEND_CNTL_UNK8 0x00000100 > +#define A6XX_SP_BLEND_CNTL_DUAL_COLOR_IN_ENABLE 0x00000200 > #define A6XX_SP_BLEND_CNTL_ALPHA_TO_COVERAGE 0x00000400 > > #define REG_A6XX_SP_SRGB_CNTL 0x0000a98a > @@ -4620,12 +5568,19 @@ static inline uint32_t A6XX_SP_FS_RENDER_COMPONENTS_RT7(uint32_t val) > } > > #define REG_A6XX_SP_FS_OUTPUT_CNTL0 0x0000a98c > +#define A6XX_SP_FS_OUTPUT_CNTL0_DUAL_COLOR_IN_ENABLE 0x00000001 > #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 A6XX_SP_FS_OUTPUT_CNTL0_SAMPMASK_REGID__MASK 0x00ff0000 > +#define A6XX_SP_FS_OUTPUT_CNTL0_SAMPMASK_REGID__SHIFT 16 > +static inline uint32_t A6XX_SP_FS_OUTPUT_CNTL0_SAMPMASK_REGID(uint32_t val) > +{ > + return ((val) << A6XX_SP_FS_OUTPUT_CNTL0_SAMPMASK_REGID__SHIFT) & A6XX_SP_FS_OUTPUT_CNTL0_SAMPMASK_REGID__MASK; > +} > > #define REG_A6XX_SP_FS_OUTPUT_CNTL1 0x0000a98d > #define A6XX_SP_FS_OUTPUT_CNTL1_MRT__MASK 0x0000000f > @@ -4640,19 +5595,95 @@ static inline uint32_t REG_A6XX_SP_FS_MRT(uint32_t i0) { return 0x0000a996 + 0x1 > 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) > +static inline uint32_t A6XX_SP_FS_MRT_REG_COLOR_FORMAT(enum a6xx_format 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 REG_A6XX_SP_UNKNOWN_A99E 0x0000a99e > +#define REG_A6XX_SP_FS_PREFETCH_CNTL 0x0000a99e > +#define A6XX_SP_FS_PREFETCH_CNTL_COUNT__MASK 0x00000007 > +#define A6XX_SP_FS_PREFETCH_CNTL_COUNT__SHIFT 0 > +static inline uint32_t A6XX_SP_FS_PREFETCH_CNTL_COUNT(uint32_t val) > +{ > + return ((val) << A6XX_SP_FS_PREFETCH_CNTL_COUNT__SHIFT) & A6XX_SP_FS_PREFETCH_CNTL_COUNT__MASK; > +} > +#define A6XX_SP_FS_PREFETCH_CNTL_UNK3 0x00000008 > +#define A6XX_SP_FS_PREFETCH_CNTL_UNK4__MASK 0x00000ff0 > +#define A6XX_SP_FS_PREFETCH_CNTL_UNK4__SHIFT 4 > +static inline uint32_t A6XX_SP_FS_PREFETCH_CNTL_UNK4(uint32_t val) > +{ > + return ((val) << A6XX_SP_FS_PREFETCH_CNTL_UNK4__SHIFT) & A6XX_SP_FS_PREFETCH_CNTL_UNK4__MASK; > +} > + > +static inline uint32_t REG_A6XX_SP_FS_PREFETCH(uint32_t i0) { return 0x0000a99f + 0x1*i0; } > + > +static inline uint32_t REG_A6XX_SP_FS_PREFETCH_CMD(uint32_t i0) { return 0x0000a99f + 0x1*i0; } > +#define A6XX_SP_FS_PREFETCH_CMD_SRC__MASK 0x0000007f > +#define A6XX_SP_FS_PREFETCH_CMD_SRC__SHIFT 0 > +static inline uint32_t A6XX_SP_FS_PREFETCH_CMD_SRC(uint32_t val) > +{ > + return ((val) << A6XX_SP_FS_PREFETCH_CMD_SRC__SHIFT) & A6XX_SP_FS_PREFETCH_CMD_SRC__MASK; > +} > +#define A6XX_SP_FS_PREFETCH_CMD_SAMP_ID__MASK 0x00000780 > +#define A6XX_SP_FS_PREFETCH_CMD_SAMP_ID__SHIFT 7 > +static inline uint32_t A6XX_SP_FS_PREFETCH_CMD_SAMP_ID(uint32_t val) > +{ > + return ((val) << A6XX_SP_FS_PREFETCH_CMD_SAMP_ID__SHIFT) & A6XX_SP_FS_PREFETCH_CMD_SAMP_ID__MASK; > +} > +#define A6XX_SP_FS_PREFETCH_CMD_TEX_ID__MASK 0x0000f800 > +#define A6XX_SP_FS_PREFETCH_CMD_TEX_ID__SHIFT 11 > +static inline uint32_t A6XX_SP_FS_PREFETCH_CMD_TEX_ID(uint32_t val) > +{ > + return ((val) << A6XX_SP_FS_PREFETCH_CMD_TEX_ID__SHIFT) & A6XX_SP_FS_PREFETCH_CMD_TEX_ID__MASK; > +} > +#define A6XX_SP_FS_PREFETCH_CMD_DST__MASK 0x003f0000 > +#define A6XX_SP_FS_PREFETCH_CMD_DST__SHIFT 16 > +static inline uint32_t A6XX_SP_FS_PREFETCH_CMD_DST(uint32_t val) > +{ > + return ((val) << A6XX_SP_FS_PREFETCH_CMD_DST__SHIFT) & A6XX_SP_FS_PREFETCH_CMD_DST__MASK; > +} > +#define A6XX_SP_FS_PREFETCH_CMD_WRMASK__MASK 0x03c00000 > +#define A6XX_SP_FS_PREFETCH_CMD_WRMASK__SHIFT 22 > +static inline uint32_t A6XX_SP_FS_PREFETCH_CMD_WRMASK(uint32_t val) > +{ > + return ((val) << A6XX_SP_FS_PREFETCH_CMD_WRMASK__SHIFT) & A6XX_SP_FS_PREFETCH_CMD_WRMASK__MASK; > +} > +#define A6XX_SP_FS_PREFETCH_CMD_HALF 0x04000000 > +#define A6XX_SP_FS_PREFETCH_CMD_CMD__MASK 0xf8000000 > +#define A6XX_SP_FS_PREFETCH_CMD_CMD__SHIFT 27 > +static inline uint32_t A6XX_SP_FS_PREFETCH_CMD_CMD(uint32_t val) > +{ > + return ((val) << A6XX_SP_FS_PREFETCH_CMD_CMD__SHIFT) & A6XX_SP_FS_PREFETCH_CMD_CMD__MASK; > +} > + > +static inline uint32_t REG_A6XX_SP_FS_BINDLESS_PREFETCH(uint32_t i0) { return 0x0000a9a3 + 0x1*i0; } > + > +static inline uint32_t REG_A6XX_SP_FS_BINDLESS_PREFETCH_CMD(uint32_t i0) { return 0x0000a9a3 + 0x1*i0; } > +#define A6XX_SP_FS_BINDLESS_PREFETCH_CMD_SAMP_ID__MASK 0x000000ff > +#define A6XX_SP_FS_BINDLESS_PREFETCH_CMD_SAMP_ID__SHIFT 0 > +static inline uint32_t A6XX_SP_FS_BINDLESS_PREFETCH_CMD_SAMP_ID(uint32_t val) > +{ > + return ((val) << A6XX_SP_FS_BINDLESS_PREFETCH_CMD_SAMP_ID__SHIFT) & A6XX_SP_FS_BINDLESS_PREFETCH_CMD_SAMP_ID__MASK; > +} > +#define A6XX_SP_FS_BINDLESS_PREFETCH_CMD_TEX_ID__MASK 0x00ff0000 > +#define A6XX_SP_FS_BINDLESS_PREFETCH_CMD_TEX_ID__SHIFT 16 > +static inline uint32_t A6XX_SP_FS_BINDLESS_PREFETCH_CMD_TEX_ID(uint32_t val) > +{ > + return ((val) << A6XX_SP_FS_BINDLESS_PREFETCH_CMD_TEX_ID__SHIFT) & A6XX_SP_FS_BINDLESS_PREFETCH_CMD_TEX_ID__MASK; > +} > > #define REG_A6XX_SP_FS_TEX_COUNT 0x0000a9a7 > > #define REG_A6XX_SP_UNKNOWN_A9A8 0x0000a9a8 > > +#define REG_A6XX_SP_CS_UNKNOWN_A9B1 0x0000a9b1 > + > +#define REG_A6XX_SP_CS_UNKNOWN_A9B3 0x0000a9b3 > + > +#define REG_A6XX_SP_CS_TEX_COUNT 0x0000a9ba > + > #define REG_A6XX_SP_FS_TEX_SAMP_LO 0x0000a9e0 > > #define REG_A6XX_SP_FS_TEX_SAMP_HI 0x0000a9e1 > @@ -4669,6 +5700,10 @@ static inline uint32_t A6XX_SP_FS_MRT_REG_COLOR_FORMAT(enum a6xx_color_fmt val) > > #define REG_A6XX_SP_CS_TEX_CONST_HI 0x0000a9e7 > > +static inline uint32_t REG_A6XX_SP_CS_BINDLESS_BASE(uint32_t i0) { return 0x0000a9e8 + 0x2*i0; } > + > +static inline uint32_t REG_A6XX_SP_CS_BINDLESS_BASE_ADDR(uint32_t i0) { return 0x0000a9e8 + 0x2*i0; } > + > 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; } > @@ -4706,6 +5741,7 @@ 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_DIFF_FINE 0x00800000 > #define A6XX_SP_CS_CTRL_REG0_PIXLODENABLE 0x04000000 > #define A6XX_SP_CS_CTRL_REG0_MERGEDREGS 0x80000000 > > @@ -4713,11 +5749,46 @@ static inline uint32_t A6XX_SP_CS_CTRL_REG0_THREADSIZE(enum a3xx_threadsize val) > > #define REG_A6XX_SP_CS_OBJ_START_HI 0x0000a9b5 > > +#define REG_A6XX_SP_CS_CONFIG 0x0000a9bb > +#define A6XX_SP_CS_CONFIG_BINDLESS_TEX 0x00000001 > +#define A6XX_SP_CS_CONFIG_BINDLESS_SAMP 0x00000002 > +#define A6XX_SP_CS_CONFIG_BINDLESS_IBO 0x00000004 > +#define A6XX_SP_CS_CONFIG_BINDLESS_UBO 0x00000008 > +#define A6XX_SP_CS_CONFIG_ENABLED 0x00000100 > +#define A6XX_SP_CS_CONFIG_NTEX__MASK 0x0001fe00 > +#define A6XX_SP_CS_CONFIG_NTEX__SHIFT 9 > +static inline uint32_t A6XX_SP_CS_CONFIG_NTEX(uint32_t val) > +{ > + return ((val) << A6XX_SP_CS_CONFIG_NTEX__SHIFT) & A6XX_SP_CS_CONFIG_NTEX__MASK; > +} > +#define A6XX_SP_CS_CONFIG_NSAMP__MASK 0x003e0000 > +#define A6XX_SP_CS_CONFIG_NSAMP__SHIFT 17 > +static inline uint32_t A6XX_SP_CS_CONFIG_NSAMP(uint32_t val) > +{ > + return ((val) << A6XX_SP_CS_CONFIG_NSAMP__SHIFT) & A6XX_SP_CS_CONFIG_NSAMP__MASK; > +} > +#define A6XX_SP_CS_CONFIG_NIBO__MASK 0x3fc00000 > +#define A6XX_SP_CS_CONFIG_NIBO__SHIFT 22 > +static inline uint32_t A6XX_SP_CS_CONFIG_NIBO(uint32_t val) > +{ > + return ((val) << A6XX_SP_CS_CONFIG_NIBO__SHIFT) & A6XX_SP_CS_CONFIG_NIBO__MASK; > +} > + > #define REG_A6XX_SP_CS_INSTRLEN 0x0000a9bc > > +#define REG_A6XX_SP_CS_IBO_LO 0x0000a9f2 > + > +#define REG_A6XX_SP_CS_IBO_HI 0x0000a9f3 > + > +#define REG_A6XX_SP_CS_IBO_COUNT 0x0000aa00 > + > #define REG_A6XX_SP_UNKNOWN_AB00 0x0000ab00 > > #define REG_A6XX_SP_FS_CONFIG 0x0000ab04 > +#define A6XX_SP_FS_CONFIG_BINDLESS_TEX 0x00000001 > +#define A6XX_SP_FS_CONFIG_BINDLESS_SAMP 0x00000002 > +#define A6XX_SP_FS_CONFIG_BINDLESS_IBO 0x00000004 > +#define A6XX_SP_FS_CONFIG_BINDLESS_UBO 0x00000008 > #define A6XX_SP_FS_CONFIG_ENABLED 0x00000100 > #define A6XX_SP_FS_CONFIG_NTEX__MASK 0x0001fe00 > #define A6XX_SP_FS_CONFIG_NTEX__SHIFT 9 > @@ -4725,18 +5796,48 @@ 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__MASK 0x003e0000 > #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 A6XX_SP_FS_CONFIG_NIBO__MASK 0x3fc00000 > +#define A6XX_SP_FS_CONFIG_NIBO__SHIFT 22 > +static inline uint32_t A6XX_SP_FS_CONFIG_NIBO(uint32_t val) > +{ > + return ((val) << A6XX_SP_FS_CONFIG_NIBO__SHIFT) & A6XX_SP_FS_CONFIG_NIBO__MASK; > +} > > #define REG_A6XX_SP_FS_INSTRLEN 0x0000ab05 > > -#define REG_A6XX_SP_UNKNOWN_AB20 0x0000ab20 > +static inline uint32_t REG_A6XX_SP_BINDLESS_BASE(uint32_t i0) { return 0x0000ab10 + 0x2*i0; } > > -#define REG_A6XX_SP_UNKNOWN_ACC0 0x0000acc0 > +static inline uint32_t REG_A6XX_SP_BINDLESS_BASE_ADDR(uint32_t i0) { return 0x0000ab10 + 0x2*i0; } > + > +#define REG_A6XX_SP_IBO_LO 0x0000ab1a > + > +#define REG_A6XX_SP_IBO_HI 0x0000ab1b > + > +#define REG_A6XX_SP_IBO_COUNT 0x0000ab20 > + > +#define REG_A6XX_SP_2D_SRC_FORMAT 0x0000acc0 > +#define A6XX_SP_2D_SRC_FORMAT_NORM 0x00000001 > +#define A6XX_SP_2D_SRC_FORMAT_SINT 0x00000002 > +#define A6XX_SP_2D_SRC_FORMAT_UINT 0x00000004 > +#define A6XX_SP_2D_SRC_FORMAT_COLOR_FORMAT__MASK 0x000007f8 > +#define A6XX_SP_2D_SRC_FORMAT_COLOR_FORMAT__SHIFT 3 > +static inline uint32_t A6XX_SP_2D_SRC_FORMAT_COLOR_FORMAT(enum a6xx_format val) > +{ > + return ((val) << A6XX_SP_2D_SRC_FORMAT_COLOR_FORMAT__SHIFT) & A6XX_SP_2D_SRC_FORMAT_COLOR_FORMAT__MASK; > +} > +#define A6XX_SP_2D_SRC_FORMAT_SRGB 0x00000800 > +#define A6XX_SP_2D_SRC_FORMAT_MASK__MASK 0x0000f000 > +#define A6XX_SP_2D_SRC_FORMAT_MASK__SHIFT 12 > +static inline uint32_t A6XX_SP_2D_SRC_FORMAT_MASK(uint32_t val) > +{ > + return ((val) << A6XX_SP_2D_SRC_FORMAT_MASK__SHIFT) & A6XX_SP_2D_SRC_FORMAT_MASK__MASK; > +} > > #define REG_A6XX_SP_UNKNOWN_AE00 0x0000ae00 > > @@ -4746,6 +5847,8 @@ static inline uint32_t A6XX_SP_FS_CONFIG_NSAMP(uint32_t val) > > #define REG_A6XX_SP_UNKNOWN_AE0F 0x0000ae0f > > +#define REG_A6XX_SP_PS_TP_BORDER_COLOR_BASE_ADDR 0x0000b180 > + > #define REG_A6XX_SP_UNKNOWN_B182 0x0000b182 > > #define REG_A6XX_SP_UNKNOWN_B183 0x0000b183 > @@ -4767,18 +5870,121 @@ static inline uint32_t A6XX_SP_TP_DEST_MSAA_CNTL_SAMPLES(enum a3xx_msaa_samples > } > #define A6XX_SP_TP_DEST_MSAA_CNTL_MSAA_DISABLE 0x00000004 > > +#define REG_A6XX_SP_TP_BORDER_COLOR_BASE_ADDR 0x0000b302 > + > #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_SAMPLE_CONFIG 0x0000b304 > +#define A6XX_SP_TP_SAMPLE_CONFIG_LOCATION_ENABLE 0x00000002 > + > +#define REG_A6XX_SP_TP_SAMPLE_LOCATION_0 0x0000b305 > +#define A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_0_X__MASK 0x0000000f > +#define A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_0_X__SHIFT 0 > +static inline uint32_t A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_0_X(float val) > +{ > + return ((((int32_t)(val * 1.0))) << A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_0_X__SHIFT) & A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_0_X__MASK; > +} > +#define A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_0_Y__MASK 0x000000f0 > +#define A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_0_Y__SHIFT 4 > +static inline uint32_t A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_0_Y(float val) > +{ > + return ((((int32_t)(val * 1.0))) << A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_0_Y__SHIFT) & A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_0_Y__MASK; > +} > +#define A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_1_X__MASK 0x00000f00 > +#define A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_1_X__SHIFT 8 > +static inline uint32_t A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_1_X(float val) > +{ > + return ((((int32_t)(val * 1.0))) << A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_1_X__SHIFT) & A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_1_X__MASK; > +} > +#define A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_1_Y__MASK 0x0000f000 > +#define A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_1_Y__SHIFT 12 > +static inline uint32_t A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_1_Y(float val) > +{ > + return ((((int32_t)(val * 1.0))) << A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_1_Y__SHIFT) & A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_1_Y__MASK; > +} > +#define A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_2_X__MASK 0x000f0000 > +#define A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_2_X__SHIFT 16 > +static inline uint32_t A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_2_X(float val) > +{ > + return ((((int32_t)(val * 1.0))) << A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_2_X__SHIFT) & A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_2_X__MASK; > +} > +#define A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_2_Y__MASK 0x00f00000 > +#define A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_2_Y__SHIFT 20 > +static inline uint32_t A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_2_Y(float val) > +{ > + return ((((int32_t)(val * 1.0))) << A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_2_Y__SHIFT) & A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_2_Y__MASK; > +} > +#define A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_3_X__MASK 0x0f000000 > +#define A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_3_X__SHIFT 24 > +static inline uint32_t A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_3_X(float val) > +{ > + return ((((int32_t)(val * 1.0))) << A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_3_X__SHIFT) & A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_3_X__MASK; > +} > +#define A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_3_Y__MASK 0xf0000000 > +#define A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_3_Y__SHIFT 28 > +static inline uint32_t A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_3_Y(float val) > +{ > + return ((((int32_t)(val * 1.0))) << A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_3_Y__SHIFT) & A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_3_Y__MASK; > +} > + > +#define REG_A6XX_SP_TP_SAMPLE_LOCATION_1 0x0000b306 > +#define A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_0_X__MASK 0x0000000f > +#define A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_0_X__SHIFT 0 > +static inline uint32_t A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_0_X(float val) > +{ > + return ((((int32_t)(val * 1.0))) << A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_0_X__SHIFT) & A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_0_X__MASK; > +} > +#define A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_0_Y__MASK 0x000000f0 > +#define A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_0_Y__SHIFT 4 > +static inline uint32_t A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_0_Y(float val) > +{ > + return ((((int32_t)(val * 1.0))) << A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_0_Y__SHIFT) & A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_0_Y__MASK; > +} > +#define A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_1_X__MASK 0x00000f00 > +#define A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_1_X__SHIFT 8 > +static inline uint32_t A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_1_X(float val) > +{ > + return ((((int32_t)(val * 1.0))) << A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_1_X__SHIFT) & A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_1_X__MASK; > +} > +#define A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_1_Y__MASK 0x0000f000 > +#define A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_1_Y__SHIFT 12 > +static inline uint32_t A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_1_Y(float val) > +{ > + return ((((int32_t)(val * 1.0))) << A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_1_Y__SHIFT) & A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_1_Y__MASK; > +} > +#define A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_2_X__MASK 0x000f0000 > +#define A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_2_X__SHIFT 16 > +static inline uint32_t A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_2_X(float val) > +{ > + return ((((int32_t)(val * 1.0))) << A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_2_X__SHIFT) & A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_2_X__MASK; > +} > +#define A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_2_Y__MASK 0x00f00000 > +#define A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_2_Y__SHIFT 20 > +static inline uint32_t A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_2_Y(float val) > +{ > + return ((((int32_t)(val * 1.0))) << A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_2_Y__SHIFT) & A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_2_Y__MASK; > +} > +#define A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_3_X__MASK 0x0f000000 > +#define A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_3_X__SHIFT 24 > +static inline uint32_t A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_3_X(float val) > +{ > + return ((((int32_t)(val * 1.0))) << A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_3_X__SHIFT) & A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_3_X__MASK; > +} > +#define A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_3_Y__MASK 0xf0000000 > +#define A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_3_Y__SHIFT 28 > +static inline uint32_t A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_3_Y(float val) > +{ > + return ((((int32_t)(val * 1.0))) << A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_3_Y__SHIFT) & A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_3_Y__MASK; > +} > > #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) > +static inline uint32_t A6XX_SP_PS_2D_SRC_INFO_COLOR_FORMAT(enum a6xx_format val) > { > return ((val) << A6XX_SP_PS_2D_SRC_INFO_COLOR_FORMAT__SHIFT) & A6XX_SP_PS_2D_SRC_INFO_COLOR_FORMAT__MASK; > } > @@ -4795,7 +6001,17 @@ static inline uint32_t A6XX_SP_PS_2D_SRC_INFO_COLOR_SWAP(enum a3xx_color_swap va > 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 A6XX_SP_PS_2D_SRC_INFO_SRGB 0x00002000 > +#define A6XX_SP_PS_2D_SRC_INFO_SAMPLES__MASK 0x0000c000 > +#define A6XX_SP_PS_2D_SRC_INFO_SAMPLES__SHIFT 14 > +static inline uint32_t A6XX_SP_PS_2D_SRC_INFO_SAMPLES(enum a3xx_msaa_samples val) > +{ > + return ((val) << A6XX_SP_PS_2D_SRC_INFO_SAMPLES__SHIFT) & A6XX_SP_PS_2D_SRC_INFO_SAMPLES__MASK; > +} > #define A6XX_SP_PS_2D_SRC_INFO_FILTER 0x00010000 > +#define A6XX_SP_PS_2D_SRC_INFO_SAMPLES_AVERAGE 0x00040000 > +#define A6XX_SP_PS_2D_SRC_INFO_UNK20 0x00100000 > +#define A6XX_SP_PS_2D_SRC_INFO_UNK22 0x00400000 > > #define REG_A6XX_SP_PS_2D_SRC_SIZE 0x0000b4c1 > #define A6XX_SP_PS_2D_SRC_SIZE_WIDTH__MASK 0x00007fff > @@ -4815,6 +6031,8 @@ static inline uint32_t A6XX_SP_PS_2D_SRC_SIZE_HEIGHT(uint32_t val) > > #define REG_A6XX_SP_PS_2D_SRC_HI 0x0000b4c3 > > +#define REG_A6XX_SP_PS_2D_SRC 0x0000b4c2 > + > #define REG_A6XX_SP_PS_2D_SRC_PITCH 0x0000b4c4 > #define A6XX_SP_PS_2D_SRC_PITCH_PITCH__MASK 0x01fffe00 > #define A6XX_SP_PS_2D_SRC_PITCH_PITCH__SHIFT 9 > @@ -4827,6 +6045,22 @@ static inline uint32_t A6XX_SP_PS_2D_SRC_PITCH_PITCH(uint32_t val) > > #define REG_A6XX_SP_PS_2D_SRC_FLAGS_HI 0x0000b4cb > > +#define REG_A6XX_SP_PS_2D_SRC_FLAGS 0x0000b4ca > + > +#define REG_A6XX_SP_PS_2D_SRC_FLAGS_PITCH 0x0000b4cc > +#define A6XX_SP_PS_2D_SRC_FLAGS_PITCH_PITCH__MASK 0x000007ff > +#define A6XX_SP_PS_2D_SRC_FLAGS_PITCH_PITCH__SHIFT 0 > +static inline uint32_t A6XX_SP_PS_2D_SRC_FLAGS_PITCH_PITCH(uint32_t val) > +{ > + return ((val >> 6) << A6XX_SP_PS_2D_SRC_FLAGS_PITCH_PITCH__SHIFT) & A6XX_SP_PS_2D_SRC_FLAGS_PITCH_PITCH__MASK; > +} > +#define A6XX_SP_PS_2D_SRC_FLAGS_PITCH_ARRAY_PITCH__MASK 0x003ff800 > +#define A6XX_SP_PS_2D_SRC_FLAGS_PITCH_ARRAY_PITCH__SHIFT 11 > +static inline uint32_t A6XX_SP_PS_2D_SRC_FLAGS_PITCH_ARRAY_PITCH(uint32_t val) > +{ > + return ((val >> 7) << A6XX_SP_PS_2D_SRC_FLAGS_PITCH_ARRAY_PITCH__SHIFT) & A6XX_SP_PS_2D_SRC_FLAGS_PITCH_ARRAY_PITCH__MASK; > +} > + > #define REG_A6XX_SP_UNKNOWN_B600 0x0000b600 > > #define REG_A6XX_SP_UNKNOWN_B605 0x0000b605 > @@ -4838,6 +6072,7 @@ static inline uint32_t A6XX_HLSQ_VS_CNTL_CONSTLEN(uint32_t val) > { > return ((val >> 2) << A6XX_HLSQ_VS_CNTL_CONSTLEN__SHIFT) & A6XX_HLSQ_VS_CNTL_CONSTLEN__MASK; > } > +#define A6XX_HLSQ_VS_CNTL_ENABLED 0x00000100 > > #define REG_A6XX_HLSQ_HS_CNTL 0x0000b801 > #define A6XX_HLSQ_HS_CNTL_CONSTLEN__MASK 0x000000ff > @@ -4846,6 +6081,7 @@ static inline uint32_t A6XX_HLSQ_HS_CNTL_CONSTLEN(uint32_t val) > { > return ((val >> 2) << A6XX_HLSQ_HS_CNTL_CONSTLEN__SHIFT) & A6XX_HLSQ_HS_CNTL_CONSTLEN__MASK; > } > +#define A6XX_HLSQ_HS_CNTL_ENABLED 0x00000100 > > #define REG_A6XX_HLSQ_DS_CNTL 0x0000b802 > #define A6XX_HLSQ_DS_CNTL_CONSTLEN__MASK 0x000000ff > @@ -4854,6 +6090,7 @@ static inline uint32_t A6XX_HLSQ_DS_CNTL_CONSTLEN(uint32_t val) > { > return ((val >> 2) << A6XX_HLSQ_DS_CNTL_CONSTLEN__SHIFT) & A6XX_HLSQ_DS_CNTL_CONSTLEN__MASK; > } > +#define A6XX_HLSQ_DS_CNTL_ENABLED 0x00000100 > > #define REG_A6XX_HLSQ_GS_CNTL 0x0000b803 > #define A6XX_HLSQ_GS_CNTL_CONSTLEN__MASK 0x000000ff > @@ -4862,6 +6099,13 @@ static inline uint32_t A6XX_HLSQ_GS_CNTL_CONSTLEN(uint32_t val) > { > return ((val >> 2) << A6XX_HLSQ_GS_CNTL_CONSTLEN__SHIFT) & A6XX_HLSQ_GS_CNTL_CONSTLEN__MASK; > } > +#define A6XX_HLSQ_GS_CNTL_ENABLED 0x00000100 > + > +#define REG_A6XX_HLSQ_LOAD_STATE_GEOM_CMD 0x0000b820 > + > +#define REG_A6XX_HLSQ_LOAD_STATE_GEOM_EXT_SRC_ADDR 0x0000b821 > + > +#define REG_A6XX_HLSQ_LOAD_STATE_GEOM_DATA 0x0000b823 > > #define REG_A6XX_HLSQ_UNKNOWN_B980 0x0000b980 > > @@ -4886,16 +6130,52 @@ 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 A6XX_HLSQ_CONTROL_2_REG_SIZE__MASK 0xff000000 > +#define A6XX_HLSQ_CONTROL_2_REG_SIZE__SHIFT 24 > +static inline uint32_t A6XX_HLSQ_CONTROL_2_REG_SIZE(uint32_t val) > +{ > + return ((val) << A6XX_HLSQ_CONTROL_2_REG_SIZE__SHIFT) & A6XX_HLSQ_CONTROL_2_REG_SIZE__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) > +#define A6XX_HLSQ_CONTROL_3_REG_IJ_PERSP_PIXEL__MASK 0x000000ff > +#define A6XX_HLSQ_CONTROL_3_REG_IJ_PERSP_PIXEL__SHIFT 0 > +static inline uint32_t A6XX_HLSQ_CONTROL_3_REG_IJ_PERSP_PIXEL(uint32_t val) > +{ > + return ((val) << A6XX_HLSQ_CONTROL_3_REG_IJ_PERSP_PIXEL__SHIFT) & A6XX_HLSQ_CONTROL_3_REG_IJ_PERSP_PIXEL__MASK; > +} > +#define A6XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_PIXEL__MASK 0x0000ff00 > +#define A6XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_PIXEL__SHIFT 8 > +static inline uint32_t A6XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_PIXEL(uint32_t val) > +{ > + return ((val) << A6XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_PIXEL__SHIFT) & A6XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_PIXEL__MASK; > +} > +#define A6XX_HLSQ_CONTROL_3_REG_IJ_PERSP_CENTROID__MASK 0x00ff0000 > +#define A6XX_HLSQ_CONTROL_3_REG_IJ_PERSP_CENTROID__SHIFT 16 > +static inline uint32_t A6XX_HLSQ_CONTROL_3_REG_IJ_PERSP_CENTROID(uint32_t val) > +{ > + return ((val) << A6XX_HLSQ_CONTROL_3_REG_IJ_PERSP_CENTROID__SHIFT) & A6XX_HLSQ_CONTROL_3_REG_IJ_PERSP_CENTROID__MASK; > +} > +#define A6XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_CENTROID__MASK 0xff000000 > +#define A6XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_CENTROID__SHIFT 24 > +static inline uint32_t A6XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_CENTROID(uint32_t val) > { > - return ((val) << A6XX_HLSQ_CONTROL_3_REG_FRAGCOORDXYREGID__SHIFT) & A6XX_HLSQ_CONTROL_3_REG_FRAGCOORDXYREGID__MASK; > + return ((val) << A6XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_CENTROID__SHIFT) & A6XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_CENTROID__MASK; > } > > #define REG_A6XX_HLSQ_CONTROL_4_REG 0x0000b985 > +#define A6XX_HLSQ_CONTROL_4_REG_IJ_PERSP_SAMPLE__MASK 0x000000ff > +#define A6XX_HLSQ_CONTROL_4_REG_IJ_PERSP_SAMPLE__SHIFT 0 > +static inline uint32_t A6XX_HLSQ_CONTROL_4_REG_IJ_PERSP_SAMPLE(uint32_t val) > +{ > + return ((val) << A6XX_HLSQ_CONTROL_4_REG_IJ_PERSP_SAMPLE__SHIFT) & A6XX_HLSQ_CONTROL_4_REG_IJ_PERSP_SAMPLE__MASK; > +} > +#define A6XX_HLSQ_CONTROL_4_REG_IJ_LINEAR_SAMPLE__MASK 0x0000ff00 > +#define A6XX_HLSQ_CONTROL_4_REG_IJ_LINEAR_SAMPLE__SHIFT 8 > +static inline uint32_t A6XX_HLSQ_CONTROL_4_REG_IJ_LINEAR_SAMPLE(uint32_t val) > +{ > + return ((val) << A6XX_HLSQ_CONTROL_4_REG_IJ_LINEAR_SAMPLE__SHIFT) & A6XX_HLSQ_CONTROL_4_REG_IJ_LINEAR_SAMPLE__MASK; > +} > #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) > @@ -4911,6 +6191,15 @@ static inline uint32_t A6XX_HLSQ_CONTROL_4_REG_ZWCOORDREGID(uint32_t val) > > #define REG_A6XX_HLSQ_CONTROL_5_REG 0x0000b986 > > +#define REG_A6XX_HLSQ_CS_CNTL 0x0000b987 > +#define A6XX_HLSQ_CS_CNTL_CONSTLEN__MASK 0x000000ff > +#define A6XX_HLSQ_CS_CNTL_CONSTLEN__SHIFT 0 > +static inline uint32_t A6XX_HLSQ_CS_CNTL_CONSTLEN(uint32_t val) > +{ > + return ((val >> 2) << A6XX_HLSQ_CS_CNTL_CONSTLEN__SHIFT) & A6XX_HLSQ_CS_CNTL_CONSTLEN__MASK; > +} > +#define A6XX_HLSQ_CS_CNTL_ENABLED 0x00000100 > + > #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 > @@ -5011,12 +6300,54 @@ 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_UNKNOWN_B998 0x0000b998 > + > #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_LOAD_STATE_FRAG_CMD 0x0000b9a0 > + > +#define REG_A6XX_HLSQ_LOAD_STATE_FRAG_EXT_SRC_ADDR 0x0000b9a1 > + > +#define REG_A6XX_HLSQ_LOAD_STATE_FRAG_DATA 0x0000b9a3 > + > +static inline uint32_t REG_A6XX_HLSQ_CS_BINDLESS_BASE(uint32_t i0) { return 0x0000b9c0 + 0x2*i0; } > + > +static inline uint32_t REG_A6XX_HLSQ_CS_BINDLESS_BASE_ADDR(uint32_t i0) { return 0x0000b9c0 + 0x2*i0; } > + > +#define REG_A6XX_HLSQ_DRAW_CMD 0x0000bb00 > +#define A6XX_HLSQ_DRAW_CMD_STATE_ID__MASK 0x000000ff > +#define A6XX_HLSQ_DRAW_CMD_STATE_ID__SHIFT 0 > +static inline uint32_t A6XX_HLSQ_DRAW_CMD_STATE_ID(uint32_t val) > +{ > + return ((val) << A6XX_HLSQ_DRAW_CMD_STATE_ID__SHIFT) & A6XX_HLSQ_DRAW_CMD_STATE_ID__MASK; > +} > + > +#define REG_A6XX_HLSQ_DISPATCH_CMD 0x0000bb01 > +#define A6XX_HLSQ_DISPATCH_CMD_STATE_ID__MASK 0x000000ff > +#define A6XX_HLSQ_DISPATCH_CMD_STATE_ID__SHIFT 0 > +static inline uint32_t A6XX_HLSQ_DISPATCH_CMD_STATE_ID(uint32_t val) > +{ > + return ((val) << A6XX_HLSQ_DISPATCH_CMD_STATE_ID__SHIFT) & A6XX_HLSQ_DISPATCH_CMD_STATE_ID__MASK; > +} > + > +#define REG_A6XX_HLSQ_EVENT_CMD 0x0000bb02 > +#define A6XX_HLSQ_EVENT_CMD_STATE_ID__MASK 0x00ff0000 > +#define A6XX_HLSQ_EVENT_CMD_STATE_ID__SHIFT 16 > +static inline uint32_t A6XX_HLSQ_EVENT_CMD_STATE_ID(uint32_t val) > +{ > + return ((val) << A6XX_HLSQ_EVENT_CMD_STATE_ID__SHIFT) & A6XX_HLSQ_EVENT_CMD_STATE_ID__MASK; > +} > +#define A6XX_HLSQ_EVENT_CMD_EVENT__MASK 0x0000007f > +#define A6XX_HLSQ_EVENT_CMD_EVENT__SHIFT 0 > +static inline uint32_t A6XX_HLSQ_EVENT_CMD_EVENT(enum vgt_event_type val) > +{ > + return ((val) << A6XX_HLSQ_EVENT_CMD_EVENT__SHIFT) & A6XX_HLSQ_EVENT_CMD_EVENT__MASK; > +} > + > #define REG_A6XX_HLSQ_UPDATE_CNTL 0x0000bb08 > > #define REG_A6XX_HLSQ_FS_CNTL 0x0000bb10 > @@ -5026,15 +6357,66 @@ static inline uint32_t A6XX_HLSQ_FS_CNTL_CONSTLEN(uint32_t val) > { > return ((val >> 2) << A6XX_HLSQ_FS_CNTL_CONSTLEN__SHIFT) & A6XX_HLSQ_FS_CNTL_CONSTLEN__MASK; > } > +#define A6XX_HLSQ_FS_CNTL_ENABLED 0x00000100 > > #define REG_A6XX_HLSQ_UNKNOWN_BB11 0x0000bb11 > > +static inline uint32_t REG_A6XX_HLSQ_BINDLESS_BASE(uint32_t i0) { return 0x0000bb20 + 0x2*i0; } > + > +static inline uint32_t REG_A6XX_HLSQ_BINDLESS_BASE_ADDR(uint32_t i0) { return 0x0000bb20 + 0x2*i0; } > + > +#define REG_A6XX_HLSQ_2D_EVENT_CMD 0x0000bd80 > +#define A6XX_HLSQ_2D_EVENT_CMD_STATE_ID__MASK 0x0000ff00 > +#define A6XX_HLSQ_2D_EVENT_CMD_STATE_ID__SHIFT 8 > +static inline uint32_t A6XX_HLSQ_2D_EVENT_CMD_STATE_ID(uint32_t val) > +{ > + return ((val) << A6XX_HLSQ_2D_EVENT_CMD_STATE_ID__SHIFT) & A6XX_HLSQ_2D_EVENT_CMD_STATE_ID__MASK; > +} > +#define A6XX_HLSQ_2D_EVENT_CMD_EVENT__MASK 0x0000007f > +#define A6XX_HLSQ_2D_EVENT_CMD_EVENT__SHIFT 0 > +static inline uint32_t A6XX_HLSQ_2D_EVENT_CMD_EVENT(enum vgt_event_type val) > +{ > + return ((val) << A6XX_HLSQ_2D_EVENT_CMD_EVENT__SHIFT) & A6XX_HLSQ_2D_EVENT_CMD_EVENT__MASK; > +} > + > #define REG_A6XX_HLSQ_UNKNOWN_BE00 0x0000be00 > > #define REG_A6XX_HLSQ_UNKNOWN_BE01 0x0000be01 > > #define REG_A6XX_HLSQ_UNKNOWN_BE04 0x0000be04 > > +#define REG_A6XX_CP_EVENT_START 0x0000d600 > +#define A6XX_CP_EVENT_START_STATE_ID__MASK 0x000000ff > +#define A6XX_CP_EVENT_START_STATE_ID__SHIFT 0 > +static inline uint32_t A6XX_CP_EVENT_START_STATE_ID(uint32_t val) > +{ > + return ((val) << A6XX_CP_EVENT_START_STATE_ID__SHIFT) & A6XX_CP_EVENT_START_STATE_ID__MASK; > +} > + > +#define REG_A6XX_CP_EVENT_END 0x0000d601 > +#define A6XX_CP_EVENT_END_STATE_ID__MASK 0x000000ff > +#define A6XX_CP_EVENT_END_STATE_ID__SHIFT 0 > +static inline uint32_t A6XX_CP_EVENT_END_STATE_ID(uint32_t val) > +{ > + return ((val) << A6XX_CP_EVENT_END_STATE_ID__SHIFT) & A6XX_CP_EVENT_END_STATE_ID__MASK; > +} > + > +#define REG_A6XX_CP_2D_EVENT_START 0x0000d700 > +#define A6XX_CP_2D_EVENT_START_STATE_ID__MASK 0x000000ff > +#define A6XX_CP_2D_EVENT_START_STATE_ID__SHIFT 0 > +static inline uint32_t A6XX_CP_2D_EVENT_START_STATE_ID(uint32_t val) > +{ > + return ((val) << A6XX_CP_2D_EVENT_START_STATE_ID__SHIFT) & A6XX_CP_2D_EVENT_START_STATE_ID__MASK; > +} > + > +#define REG_A6XX_CP_2D_EVENT_END 0x0000d701 > +#define A6XX_CP_2D_EVENT_END_STATE_ID__MASK 0x000000ff > +#define A6XX_CP_2D_EVENT_END_STATE_ID__SHIFT 0 > +static inline uint32_t A6XX_CP_2D_EVENT_END_STATE_ID(uint32_t val) > +{ > + return ((val) << A6XX_CP_2D_EVENT_END_STATE_ID__SHIFT) & A6XX_CP_2D_EVENT_END_STATE_ID__MASK; > +} > + > #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 > @@ -5081,6 +6463,7 @@ static inline uint32_t A6XX_TEX_SAMP_0_LOD_BIAS(float val) > } > > #define REG_A6XX_TEX_SAMP_1 0x00000001 > +#define A6XX_TEX_SAMP_1_UNK0 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) > @@ -5104,11 +6487,18 @@ static inline uint32_t A6XX_TEX_SAMP_1_MIN_LOD(float val) > } > > #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 > +#define A6XX_TEX_SAMP_2_REDUCTION_MODE__MASK 0x00000003 > +#define A6XX_TEX_SAMP_2_REDUCTION_MODE__SHIFT 0 > +static inline uint32_t A6XX_TEX_SAMP_2_REDUCTION_MODE(enum a6xx_reduction_mode val) > +{ > + return ((val) << A6XX_TEX_SAMP_2_REDUCTION_MODE__SHIFT) & A6XX_TEX_SAMP_2_REDUCTION_MODE__MASK; > +} > +#define A6XX_TEX_SAMP_2_CHROMA_LINEAR 0x00000020 > +#define A6XX_TEX_SAMP_2_BCOLOR_OFFSET__MASK 0xffffff80 > +#define A6XX_TEX_SAMP_2_BCOLOR_OFFSET__SHIFT 7 > 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; > + return ((val >> 7) << A6XX_TEX_SAMP_2_BCOLOR_OFFSET__SHIFT) & A6XX_TEX_SAMP_2_BCOLOR_OFFSET__MASK; > } > > #define REG_A6XX_TEX_SAMP_3 0x00000003 > @@ -5151,6 +6541,8 @@ 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_CHROMA_MIDPOINT_X 0x00010000 > +#define A6XX_TEX_CONST_0_CHROMA_MIDPOINT_Y 0x00040000 > #define A6XX_TEX_CONST_0_SAMPLES__MASK 0x00300000 > #define A6XX_TEX_CONST_0_SAMPLES__SHIFT 20 > static inline uint32_t A6XX_TEX_CONST_0_SAMPLES(enum a3xx_msaa_samples val) > @@ -5159,7 +6551,7 @@ static inline uint32_t A6XX_TEX_CONST_0_SAMPLES(enum a3xx_msaa_samples val) > } > #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) > +static inline uint32_t A6XX_TEX_CONST_0_FMT(enum a6xx_format val) > { > return ((val) << A6XX_TEX_CONST_0_FMT__SHIFT) & A6XX_TEX_CONST_0_FMT__MASK; > } > @@ -5185,11 +6577,12 @@ static inline uint32_t A6XX_TEX_CONST_1_HEIGHT(uint32_t val) > } > > #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) > +#define A6XX_TEX_CONST_2_UNK4 0x00000010 > +#define A6XX_TEX_CONST_2_PITCHALIGN__MASK 0x0000000f > +#define A6XX_TEX_CONST_2_PITCHALIGN__SHIFT 0 > +static inline uint32_t A6XX_TEX_CONST_2_PITCHALIGN(uint32_t val) > { > - return ((val) << A6XX_TEX_CONST_2_FETCHSIZE__SHIFT) & A6XX_TEX_CONST_2_FETCHSIZE__MASK; > + return ((val) << A6XX_TEX_CONST_2_PITCHALIGN__SHIFT) & A6XX_TEX_CONST_2_PITCHALIGN__MASK; > } > #define A6XX_TEX_CONST_2_PITCH__MASK 0x1fffff80 > #define A6XX_TEX_CONST_2_PITCH__SHIFT 7 > @@ -5203,6 +6596,7 @@ 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 A6XX_TEX_CONST_2_UNK31 0x80000000 > > #define REG_A6XX_TEX_CONST_3 0x00000003 > #define A6XX_TEX_CONST_3_ARRAY_PITCH__MASK 0x00003fff > @@ -5211,6 +6605,13 @@ static inline uint32_t A6XX_TEX_CONST_3_ARRAY_PITCH(uint32_t val) > { > return ((val >> 12) << A6XX_TEX_CONST_3_ARRAY_PITCH__SHIFT) & A6XX_TEX_CONST_3_ARRAY_PITCH__MASK; > } > +#define A6XX_TEX_CONST_3_MIN_LAYERSZ__MASK 0x07800000 > +#define A6XX_TEX_CONST_3_MIN_LAYERSZ__SHIFT 23 > +static inline uint32_t A6XX_TEX_CONST_3_MIN_LAYERSZ(uint32_t val) > +{ > + return ((val >> 12) << A6XX_TEX_CONST_3_MIN_LAYERSZ__SHIFT) & A6XX_TEX_CONST_3_MIN_LAYERSZ__MASK; > +} > +#define A6XX_TEX_CONST_3_TILE_ALL 0x08000000 > #define A6XX_TEX_CONST_3_FLAG 0x10000000 > > #define REG_A6XX_TEX_CONST_4 0x00000004 > @@ -5236,6 +6637,12 @@ static inline uint32_t A6XX_TEX_CONST_5_DEPTH(uint32_t val) > } > > #define REG_A6XX_TEX_CONST_6 0x00000006 > +#define A6XX_TEX_CONST_6_PLANE_PITCH__MASK 0xffffff00 > +#define A6XX_TEX_CONST_6_PLANE_PITCH__SHIFT 8 > +static inline uint32_t A6XX_TEX_CONST_6_PLANE_PITCH(uint32_t val) > +{ > + return ((val) << A6XX_TEX_CONST_6_PLANE_PITCH__SHIFT) & A6XX_TEX_CONST_6_PLANE_PITCH__MASK; > +} > > #define REG_A6XX_TEX_CONST_7 0x00000007 > #define A6XX_TEX_CONST_7_FLAG_LO__MASK 0xffffffe0 > @@ -5254,8 +6661,32 @@ static inline uint32_t A6XX_TEX_CONST_8_FLAG_HI(uint32_t val) > } > > #define REG_A6XX_TEX_CONST_9 0x00000009 > +#define A6XX_TEX_CONST_9_FLAG_BUFFER_ARRAY_PITCH__MASK 0x0001ffff > +#define A6XX_TEX_CONST_9_FLAG_BUFFER_ARRAY_PITCH__SHIFT 0 > +static inline uint32_t A6XX_TEX_CONST_9_FLAG_BUFFER_ARRAY_PITCH(uint32_t val) > +{ > + return ((val >> 4) << A6XX_TEX_CONST_9_FLAG_BUFFER_ARRAY_PITCH__SHIFT) & A6XX_TEX_CONST_9_FLAG_BUFFER_ARRAY_PITCH__MASK; > +} > > #define REG_A6XX_TEX_CONST_10 0x0000000a > +#define A6XX_TEX_CONST_10_FLAG_BUFFER_PITCH__MASK 0x0000007f > +#define A6XX_TEX_CONST_10_FLAG_BUFFER_PITCH__SHIFT 0 > +static inline uint32_t A6XX_TEX_CONST_10_FLAG_BUFFER_PITCH(uint32_t val) > +{ > + return ((val >> 6) << A6XX_TEX_CONST_10_FLAG_BUFFER_PITCH__SHIFT) & A6XX_TEX_CONST_10_FLAG_BUFFER_PITCH__MASK; > +} > +#define A6XX_TEX_CONST_10_FLAG_BUFFER_LOGW__MASK 0x00000f00 > +#define A6XX_TEX_CONST_10_FLAG_BUFFER_LOGW__SHIFT 8 > +static inline uint32_t A6XX_TEX_CONST_10_FLAG_BUFFER_LOGW(uint32_t val) > +{ > + return ((val) << A6XX_TEX_CONST_10_FLAG_BUFFER_LOGW__SHIFT) & A6XX_TEX_CONST_10_FLAG_BUFFER_LOGW__MASK; > +} > +#define A6XX_TEX_CONST_10_FLAG_BUFFER_LOGH__MASK 0x0000f000 > +#define A6XX_TEX_CONST_10_FLAG_BUFFER_LOGH__SHIFT 12 > +static inline uint32_t A6XX_TEX_CONST_10_FLAG_BUFFER_LOGH(uint32_t val) > +{ > + return ((val) << A6XX_TEX_CONST_10_FLAG_BUFFER_LOGH__SHIFT) & A6XX_TEX_CONST_10_FLAG_BUFFER_LOGH__MASK; > +} > > #define REG_A6XX_TEX_CONST_11 0x0000000b > > @@ -5267,6 +6698,126 @@ static inline uint32_t A6XX_TEX_CONST_8_FLAG_HI(uint32_t val) > > #define REG_A6XX_TEX_CONST_15 0x0000000f > > +#define REG_A6XX_IBO_0 0x00000000 > +#define A6XX_IBO_0_TILE_MODE__MASK 0x00000003 > +#define A6XX_IBO_0_TILE_MODE__SHIFT 0 > +static inline uint32_t A6XX_IBO_0_TILE_MODE(enum a6xx_tile_mode val) > +{ > + return ((val) << A6XX_IBO_0_TILE_MODE__SHIFT) & A6XX_IBO_0_TILE_MODE__MASK; > +} > +#define A6XX_IBO_0_FMT__MASK 0x3fc00000 > +#define A6XX_IBO_0_FMT__SHIFT 22 > +static inline uint32_t A6XX_IBO_0_FMT(enum a6xx_format val) > +{ > + return ((val) << A6XX_IBO_0_FMT__SHIFT) & A6XX_IBO_0_FMT__MASK; > +} > + > +#define REG_A6XX_IBO_1 0x00000001 > +#define A6XX_IBO_1_WIDTH__MASK 0x00007fff > +#define A6XX_IBO_1_WIDTH__SHIFT 0 > +static inline uint32_t A6XX_IBO_1_WIDTH(uint32_t val) > +{ > + return ((val) << A6XX_IBO_1_WIDTH__SHIFT) & A6XX_IBO_1_WIDTH__MASK; > +} > +#define A6XX_IBO_1_HEIGHT__MASK 0x3fff8000 > +#define A6XX_IBO_1_HEIGHT__SHIFT 15 > +static inline uint32_t A6XX_IBO_1_HEIGHT(uint32_t val) > +{ > + return ((val) << A6XX_IBO_1_HEIGHT__SHIFT) & A6XX_IBO_1_HEIGHT__MASK; > +} > + > +#define REG_A6XX_IBO_2 0x00000002 > +#define A6XX_IBO_2_UNK4 0x00000010 > +#define A6XX_IBO_2_PITCH__MASK 0x1fffff80 > +#define A6XX_IBO_2_PITCH__SHIFT 7 > +static inline uint32_t A6XX_IBO_2_PITCH(uint32_t val) > +{ > + return ((val) << A6XX_IBO_2_PITCH__SHIFT) & A6XX_IBO_2_PITCH__MASK; > +} > +#define A6XX_IBO_2_TYPE__MASK 0x60000000 > +#define A6XX_IBO_2_TYPE__SHIFT 29 > +static inline uint32_t A6XX_IBO_2_TYPE(enum a6xx_tex_type val) > +{ > + return ((val) << A6XX_IBO_2_TYPE__SHIFT) & A6XX_IBO_2_TYPE__MASK; > +} > +#define A6XX_IBO_2_UNK31 0x80000000 > + > +#define REG_A6XX_IBO_3 0x00000003 > +#define A6XX_IBO_3_ARRAY_PITCH__MASK 0x00003fff > +#define A6XX_IBO_3_ARRAY_PITCH__SHIFT 0 > +static inline uint32_t A6XX_IBO_3_ARRAY_PITCH(uint32_t val) > +{ > + return ((val >> 12) << A6XX_IBO_3_ARRAY_PITCH__SHIFT) & A6XX_IBO_3_ARRAY_PITCH__MASK; > +} > +#define A6XX_IBO_3_UNK27 0x08000000 > +#define A6XX_IBO_3_FLAG 0x10000000 > + > +#define REG_A6XX_IBO_4 0x00000004 > +#define A6XX_IBO_4_BASE_LO__MASK 0xffffffff > +#define A6XX_IBO_4_BASE_LO__SHIFT 0 > +static inline uint32_t A6XX_IBO_4_BASE_LO(uint32_t val) > +{ > + return ((val) << A6XX_IBO_4_BASE_LO__SHIFT) & A6XX_IBO_4_BASE_LO__MASK; > +} > + > +#define REG_A6XX_IBO_5 0x00000005 > +#define A6XX_IBO_5_BASE_HI__MASK 0x0001ffff > +#define A6XX_IBO_5_BASE_HI__SHIFT 0 > +static inline uint32_t A6XX_IBO_5_BASE_HI(uint32_t val) > +{ > + return ((val) << A6XX_IBO_5_BASE_HI__SHIFT) & A6XX_IBO_5_BASE_HI__MASK; > +} > +#define A6XX_IBO_5_DEPTH__MASK 0x3ffe0000 > +#define A6XX_IBO_5_DEPTH__SHIFT 17 > +static inline uint32_t A6XX_IBO_5_DEPTH(uint32_t val) > +{ > + return ((val) << A6XX_IBO_5_DEPTH__SHIFT) & A6XX_IBO_5_DEPTH__MASK; > +} > + > +#define REG_A6XX_IBO_6 0x00000006 > + > +#define REG_A6XX_IBO_7 0x00000007 > + > +#define REG_A6XX_IBO_8 0x00000008 > + > +#define REG_A6XX_IBO_9 0x00000009 > +#define A6XX_IBO_9_FLAG_BUFFER_ARRAY_PITCH__MASK 0x0001ffff > +#define A6XX_IBO_9_FLAG_BUFFER_ARRAY_PITCH__SHIFT 0 > +static inline uint32_t A6XX_IBO_9_FLAG_BUFFER_ARRAY_PITCH(uint32_t val) > +{ > + return ((val >> 4) << A6XX_IBO_9_FLAG_BUFFER_ARRAY_PITCH__SHIFT) & A6XX_IBO_9_FLAG_BUFFER_ARRAY_PITCH__MASK; > +} > + > +#define REG_A6XX_IBO_10 0x0000000a > +#define A6XX_IBO_10_FLAG_BUFFER_PITCH__MASK 0x0000007f > +#define A6XX_IBO_10_FLAG_BUFFER_PITCH__SHIFT 0 > +static inline uint32_t A6XX_IBO_10_FLAG_BUFFER_PITCH(uint32_t val) > +{ > + return ((val >> 6) << A6XX_IBO_10_FLAG_BUFFER_PITCH__SHIFT) & A6XX_IBO_10_FLAG_BUFFER_PITCH__MASK; > +} > + > +#define REG_A6XX_UBO_0 0x00000000 > +#define A6XX_UBO_0_BASE_LO__MASK 0xffffffff > +#define A6XX_UBO_0_BASE_LO__SHIFT 0 > +static inline uint32_t A6XX_UBO_0_BASE_LO(uint32_t val) > +{ > + return ((val) << A6XX_UBO_0_BASE_LO__SHIFT) & A6XX_UBO_0_BASE_LO__MASK; > +} > + > +#define REG_A6XX_UBO_1 0x00000001 > +#define A6XX_UBO_1_BASE_HI__MASK 0x0001ffff > +#define A6XX_UBO_1_BASE_HI__SHIFT 0 > +static inline uint32_t A6XX_UBO_1_BASE_HI(uint32_t val) > +{ > + return ((val) << A6XX_UBO_1_BASE_HI__SHIFT) & A6XX_UBO_1_BASE_HI__MASK; > +} > +#define A6XX_UBO_1_SIZE__MASK 0xfffe0000 > +#define A6XX_UBO_1_SIZE__SHIFT 17 > +static inline uint32_t A6XX_UBO_1_SIZE(uint32_t val) > +{ > + return ((val) << A6XX_UBO_1_SIZE__SHIFT) & A6XX_UBO_1_SIZE__MASK; > +} > + > #define REG_A6XX_PDC_GPU_ENABLE_PDC 0x00001140 > > #define REG_A6XX_PDC_GPU_SEQ_START_ADDR 0x00001148 > diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gmu.xml.h b/drivers/gpu/drm/msm/adreno/a6xx_gmu.xml.h > index 176ae94d9fe6..86a89dce0c38 100644 > --- a/drivers/gpu/drm/msm/adreno/a6xx_gmu.xml.h > +++ b/drivers/gpu/drm/msm/adreno/a6xx_gmu.xml.h > @@ -8,19 +8,21 @@ This file was generated by the rules-ng-ng headergen tool in this git repository > 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 ( 42463 bytes, from 2018-11-19 13:44:03) > -- /home/robclark/src/envytools/rnndb/adreno/adreno_common.xml ( 14201 bytes, from 2018-12-02 17:29:54) > -- /home/robclark/src/envytools/rnndb/adreno/adreno_pm4.xml ( 43052 bytes, from 2018-12-02 17:29:54) > -- /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-12-02 17:29:54) > -- /home/robclark/src/envytools/rnndb/adreno/a6xx.xml ( 140790 bytes, from 2018-12-02 17:29:54) > -- /home/robclark/src/envytools/rnndb/adreno/a6xx_gmu.xml ( 10431 bytes, from 2018-09-14 13:03:07) > -- /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: > +- /home/robclark/src/envytools/rnndb/adreno.xml ( 594 bytes, from 2020-06-21 22:29:16) > +- /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 ( 89649 bytes, from 2020-07-04 19:55:04) > +- /home/robclark/src/envytools/rnndb/adreno/adreno_common.xml ( 14239 bytes, from 2020-07-04 19:55:04) > +- /home/robclark/src/envytools/rnndb/adreno/adreno_pm4.xml ( 63258 bytes, from 2020-07-07 19:26:50) > +- /home/robclark/src/envytools/rnndb/adreno/a3xx.xml ( 84246 bytes, from 2020-07-04 19:55:04) > +- /home/robclark/src/envytools/rnndb/adreno/a4xx.xml ( 112247 bytes, from 2020-07-04 19:55:04) > +- /home/robclark/src/envytools/rnndb/adreno/a5xx.xml ( 148499 bytes, from 2020-07-04 20:00:49) > +- /home/robclark/src/envytools/rnndb/adreno/a6xx.xml ( 174474 bytes, from 2020-07-04 20:56:59) > +- /home/robclark/src/envytools/rnndb/adreno/a6xx_gmu.xml ( 10768 bytes, from 2020-05-20 19:42:03) > +- /home/robclark/src/envytools/rnndb/adreno/ocmem.xml ( 1773 bytes, from 2018-07-03 19:37:13) > +- /home/robclark/src/envytools/rnndb/adreno/adreno_control_regs.xml ( 4559 bytes, from 2020-06-21 22:29:16) > +- /home/robclark/src/envytools/rnndb/adreno/adreno_pipe_regs.xml ( 2872 bytes, from 2020-06-21 22:29:43) > + > +Copyright (C) 2013-2020 by the following authors: > - Rob Clark <robdclark@gmail.com> (robclark) > - Ilia Mirkin <imirkin@alum.mit.edu> (imirkin) > > diff --git a/drivers/gpu/drm/msm/adreno/adreno_common.xml.h b/drivers/gpu/drm/msm/adreno/adreno_common.xml.h > index 641d3ba477b6..e252326ae349 100644 > --- a/drivers/gpu/drm/msm/adreno/adreno_common.xml.h > +++ b/drivers/gpu/drm/msm/adreno/adreno_common.xml.h > @@ -8,19 +8,21 @@ This file was generated by the rules-ng-ng headergen tool in this git repository > 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 ( 42463 bytes, from 2018-11-19 13:44:03) > -- /home/robclark/src/envytools/rnndb/adreno/adreno_common.xml ( 14201 bytes, from 2018-12-02 17:29:54) > -- /home/robclark/src/envytools/rnndb/adreno/adreno_pm4.xml ( 43052 bytes, from 2018-12-02 17:29:54) > -- /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-12-02 17:29:54) > -- /home/robclark/src/envytools/rnndb/adreno/a6xx.xml ( 140790 bytes, from 2018-12-02 17:29:54) > -- /home/robclark/src/envytools/rnndb/adreno/a6xx_gmu.xml ( 10431 bytes, from 2018-09-14 13:03:07) > -- /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: > +- /home/robclark/src/envytools/rnndb/adreno.xml ( 594 bytes, from 2020-06-21 22:29:16) > +- /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 ( 89649 bytes, from 2020-07-04 19:55:04) > +- /home/robclark/src/envytools/rnndb/adreno/adreno_common.xml ( 14239 bytes, from 2020-07-04 19:55:04) > +- /home/robclark/src/envytools/rnndb/adreno/adreno_pm4.xml ( 63258 bytes, from 2020-07-07 19:26:50) > +- /home/robclark/src/envytools/rnndb/adreno/a3xx.xml ( 84246 bytes, from 2020-07-04 19:55:04) > +- /home/robclark/src/envytools/rnndb/adreno/a4xx.xml ( 112247 bytes, from 2020-07-04 19:55:04) > +- /home/robclark/src/envytools/rnndb/adreno/a5xx.xml ( 148499 bytes, from 2020-07-04 20:00:49) > +- /home/robclark/src/envytools/rnndb/adreno/a6xx.xml ( 174474 bytes, from 2020-07-04 20:56:59) > +- /home/robclark/src/envytools/rnndb/adreno/a6xx_gmu.xml ( 10768 bytes, from 2020-05-20 19:42:03) > +- /home/robclark/src/envytools/rnndb/adreno/ocmem.xml ( 1773 bytes, from 2018-07-03 19:37:13) > +- /home/robclark/src/envytools/rnndb/adreno/adreno_control_regs.xml ( 4559 bytes, from 2020-06-21 22:29:16) > +- /home/robclark/src/envytools/rnndb/adreno/adreno_pipe_regs.xml ( 2872 bytes, from 2020-06-21 22:29:43) > + > +Copyright (C) 2013-2020 by the following authors: > - Rob Clark <robdclark@gmail.com> (robclark) > - Ilia Mirkin <imirkin@alum.mit.edu> (imirkin) > > @@ -159,6 +161,7 @@ enum a3xx_msaa_samples { > MSAA_ONE = 0, > MSAA_TWO = 1, > MSAA_FOUR = 2, > + MSAA_EIGHT = 3, > }; > > enum a3xx_threadmode { > diff --git a/drivers/gpu/drm/msm/adreno/adreno_pm4.xml.h b/drivers/gpu/drm/msm/adreno/adreno_pm4.xml.h > index 79b907ac0b4b..61613263b4e5 100644 > --- a/drivers/gpu/drm/msm/adreno/adreno_pm4.xml.h > +++ b/drivers/gpu/drm/msm/adreno/adreno_pm4.xml.h > @@ -8,19 +8,21 @@ This file was generated by the rules-ng-ng headergen tool in this git repository > 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 ( 42463 bytes, from 2018-11-19 13:44:03) > -- /home/robclark/src/envytools/rnndb/adreno/adreno_common.xml ( 14201 bytes, from 2018-12-02 17:29:54) > -- /home/robclark/src/envytools/rnndb/adreno/adreno_pm4.xml ( 43052 bytes, from 2018-12-02 17:29:54) > -- /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-12-02 17:29:54) > -- /home/robclark/src/envytools/rnndb/adreno/a6xx.xml ( 140790 bytes, from 2018-12-02 17:29:54) > -- /home/robclark/src/envytools/rnndb/adreno/a6xx_gmu.xml ( 10431 bytes, from 2018-09-14 13:03:07) > -- /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: > +- /home/robclark/src/envytools/rnndb/adreno.xml ( 594 bytes, from 2020-06-21 22:29:16) > +- /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 ( 89649 bytes, from 2020-07-04 19:55:04) > +- /home/robclark/src/envytools/rnndb/adreno/adreno_common.xml ( 14239 bytes, from 2020-07-04 19:55:04) > +- /home/robclark/src/envytools/rnndb/adreno/adreno_pm4.xml ( 63258 bytes, from 2020-07-07 19:26:50) > +- /home/robclark/src/envytools/rnndb/adreno/a3xx.xml ( 84246 bytes, from 2020-07-04 19:55:04) > +- /home/robclark/src/envytools/rnndb/adreno/a4xx.xml ( 112247 bytes, from 2020-07-04 19:55:04) > +- /home/robclark/src/envytools/rnndb/adreno/a5xx.xml ( 148499 bytes, from 2020-07-04 20:00:49) > +- /home/robclark/src/envytools/rnndb/adreno/a6xx.xml ( 174474 bytes, from 2020-07-04 20:56:59) > +- /home/robclark/src/envytools/rnndb/adreno/a6xx_gmu.xml ( 10768 bytes, from 2020-05-20 19:42:03) > +- /home/robclark/src/envytools/rnndb/adreno/ocmem.xml ( 1773 bytes, from 2018-07-03 19:37:13) > +- /home/robclark/src/envytools/rnndb/adreno/adreno_control_regs.xml ( 4559 bytes, from 2020-06-21 22:29:16) > +- /home/robclark/src/envytools/rnndb/adreno/adreno_pipe_regs.xml ( 2872 bytes, from 2020-06-21 22:29:43) > + > +Copyright (C) 2013-2020 by the following authors: > - Rob Clark <robdclark@gmail.com> (robclark) > - Ilia Mirkin <imirkin@alum.mit.edu> (imirkin) > > @@ -54,10 +56,13 @@ enum vgt_event_type { > CACHE_FLUSH_TS = 4, > CONTEXT_DONE = 5, > CACHE_FLUSH = 6, > - HLSQ_FLUSH = 7, > VIZQUERY_START = 7, > + HLSQ_FLUSH = 7, > VIZQUERY_END = 8, > SC_WAIT_WC = 9, > + WRITE_PRIMITIVE_COUNTS = 9, > + START_PRIMITIVE_CTRS = 11, > + STOP_PRIMITIVE_CTRS = 12, > RST_PIX_CNT = 13, > RST_VTX_CNT = 14, > TILE_FLUSH = 15, > @@ -65,23 +70,31 @@ enum vgt_event_type { > CACHE_FLUSH_AND_INV_TS_EVENT = 20, > ZPASS_DONE = 21, > CACHE_FLUSH_AND_INV_EVENT = 22, > + RB_DONE_TS = 22, > PERFCOUNTER_START = 23, > PERFCOUNTER_STOP = 24, > VS_FETCH_DONE = 27, > FACENESS_FLUSH = 28, > + WT_DONE_TS = 8, > FLUSH_SO_0 = 17, > FLUSH_SO_1 = 18, > FLUSH_SO_2 = 19, > FLUSH_SO_3 = 20, > PC_CCU_INVALIDATE_DEPTH = 24, > PC_CCU_INVALIDATE_COLOR = 25, > - UNK_1C = 28, > - UNK_1D = 29, > + PC_CCU_RESOLVE_TS = 26, > + PC_CCU_FLUSH_DEPTH_TS = 28, > + PC_CCU_FLUSH_COLOR_TS = 29, > BLIT = 30, > UNK_25 = 37, > LRZ_FLUSH = 38, > + BLIT_OP_FILL_2D = 39, > + BLIT_OP_COPY_2D = 40, > + BLIT_OP_SCALE_2D = 42, > + CONTEXT_DONE_2D = 43, > UNK_2C = 44, > UNK_2D = 45, > + CACHE_INVALIDATE = 49, > }; > > enum pc_di_primtype { > @@ -99,13 +112,45 @@ enum pc_di_primtype { > DI_PT_LINESTRIP_ADJ = 11, > DI_PT_TRI_ADJ = 12, > DI_PT_TRISTRIP_ADJ = 13, > + DI_PT_PATCHES0 = 31, > + DI_PT_PATCHES1 = 32, > + DI_PT_PATCHES2 = 33, > + DI_PT_PATCHES3 = 34, > + DI_PT_PATCHES4 = 35, > + DI_PT_PATCHES5 = 36, > + DI_PT_PATCHES6 = 37, > + DI_PT_PATCHES7 = 38, > + DI_PT_PATCHES8 = 39, > + DI_PT_PATCHES9 = 40, > + DI_PT_PATCHES10 = 41, > + DI_PT_PATCHES11 = 42, > + DI_PT_PATCHES12 = 43, > + DI_PT_PATCHES13 = 44, > + DI_PT_PATCHES14 = 45, > + DI_PT_PATCHES15 = 46, > + DI_PT_PATCHES16 = 47, > + DI_PT_PATCHES17 = 48, > + DI_PT_PATCHES18 = 49, > + DI_PT_PATCHES19 = 50, > + DI_PT_PATCHES20 = 51, > + DI_PT_PATCHES21 = 52, > + DI_PT_PATCHES22 = 53, > + DI_PT_PATCHES23 = 54, > + DI_PT_PATCHES24 = 55, > + DI_PT_PATCHES25 = 56, > + DI_PT_PATCHES26 = 57, > + DI_PT_PATCHES27 = 58, > + DI_PT_PATCHES28 = 59, > + DI_PT_PATCHES29 = 60, > + DI_PT_PATCHES30 = 61, > + DI_PT_PATCHES31 = 62, > }; > > enum pc_di_src_sel { > DI_SRC_SEL_DMA = 0, > DI_SRC_SEL_IMMEDIATE = 1, > DI_SRC_SEL_AUTO_INDEX = 2, > - DI_SRC_SEL_RESERVED = 3, > + DI_SRC_SEL_AUTO_XFB = 3, > }; > > enum pc_di_face_cull_sel { > @@ -143,6 +188,7 @@ enum adreno_pm4_type3_packets { > CP_PREEMPT_ENABLE = 28, > CP_PREEMPT_TOKEN = 30, > CP_INDIRECT_BUFFER = 63, > + CP_INDIRECT_BUFFER_CHAIN = 87, > CP_INDIRECT_BUFFER_PFD = 55, > CP_WAIT_FOR_IDLE = 38, > CP_WAIT_REG_MEM = 60, > @@ -199,6 +245,7 @@ enum adreno_pm4_type3_packets { > CP_DRAW_INDX_OFFSET = 56, > CP_DRAW_INDIRECT = 40, > CP_DRAW_INDX_INDIRECT = 41, > + CP_DRAW_INDIRECT_MULTI = 42, > CP_DRAW_AUTO = 36, > CP_UNKNOWN_19 = 25, > CP_UNKNOWN_1A = 26, > @@ -232,6 +279,7 @@ enum adreno_pm4_type3_packets { > CP_SET_MODE = 99, > CP_LOAD_STATE6_GEOM = 50, > CP_LOAD_STATE6_FRAG = 52, > + CP_LOAD_STATE6 = 54, > IN_IB_PREFETCH_END = 23, > IN_SUBBLK_PREFETCH = 31, > IN_INSTR_PREFETCH = 32, > @@ -241,9 +289,14 @@ 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, > + CP_SCRATCH_WRITE = 76, > + CP_REG_TO_MEM_OFFSET_MEM = 116, > + CP_REG_TO_MEM_OFFSET_REG = 114, > + CP_WAIT_MEM_GTE = 20, > + CP_WAIT_TWO_REGS = 112, > + CP_MEMCPY = 117, > + CP_SET_BIN_DATA5_OFFSET = 46, > + CP_SET_CTXSWITCH_IB = 85, > CP_REG_WRITE = 109, > }; > > @@ -292,6 +345,7 @@ enum a4xx_state_block { > enum a4xx_state_type { > ST4_SHADER = 0, > ST4_CONSTANTS = 1, > + ST4_UBO = 2, > }; > > enum a4xx_state_src { > @@ -312,17 +366,20 @@ enum a6xx_state_block { > SB6_GS_SHADER = 11, > SB6_FS_SHADER = 12, > SB6_CS_SHADER = 13, > - SB6_SSBO = 14, > - SB6_CS_SSBO = 15, > + SB6_IBO = 14, > + SB6_CS_IBO = 15, > }; > > enum a6xx_state_type { > ST6_SHADER = 0, > ST6_CONSTANTS = 1, > + ST6_UBO = 2, > + ST6_IBO = 3, > }; > > enum a6xx_state_src { > SS6_DIRECT = 0, > + SS6_BINDLESS = 1, > SS6_INDIRECT = 2, > }; > > @@ -332,6 +389,17 @@ enum a4xx_index_size { > INDEX4_SIZE_32_BIT = 2, > }; > > +enum a6xx_patch_type { > + TESS_QUADS = 0, > + TESS_TRIANGLES = 1, > + TESS_ISOLINES = 2, > +}; > + > +enum a6xx_draw_indirect_opcode { > + INDIRECT_OP_NORMAL = 2, > + INDIRECT_OP_INDEXED = 4, > +}; > + > enum cp_cond_function { > WRITE_ALWAYS = 0, > WRITE_LT = 1, > @@ -361,9 +429,15 @@ enum a6xx_render_mode { > RM6_BYPASS = 1, > RM6_BINNING = 2, > RM6_GMEM = 4, > - RM6_BLIT2D = 5, > + RM6_ENDVIS = 5, > RM6_RESOLVE = 6, > + RM6_YIELD = 7, > + RM6_COMPUTE = 8, > RM6_BLIT2DSCALE = 12, > + RM6_IB1LIST_START = 13, > + RM6_IB1LIST_END = 14, > + RM6_IFPC_ENABLE = 256, > + RM6_IFPC_DISABLE = 257, > }; > > enum pseudo_reg { > @@ -374,6 +448,25 @@ enum pseudo_reg { > COUNTER = 4, > }; > > +enum compare_mode { > + PRED_TEST = 1, > + REG_COMPARE = 2, > + RENDER_MODE = 3, > +}; > + > +enum ctxswitch_ib { > + RESTORE_IB = 0, > + YIELD_RESTORE_IB = 1, > + SAVE_IB = 2, > + RB_SAVE_IB = 3, > +}; > + > +enum reg_tracker { > + TRACK_CNTL_REG = 1, > + TRACK_RENDER_CNTL = 2, > + UNK_EVENT_WRITE = 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 > @@ -469,7 +562,7 @@ 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__MASK 0x0000c000 > #define CP_LOAD_STATE6_0_STATE_TYPE__SHIFT 14 > static inline uint32_t CP_LOAD_STATE6_0_STATE_TYPE(enum a6xx_state_type val) > { > @@ -510,6 +603,8 @@ 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_LOAD_STATE6_EXT_SRC_ADDR 0x00000001 > + > #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 > @@ -653,12 +748,14 @@ static inline uint32_t CP_DRAW_INDX_OFFSET_0_INDEX_SIZE(enum a4xx_index_size val > { > return ((val) << CP_DRAW_INDX_OFFSET_0_INDEX_SIZE__SHIFT) & CP_DRAW_INDX_OFFSET_0_INDEX_SIZE__MASK; > } > -#define CP_DRAW_INDX_OFFSET_0_TESS_MODE__MASK 0x01f00000 > -#define CP_DRAW_INDX_OFFSET_0_TESS_MODE__SHIFT 20 > -static inline uint32_t CP_DRAW_INDX_OFFSET_0_TESS_MODE(uint32_t val) > +#define CP_DRAW_INDX_OFFSET_0_PATCH_TYPE__MASK 0x00003000 > +#define CP_DRAW_INDX_OFFSET_0_PATCH_TYPE__SHIFT 12 > +static inline uint32_t CP_DRAW_INDX_OFFSET_0_PATCH_TYPE(enum a6xx_patch_type val) > { > - return ((val) << CP_DRAW_INDX_OFFSET_0_TESS_MODE__SHIFT) & CP_DRAW_INDX_OFFSET_0_TESS_MODE__MASK; > + return ((val) << CP_DRAW_INDX_OFFSET_0_PATCH_TYPE__SHIFT) & CP_DRAW_INDX_OFFSET_0_PATCH_TYPE__MASK; > } > +#define CP_DRAW_INDX_OFFSET_0_GS_ENABLE 0x00010000 > +#define CP_DRAW_INDX_OFFSET_0_TESS_ENABLE 0x00020000 > > #define REG_CP_DRAW_INDX_OFFSET_1 0x00000001 > #define CP_DRAW_INDX_OFFSET_1_NUM_INSTANCES__MASK 0xffffffff > @@ -677,6 +774,39 @@ static inline uint32_t CP_DRAW_INDX_OFFSET_2_NUM_INDICES(uint32_t val) > } > > #define REG_CP_DRAW_INDX_OFFSET_3 0x00000003 > +#define CP_DRAW_INDX_OFFSET_3_FIRST_INDX__MASK 0xffffffff > +#define CP_DRAW_INDX_OFFSET_3_FIRST_INDX__SHIFT 0 > +static inline uint32_t CP_DRAW_INDX_OFFSET_3_FIRST_INDX(uint32_t val) > +{ > + return ((val) << CP_DRAW_INDX_OFFSET_3_FIRST_INDX__SHIFT) & CP_DRAW_INDX_OFFSET_3_FIRST_INDX__MASK; > +} > + > + > +#define REG_CP_DRAW_INDX_OFFSET_4 0x00000004 > +#define CP_DRAW_INDX_OFFSET_4_INDX_BASE_LO__MASK 0xffffffff > +#define CP_DRAW_INDX_OFFSET_4_INDX_BASE_LO__SHIFT 0 > +static inline uint32_t CP_DRAW_INDX_OFFSET_4_INDX_BASE_LO(uint32_t val) > +{ > + return ((val) << CP_DRAW_INDX_OFFSET_4_INDX_BASE_LO__SHIFT) & CP_DRAW_INDX_OFFSET_4_INDX_BASE_LO__MASK; > +} > + > +#define REG_CP_DRAW_INDX_OFFSET_5 0x00000005 > +#define CP_DRAW_INDX_OFFSET_5_INDX_BASE_HI__MASK 0xffffffff > +#define CP_DRAW_INDX_OFFSET_5_INDX_BASE_HI__SHIFT 0 > +static inline uint32_t CP_DRAW_INDX_OFFSET_5_INDX_BASE_HI(uint32_t val) > +{ > + return ((val) << CP_DRAW_INDX_OFFSET_5_INDX_BASE_HI__SHIFT) & CP_DRAW_INDX_OFFSET_5_INDX_BASE_HI__MASK; > +} > + > +#define REG_CP_DRAW_INDX_OFFSET_INDX_BASE 0x00000004 > + > +#define REG_CP_DRAW_INDX_OFFSET_6 0x00000006 > +#define CP_DRAW_INDX_OFFSET_6_MAX_INDICES__MASK 0xffffffff > +#define CP_DRAW_INDX_OFFSET_6_MAX_INDICES__SHIFT 0 > +static inline uint32_t CP_DRAW_INDX_OFFSET_6_MAX_INDICES(uint32_t val) > +{ > + return ((val) << CP_DRAW_INDX_OFFSET_6_MAX_INDICES__SHIFT) & CP_DRAW_INDX_OFFSET_6_MAX_INDICES__MASK; > +} > > #define REG_CP_DRAW_INDX_OFFSET_4 0x00000004 > #define CP_DRAW_INDX_OFFSET_4_INDX_BASE__MASK 0xffffffff > @@ -719,12 +849,15 @@ static inline uint32_t A4XX_CP_DRAW_INDIRECT_0_INDEX_SIZE(enum a4xx_index_size v > { > return ((val) << A4XX_CP_DRAW_INDIRECT_0_INDEX_SIZE__SHIFT) & A4XX_CP_DRAW_INDIRECT_0_INDEX_SIZE__MASK; > } > -#define A4XX_CP_DRAW_INDIRECT_0_TESS_MODE__MASK 0x01f00000 > -#define A4XX_CP_DRAW_INDIRECT_0_TESS_MODE__SHIFT 20 > -static inline uint32_t A4XX_CP_DRAW_INDIRECT_0_TESS_MODE(uint32_t val) > +#define A4XX_CP_DRAW_INDIRECT_0_PATCH_TYPE__MASK 0x00003000 > +#define A4XX_CP_DRAW_INDIRECT_0_PATCH_TYPE__SHIFT 12 > +static inline uint32_t A4XX_CP_DRAW_INDIRECT_0_PATCH_TYPE(enum a6xx_patch_type val) > { > - return ((val) << A4XX_CP_DRAW_INDIRECT_0_TESS_MODE__SHIFT) & A4XX_CP_DRAW_INDIRECT_0_TESS_MODE__MASK; > + return ((val) << A4XX_CP_DRAW_INDIRECT_0_PATCH_TYPE__SHIFT) & A4XX_CP_DRAW_INDIRECT_0_PATCH_TYPE__MASK; > } > +#define A4XX_CP_DRAW_INDIRECT_0_GS_ENABLE 0x00010000 > +#define A4XX_CP_DRAW_INDIRECT_0_TESS_ENABLE 0x00020000 > + > > #define REG_A4XX_CP_DRAW_INDIRECT_1 0x00000001 > #define A4XX_CP_DRAW_INDIRECT_1_INDIRECT__MASK 0xffffffff > @@ -735,6 +868,14 @@ static inline uint32_t A4XX_CP_DRAW_INDIRECT_1_INDIRECT(uint32_t val) > } > > > +#define REG_A5XX_CP_DRAW_INDIRECT_1 0x00000001 > +#define A5XX_CP_DRAW_INDIRECT_1_INDIRECT_LO__MASK 0xffffffff > +#define A5XX_CP_DRAW_INDIRECT_1_INDIRECT_LO__SHIFT 0 > +static inline uint32_t A5XX_CP_DRAW_INDIRECT_1_INDIRECT_LO(uint32_t val) > +{ > + return ((val) << A5XX_CP_DRAW_INDIRECT_1_INDIRECT_LO__SHIFT) & A5XX_CP_DRAW_INDIRECT_1_INDIRECT_LO__MASK; > +} > + > #define REG_A5XX_CP_DRAW_INDIRECT_2 0x00000002 > #define A5XX_CP_DRAW_INDIRECT_2_INDIRECT_HI__MASK 0xffffffff > #define A5XX_CP_DRAW_INDIRECT_2_INDIRECT_HI__SHIFT 0 > @@ -743,6 +884,8 @@ static inline uint32_t A5XX_CP_DRAW_INDIRECT_2_INDIRECT_HI(uint32_t val) > return ((val) << A5XX_CP_DRAW_INDIRECT_2_INDIRECT_HI__SHIFT) & A5XX_CP_DRAW_INDIRECT_2_INDIRECT_HI__MASK; > } > > +#define REG_A5XX_CP_DRAW_INDIRECT_INDIRECT 0x00000001 > + > #define REG_A4XX_CP_DRAW_INDX_INDIRECT_0 0x00000000 > #define A4XX_CP_DRAW_INDX_INDIRECT_0_PRIM_TYPE__MASK 0x0000003f > #define A4XX_CP_DRAW_INDX_INDIRECT_0_PRIM_TYPE__SHIFT 0 > @@ -768,12 +911,14 @@ static inline uint32_t A4XX_CP_DRAW_INDX_INDIRECT_0_INDEX_SIZE(enum a4xx_index_s > { > return ((val) << A4XX_CP_DRAW_INDX_INDIRECT_0_INDEX_SIZE__SHIFT) & A4XX_CP_DRAW_INDX_INDIRECT_0_INDEX_SIZE__MASK; > } > -#define A4XX_CP_DRAW_INDX_INDIRECT_0_TESS_MODE__MASK 0x01f00000 > -#define A4XX_CP_DRAW_INDX_INDIRECT_0_TESS_MODE__SHIFT 20 > -static inline uint32_t A4XX_CP_DRAW_INDX_INDIRECT_0_TESS_MODE(uint32_t val) > +#define A4XX_CP_DRAW_INDX_INDIRECT_0_PATCH_TYPE__MASK 0x00003000 > +#define A4XX_CP_DRAW_INDX_INDIRECT_0_PATCH_TYPE__SHIFT 12 > +static inline uint32_t A4XX_CP_DRAW_INDX_INDIRECT_0_PATCH_TYPE(enum a6xx_patch_type val) > { > - return ((val) << A4XX_CP_DRAW_INDX_INDIRECT_0_TESS_MODE__SHIFT) & A4XX_CP_DRAW_INDX_INDIRECT_0_TESS_MODE__MASK; > + return ((val) << A4XX_CP_DRAW_INDX_INDIRECT_0_PATCH_TYPE__SHIFT) & A4XX_CP_DRAW_INDX_INDIRECT_0_PATCH_TYPE__MASK; > } > +#define A4XX_CP_DRAW_INDX_INDIRECT_0_GS_ENABLE 0x00010000 > +#define A4XX_CP_DRAW_INDX_INDIRECT_0_TESS_ENABLE 0x00020000 > > > #define REG_A4XX_CP_DRAW_INDX_INDIRECT_1 0x00000001 > @@ -817,6 +962,8 @@ static inline uint32_t A5XX_CP_DRAW_INDX_INDIRECT_2_INDX_BASE_HI(uint32_t val) > return ((val) << A5XX_CP_DRAW_INDX_INDIRECT_2_INDX_BASE_HI__SHIFT) & A5XX_CP_DRAW_INDX_INDIRECT_2_INDX_BASE_HI__MASK; > } > > +#define REG_A5XX_CP_DRAW_INDX_INDIRECT_INDX_BASE 0x00000001 > + > #define REG_A5XX_CP_DRAW_INDX_INDIRECT_3 0x00000003 > #define A5XX_CP_DRAW_INDX_INDIRECT_3_MAX_INDICES__MASK 0xffffffff > #define A5XX_CP_DRAW_INDX_INDIRECT_3_MAX_INDICES__SHIFT 0 > @@ -841,6 +988,84 @@ static inline uint32_t A5XX_CP_DRAW_INDX_INDIRECT_5_INDIRECT_HI(uint32_t val) > return ((val) << A5XX_CP_DRAW_INDX_INDIRECT_5_INDIRECT_HI__SHIFT) & A5XX_CP_DRAW_INDX_INDIRECT_5_INDIRECT_HI__MASK; > } > > +#define REG_A5XX_CP_DRAW_INDX_INDIRECT_INDIRECT 0x00000004 > + > +#define REG_A6XX_CP_DRAW_INDIRECT_MULTI_0 0x00000000 > +#define A6XX_CP_DRAW_INDIRECT_MULTI_0_PRIM_TYPE__MASK 0x0000003f > +#define A6XX_CP_DRAW_INDIRECT_MULTI_0_PRIM_TYPE__SHIFT 0 > +static inline uint32_t A6XX_CP_DRAW_INDIRECT_MULTI_0_PRIM_TYPE(enum pc_di_primtype val) > +{ > + return ((val) << A6XX_CP_DRAW_INDIRECT_MULTI_0_PRIM_TYPE__SHIFT) & A6XX_CP_DRAW_INDIRECT_MULTI_0_PRIM_TYPE__MASK; > +} > +#define A6XX_CP_DRAW_INDIRECT_MULTI_0_SOURCE_SELECT__MASK 0x000000c0 > +#define A6XX_CP_DRAW_INDIRECT_MULTI_0_SOURCE_SELECT__SHIFT 6 > +static inline uint32_t A6XX_CP_DRAW_INDIRECT_MULTI_0_SOURCE_SELECT(enum pc_di_src_sel val) > +{ > + return ((val) << A6XX_CP_DRAW_INDIRECT_MULTI_0_SOURCE_SELECT__SHIFT) & A6XX_CP_DRAW_INDIRECT_MULTI_0_SOURCE_SELECT__MASK; > +} > +#define A6XX_CP_DRAW_INDIRECT_MULTI_0_VIS_CULL__MASK 0x00000300 > +#define A6XX_CP_DRAW_INDIRECT_MULTI_0_VIS_CULL__SHIFT 8 > +static inline uint32_t A6XX_CP_DRAW_INDIRECT_MULTI_0_VIS_CULL(enum pc_di_vis_cull_mode val) > +{ > + return ((val) << A6XX_CP_DRAW_INDIRECT_MULTI_0_VIS_CULL__SHIFT) & A6XX_CP_DRAW_INDIRECT_MULTI_0_VIS_CULL__MASK; > +} > +#define A6XX_CP_DRAW_INDIRECT_MULTI_0_INDEX_SIZE__MASK 0x00000c00 > +#define A6XX_CP_DRAW_INDIRECT_MULTI_0_INDEX_SIZE__SHIFT 10 > +static inline uint32_t A6XX_CP_DRAW_INDIRECT_MULTI_0_INDEX_SIZE(enum a4xx_index_size val) > +{ > + return ((val) << A6XX_CP_DRAW_INDIRECT_MULTI_0_INDEX_SIZE__SHIFT) & A6XX_CP_DRAW_INDIRECT_MULTI_0_INDEX_SIZE__MASK; > +} > +#define A6XX_CP_DRAW_INDIRECT_MULTI_0_PATCH_TYPE__MASK 0x00003000 > +#define A6XX_CP_DRAW_INDIRECT_MULTI_0_PATCH_TYPE__SHIFT 12 > +static inline uint32_t A6XX_CP_DRAW_INDIRECT_MULTI_0_PATCH_TYPE(enum a6xx_patch_type val) > +{ > + return ((val) << A6XX_CP_DRAW_INDIRECT_MULTI_0_PATCH_TYPE__SHIFT) & A6XX_CP_DRAW_INDIRECT_MULTI_0_PATCH_TYPE__MASK; > +} > +#define A6XX_CP_DRAW_INDIRECT_MULTI_0_GS_ENABLE 0x00010000 > +#define A6XX_CP_DRAW_INDIRECT_MULTI_0_TESS_ENABLE 0x00020000 > + > +#define REG_A6XX_CP_DRAW_INDIRECT_MULTI_1 0x00000001 > +#define A6XX_CP_DRAW_INDIRECT_MULTI_1_OPCODE__MASK 0x0000000f > +#define A6XX_CP_DRAW_INDIRECT_MULTI_1_OPCODE__SHIFT 0 > +static inline uint32_t A6XX_CP_DRAW_INDIRECT_MULTI_1_OPCODE(enum a6xx_draw_indirect_opcode val) > +{ > + return ((val) << A6XX_CP_DRAW_INDIRECT_MULTI_1_OPCODE__SHIFT) & A6XX_CP_DRAW_INDIRECT_MULTI_1_OPCODE__MASK; > +} > +#define A6XX_CP_DRAW_INDIRECT_MULTI_1_DST_OFF__MASK 0x003fff00 > +#define A6XX_CP_DRAW_INDIRECT_MULTI_1_DST_OFF__SHIFT 8 > +static inline uint32_t A6XX_CP_DRAW_INDIRECT_MULTI_1_DST_OFF(uint32_t val) > +{ > + return ((val) << A6XX_CP_DRAW_INDIRECT_MULTI_1_DST_OFF__SHIFT) & A6XX_CP_DRAW_INDIRECT_MULTI_1_DST_OFF__MASK; > +} > + > +#define REG_A6XX_CP_DRAW_INDIRECT_MULTI_2 0x00000002 > +#define A6XX_CP_DRAW_INDIRECT_MULTI_2_DRAW_COUNT__MASK 0xffffffff > +#define A6XX_CP_DRAW_INDIRECT_MULTI_2_DRAW_COUNT__SHIFT 0 > +static inline uint32_t A6XX_CP_DRAW_INDIRECT_MULTI_2_DRAW_COUNT(uint32_t val) > +{ > + return ((val) << A6XX_CP_DRAW_INDIRECT_MULTI_2_DRAW_COUNT__SHIFT) & A6XX_CP_DRAW_INDIRECT_MULTI_2_DRAW_COUNT__MASK; > +} > + > +#define REG_A6XX_CP_DRAW_INDIRECT_MULTI_ADDRESS_0 0x00000003 > + > +#define REG_A6XX_CP_DRAW_INDIRECT_MULTI_5 0x00000005 > +#define A6XX_CP_DRAW_INDIRECT_MULTI_5_PARAM_0__MASK 0xffffffff > +#define A6XX_CP_DRAW_INDIRECT_MULTI_5_PARAM_0__SHIFT 0 > +static inline uint32_t A6XX_CP_DRAW_INDIRECT_MULTI_5_PARAM_0(uint32_t val) > +{ > + return ((val) << A6XX_CP_DRAW_INDIRECT_MULTI_5_PARAM_0__SHIFT) & A6XX_CP_DRAW_INDIRECT_MULTI_5_PARAM_0__MASK; > +} > + > +#define REG_A6XX_CP_DRAW_INDIRECT_MULTI_INDIRECT 0x00000006 > + > +#define REG_A6XX_CP_DRAW_INDIRECT_MULTI_8 0x00000008 > +#define A6XX_CP_DRAW_INDIRECT_MULTI_8_STRIDE__MASK 0xffffffff > +#define A6XX_CP_DRAW_INDIRECT_MULTI_8_STRIDE__SHIFT 0 > +static inline uint32_t A6XX_CP_DRAW_INDIRECT_MULTI_8_STRIDE(uint32_t val) > +{ > + return ((val) << A6XX_CP_DRAW_INDIRECT_MULTI_8_STRIDE__SHIFT) & A6XX_CP_DRAW_INDIRECT_MULTI_8_STRIDE__MASK; > +} > + > static inline uint32_t REG_CP_SET_DRAW_STATE_(uint32_t i0) { return 0x00000000 + 0x3*i0; } > > static inline uint32_t REG_CP_SET_DRAW_STATE__0(uint32_t i0) { return 0x00000000 + 0x3*i0; } > @@ -854,12 +1079,9 @@ 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_BINNING 0x00100000 > +#define CP_SET_DRAW_STATE__0_GMEM 0x00200000 > +#define CP_SET_DRAW_STATE__0_SYSMEM 0x00400000 > #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) > @@ -976,30 +1198,101 @@ static inline uint32_t CP_SET_BIN_DATA5_4_BIN_SIZE_ADDRESS_HI(uint32_t val) > } > > #define REG_CP_SET_BIN_DATA5_5 0x00000005 > -#define CP_SET_BIN_DATA5_5_BIN_DATA_ADDR2_LO__MASK 0xffffffff > -#define CP_SET_BIN_DATA5_5_BIN_DATA_ADDR2_LO__SHIFT 0 > -static inline uint32_t CP_SET_BIN_DATA5_5_BIN_DATA_ADDR2_LO(uint32_t val) > +#define CP_SET_BIN_DATA5_5_BIN_PRIM_STRM_LO__MASK 0xffffffff > +#define CP_SET_BIN_DATA5_5_BIN_PRIM_STRM_LO__SHIFT 0 > +static inline uint32_t CP_SET_BIN_DATA5_5_BIN_PRIM_STRM_LO(uint32_t val) > { > - return ((val) << CP_SET_BIN_DATA5_5_BIN_DATA_ADDR2_LO__SHIFT) & CP_SET_BIN_DATA5_5_BIN_DATA_ADDR2_LO__MASK; > + return ((val) << CP_SET_BIN_DATA5_5_BIN_PRIM_STRM_LO__SHIFT) & CP_SET_BIN_DATA5_5_BIN_PRIM_STRM_LO__MASK; > } > > #define REG_CP_SET_BIN_DATA5_6 0x00000006 > -#define CP_SET_BIN_DATA5_6_BIN_DATA_ADDR2_LO__MASK 0xffffffff > -#define CP_SET_BIN_DATA5_6_BIN_DATA_ADDR2_LO__SHIFT 0 > -static inline uint32_t CP_SET_BIN_DATA5_6_BIN_DATA_ADDR2_LO(uint32_t val) > +#define CP_SET_BIN_DATA5_6_BIN_PRIM_STRM_HI__MASK 0xffffffff > +#define CP_SET_BIN_DATA5_6_BIN_PRIM_STRM_HI__SHIFT 0 > +static inline uint32_t CP_SET_BIN_DATA5_6_BIN_PRIM_STRM_HI(uint32_t val) > +{ > + return ((val) << CP_SET_BIN_DATA5_6_BIN_PRIM_STRM_HI__SHIFT) & CP_SET_BIN_DATA5_6_BIN_PRIM_STRM_HI__MASK; > +} > + > +#define REG_CP_SET_BIN_DATA5_OFFSET_0 0x00000000 > +#define CP_SET_BIN_DATA5_OFFSET_0_VSC_SIZE__MASK 0x003f0000 > +#define CP_SET_BIN_DATA5_OFFSET_0_VSC_SIZE__SHIFT 16 > +static inline uint32_t CP_SET_BIN_DATA5_OFFSET_0_VSC_SIZE(uint32_t val) > +{ > + return ((val) << CP_SET_BIN_DATA5_OFFSET_0_VSC_SIZE__SHIFT) & CP_SET_BIN_DATA5_OFFSET_0_VSC_SIZE__MASK; > +} > +#define CP_SET_BIN_DATA5_OFFSET_0_VSC_N__MASK 0x07c00000 > +#define CP_SET_BIN_DATA5_OFFSET_0_VSC_N__SHIFT 22 > +static inline uint32_t CP_SET_BIN_DATA5_OFFSET_0_VSC_N(uint32_t val) > +{ > + return ((val) << CP_SET_BIN_DATA5_OFFSET_0_VSC_N__SHIFT) & CP_SET_BIN_DATA5_OFFSET_0_VSC_N__MASK; > +} > + > +#define REG_CP_SET_BIN_DATA5_OFFSET_1 0x00000001 > +#define CP_SET_BIN_DATA5_OFFSET_1_BIN_DATA_OFFSET__MASK 0xffffffff > +#define CP_SET_BIN_DATA5_OFFSET_1_BIN_DATA_OFFSET__SHIFT 0 > +static inline uint32_t CP_SET_BIN_DATA5_OFFSET_1_BIN_DATA_OFFSET(uint32_t val) > +{ > + return ((val) << CP_SET_BIN_DATA5_OFFSET_1_BIN_DATA_OFFSET__SHIFT) & CP_SET_BIN_DATA5_OFFSET_1_BIN_DATA_OFFSET__MASK; > +} > + > +#define REG_CP_SET_BIN_DATA5_OFFSET_2 0x00000002 > +#define CP_SET_BIN_DATA5_OFFSET_2_BIN_SIZE_OFFSET__MASK 0xffffffff > +#define CP_SET_BIN_DATA5_OFFSET_2_BIN_SIZE_OFFSET__SHIFT 0 > +static inline uint32_t CP_SET_BIN_DATA5_OFFSET_2_BIN_SIZE_OFFSET(uint32_t val) > +{ > + return ((val) << CP_SET_BIN_DATA5_OFFSET_2_BIN_SIZE_OFFSET__SHIFT) & CP_SET_BIN_DATA5_OFFSET_2_BIN_SIZE_OFFSET__MASK; > +} > + > +#define REG_CP_SET_BIN_DATA5_OFFSET_3 0x00000003 > +#define CP_SET_BIN_DATA5_OFFSET_3_BIN_DATA2_OFFSET__MASK 0xffffffff > +#define CP_SET_BIN_DATA5_OFFSET_3_BIN_DATA2_OFFSET__SHIFT 0 > +static inline uint32_t CP_SET_BIN_DATA5_OFFSET_3_BIN_DATA2_OFFSET(uint32_t val) > +{ > + return ((val) << CP_SET_BIN_DATA5_OFFSET_3_BIN_DATA2_OFFSET__SHIFT) & CP_SET_BIN_DATA5_OFFSET_3_BIN_DATA2_OFFSET__MASK; > +} > + > +#define REG_CP_REG_RMW_0 0x00000000 > +#define CP_REG_RMW_0_DST_REG__MASK 0x0003ffff > +#define CP_REG_RMW_0_DST_REG__SHIFT 0 > +static inline uint32_t CP_REG_RMW_0_DST_REG(uint32_t val) > +{ > + return ((val) << CP_REG_RMW_0_DST_REG__SHIFT) & CP_REG_RMW_0_DST_REG__MASK; > +} > +#define CP_REG_RMW_0_ROTATE__MASK 0x1f000000 > +#define CP_REG_RMW_0_ROTATE__SHIFT 24 > +static inline uint32_t CP_REG_RMW_0_ROTATE(uint32_t val) > +{ > + return ((val) << CP_REG_RMW_0_ROTATE__SHIFT) & CP_REG_RMW_0_ROTATE__MASK; > +} > +#define CP_REG_RMW_0_SRC1_ADD 0x20000000 > +#define CP_REG_RMW_0_SRC1_IS_REG 0x40000000 > +#define CP_REG_RMW_0_SRC0_IS_REG 0x80000000 > + > +#define REG_CP_REG_RMW_1 0x00000001 > +#define CP_REG_RMW_1_SRC0__MASK 0xffffffff > +#define CP_REG_RMW_1_SRC0__SHIFT 0 > +static inline uint32_t CP_REG_RMW_1_SRC0(uint32_t val) > +{ > + return ((val) << CP_REG_RMW_1_SRC0__SHIFT) & CP_REG_RMW_1_SRC0__MASK; > +} > + > +#define REG_CP_REG_RMW_2 0x00000002 > +#define CP_REG_RMW_2_SRC1__MASK 0xffffffff > +#define CP_REG_RMW_2_SRC1__SHIFT 0 > +static inline uint32_t CP_REG_RMW_2_SRC1(uint32_t val) > { > - return ((val) << CP_SET_BIN_DATA5_6_BIN_DATA_ADDR2_LO__SHIFT) & CP_SET_BIN_DATA5_6_BIN_DATA_ADDR2_LO__MASK; > + return ((val) << CP_REG_RMW_2_SRC1__SHIFT) & CP_REG_RMW_2_SRC1__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__MASK 0x0003ffff > #define CP_REG_TO_MEM_0_REG__SHIFT 0 > static inline uint32_t CP_REG_TO_MEM_0_REG(uint32_t val) > { > return ((val) << CP_REG_TO_MEM_0_REG__SHIFT) & CP_REG_TO_MEM_0_REG__MASK; > } > -#define CP_REG_TO_MEM_0_CNT__MASK 0x3ff80000 > -#define CP_REG_TO_MEM_0_CNT__SHIFT 19 > +#define CP_REG_TO_MEM_0_CNT__MASK 0x3ffc0000 > +#define CP_REG_TO_MEM_0_CNT__SHIFT 18 > static inline uint32_t CP_REG_TO_MEM_0_CNT(uint32_t val) > { > return ((val) << CP_REG_TO_MEM_0_CNT__SHIFT) & CP_REG_TO_MEM_0_CNT__MASK; > @@ -1023,8 +1316,97 @@ 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_REG_TO_MEM_OFFSET_REG_0 0x00000000 > +#define CP_REG_TO_MEM_OFFSET_REG_0_REG__MASK 0x0003ffff > +#define CP_REG_TO_MEM_OFFSET_REG_0_REG__SHIFT 0 > +static inline uint32_t CP_REG_TO_MEM_OFFSET_REG_0_REG(uint32_t val) > +{ > + return ((val) << CP_REG_TO_MEM_OFFSET_REG_0_REG__SHIFT) & CP_REG_TO_MEM_OFFSET_REG_0_REG__MASK; > +} > +#define CP_REG_TO_MEM_OFFSET_REG_0_CNT__MASK 0x3ffc0000 > +#define CP_REG_TO_MEM_OFFSET_REG_0_CNT__SHIFT 18 > +static inline uint32_t CP_REG_TO_MEM_OFFSET_REG_0_CNT(uint32_t val) > +{ > + return ((val) << CP_REG_TO_MEM_OFFSET_REG_0_CNT__SHIFT) & CP_REG_TO_MEM_OFFSET_REG_0_CNT__MASK; > +} > +#define CP_REG_TO_MEM_OFFSET_REG_0_64B 0x40000000 > +#define CP_REG_TO_MEM_OFFSET_REG_0_ACCUMULATE 0x80000000 > + > +#define REG_CP_REG_TO_MEM_OFFSET_REG_1 0x00000001 > +#define CP_REG_TO_MEM_OFFSET_REG_1_DEST__MASK 0xffffffff > +#define CP_REG_TO_MEM_OFFSET_REG_1_DEST__SHIFT 0 > +static inline uint32_t CP_REG_TO_MEM_OFFSET_REG_1_DEST(uint32_t val) > +{ > + return ((val) << CP_REG_TO_MEM_OFFSET_REG_1_DEST__SHIFT) & CP_REG_TO_MEM_OFFSET_REG_1_DEST__MASK; > +} > + > +#define REG_CP_REG_TO_MEM_OFFSET_REG_2 0x00000002 > +#define CP_REG_TO_MEM_OFFSET_REG_2_DEST_HI__MASK 0xffffffff > +#define CP_REG_TO_MEM_OFFSET_REG_2_DEST_HI__SHIFT 0 > +static inline uint32_t CP_REG_TO_MEM_OFFSET_REG_2_DEST_HI(uint32_t val) > +{ > + return ((val) << CP_REG_TO_MEM_OFFSET_REG_2_DEST_HI__SHIFT) & CP_REG_TO_MEM_OFFSET_REG_2_DEST_HI__MASK; > +} > + > +#define REG_CP_REG_TO_MEM_OFFSET_REG_3 0x00000003 > +#define CP_REG_TO_MEM_OFFSET_REG_3_OFFSET0__MASK 0x0003ffff > +#define CP_REG_TO_MEM_OFFSET_REG_3_OFFSET0__SHIFT 0 > +static inline uint32_t CP_REG_TO_MEM_OFFSET_REG_3_OFFSET0(uint32_t val) > +{ > + return ((val) << CP_REG_TO_MEM_OFFSET_REG_3_OFFSET0__SHIFT) & CP_REG_TO_MEM_OFFSET_REG_3_OFFSET0__MASK; > +} > +#define CP_REG_TO_MEM_OFFSET_REG_3_OFFSET0_SCRATCH 0x00080000 > + > +#define REG_CP_REG_TO_MEM_OFFSET_MEM_0 0x00000000 > +#define CP_REG_TO_MEM_OFFSET_MEM_0_REG__MASK 0x0003ffff > +#define CP_REG_TO_MEM_OFFSET_MEM_0_REG__SHIFT 0 > +static inline uint32_t CP_REG_TO_MEM_OFFSET_MEM_0_REG(uint32_t val) > +{ > + return ((val) << CP_REG_TO_MEM_OFFSET_MEM_0_REG__SHIFT) & CP_REG_TO_MEM_OFFSET_MEM_0_REG__MASK; > +} > +#define CP_REG_TO_MEM_OFFSET_MEM_0_CNT__MASK 0x3ffc0000 > +#define CP_REG_TO_MEM_OFFSET_MEM_0_CNT__SHIFT 18 > +static inline uint32_t CP_REG_TO_MEM_OFFSET_MEM_0_CNT(uint32_t val) > +{ > + return ((val) << CP_REG_TO_MEM_OFFSET_MEM_0_CNT__SHIFT) & CP_REG_TO_MEM_OFFSET_MEM_0_CNT__MASK; > +} > +#define CP_REG_TO_MEM_OFFSET_MEM_0_64B 0x40000000 > +#define CP_REG_TO_MEM_OFFSET_MEM_0_ACCUMULATE 0x80000000 > + > +#define REG_CP_REG_TO_MEM_OFFSET_MEM_1 0x00000001 > +#define CP_REG_TO_MEM_OFFSET_MEM_1_DEST__MASK 0xffffffff > +#define CP_REG_TO_MEM_OFFSET_MEM_1_DEST__SHIFT 0 > +static inline uint32_t CP_REG_TO_MEM_OFFSET_MEM_1_DEST(uint32_t val) > +{ > + return ((val) << CP_REG_TO_MEM_OFFSET_MEM_1_DEST__SHIFT) & CP_REG_TO_MEM_OFFSET_MEM_1_DEST__MASK; > +} > + > +#define REG_CP_REG_TO_MEM_OFFSET_MEM_2 0x00000002 > +#define CP_REG_TO_MEM_OFFSET_MEM_2_DEST_HI__MASK 0xffffffff > +#define CP_REG_TO_MEM_OFFSET_MEM_2_DEST_HI__SHIFT 0 > +static inline uint32_t CP_REG_TO_MEM_OFFSET_MEM_2_DEST_HI(uint32_t val) > +{ > + return ((val) << CP_REG_TO_MEM_OFFSET_MEM_2_DEST_HI__SHIFT) & CP_REG_TO_MEM_OFFSET_MEM_2_DEST_HI__MASK; > +} > + > +#define REG_CP_REG_TO_MEM_OFFSET_MEM_3 0x00000003 > +#define CP_REG_TO_MEM_OFFSET_MEM_3_OFFSET_LO__MASK 0xffffffff > +#define CP_REG_TO_MEM_OFFSET_MEM_3_OFFSET_LO__SHIFT 0 > +static inline uint32_t CP_REG_TO_MEM_OFFSET_MEM_3_OFFSET_LO(uint32_t val) > +{ > + return ((val) << CP_REG_TO_MEM_OFFSET_MEM_3_OFFSET_LO__SHIFT) & CP_REG_TO_MEM_OFFSET_MEM_3_OFFSET_LO__MASK; > +} > + > +#define REG_CP_REG_TO_MEM_OFFSET_MEM_4 0x00000004 > +#define CP_REG_TO_MEM_OFFSET_MEM_4_OFFSET_HI__MASK 0xffffffff > +#define CP_REG_TO_MEM_OFFSET_MEM_4_OFFSET_HI__SHIFT 0 > +static inline uint32_t CP_REG_TO_MEM_OFFSET_MEM_4_OFFSET_HI(uint32_t val) > +{ > + return ((val) << CP_REG_TO_MEM_OFFSET_MEM_4_OFFSET_HI__SHIFT) & CP_REG_TO_MEM_OFFSET_MEM_4_OFFSET_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__MASK 0x0003ffff > #define CP_MEM_TO_REG_0_REG__SHIFT 0 > static inline uint32_t CP_MEM_TO_REG_0_REG(uint32_t val) > { > @@ -1036,8 +1418,8 @@ 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 CP_MEM_TO_REG_0_SHIFT_BY_2 0x40000000 > +#define CP_MEM_TO_REG_0_UNK31 0x80000000 > > #define REG_CP_MEM_TO_REG_1 0x00000001 > #define CP_MEM_TO_REG_1_SRC__MASK 0xffffffff > @@ -1060,6 +1442,113 @@ static inline uint32_t CP_MEM_TO_REG_2_SRC_HI(uint32_t val) > #define CP_MEM_TO_MEM_0_NEG_B 0x00000002 > #define CP_MEM_TO_MEM_0_NEG_C 0x00000004 > #define CP_MEM_TO_MEM_0_DOUBLE 0x20000000 > +#define CP_MEM_TO_MEM_0_WAIT_FOR_MEM_WRITES 0x40000000 > +#define CP_MEM_TO_MEM_0_UNK31 0x80000000 > + > +#define REG_CP_MEMCPY_0 0x00000000 > +#define CP_MEMCPY_0_DWORDS__MASK 0xffffffff > +#define CP_MEMCPY_0_DWORDS__SHIFT 0 > +static inline uint32_t CP_MEMCPY_0_DWORDS(uint32_t val) > +{ > + return ((val) << CP_MEMCPY_0_DWORDS__SHIFT) & CP_MEMCPY_0_DWORDS__MASK; > +} > + > +#define REG_CP_MEMCPY_1 0x00000001 > +#define CP_MEMCPY_1_SRC_LO__MASK 0xffffffff > +#define CP_MEMCPY_1_SRC_LO__SHIFT 0 > +static inline uint32_t CP_MEMCPY_1_SRC_LO(uint32_t val) > +{ > + return ((val) << CP_MEMCPY_1_SRC_LO__SHIFT) & CP_MEMCPY_1_SRC_LO__MASK; > +} > + > +#define REG_CP_MEMCPY_2 0x00000002 > +#define CP_MEMCPY_2_SRC_HI__MASK 0xffffffff > +#define CP_MEMCPY_2_SRC_HI__SHIFT 0 > +static inline uint32_t CP_MEMCPY_2_SRC_HI(uint32_t val) > +{ > + return ((val) << CP_MEMCPY_2_SRC_HI__SHIFT) & CP_MEMCPY_2_SRC_HI__MASK; > +} > + > +#define REG_CP_MEMCPY_3 0x00000003 > +#define CP_MEMCPY_3_DST_LO__MASK 0xffffffff > +#define CP_MEMCPY_3_DST_LO__SHIFT 0 > +static inline uint32_t CP_MEMCPY_3_DST_LO(uint32_t val) > +{ > + return ((val) << CP_MEMCPY_3_DST_LO__SHIFT) & CP_MEMCPY_3_DST_LO__MASK; > +} > + > +#define REG_CP_MEMCPY_4 0x00000004 > +#define CP_MEMCPY_4_DST_HI__MASK 0xffffffff > +#define CP_MEMCPY_4_DST_HI__SHIFT 0 > +static inline uint32_t CP_MEMCPY_4_DST_HI(uint32_t val) > +{ > + return ((val) << CP_MEMCPY_4_DST_HI__SHIFT) & CP_MEMCPY_4_DST_HI__MASK; > +} > + > +#define REG_CP_REG_TO_SCRATCH_0 0x00000000 > +#define CP_REG_TO_SCRATCH_0_REG__MASK 0x0003ffff > +#define CP_REG_TO_SCRATCH_0_REG__SHIFT 0 > +static inline uint32_t CP_REG_TO_SCRATCH_0_REG(uint32_t val) > +{ > + return ((val) << CP_REG_TO_SCRATCH_0_REG__SHIFT) & CP_REG_TO_SCRATCH_0_REG__MASK; > +} > +#define CP_REG_TO_SCRATCH_0_SCRATCH__MASK 0x00700000 > +#define CP_REG_TO_SCRATCH_0_SCRATCH__SHIFT 20 > +static inline uint32_t CP_REG_TO_SCRATCH_0_SCRATCH(uint32_t val) > +{ > + return ((val) << CP_REG_TO_SCRATCH_0_SCRATCH__SHIFT) & CP_REG_TO_SCRATCH_0_SCRATCH__MASK; > +} > +#define CP_REG_TO_SCRATCH_0_CNT__MASK 0x07000000 > +#define CP_REG_TO_SCRATCH_0_CNT__SHIFT 24 > +static inline uint32_t CP_REG_TO_SCRATCH_0_CNT(uint32_t val) > +{ > + return ((val) << CP_REG_TO_SCRATCH_0_CNT__SHIFT) & CP_REG_TO_SCRATCH_0_CNT__MASK; > +} > + > +#define REG_CP_SCRATCH_TO_REG_0 0x00000000 > +#define CP_SCRATCH_TO_REG_0_REG__MASK 0x0003ffff > +#define CP_SCRATCH_TO_REG_0_REG__SHIFT 0 > +static inline uint32_t CP_SCRATCH_TO_REG_0_REG(uint32_t val) > +{ > + return ((val) << CP_SCRATCH_TO_REG_0_REG__SHIFT) & CP_SCRATCH_TO_REG_0_REG__MASK; > +} > +#define CP_SCRATCH_TO_REG_0_UNK18 0x00040000 > +#define CP_SCRATCH_TO_REG_0_SCRATCH__MASK 0x00700000 > +#define CP_SCRATCH_TO_REG_0_SCRATCH__SHIFT 20 > +static inline uint32_t CP_SCRATCH_TO_REG_0_SCRATCH(uint32_t val) > +{ > + return ((val) << CP_SCRATCH_TO_REG_0_SCRATCH__SHIFT) & CP_SCRATCH_TO_REG_0_SCRATCH__MASK; > +} > +#define CP_SCRATCH_TO_REG_0_CNT__MASK 0x07000000 > +#define CP_SCRATCH_TO_REG_0_CNT__SHIFT 24 > +static inline uint32_t CP_SCRATCH_TO_REG_0_CNT(uint32_t val) > +{ > + return ((val) << CP_SCRATCH_TO_REG_0_CNT__SHIFT) & CP_SCRATCH_TO_REG_0_CNT__MASK; > +} > + > +#define REG_CP_SCRATCH_WRITE_0 0x00000000 > +#define CP_SCRATCH_WRITE_0_SCRATCH__MASK 0x00700000 > +#define CP_SCRATCH_WRITE_0_SCRATCH__SHIFT 20 > +static inline uint32_t CP_SCRATCH_WRITE_0_SCRATCH(uint32_t val) > +{ > + return ((val) << CP_SCRATCH_WRITE_0_SCRATCH__SHIFT) & CP_SCRATCH_WRITE_0_SCRATCH__MASK; > +} > + > +#define REG_CP_MEM_WRITE_0 0x00000000 > +#define CP_MEM_WRITE_0_ADDR_LO__MASK 0xffffffff > +#define CP_MEM_WRITE_0_ADDR_LO__SHIFT 0 > +static inline uint32_t CP_MEM_WRITE_0_ADDR_LO(uint32_t val) > +{ > + return ((val) << CP_MEM_WRITE_0_ADDR_LO__SHIFT) & CP_MEM_WRITE_0_ADDR_LO__MASK; > +} > + > +#define REG_CP_MEM_WRITE_1 0x00000001 > +#define CP_MEM_WRITE_1_ADDR_HI__MASK 0xffffffff > +#define CP_MEM_WRITE_1_ADDR_HI__SHIFT 0 > +static inline uint32_t CP_MEM_WRITE_1_ADDR_HI(uint32_t val) > +{ > + return ((val) << CP_MEM_WRITE_1_ADDR_HI__SHIFT) & CP_MEM_WRITE_1_ADDR_HI__MASK; > +} > > #define REG_CP_COND_WRITE_0 0x00000000 > #define CP_COND_WRITE_0_FUNCTION__MASK 0x00000007 > @@ -1118,7 +1607,9 @@ static inline uint32_t CP_COND_WRITE5_0_FUNCTION(enum cp_cond_function val) > { > return ((val) << CP_COND_WRITE5_0_FUNCTION__SHIFT) & CP_COND_WRITE5_0_FUNCTION__MASK; > } > +#define CP_COND_WRITE5_0_SIGNED_COMPARE 0x00000008 > #define CP_COND_WRITE5_0_POLL_MEMORY 0x00000010 > +#define CP_COND_WRITE5_0_POLL_SCRATCH 0x00000020 > #define CP_COND_WRITE5_0_WRITE_MEMORY 0x00000100 > > #define REG_CP_COND_WRITE5_1 0x00000001 > @@ -1177,6 +1668,114 @@ static inline uint32_t CP_COND_WRITE5_7_WRITE_DATA(uint32_t val) > return ((val) << CP_COND_WRITE5_7_WRITE_DATA__SHIFT) & CP_COND_WRITE5_7_WRITE_DATA__MASK; > } > > +#define REG_CP_WAIT_MEM_GTE_0 0x00000000 > +#define CP_WAIT_MEM_GTE_0_RESERVED__MASK 0xffffffff > +#define CP_WAIT_MEM_GTE_0_RESERVED__SHIFT 0 > +static inline uint32_t CP_WAIT_MEM_GTE_0_RESERVED(uint32_t val) > +{ > + return ((val) << CP_WAIT_MEM_GTE_0_RESERVED__SHIFT) & CP_WAIT_MEM_GTE_0_RESERVED__MASK; > +} > + > +#define REG_CP_WAIT_MEM_GTE_1 0x00000001 > +#define CP_WAIT_MEM_GTE_1_POLL_ADDR_LO__MASK 0xffffffff > +#define CP_WAIT_MEM_GTE_1_POLL_ADDR_LO__SHIFT 0 > +static inline uint32_t CP_WAIT_MEM_GTE_1_POLL_ADDR_LO(uint32_t val) > +{ > + return ((val) << CP_WAIT_MEM_GTE_1_POLL_ADDR_LO__SHIFT) & CP_WAIT_MEM_GTE_1_POLL_ADDR_LO__MASK; > +} > + > +#define REG_CP_WAIT_MEM_GTE_2 0x00000002 > +#define CP_WAIT_MEM_GTE_2_POLL_ADDR_HI__MASK 0xffffffff > +#define CP_WAIT_MEM_GTE_2_POLL_ADDR_HI__SHIFT 0 > +static inline uint32_t CP_WAIT_MEM_GTE_2_POLL_ADDR_HI(uint32_t val) > +{ > + return ((val) << CP_WAIT_MEM_GTE_2_POLL_ADDR_HI__SHIFT) & CP_WAIT_MEM_GTE_2_POLL_ADDR_HI__MASK; > +} > + > +#define REG_CP_WAIT_MEM_GTE_3 0x00000003 > +#define CP_WAIT_MEM_GTE_3_REF__MASK 0xffffffff > +#define CP_WAIT_MEM_GTE_3_REF__SHIFT 0 > +static inline uint32_t CP_WAIT_MEM_GTE_3_REF(uint32_t val) > +{ > + return ((val) << CP_WAIT_MEM_GTE_3_REF__SHIFT) & CP_WAIT_MEM_GTE_3_REF__MASK; > +} > + > +#define REG_CP_WAIT_REG_MEM_0 0x00000000 > +#define CP_WAIT_REG_MEM_0_FUNCTION__MASK 0x00000007 > +#define CP_WAIT_REG_MEM_0_FUNCTION__SHIFT 0 > +static inline uint32_t CP_WAIT_REG_MEM_0_FUNCTION(enum cp_cond_function val) > +{ > + return ((val) << CP_WAIT_REG_MEM_0_FUNCTION__SHIFT) & CP_WAIT_REG_MEM_0_FUNCTION__MASK; > +} > +#define CP_WAIT_REG_MEM_0_SIGNED_COMPARE 0x00000008 > +#define CP_WAIT_REG_MEM_0_POLL_MEMORY 0x00000010 > +#define CP_WAIT_REG_MEM_0_POLL_SCRATCH 0x00000020 > +#define CP_WAIT_REG_MEM_0_WRITE_MEMORY 0x00000100 > + > +#define REG_CP_WAIT_REG_MEM_1 0x00000001 > +#define CP_WAIT_REG_MEM_1_POLL_ADDR_LO__MASK 0xffffffff > +#define CP_WAIT_REG_MEM_1_POLL_ADDR_LO__SHIFT 0 > +static inline uint32_t CP_WAIT_REG_MEM_1_POLL_ADDR_LO(uint32_t val) > +{ > + return ((val) << CP_WAIT_REG_MEM_1_POLL_ADDR_LO__SHIFT) & CP_WAIT_REG_MEM_1_POLL_ADDR_LO__MASK; > +} > + > +#define REG_CP_WAIT_REG_MEM_2 0x00000002 > +#define CP_WAIT_REG_MEM_2_POLL_ADDR_HI__MASK 0xffffffff > +#define CP_WAIT_REG_MEM_2_POLL_ADDR_HI__SHIFT 0 > +static inline uint32_t CP_WAIT_REG_MEM_2_POLL_ADDR_HI(uint32_t val) > +{ > + return ((val) << CP_WAIT_REG_MEM_2_POLL_ADDR_HI__SHIFT) & CP_WAIT_REG_MEM_2_POLL_ADDR_HI__MASK; > +} > + > +#define REG_CP_WAIT_REG_MEM_3 0x00000003 > +#define CP_WAIT_REG_MEM_3_REF__MASK 0xffffffff > +#define CP_WAIT_REG_MEM_3_REF__SHIFT 0 > +static inline uint32_t CP_WAIT_REG_MEM_3_REF(uint32_t val) > +{ > + return ((val) << CP_WAIT_REG_MEM_3_REF__SHIFT) & CP_WAIT_REG_MEM_3_REF__MASK; > +} > + > +#define REG_CP_WAIT_REG_MEM_4 0x00000004 > +#define CP_WAIT_REG_MEM_4_MASK__MASK 0xffffffff > +#define CP_WAIT_REG_MEM_4_MASK__SHIFT 0 > +static inline uint32_t CP_WAIT_REG_MEM_4_MASK(uint32_t val) > +{ > + return ((val) << CP_WAIT_REG_MEM_4_MASK__SHIFT) & CP_WAIT_REG_MEM_4_MASK__MASK; > +} > + > +#define REG_CP_WAIT_REG_MEM_5 0x00000005 > +#define CP_WAIT_REG_MEM_5_DELAY_LOOP_CYCLES__MASK 0xffffffff > +#define CP_WAIT_REG_MEM_5_DELAY_LOOP_CYCLES__SHIFT 0 > +static inline uint32_t CP_WAIT_REG_MEM_5_DELAY_LOOP_CYCLES(uint32_t val) > +{ > + return ((val) << CP_WAIT_REG_MEM_5_DELAY_LOOP_CYCLES__SHIFT) & CP_WAIT_REG_MEM_5_DELAY_LOOP_CYCLES__MASK; > +} > + > +#define REG_CP_WAIT_TWO_REGS_0 0x00000000 > +#define CP_WAIT_TWO_REGS_0_REG0__MASK 0x0003ffff > +#define CP_WAIT_TWO_REGS_0_REG0__SHIFT 0 > +static inline uint32_t CP_WAIT_TWO_REGS_0_REG0(uint32_t val) > +{ > + return ((val) << CP_WAIT_TWO_REGS_0_REG0__SHIFT) & CP_WAIT_TWO_REGS_0_REG0__MASK; > +} > + > +#define REG_CP_WAIT_TWO_REGS_1 0x00000001 > +#define CP_WAIT_TWO_REGS_1_REG1__MASK 0x0003ffff > +#define CP_WAIT_TWO_REGS_1_REG1__SHIFT 0 > +static inline uint32_t CP_WAIT_TWO_REGS_1_REG1(uint32_t val) > +{ > + return ((val) << CP_WAIT_TWO_REGS_1_REG1__SHIFT) & CP_WAIT_TWO_REGS_1_REG1__MASK; > +} > + > +#define REG_CP_WAIT_TWO_REGS_2 0x00000002 > +#define CP_WAIT_TWO_REGS_2_REF__MASK 0xffffffff > +#define CP_WAIT_TWO_REGS_2_REF__SHIFT 0 > +static inline uint32_t CP_WAIT_TWO_REGS_2_REF(uint32_t val) > +{ > + return ((val) << CP_WAIT_TWO_REGS_2_REF__SHIFT) & CP_WAIT_TWO_REGS_2_REF__MASK; > +} > + > #define REG_CP_DISPATCH_COMPUTE_0 0x00000000 > > #define REG_CP_DISPATCH_COMPUTE_1 0x00000001 > @@ -1329,6 +1928,7 @@ static inline uint32_t CP_EVENT_WRITE_0_EVENT(enum vgt_event_type val) > return ((val) << CP_EVENT_WRITE_0_EVENT__SHIFT) & CP_EVENT_WRITE_0_EVENT__MASK; > } > #define CP_EVENT_WRITE_0_TIMESTAMP 0x40000000 > +#define CP_EVENT_WRITE_0_IRQ 0x80000000 > > #define REG_CP_EVENT_WRITE_1 0x00000001 > #define CP_EVENT_WRITE_1_ADDR_0_LO__MASK 0xffffffff > @@ -1506,61 +2106,209 @@ 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) > +#define REG_A6XX_CP_SET_MARKER_0 0x00000000 > +#define A6XX_CP_SET_MARKER_0_MODE__MASK 0x000001ff > +#define A6XX_CP_SET_MARKER_0_MODE__SHIFT 0 > +static inline uint32_t A6XX_CP_SET_MARKER_0_MODE(enum a6xx_render_mode val) > +{ > + return ((val) << A6XX_CP_SET_MARKER_0_MODE__SHIFT) & A6XX_CP_SET_MARKER_0_MODE__MASK; > +} > +#define A6XX_CP_SET_MARKER_0_MARKER__MASK 0x0000000f > +#define A6XX_CP_SET_MARKER_0_MARKER__SHIFT 0 > +static inline uint32_t A6XX_CP_SET_MARKER_0_MARKER(enum a6xx_render_mode val) > +{ > + return ((val) << A6XX_CP_SET_MARKER_0_MARKER__SHIFT) & A6XX_CP_SET_MARKER_0_MARKER__MASK; > +} > + > +static inline uint32_t REG_A6XX_CP_SET_PSEUDO_REG_(uint32_t i0) { return 0x00000000 + 0x3*i0; } > + > +static inline uint32_t REG_A6XX_CP_SET_PSEUDO_REG__0(uint32_t i0) { return 0x00000000 + 0x3*i0; } > +#define A6XX_CP_SET_PSEUDO_REG__0_PSEUDO_REG__MASK 0x00000007 > +#define A6XX_CP_SET_PSEUDO_REG__0_PSEUDO_REG__SHIFT 0 > +static inline uint32_t A6XX_CP_SET_PSEUDO_REG__0_PSEUDO_REG(enum pseudo_reg val) > +{ > + return ((val) << A6XX_CP_SET_PSEUDO_REG__0_PSEUDO_REG__SHIFT) & A6XX_CP_SET_PSEUDO_REG__0_PSEUDO_REG__MASK; > +} > + > +static inline uint32_t REG_A6XX_CP_SET_PSEUDO_REG__1(uint32_t i0) { return 0x00000001 + 0x3*i0; } > +#define A6XX_CP_SET_PSEUDO_REG__1_LO__MASK 0xffffffff > +#define A6XX_CP_SET_PSEUDO_REG__1_LO__SHIFT 0 > +static inline uint32_t A6XX_CP_SET_PSEUDO_REG__1_LO(uint32_t val) > +{ > + return ((val) << A6XX_CP_SET_PSEUDO_REG__1_LO__SHIFT) & A6XX_CP_SET_PSEUDO_REG__1_LO__MASK; > +} > + > +static inline uint32_t REG_A6XX_CP_SET_PSEUDO_REG__2(uint32_t i0) { return 0x00000002 + 0x3*i0; } > +#define A6XX_CP_SET_PSEUDO_REG__2_HI__MASK 0xffffffff > +#define A6XX_CP_SET_PSEUDO_REG__2_HI__SHIFT 0 > +static inline uint32_t A6XX_CP_SET_PSEUDO_REG__2_HI(uint32_t val) > +{ > + return ((val) << A6XX_CP_SET_PSEUDO_REG__2_HI__SHIFT) & A6XX_CP_SET_PSEUDO_REG__2_HI__MASK; > +} > + > +#define REG_A6XX_CP_REG_TEST_0 0x00000000 > +#define A6XX_CP_REG_TEST_0_REG__MASK 0x0003ffff > +#define A6XX_CP_REG_TEST_0_REG__SHIFT 0 > +static inline uint32_t A6XX_CP_REG_TEST_0_REG(uint32_t val) > +{ > + return ((val) << A6XX_CP_REG_TEST_0_REG__SHIFT) & A6XX_CP_REG_TEST_0_REG__MASK; > +} > +#define A6XX_CP_REG_TEST_0_BIT__MASK 0x01f00000 > +#define A6XX_CP_REG_TEST_0_BIT__SHIFT 20 > +static inline uint32_t A6XX_CP_REG_TEST_0_BIT(uint32_t val) > +{ > + return ((val) << A6XX_CP_REG_TEST_0_BIT__SHIFT) & A6XX_CP_REG_TEST_0_BIT__MASK; > +} > +#define A6XX_CP_REG_TEST_0_WAIT_FOR_ME 0x02000000 > + > +#define REG_CP_COND_REG_EXEC_0 0x00000000 > +#define CP_COND_REG_EXEC_0_REG0__MASK 0x0003ffff > +#define CP_COND_REG_EXEC_0_REG0__SHIFT 0 > +static inline uint32_t CP_COND_REG_EXEC_0_REG0(uint32_t val) > +{ > + return ((val) << CP_COND_REG_EXEC_0_REG0__SHIFT) & CP_COND_REG_EXEC_0_REG0__MASK; > +} > +#define CP_COND_REG_EXEC_0_BINNING 0x02000000 > +#define CP_COND_REG_EXEC_0_GMEM 0x04000000 > +#define CP_COND_REG_EXEC_0_SYSMEM 0x08000000 > +#define CP_COND_REG_EXEC_0_MODE__MASK 0xf0000000 > +#define CP_COND_REG_EXEC_0_MODE__SHIFT 28 > +static inline uint32_t CP_COND_REG_EXEC_0_MODE(enum compare_mode val) > +{ > + return ((val) << CP_COND_REG_EXEC_0_MODE__SHIFT) & CP_COND_REG_EXEC_0_MODE__MASK; > +} > + > +#define REG_CP_COND_REG_EXEC_1 0x00000001 > +#define CP_COND_REG_EXEC_1_DWORDS__MASK 0xffffffff > +#define CP_COND_REG_EXEC_1_DWORDS__SHIFT 0 > +static inline uint32_t CP_COND_REG_EXEC_1_DWORDS(uint32_t val) > +{ > + return ((val) << CP_COND_REG_EXEC_1_DWORDS__SHIFT) & CP_COND_REG_EXEC_1_DWORDS__MASK; > +} > + > +#define REG_CP_COND_EXEC_0 0x00000000 > +#define CP_COND_EXEC_0_ADDR0_LO__MASK 0xffffffff > +#define CP_COND_EXEC_0_ADDR0_LO__SHIFT 0 > +static inline uint32_t CP_COND_EXEC_0_ADDR0_LO(uint32_t val) > +{ > + return ((val) << CP_COND_EXEC_0_ADDR0_LO__SHIFT) & CP_COND_EXEC_0_ADDR0_LO__MASK; > +} > + > +#define REG_CP_COND_EXEC_1 0x00000001 > +#define CP_COND_EXEC_1_ADDR0_HI__MASK 0xffffffff > +#define CP_COND_EXEC_1_ADDR0_HI__SHIFT 0 > +static inline uint32_t CP_COND_EXEC_1_ADDR0_HI(uint32_t val) > { > - return ((val) << A2XX_CP_SET_MARKER_0_MARKER__SHIFT) & A2XX_CP_SET_MARKER_0_MARKER__MASK; > + return ((val) << CP_COND_EXEC_1_ADDR0_HI__SHIFT) & CP_COND_EXEC_1_ADDR0_HI__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) > + > +#define REG_CP_COND_EXEC_2 0x00000002 > +#define CP_COND_EXEC_2_ADDR1_LO__MASK 0xffffffff > +#define CP_COND_EXEC_2_ADDR1_LO__SHIFT 0 > +static inline uint32_t CP_COND_EXEC_2_ADDR1_LO(uint32_t val) > +{ > + return ((val) << CP_COND_EXEC_2_ADDR1_LO__SHIFT) & CP_COND_EXEC_2_ADDR1_LO__MASK; > +} > + > +#define REG_CP_COND_EXEC_3 0x00000003 > +#define CP_COND_EXEC_3_ADDR1_HI__MASK 0xffffffff > +#define CP_COND_EXEC_3_ADDR1_HI__SHIFT 0 > +static inline uint32_t CP_COND_EXEC_3_ADDR1_HI(uint32_t val) > { > - return ((val) << A2XX_CP_SET_MARKER_0_MODE__SHIFT) & A2XX_CP_SET_MARKER_0_MODE__MASK; > + return ((val) << CP_COND_EXEC_3_ADDR1_HI__SHIFT) & CP_COND_EXEC_3_ADDR1_HI__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; } > +#define REG_CP_COND_EXEC_4 0x00000004 > +#define CP_COND_EXEC_4_REF__MASK 0xffffffff > +#define CP_COND_EXEC_4_REF__SHIFT 0 > +static inline uint32_t CP_COND_EXEC_4_REF(uint32_t val) > +{ > + return ((val) << CP_COND_EXEC_4_REF__SHIFT) & CP_COND_EXEC_4_REF__MASK; > +} > > -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) > +#define REG_CP_COND_EXEC_5 0x00000005 > +#define CP_COND_EXEC_5_DWORDS__MASK 0xffffffff > +#define CP_COND_EXEC_5_DWORDS__SHIFT 0 > +static inline uint32_t CP_COND_EXEC_5_DWORDS(uint32_t val) > { > - return ((val) << A2XX_CP_SET_PSEUDO_REG__0_PSEUDO_REG__SHIFT) & A2XX_CP_SET_PSEUDO_REG__0_PSEUDO_REG__MASK; > + return ((val) << CP_COND_EXEC_5_DWORDS__SHIFT) & CP_COND_EXEC_5_DWORDS__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) > +#define REG_CP_SET_CTXSWITCH_IB_0 0x00000000 > +#define CP_SET_CTXSWITCH_IB_0_ADDR_LO__MASK 0xffffffff > +#define CP_SET_CTXSWITCH_IB_0_ADDR_LO__SHIFT 0 > +static inline uint32_t CP_SET_CTXSWITCH_IB_0_ADDR_LO(uint32_t val) > { > - return ((val) << A2XX_CP_SET_PSEUDO_REG__1_LO__SHIFT) & A2XX_CP_SET_PSEUDO_REG__1_LO__MASK; > + return ((val) << CP_SET_CTXSWITCH_IB_0_ADDR_LO__SHIFT) & CP_SET_CTXSWITCH_IB_0_ADDR_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) > +#define REG_CP_SET_CTXSWITCH_IB_1 0x00000001 > +#define CP_SET_CTXSWITCH_IB_1_ADDR_HI__MASK 0xffffffff > +#define CP_SET_CTXSWITCH_IB_1_ADDR_HI__SHIFT 0 > +static inline uint32_t CP_SET_CTXSWITCH_IB_1_ADDR_HI(uint32_t val) > { > - return ((val) << A2XX_CP_SET_PSEUDO_REG__2_HI__SHIFT) & A2XX_CP_SET_PSEUDO_REG__2_HI__MASK; > + return ((val) << CP_SET_CTXSWITCH_IB_1_ADDR_HI__SHIFT) & CP_SET_CTXSWITCH_IB_1_ADDR_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) > +#define REG_CP_SET_CTXSWITCH_IB_2 0x00000002 > +#define CP_SET_CTXSWITCH_IB_2_DWORDS__MASK 0x000fffff > +#define CP_SET_CTXSWITCH_IB_2_DWORDS__SHIFT 0 > +static inline uint32_t CP_SET_CTXSWITCH_IB_2_DWORDS(uint32_t val) > +{ > + return ((val) << CP_SET_CTXSWITCH_IB_2_DWORDS__SHIFT) & CP_SET_CTXSWITCH_IB_2_DWORDS__MASK; > +} > +#define CP_SET_CTXSWITCH_IB_2_TYPE__MASK 0x00300000 > +#define CP_SET_CTXSWITCH_IB_2_TYPE__SHIFT 20 > +static inline uint32_t CP_SET_CTXSWITCH_IB_2_TYPE(enum ctxswitch_ib val) > { > - return ((val) << A2XX_CP_REG_TEST_0_REG__SHIFT) & A2XX_CP_REG_TEST_0_REG__MASK; > + return ((val) << CP_SET_CTXSWITCH_IB_2_TYPE__SHIFT) & CP_SET_CTXSWITCH_IB_2_TYPE__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) > + > +#define REG_CP_REG_WRITE_0 0x00000000 > +#define CP_REG_WRITE_0_TRACKER__MASK 0x00000007 > +#define CP_REG_WRITE_0_TRACKER__SHIFT 0 > +static inline uint32_t CP_REG_WRITE_0_TRACKER(enum reg_tracker val) > +{ > + return ((val) << CP_REG_WRITE_0_TRACKER__SHIFT) & CP_REG_WRITE_0_TRACKER__MASK; > +} > + > +#define REG_CP_SMMU_TABLE_UPDATE_0 0x00000000 > +#define CP_SMMU_TABLE_UPDATE_0_TTBR0_LO__MASK 0xffffffff > +#define CP_SMMU_TABLE_UPDATE_0_TTBR0_LO__SHIFT 0 > +static inline uint32_t CP_SMMU_TABLE_UPDATE_0_TTBR0_LO(uint32_t val) > +{ > + return ((val) << CP_SMMU_TABLE_UPDATE_0_TTBR0_LO__SHIFT) & CP_SMMU_TABLE_UPDATE_0_TTBR0_LO__MASK; > +} > + > +#define REG_CP_SMMU_TABLE_UPDATE_1 0x00000001 > +#define CP_SMMU_TABLE_UPDATE_1_TTBR0_HI__MASK 0x0000ffff > +#define CP_SMMU_TABLE_UPDATE_1_TTBR0_HI__SHIFT 0 > +static inline uint32_t CP_SMMU_TABLE_UPDATE_1_TTBR0_HI(uint32_t val) > +{ > + return ((val) << CP_SMMU_TABLE_UPDATE_1_TTBR0_HI__SHIFT) & CP_SMMU_TABLE_UPDATE_1_TTBR0_HI__MASK; > +} > +#define CP_SMMU_TABLE_UPDATE_1_ASID__MASK 0xffff0000 > +#define CP_SMMU_TABLE_UPDATE_1_ASID__SHIFT 16 > +static inline uint32_t CP_SMMU_TABLE_UPDATE_1_ASID(uint32_t val) > +{ > + return ((val) << CP_SMMU_TABLE_UPDATE_1_ASID__SHIFT) & CP_SMMU_TABLE_UPDATE_1_ASID__MASK; > +} > + > +#define REG_CP_SMMU_TABLE_UPDATE_2 0x00000002 > +#define CP_SMMU_TABLE_UPDATE_2_CONTEXTIDR__MASK 0xffffffff > +#define CP_SMMU_TABLE_UPDATE_2_CONTEXTIDR__SHIFT 0 > +static inline uint32_t CP_SMMU_TABLE_UPDATE_2_CONTEXTIDR(uint32_t val) > +{ > + return ((val) << CP_SMMU_TABLE_UPDATE_2_CONTEXTIDR__SHIFT) & CP_SMMU_TABLE_UPDATE_2_CONTEXTIDR__MASK; > +} > + > +#define REG_CP_SMMU_TABLE_UPDATE_3 0x00000003 > +#define CP_SMMU_TABLE_UPDATE_3_CONTEXTBANK__MASK 0xffffffff > +#define CP_SMMU_TABLE_UPDATE_3_CONTEXTBANK__SHIFT 0 > +static inline uint32_t CP_SMMU_TABLE_UPDATE_3_CONTEXTBANK(uint32_t val) > { > - return ((val) << A2XX_CP_REG_TEST_0_BIT__SHIFT) & A2XX_CP_REG_TEST_0_BIT__MASK; > + return ((val) << CP_SMMU_TABLE_UPDATE_3_CONTEXTBANK__SHIFT) & CP_SMMU_TABLE_UPDATE_3_CONTEXTBANK__MASK; > } > -#define A2XX_CP_REG_TEST_0_UNK25 0x02000000 > > > #endif /* ADRENO_PM4_XML */ > diff --git a/drivers/gpu/drm/msm/disp/mdp4/mdp4.xml.h b/drivers/gpu/drm/msm/disp/mdp4/mdp4.xml.h > index 4b36b8954bae..1e37ba66312e 100644 > --- a/drivers/gpu/drm/msm/disp/mdp4/mdp4.xml.h > +++ b/drivers/gpu/drm/msm/disp/mdp4/mdp4.xml.h > @@ -13,7 +13,7 @@ The rules-ng-ng source files this header was generated from are: > - /home/robclark/src/envytools/rnndb/mdp/mdp4.xml ( 20915 bytes, from 2018-07-03 19:37:13) > - /home/robclark/src/envytools/rnndb/mdp/mdp_common.xml ( 2849 bytes, from 2018-07-03 19:37:13) > - /home/robclark/src/envytools/rnndb/mdp/mdp5.xml ( 37411 bytes, from 2018-07-03 19:37:13) > -- /home/robclark/src/envytools/rnndb/dsi/dsi.xml ( 37239 bytes, from 2018-07-03 19:37:13) > +- /home/robclark/src/envytools/rnndb/dsi/dsi.xml ( 42301 bytes, from 2020-07-04 21:03:00) > - /home/robclark/src/envytools/rnndb/dsi/sfpb.xml ( 602 bytes, from 2018-07-03 19:37:13) > - /home/robclark/src/envytools/rnndb/dsi/mmss_cc.xml ( 1686 bytes, from 2018-07-03 19:37:13) > - /home/robclark/src/envytools/rnndb/hdmi/qfprom.xml ( 600 bytes, from 2018-07-03 19:37:13) > diff --git a/drivers/gpu/drm/msm/disp/mdp5/mdp5.xml.h b/drivers/gpu/drm/msm/disp/mdp5/mdp5.xml.h > index 784d98989e3a..88530b46cfbd 100644 > --- a/drivers/gpu/drm/msm/disp/mdp5/mdp5.xml.h > +++ b/drivers/gpu/drm/msm/disp/mdp5/mdp5.xml.h > @@ -13,7 +13,7 @@ The rules-ng-ng source files this header was generated from are: > - /home/robclark/src/envytools/rnndb/mdp/mdp4.xml ( 20915 bytes, from 2018-07-03 19:37:13) > - /home/robclark/src/envytools/rnndb/mdp/mdp_common.xml ( 2849 bytes, from 2018-07-03 19:37:13) > - /home/robclark/src/envytools/rnndb/mdp/mdp5.xml ( 37411 bytes, from 2018-07-03 19:37:13) > -- /home/robclark/src/envytools/rnndb/dsi/dsi.xml ( 37239 bytes, from 2018-07-03 19:37:13) > +- /home/robclark/src/envytools/rnndb/dsi/dsi.xml ( 42301 bytes, from 2020-07-04 21:03:00) > - /home/robclark/src/envytools/rnndb/dsi/sfpb.xml ( 602 bytes, from 2018-07-03 19:37:13) > - /home/robclark/src/envytools/rnndb/dsi/mmss_cc.xml ( 1686 bytes, from 2018-07-03 19:37:13) > - /home/robclark/src/envytools/rnndb/hdmi/qfprom.xml ( 600 bytes, from 2018-07-03 19:37:13) > diff --git a/drivers/gpu/drm/msm/disp/mdp_common.xml.h b/drivers/gpu/drm/msm/disp/mdp_common.xml.h > index d420c8044e23..d29aceb3e843 100644 > --- a/drivers/gpu/drm/msm/disp/mdp_common.xml.h > +++ b/drivers/gpu/drm/msm/disp/mdp_common.xml.h > @@ -13,7 +13,7 @@ The rules-ng-ng source files this header was generated from are: > - /home/robclark/src/envytools/rnndb/mdp/mdp4.xml ( 20915 bytes, from 2018-07-03 19:37:13) > - /home/robclark/src/envytools/rnndb/mdp/mdp_common.xml ( 2849 bytes, from 2018-07-03 19:37:13) > - /home/robclark/src/envytools/rnndb/mdp/mdp5.xml ( 37411 bytes, from 2018-07-03 19:37:13) > -- /home/robclark/src/envytools/rnndb/dsi/dsi.xml ( 37239 bytes, from 2018-07-03 19:37:13) > +- /home/robclark/src/envytools/rnndb/dsi/dsi.xml ( 42301 bytes, from 2020-07-04 21:03:00) > - /home/robclark/src/envytools/rnndb/dsi/sfpb.xml ( 602 bytes, from 2018-07-03 19:37:13) > - /home/robclark/src/envytools/rnndb/dsi/mmss_cc.xml ( 1686 bytes, from 2018-07-03 19:37:13) > - /home/robclark/src/envytools/rnndb/hdmi/qfprom.xml ( 600 bytes, from 2018-07-03 19:37:13) > diff --git a/drivers/gpu/drm/msm/dsi/dsi.xml.h b/drivers/gpu/drm/msm/dsi/dsi.xml.h > index 21f489a737d7..aaf42ba54c9b 100644 > --- a/drivers/gpu/drm/msm/dsi/dsi.xml.h > +++ b/drivers/gpu/drm/msm/dsi/dsi.xml.h > @@ -13,14 +13,14 @@ The rules-ng-ng source files this header was generated from are: > - /home/robclark/src/envytools/rnndb/mdp/mdp4.xml ( 20915 bytes, from 2018-07-03 19:37:13) > - /home/robclark/src/envytools/rnndb/mdp/mdp_common.xml ( 2849 bytes, from 2018-07-03 19:37:13) > - /home/robclark/src/envytools/rnndb/mdp/mdp5.xml ( 37411 bytes, from 2018-07-03 19:37:13) > -- /home/robclark/src/envytools/rnndb/dsi/dsi.xml ( 37239 bytes, from 2018-07-03 19:37:13) > +- /home/robclark/src/envytools/rnndb/dsi/dsi.xml ( 42301 bytes, from 2020-07-04 21:03:00) > - /home/robclark/src/envytools/rnndb/dsi/sfpb.xml ( 602 bytes, from 2018-07-03 19:37:13) > - /home/robclark/src/envytools/rnndb/dsi/mmss_cc.xml ( 1686 bytes, from 2018-07-03 19:37:13) > - /home/robclark/src/envytools/rnndb/hdmi/qfprom.xml ( 600 bytes, from 2018-07-03 19:37:13) > - /home/robclark/src/envytools/rnndb/hdmi/hdmi.xml ( 41799 bytes, from 2018-07-03 19:37:13) > - /home/robclark/src/envytools/rnndb/edp/edp.xml ( 10416 bytes, from 2018-07-03 19:37:13) > > -Copyright (C) 2013-2018 by the following authors: > +Copyright (C) 2013-2020 by the following authors: > - Rob Clark <robdclark@gmail.com> (robclark) > - Ilia Mirkin <imirkin@alum.mit.edu> (imirkin) > > @@ -148,7 +148,31 @@ static inline uint32_t DSI_6G_HW_VERSION_STEP(uint32_t val) > #define DSI_STATUS0_INTERLEAVE_OP_CONTENTION 0x80000000 > > #define REG_DSI_FIFO_STATUS 0x00000008 > +#define DSI_FIFO_STATUS_VIDEO_MDP_FIFO_OVERFLOW 0x00000001 > +#define DSI_FIFO_STATUS_VIDEO_MDP_FIFO_UNDERFLOW 0x00000008 > #define DSI_FIFO_STATUS_CMD_MDP_FIFO_UNDERFLOW 0x00000080 > +#define DSI_FIFO_STATUS_CMD_DMA_FIFO_RD_WATERMARK_REACH 0x00000100 > +#define DSI_FIFO_STATUS_CMD_DMA_FIFO_WR_WATERMARK_REACH 0x00000200 > +#define DSI_FIFO_STATUS_CMD_DMA_FIFO_UNDERFLOW 0x00000400 > +#define DSI_FIFO_STATUS_DLN0_LP_FIFO_EMPTY 0x00001000 > +#define DSI_FIFO_STATUS_DLN0_LP_FIFO_FULL 0x00002000 > +#define DSI_FIFO_STATUS_DLN0_LP_FIFO_OVERFLOW 0x00004000 > +#define DSI_FIFO_STATUS_DLN0_HS_FIFO_EMPTY 0x00010000 > +#define DSI_FIFO_STATUS_DLN0_HS_FIFO_FULL 0x00020000 > +#define DSI_FIFO_STATUS_DLN0_HS_FIFO_OVERFLOW 0x00040000 > +#define DSI_FIFO_STATUS_DLN0_HS_FIFO_UNDERFLOW 0x00080000 > +#define DSI_FIFO_STATUS_DLN1_HS_FIFO_EMPTY 0x00100000 > +#define DSI_FIFO_STATUS_DLN1_HS_FIFO_FULL 0x00200000 > +#define DSI_FIFO_STATUS_DLN1_HS_FIFO_OVERFLOW 0x00400000 > +#define DSI_FIFO_STATUS_DLN1_HS_FIFO_UNDERFLOW 0x00800000 > +#define DSI_FIFO_STATUS_DLN2_HS_FIFO_EMPTY 0x01000000 > +#define DSI_FIFO_STATUS_DLN2_HS_FIFO_FULL 0x02000000 > +#define DSI_FIFO_STATUS_DLN2_HS_FIFO_OVERFLOW 0x04000000 > +#define DSI_FIFO_STATUS_DLN2_HS_FIFO_UNDERFLOW 0x08000000 > +#define DSI_FIFO_STATUS_DLN3_HS_FIFO_EMPTY 0x10000000 > +#define DSI_FIFO_STATUS_DLN3_HS_FIFO_FULL 0x20000000 > +#define DSI_FIFO_STATUS_DLN3_HS_FIFO_OVERFLOW 0x40000000 > +#define DSI_FIFO_STATUS_DLN3_HS_FIFO_UNDERFLOW 0x80000000 > > #define REG_DSI_VID_CFG0 0x0000000c > #define DSI_VID_CFG0_VIRT_CHANNEL__MASK 0x00000003 > @@ -318,38 +342,72 @@ static inline uint32_t DSI_CMD_CFG1_WR_MEM_CONTINUE(uint32_t val) > > #define REG_DSI_DMA_LEN 0x00000048 > > -#define REG_DSI_CMD_MDP_STREAM_CTRL 0x00000054 > -#define DSI_CMD_MDP_STREAM_CTRL_DATA_TYPE__MASK 0x0000003f > -#define DSI_CMD_MDP_STREAM_CTRL_DATA_TYPE__SHIFT 0 > -static inline uint32_t DSI_CMD_MDP_STREAM_CTRL_DATA_TYPE(uint32_t val) > +#define REG_DSI_CMD_MDP_STREAM0_CTRL 0x00000054 > +#define DSI_CMD_MDP_STREAM0_CTRL_DATA_TYPE__MASK 0x0000003f > +#define DSI_CMD_MDP_STREAM0_CTRL_DATA_TYPE__SHIFT 0 > +static inline uint32_t DSI_CMD_MDP_STREAM0_CTRL_DATA_TYPE(uint32_t val) > { > - return ((val) << DSI_CMD_MDP_STREAM_CTRL_DATA_TYPE__SHIFT) & DSI_CMD_MDP_STREAM_CTRL_DATA_TYPE__MASK; > + return ((val) << DSI_CMD_MDP_STREAM0_CTRL_DATA_TYPE__SHIFT) & DSI_CMD_MDP_STREAM0_CTRL_DATA_TYPE__MASK; > } > -#define DSI_CMD_MDP_STREAM_CTRL_VIRTUAL_CHANNEL__MASK 0x00000300 > -#define DSI_CMD_MDP_STREAM_CTRL_VIRTUAL_CHANNEL__SHIFT 8 > -static inline uint32_t DSI_CMD_MDP_STREAM_CTRL_VIRTUAL_CHANNEL(uint32_t val) > +#define DSI_CMD_MDP_STREAM0_CTRL_VIRTUAL_CHANNEL__MASK 0x00000300 > +#define DSI_CMD_MDP_STREAM0_CTRL_VIRTUAL_CHANNEL__SHIFT 8 > +static inline uint32_t DSI_CMD_MDP_STREAM0_CTRL_VIRTUAL_CHANNEL(uint32_t val) > { > - return ((val) << DSI_CMD_MDP_STREAM_CTRL_VIRTUAL_CHANNEL__SHIFT) & DSI_CMD_MDP_STREAM_CTRL_VIRTUAL_CHANNEL__MASK; > + return ((val) << DSI_CMD_MDP_STREAM0_CTRL_VIRTUAL_CHANNEL__SHIFT) & DSI_CMD_MDP_STREAM0_CTRL_VIRTUAL_CHANNEL__MASK; > } > -#define DSI_CMD_MDP_STREAM_CTRL_WORD_COUNT__MASK 0xffff0000 > -#define DSI_CMD_MDP_STREAM_CTRL_WORD_COUNT__SHIFT 16 > -static inline uint32_t DSI_CMD_MDP_STREAM_CTRL_WORD_COUNT(uint32_t val) > +#define DSI_CMD_MDP_STREAM0_CTRL_WORD_COUNT__MASK 0xffff0000 > +#define DSI_CMD_MDP_STREAM0_CTRL_WORD_COUNT__SHIFT 16 > +static inline uint32_t DSI_CMD_MDP_STREAM0_CTRL_WORD_COUNT(uint32_t val) > { > - return ((val) << DSI_CMD_MDP_STREAM_CTRL_WORD_COUNT__SHIFT) & DSI_CMD_MDP_STREAM_CTRL_WORD_COUNT__MASK; > + return ((val) << DSI_CMD_MDP_STREAM0_CTRL_WORD_COUNT__SHIFT) & DSI_CMD_MDP_STREAM0_CTRL_WORD_COUNT__MASK; > } > > -#define REG_DSI_CMD_MDP_STREAM_TOTAL 0x00000058 > -#define DSI_CMD_MDP_STREAM_TOTAL_H_TOTAL__MASK 0x00000fff > -#define DSI_CMD_MDP_STREAM_TOTAL_H_TOTAL__SHIFT 0 > -static inline uint32_t DSI_CMD_MDP_STREAM_TOTAL_H_TOTAL(uint32_t val) > +#define REG_DSI_CMD_MDP_STREAM0_TOTAL 0x00000058 > +#define DSI_CMD_MDP_STREAM0_TOTAL_H_TOTAL__MASK 0x00000fff > +#define DSI_CMD_MDP_STREAM0_TOTAL_H_TOTAL__SHIFT 0 > +static inline uint32_t DSI_CMD_MDP_STREAM0_TOTAL_H_TOTAL(uint32_t val) > { > - return ((val) << DSI_CMD_MDP_STREAM_TOTAL_H_TOTAL__SHIFT) & DSI_CMD_MDP_STREAM_TOTAL_H_TOTAL__MASK; > + return ((val) << DSI_CMD_MDP_STREAM0_TOTAL_H_TOTAL__SHIFT) & DSI_CMD_MDP_STREAM0_TOTAL_H_TOTAL__MASK; > } > -#define DSI_CMD_MDP_STREAM_TOTAL_V_TOTAL__MASK 0x0fff0000 > -#define DSI_CMD_MDP_STREAM_TOTAL_V_TOTAL__SHIFT 16 > -static inline uint32_t DSI_CMD_MDP_STREAM_TOTAL_V_TOTAL(uint32_t val) > +#define DSI_CMD_MDP_STREAM0_TOTAL_V_TOTAL__MASK 0x0fff0000 > +#define DSI_CMD_MDP_STREAM0_TOTAL_V_TOTAL__SHIFT 16 > +static inline uint32_t DSI_CMD_MDP_STREAM0_TOTAL_V_TOTAL(uint32_t val) > { > - return ((val) << DSI_CMD_MDP_STREAM_TOTAL_V_TOTAL__SHIFT) & DSI_CMD_MDP_STREAM_TOTAL_V_TOTAL__MASK; > + return ((val) << DSI_CMD_MDP_STREAM0_TOTAL_V_TOTAL__SHIFT) & DSI_CMD_MDP_STREAM0_TOTAL_V_TOTAL__MASK; > +} > + > +#define REG_DSI_CMD_MDP_STREAM1_CTRL 0x0000005c > +#define DSI_CMD_MDP_STREAM1_CTRL_DATA_TYPE__MASK 0x0000003f > +#define DSI_CMD_MDP_STREAM1_CTRL_DATA_TYPE__SHIFT 0 > +static inline uint32_t DSI_CMD_MDP_STREAM1_CTRL_DATA_TYPE(uint32_t val) > +{ > + return ((val) << DSI_CMD_MDP_STREAM1_CTRL_DATA_TYPE__SHIFT) & DSI_CMD_MDP_STREAM1_CTRL_DATA_TYPE__MASK; > +} > +#define DSI_CMD_MDP_STREAM1_CTRL_VIRTUAL_CHANNEL__MASK 0x00000300 > +#define DSI_CMD_MDP_STREAM1_CTRL_VIRTUAL_CHANNEL__SHIFT 8 > +static inline uint32_t DSI_CMD_MDP_STREAM1_CTRL_VIRTUAL_CHANNEL(uint32_t val) > +{ > + return ((val) << DSI_CMD_MDP_STREAM1_CTRL_VIRTUAL_CHANNEL__SHIFT) & DSI_CMD_MDP_STREAM1_CTRL_VIRTUAL_CHANNEL__MASK; > +} > +#define DSI_CMD_MDP_STREAM1_CTRL_WORD_COUNT__MASK 0xffff0000 > +#define DSI_CMD_MDP_STREAM1_CTRL_WORD_COUNT__SHIFT 16 > +static inline uint32_t DSI_CMD_MDP_STREAM1_CTRL_WORD_COUNT(uint32_t val) > +{ > + return ((val) << DSI_CMD_MDP_STREAM1_CTRL_WORD_COUNT__SHIFT) & DSI_CMD_MDP_STREAM1_CTRL_WORD_COUNT__MASK; > +} > + > +#define REG_DSI_CMD_MDP_STREAM1_TOTAL 0x00000060 > +#define DSI_CMD_MDP_STREAM1_TOTAL_H_TOTAL__MASK 0x0000ffff > +#define DSI_CMD_MDP_STREAM1_TOTAL_H_TOTAL__SHIFT 0 > +static inline uint32_t DSI_CMD_MDP_STREAM1_TOTAL_H_TOTAL(uint32_t val) > +{ > + return ((val) << DSI_CMD_MDP_STREAM1_TOTAL_H_TOTAL__SHIFT) & DSI_CMD_MDP_STREAM1_TOTAL_H_TOTAL__MASK; > +} > +#define DSI_CMD_MDP_STREAM1_TOTAL_V_TOTAL__MASK 0xffff0000 > +#define DSI_CMD_MDP_STREAM1_TOTAL_V_TOTAL__SHIFT 16 > +static inline uint32_t DSI_CMD_MDP_STREAM1_TOTAL_V_TOTAL(uint32_t val) > +{ > + return ((val) << DSI_CMD_MDP_STREAM1_TOTAL_V_TOTAL__SHIFT) & DSI_CMD_MDP_STREAM1_TOTAL_V_TOTAL__MASK; > } > > #define REG_DSI_ACK_ERR_STATUS 0x00000064 > @@ -389,6 +447,35 @@ static inline uint32_t DSI_TRIG_CTRL_STREAM(uint32_t val) > #define DSI_DLN0_PHY_ERR_DLN0_ERR_CONTENTION_LP0 0x00001000 > #define DSI_DLN0_PHY_ERR_DLN0_ERR_CONTENTION_LP1 0x00010000 > > +#define REG_DSI_LP_TIMER_CTRL 0x000000b4 > +#define DSI_LP_TIMER_CTRL_LP_RX_TO__MASK 0x0000ffff > +#define DSI_LP_TIMER_CTRL_LP_RX_TO__SHIFT 0 > +static inline uint32_t DSI_LP_TIMER_CTRL_LP_RX_TO(uint32_t val) > +{ > + return ((val) << DSI_LP_TIMER_CTRL_LP_RX_TO__SHIFT) & DSI_LP_TIMER_CTRL_LP_RX_TO__MASK; > +} > +#define DSI_LP_TIMER_CTRL_BTA_TO__MASK 0xffff0000 > +#define DSI_LP_TIMER_CTRL_BTA_TO__SHIFT 16 > +static inline uint32_t DSI_LP_TIMER_CTRL_BTA_TO(uint32_t val) > +{ > + return ((val) << DSI_LP_TIMER_CTRL_BTA_TO__SHIFT) & DSI_LP_TIMER_CTRL_BTA_TO__MASK; > +} > + > +#define REG_DSI_HS_TIMER_CTRL 0x000000b8 > +#define DSI_HS_TIMER_CTRL_HS_TX_TO__MASK 0x0000ffff > +#define DSI_HS_TIMER_CTRL_HS_TX_TO__SHIFT 0 > +static inline uint32_t DSI_HS_TIMER_CTRL_HS_TX_TO(uint32_t val) > +{ > + return ((val) << DSI_HS_TIMER_CTRL_HS_TX_TO__SHIFT) & DSI_HS_TIMER_CTRL_HS_TX_TO__MASK; > +} > +#define DSI_HS_TIMER_CTRL_TIMER_RESOLUTION__MASK 0x000f0000 > +#define DSI_HS_TIMER_CTRL_TIMER_RESOLUTION__SHIFT 16 > +static inline uint32_t DSI_HS_TIMER_CTRL_TIMER_RESOLUTION(uint32_t val) > +{ > + return ((val) << DSI_HS_TIMER_CTRL_TIMER_RESOLUTION__SHIFT) & DSI_HS_TIMER_CTRL_TIMER_RESOLUTION__MASK; > +} > +#define DSI_HS_TIMER_CTRL_HS_TX_TO_STOP_EN 0x10000000 > + > #define REG_DSI_TIMEOUT_STATUS 0x000000bc > > #define REG_DSI_CLKOUT_TIMING_CTRL 0x000000c0 > @@ -409,6 +496,19 @@ static inline uint32_t DSI_CLKOUT_TIMING_CTRL_T_CLK_POST(uint32_t val) > #define DSI_EOT_PACKET_CTRL_TX_EOT_APPEND 0x00000001 > #define DSI_EOT_PACKET_CTRL_RX_EOT_IGNORE 0x00000010 > > +#define REG_DSI_LANE_STATUS 0x000000a4 > +#define DSI_LANE_STATUS_DLN0_STOPSTATE 0x00000001 > +#define DSI_LANE_STATUS_DLN1_STOPSTATE 0x00000002 > +#define DSI_LANE_STATUS_DLN2_STOPSTATE 0x00000004 > +#define DSI_LANE_STATUS_DLN3_STOPSTATE 0x00000008 > +#define DSI_LANE_STATUS_CLKLN_STOPSTATE 0x00000010 > +#define DSI_LANE_STATUS_DLN0_ULPS_ACTIVE_NOT 0x00000100 > +#define DSI_LANE_STATUS_DLN1_ULPS_ACTIVE_NOT 0x00000200 > +#define DSI_LANE_STATUS_DLN2_ULPS_ACTIVE_NOT 0x00000400 > +#define DSI_LANE_STATUS_DLN3_ULPS_ACTIVE_NOT 0x00000800 > +#define DSI_LANE_STATUS_CLKLN_ULPS_ACTIVE_NOT 0x00001000 > +#define DSI_LANE_STATUS_DLN0_DIRECTION 0x00010000 > + > #define REG_DSI_LANE_CTRL 0x000000a8 > #define DSI_LANE_CTRL_CLKLN_HS_FORCE_REQUEST 0x10000000 > > @@ -436,6 +536,21 @@ static inline uint32_t DSI_LANE_SWAP_CTRL_DLN_SWAP_SEL(enum dsi_lane_swap val) > #define DSI_CLK_CTRL_FORCE_ON_DYN_AHBM_HCLK 0x00000200 > > #define REG_DSI_CLK_STATUS 0x0000011c > +#define DSI_CLK_STATUS_DSI_AON_AHBM_HCLK_ACTIVE 0x00000001 > +#define DSI_CLK_STATUS_DSI_DYN_AHBM_HCLK_ACTIVE 0x00000002 > +#define DSI_CLK_STATUS_DSI_AON_AHBS_HCLK_ACTIVE 0x00000004 > +#define DSI_CLK_STATUS_DSI_DYN_AHBS_HCLK_ACTIVE 0x00000008 > +#define DSI_CLK_STATUS_DSI_AON_DSICLK_ACTIVE 0x00000010 > +#define DSI_CLK_STATUS_DSI_DYN_DSICLK_ACTIVE 0x00000020 > +#define DSI_CLK_STATUS_DSI_AON_BYTECLK_ACTIVE 0x00000040 > +#define DSI_CLK_STATUS_DSI_DYN_BYTECLK_ACTIVE 0x00000080 > +#define DSI_CLK_STATUS_DSI_AON_ESCCLK_ACTIVE 0x00000100 > +#define DSI_CLK_STATUS_DSI_AON_PCLK_ACTIVE 0x00000200 > +#define DSI_CLK_STATUS_DSI_DYN_PCLK_ACTIVE 0x00000400 > +#define DSI_CLK_STATUS_DSI_DYN_CMD_PCLK_ACTIVE 0x00001000 > +#define DSI_CLK_STATUS_DSI_CMD_PCLK_ACTIVE 0x00002000 > +#define DSI_CLK_STATUS_DSI_VID_PCLK_ACTIVE 0x00004000 > +#define DSI_CLK_STATUS_DSI_CAM_BIST_PCLK_ACT 0x00008000 > #define DSI_CLK_STATUS_PLL_UNLOCKED 0x00010000 > > #define REG_DSI_PHY_RESET 0x00000128 > @@ -444,6 +559,51 @@ static inline uint32_t DSI_LANE_SWAP_CTRL_DLN_SWAP_SEL(enum dsi_lane_swap val) > #define REG_DSI_T_CLK_PRE_EXTEND 0x0000017c > #define DSI_T_CLK_PRE_EXTEND_INC_BY_2_BYTECLK 0x00000001 > > +#define REG_DSI_CMD_MODE_MDP_CTRL2 0x000001b4 > +#define DSI_CMD_MODE_MDP_CTRL2_DST_FORMAT2__MASK 0x0000000f > +#define DSI_CMD_MODE_MDP_CTRL2_DST_FORMAT2__SHIFT 0 > +static inline uint32_t DSI_CMD_MODE_MDP_CTRL2_DST_FORMAT2(enum dsi_cmd_dst_format val) > +{ > + return ((val) << DSI_CMD_MODE_MDP_CTRL2_DST_FORMAT2__SHIFT) & DSI_CMD_MODE_MDP_CTRL2_DST_FORMAT2__MASK; > +} > +#define DSI_CMD_MODE_MDP_CTRL2_R_SEL 0x00000010 > +#define DSI_CMD_MODE_MDP_CTRL2_G_SEL 0x00000020 > +#define DSI_CMD_MODE_MDP_CTRL2_B_SEL 0x00000040 > +#define DSI_CMD_MODE_MDP_CTRL2_BYTE_MSB_LSB_FLIP 0x00000080 > +#define DSI_CMD_MODE_MDP_CTRL2_RGB_SWAP__MASK 0x00000700 > +#define DSI_CMD_MODE_MDP_CTRL2_RGB_SWAP__SHIFT 8 > +static inline uint32_t DSI_CMD_MODE_MDP_CTRL2_RGB_SWAP(enum dsi_rgb_swap val) > +{ > + return ((val) << DSI_CMD_MODE_MDP_CTRL2_RGB_SWAP__SHIFT) & DSI_CMD_MODE_MDP_CTRL2_RGB_SWAP__MASK; > +} > +#define DSI_CMD_MODE_MDP_CTRL2_INPUT_RGB_SWAP__MASK 0x00007000 > +#define DSI_CMD_MODE_MDP_CTRL2_INPUT_RGB_SWAP__SHIFT 12 > +static inline uint32_t DSI_CMD_MODE_MDP_CTRL2_INPUT_RGB_SWAP(enum dsi_rgb_swap val) > +{ > + return ((val) << DSI_CMD_MODE_MDP_CTRL2_INPUT_RGB_SWAP__SHIFT) & DSI_CMD_MODE_MDP_CTRL2_INPUT_RGB_SWAP__MASK; > +} > +#define DSI_CMD_MODE_MDP_CTRL2_BURST_MODE 0x00010000 > + > +#define REG_DSI_CMD_MODE_MDP_STREAM2_CTRL 0x000001b8 > +#define DSI_CMD_MODE_MDP_STREAM2_CTRL_DATA_TYPE__MASK 0x0000003f > +#define DSI_CMD_MODE_MDP_STREAM2_CTRL_DATA_TYPE__SHIFT 0 > +static inline uint32_t DSI_CMD_MODE_MDP_STREAM2_CTRL_DATA_TYPE(uint32_t val) > +{ > + return ((val) << DSI_CMD_MODE_MDP_STREAM2_CTRL_DATA_TYPE__SHIFT) & DSI_CMD_MODE_MDP_STREAM2_CTRL_DATA_TYPE__MASK; > +} > +#define DSI_CMD_MODE_MDP_STREAM2_CTRL_VIRTUAL_CHANNEL__MASK 0x00000300 > +#define DSI_CMD_MODE_MDP_STREAM2_CTRL_VIRTUAL_CHANNEL__SHIFT 8 > +static inline uint32_t DSI_CMD_MODE_MDP_STREAM2_CTRL_VIRTUAL_CHANNEL(uint32_t val) > +{ > + return ((val) << DSI_CMD_MODE_MDP_STREAM2_CTRL_VIRTUAL_CHANNEL__SHIFT) & DSI_CMD_MODE_MDP_STREAM2_CTRL_VIRTUAL_CHANNEL__MASK; > +} > +#define DSI_CMD_MODE_MDP_STREAM2_CTRL_WORD_COUNT__MASK 0xffff0000 > +#define DSI_CMD_MODE_MDP_STREAM2_CTRL_WORD_COUNT__SHIFT 16 > +static inline uint32_t DSI_CMD_MODE_MDP_STREAM2_CTRL_WORD_COUNT(uint32_t val) > +{ > + return ((val) << DSI_CMD_MODE_MDP_STREAM2_CTRL_WORD_COUNT__SHIFT) & DSI_CMD_MODE_MDP_STREAM2_CTRL_WORD_COUNT__MASK; > +} > + > #define REG_DSI_RDBK_DATA_CTRL 0x000001d0 > #define DSI_RDBK_DATA_CTRL_COUNT__MASK 0x00ff0000 > #define DSI_RDBK_DATA_CTRL_COUNT__SHIFT 16 > diff --git a/drivers/gpu/drm/msm/dsi/dsi_host.c b/drivers/gpu/drm/msm/dsi/dsi_host.c > index 813f44fada39..c8b54998c42c 100644 > --- a/drivers/gpu/drm/msm/dsi/dsi_host.c > +++ b/drivers/gpu/drm/msm/dsi/dsi_host.c > @@ -986,16 +986,16 @@ static void dsi_timing_setup(struct msm_dsi_host *msm_host, bool is_dual_dsi) > /* image data and 1 byte write_memory_start cmd */ > wc = hdisplay * dsi_get_bpp(msm_host->format) / 8 + 1; > > - dsi_write(msm_host, REG_DSI_CMD_MDP_STREAM_CTRL, > - DSI_CMD_MDP_STREAM_CTRL_WORD_COUNT(wc) | > - DSI_CMD_MDP_STREAM_CTRL_VIRTUAL_CHANNEL( > + dsi_write(msm_host, REG_DSI_CMD_MDP_STREAM0_CTRL, > + DSI_CMD_MDP_STREAM0_CTRL_WORD_COUNT(wc) | > + DSI_CMD_MDP_STREAM0_CTRL_VIRTUAL_CHANNEL( > msm_host->channel) | > - DSI_CMD_MDP_STREAM_CTRL_DATA_TYPE( > + DSI_CMD_MDP_STREAM0_CTRL_DATA_TYPE( > MIPI_DSI_DCS_LONG_WRITE)); > > - dsi_write(msm_host, REG_DSI_CMD_MDP_STREAM_TOTAL, > - DSI_CMD_MDP_STREAM_TOTAL_H_TOTAL(hdisplay) | > - DSI_CMD_MDP_STREAM_TOTAL_V_TOTAL(mode->vdisplay)); > + dsi_write(msm_host, REG_DSI_CMD_MDP_STREAM0_TOTAL, > + DSI_CMD_MDP_STREAM0_TOTAL_H_TOTAL(hdisplay) | > + DSI_CMD_MDP_STREAM0_TOTAL_V_TOTAL(mode->vdisplay)); > } > } > > diff --git a/drivers/gpu/drm/msm/dsi/mmss_cc.xml.h b/drivers/gpu/drm/msm/dsi/mmss_cc.xml.h > index 874265314413..ac290a74185a 100644 > --- a/drivers/gpu/drm/msm/dsi/mmss_cc.xml.h > +++ b/drivers/gpu/drm/msm/dsi/mmss_cc.xml.h > @@ -13,7 +13,7 @@ The rules-ng-ng source files this header was generated from are: > - /home/robclark/src/envytools/rnndb/mdp/mdp4.xml ( 20915 bytes, from 2018-07-03 19:37:13) > - /home/robclark/src/envytools/rnndb/mdp/mdp_common.xml ( 2849 bytes, from 2018-07-03 19:37:13) > - /home/robclark/src/envytools/rnndb/mdp/mdp5.xml ( 37411 bytes, from 2018-07-03 19:37:13) > -- /home/robclark/src/envytools/rnndb/dsi/dsi.xml ( 37239 bytes, from 2018-07-03 19:37:13) > +- /home/robclark/src/envytools/rnndb/dsi/dsi.xml ( 42301 bytes, from 2020-07-04 21:03:00) > - /home/robclark/src/envytools/rnndb/dsi/sfpb.xml ( 602 bytes, from 2018-07-03 19:37:13) > - /home/robclark/src/envytools/rnndb/dsi/mmss_cc.xml ( 1686 bytes, from 2018-07-03 19:37:13) > - /home/robclark/src/envytools/rnndb/hdmi/qfprom.xml ( 600 bytes, from 2018-07-03 19:37:13) > diff --git a/drivers/gpu/drm/msm/dsi/sfpb.xml.h b/drivers/gpu/drm/msm/dsi/sfpb.xml.h > index 07c48ddb5301..433c4f330744 100644 > --- a/drivers/gpu/drm/msm/dsi/sfpb.xml.h > +++ b/drivers/gpu/drm/msm/dsi/sfpb.xml.h > @@ -13,7 +13,7 @@ The rules-ng-ng source files this header was generated from are: > - /home/robclark/src/envytools/rnndb/mdp/mdp4.xml ( 20915 bytes, from 2018-07-03 19:37:13) > - /home/robclark/src/envytools/rnndb/mdp/mdp_common.xml ( 2849 bytes, from 2018-07-03 19:37:13) > - /home/robclark/src/envytools/rnndb/mdp/mdp5.xml ( 37411 bytes, from 2018-07-03 19:37:13) > -- /home/robclark/src/envytools/rnndb/dsi/dsi.xml ( 37239 bytes, from 2018-07-03 19:37:13) > +- /home/robclark/src/envytools/rnndb/dsi/dsi.xml ( 42301 bytes, from 2020-07-04 21:03:00) > - /home/robclark/src/envytools/rnndb/dsi/sfpb.xml ( 602 bytes, from 2018-07-03 19:37:13) > - /home/robclark/src/envytools/rnndb/dsi/mmss_cc.xml ( 1686 bytes, from 2018-07-03 19:37:13) > - /home/robclark/src/envytools/rnndb/hdmi/qfprom.xml ( 600 bytes, from 2018-07-03 19:37:13) > diff --git a/drivers/gpu/drm/msm/edp/edp.xml.h b/drivers/gpu/drm/msm/edp/edp.xml.h > index 9cb6e6fe9810..4281253af269 100644 > --- a/drivers/gpu/drm/msm/edp/edp.xml.h > +++ b/drivers/gpu/drm/msm/edp/edp.xml.h > @@ -13,7 +13,7 @@ The rules-ng-ng source files this header was generated from are: > - /home/robclark/src/envytools/rnndb/mdp/mdp4.xml ( 20915 bytes, from 2018-07-03 19:37:13) > - /home/robclark/src/envytools/rnndb/mdp/mdp_common.xml ( 2849 bytes, from 2018-07-03 19:37:13) > - /home/robclark/src/envytools/rnndb/mdp/mdp5.xml ( 37411 bytes, from 2018-07-03 19:37:13) > -- /home/robclark/src/envytools/rnndb/dsi/dsi.xml ( 37239 bytes, from 2018-07-03 19:37:13) > +- /home/robclark/src/envytools/rnndb/dsi/dsi.xml ( 42301 bytes, from 2020-07-04 21:03:00) > - /home/robclark/src/envytools/rnndb/dsi/sfpb.xml ( 602 bytes, from 2018-07-03 19:37:13) > - /home/robclark/src/envytools/rnndb/dsi/mmss_cc.xml ( 1686 bytes, from 2018-07-03 19:37:13) > - /home/robclark/src/envytools/rnndb/hdmi/qfprom.xml ( 600 bytes, from 2018-07-03 19:37:13) > diff --git a/drivers/gpu/drm/msm/hdmi/hdmi.xml.h b/drivers/gpu/drm/msm/hdmi/hdmi.xml.h > index 3eff3ea3b271..5f8cdf581ba6 100644 > --- a/drivers/gpu/drm/msm/hdmi/hdmi.xml.h > +++ b/drivers/gpu/drm/msm/hdmi/hdmi.xml.h > @@ -13,7 +13,7 @@ The rules-ng-ng source files this header was generated from are: > - /home/robclark/src/envytools/rnndb/mdp/mdp4.xml ( 20915 bytes, from 2018-07-03 19:37:13) > - /home/robclark/src/envytools/rnndb/mdp/mdp_common.xml ( 2849 bytes, from 2018-07-03 19:37:13) > - /home/robclark/src/envytools/rnndb/mdp/mdp5.xml ( 37411 bytes, from 2018-07-03 19:37:13) > -- /home/robclark/src/envytools/rnndb/dsi/dsi.xml ( 37239 bytes, from 2018-07-03 19:37:13) > +- /home/robclark/src/envytools/rnndb/dsi/dsi.xml ( 42301 bytes, from 2020-07-04 21:03:00) > - /home/robclark/src/envytools/rnndb/dsi/sfpb.xml ( 602 bytes, from 2018-07-03 19:37:13) > - /home/robclark/src/envytools/rnndb/dsi/mmss_cc.xml ( 1686 bytes, from 2018-07-03 19:37:13) > - /home/robclark/src/envytools/rnndb/hdmi/qfprom.xml ( 600 bytes, from 2018-07-03 19:37:13) > diff --git a/drivers/gpu/drm/msm/hdmi/qfprom.xml.h b/drivers/gpu/drm/msm/hdmi/qfprom.xml.h > index 7717d4269662..fc3a852a8cda 100644 > --- a/drivers/gpu/drm/msm/hdmi/qfprom.xml.h > +++ b/drivers/gpu/drm/msm/hdmi/qfprom.xml.h > @@ -13,7 +13,7 @@ The rules-ng-ng source files this header was generated from are: > - /home/robclark/src/envytools/rnndb/mdp/mdp4.xml ( 20915 bytes, from 2018-07-03 19:37:13) > - /home/robclark/src/envytools/rnndb/mdp/mdp_common.xml ( 2849 bytes, from 2018-07-03 19:37:13) > - /home/robclark/src/envytools/rnndb/mdp/mdp5.xml ( 37411 bytes, from 2018-07-03 19:37:13) > -- /home/robclark/src/envytools/rnndb/dsi/dsi.xml ( 37239 bytes, from 2018-07-03 19:37:13) > +- /home/robclark/src/envytools/rnndb/dsi/dsi.xml ( 42301 bytes, from 2020-07-04 21:03:00) > - /home/robclark/src/envytools/rnndb/dsi/sfpb.xml ( 602 bytes, from 2018-07-03 19:37:13) > - /home/robclark/src/envytools/rnndb/dsi/mmss_cc.xml ( 1686 bytes, from 2018-07-03 19:37:13) > - /home/robclark/src/envytools/rnndb/hdmi/qfprom.xml ( 600 bytes, from 2018-07-03 19:37:13) > -- > 2.26.2 >
-- The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project
| |