diff --git a/src/freedreno/common/freedreno_devices.py b/src/freedreno/common/freedreno_devices.py
index 19244c0ad5e..6823c6f9494 100644
--- a/src/freedreno/common/freedreno_devices.py
+++ b/src/freedreno/common/freedreno_devices.py
@@ -873,7 +873,7 @@ a730_raw_magic_regs = [
[A6XXRegs.REG_A7XX_UCHE_UNKNOWN_0E11, 0x00000040],
[A6XXRegs.REG_A7XX_SP_HLSQ_DBG_ECO_CNTL, 0x00008000],
[A6XXRegs.REG_A6XX_SP_DBG_ECO_CNTL, 0x10000000],
- [A6XXRegs.REG_A6XX_PC_MODE_CNTL, 0x0000003f], # 0x00001f1f in some tests
+ [A6XXRegs.REG_A6XX_PC_MODE_CNTL, 0x1f1f],
[A6XXRegs.REG_A6XX_PC_DBG_ECO_CNTL, 0x20080000],
[A6XXRegs.REG_A7XX_PC_UNKNOWN_9E24, 0x21fc7f00],
[A6XXRegs.REG_A7XX_VFD_DBG_ECO_CNTL, 0x00000000],
@@ -922,9 +922,7 @@ a740_raw_magic_regs = [
[A6XXRegs.REG_A7XX_UCHE_UNKNOWN_0E11, 0x00000000],
[A6XXRegs.REG_A7XX_SP_HLSQ_DBG_ECO_CNTL, 0x00000000],
[A6XXRegs.REG_A6XX_SP_DBG_ECO_CNTL, 0x10000000],
- # Blob uses 0x1f or 0x1f1f, however these values cause vertices
- # corruption in some tests.
- [A6XXRegs.REG_A6XX_PC_MODE_CNTL, 0x0000003f],
+ [A6XXRegs.REG_A6XX_PC_MODE_CNTL, 0x1f1f],
[A6XXRegs.REG_A6XX_PC_DBG_ECO_CNTL, 0x00100000],
[A6XXRegs.REG_A7XX_PC_UNKNOWN_9E24, 0x21585600],
[A6XXRegs.REG_A7XX_VFD_DBG_ECO_CNTL, 0x00008000],
@@ -1028,7 +1026,7 @@ add_gpus([
[A6XXRegs.REG_A7XX_UCHE_UNKNOWN_0E11, 0x00000000],
[A6XXRegs.REG_A7XX_SP_HLSQ_DBG_ECO_CNTL, 0x00000000],
[A6XXRegs.REG_A6XX_SP_DBG_ECO_CNTL, 0x10000000],
- [A6XXRegs.REG_A6XX_PC_MODE_CNTL, 0x1f],
+ [A6XXRegs.REG_A6XX_PC_MODE_CNTL, 0x1f1f],
[A6XXRegs.REG_A6XX_PC_DBG_ECO_CNTL, 0x00100000],
[A6XXRegs.REG_A7XX_PC_UNKNOWN_9E24, 0x01585600],
[A6XXRegs.REG_A7XX_VFD_DBG_ECO_CNTL, 0x00008000],
@@ -1111,9 +1109,7 @@ add_gpus([
[A6XXRegs.REG_A7XX_UCHE_UNKNOWN_0E11, 0x00000080],
[A6XXRegs.REG_A7XX_SP_HLSQ_DBG_ECO_CNTL, 0x00000000],
[A6XXRegs.REG_A6XX_SP_DBG_ECO_CNTL, 0x10000000],
- # Blob uses 0x1f or 0x1f1f, however these values cause vertices
- # corruption in some tests.
- [A6XXRegs.REG_A6XX_PC_MODE_CNTL, 0x0000003f],
+ [A6XXRegs.REG_A6XX_PC_MODE_CNTL, 0x1f1f],
[A6XXRegs.REG_A6XX_PC_DBG_ECO_CNTL, 0x00100000],
[A6XXRegs.REG_A7XX_PC_UNKNOWN_9E24, 0x21585600],
[A6XXRegs.REG_A7XX_VFD_DBG_ECO_CNTL, 0x00008000],
diff --git a/src/freedreno/registers/adreno/a6xx.xml b/src/freedreno/registers/adreno/a6xx.xml
index 3349c01646e..3144b53e8c8 100644
--- a/src/freedreno/registers/adreno/a6xx.xml
+++ b/src/freedreno/registers/adreno/a6xx.xml
@@ -3286,7 +3286,29 @@ by a particular renderpass/blit.
-
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/freedreno/tests/reference/crash.log b/src/freedreno/tests/reference/crash.log
index f083f132dae..3acce636e17 100644
--- a/src/freedreno/tests/reference/crash.log
+++ b/src/freedreno/tests/reference/crash.log
@@ -6154,7 +6154,7 @@ WARNING: 64b discontinuity (no _LO dword for 890d)
00000000 PC_HS_PARAM_1: { SIZE = 0 }
00000000 PC_DS_PARAM: { SPACING = TESS_EQUAL | OUTPUT = TESS_POINTS }
ffffffff PC_RESTART_INDEX: 4294967295
- 0000001f PC_MODE_CNTL: 0x1f
+ 0000001f PC_MODE_CNTL: { COUNT1 = 31 }
00000001 PC_POWER_CNTL: 0x1
00000000 PC_PS_CNTL: { 0 }
00000002 PC_CNTL: { PROVOKING_VTX_LAST }
@@ -6382,7 +6382,7 @@ WARNING: 64b discontinuity (no _LO dword for 890d)
00000000 PC_HS_PARAM_1: { SIZE = 0 }
00000000 PC_DS_PARAM: { SPACING = TESS_EQUAL | OUTPUT = TESS_POINTS }
ffffffff PC_RESTART_INDEX: 4294967295
- 0000001f PC_MODE_CNTL: 0x1f
+ 0000001f PC_MODE_CNTL: { COUNT1 = 31 }
00000001 PC_POWER_CNTL: 0x1
00000000 PC_PS_CNTL: { 0 }
00000002 PC_CNTL: { PROVOKING_VTX_LAST }
diff --git a/src/freedreno/tests/reference/crash_prefetch.log b/src/freedreno/tests/reference/crash_prefetch.log
index d6394ddfb86..b2c934b21ca 100644
--- a/src/freedreno/tests/reference/crash_prefetch.log
+++ b/src/freedreno/tests/reference/crash_prefetch.log
@@ -6761,7 +6761,7 @@ WARNING: 64b discontinuity (no _LO dword for 890d)
00000000 PC_HS_PARAM_1: { SIZE = 0 }
00000000 PC_DS_PARAM: { SPACING = TESS_EQUAL | OUTPUT = TESS_POINTS }
ffffffff PC_RESTART_INDEX: 4294967295
- 0000001f PC_MODE_CNTL: 0x1f
+ 0000001f PC_MODE_CNTL: { COUNT1 = 31 }
00000001 PC_POWER_CNTL: 0x1
00000000 PC_PS_CNTL: { 0 }
00000000 PC_CNTL: { 0 }
@@ -6989,7 +6989,7 @@ WARNING: 64b discontinuity (no _LO dword for 890d)
00000000 PC_HS_PARAM_1: { SIZE = 0 }
00000000 PC_DS_PARAM: { SPACING = TESS_EQUAL | OUTPUT = TESS_POINTS }
ffffffff PC_RESTART_INDEX: 4294967295
- 0000001f PC_MODE_CNTL: 0x1f
+ 0000001f PC_MODE_CNTL: { COUNT1 = 31 }
00000001 PC_POWER_CNTL: 0x1
00000000 PC_PS_CNTL: { 0 }
00000000 PC_CNTL: { 0 }
@@ -8019,7 +8019,7 @@ got cmdszdw=38
!+? 00000001 VPC_SO_OVERRIDE: { DISABLE }
+? 00000000 VPC_DBG_ECO_CNTL: 0
+? 00000000 VPC_LB_MODE_CNTL: FALSE
-!+? 0000001f PC_MODE_CNTL: 0x1f
+!+? 0000001f PC_MODE_CNTL: { COUNT1 = 31 }
+? 00000000 PC_CONTEXT_SWITCH_GFX_PREEMPTION_MODE: 0
+? 00000000 VFD_RENDER_MODE: { RENDER_MODE = RENDERING_PASS }
!+? 00000001 VFD_MODE_CNTL: { VERTEX }
@@ -8328,7 +8328,7 @@ got cmdszdw=38
+? 00000001 VPC_SO_OVERRIDE: { DISABLE }
+? 00000000 VPC_DBG_ECO_CNTL: 0
+? 00000000 VPC_LB_MODE_CNTL: FALSE
- +? 0000001f PC_MODE_CNTL: 0x1f
+ +? 0000001f PC_MODE_CNTL: { COUNT1 = 31 }
+? 00000000 PC_CONTEXT_SWITCH_GFX_PREEMPTION_MODE: 0
+? 00000000 VFD_RENDER_MODE: { RENDER_MODE = RENDERING_PASS }
+? 00000001 VFD_MODE_CNTL: { VERTEX }
@@ -8849,7 +8849,7 @@ got cmdszdw=38
!+ ff00ff00 VPC_PS_CNTL: { NUMNONPOSVAR = 0 | PRIMIDLOC = 255 | VIEWIDLOC = 255 }
+ 00000000 VPC_SO_CNTL: { BUF0_STREAM = 0 | BUF1_STREAM = 0 | BUF2_STREAM = 0 | BUF3_STREAM = 0 | STREAM_ENABLE = 0 }
00000001 VPC_SO_OVERRIDE: { DISABLE }
- 0000001f PC_MODE_CNTL: 0x1f
+ 0000001f PC_MODE_CNTL: { COUNT1 = 31 }
+ 00000000 PC_PS_CNTL: { 0 }
+ 00000000 VPC_RAST_STREAM_CNTL: { STREAM = 0 }
!+ 00000003 PC_DGEN_RAST_CNTL: { MODE = POLYMODE6_TRIANGLES }
@@ -9558,7 +9558,7 @@ got cmdszdw=38
+ ff00ff00 VPC_PS_CNTL: { NUMNONPOSVAR = 0 | PRIMIDLOC = 255 | VIEWIDLOC = 255 }
+ 00000000 VPC_SO_CNTL: { BUF0_STREAM = 0 | BUF1_STREAM = 0 | BUF2_STREAM = 0 | BUF3_STREAM = 0 | STREAM_ENABLE = 0 }
00000001 VPC_SO_OVERRIDE: { DISABLE }
- 0000001f PC_MODE_CNTL: 0x1f
+ 0000001f PC_MODE_CNTL: { COUNT1 = 31 }
+ 00000000 PC_PS_CNTL: { 0 }
+ 00000000 VPC_RAST_STREAM_CNTL: { STREAM = 0 }
+ 00000003 PC_DGEN_RAST_CNTL: { MODE = POLYMODE6_TRIANGLES }
@@ -10282,7 +10282,7 @@ got cmdszdw=38
+ ff00ff00 VPC_PS_CNTL: { NUMNONPOSVAR = 0 | PRIMIDLOC = 255 | VIEWIDLOC = 255 }
+ 00000000 VPC_SO_CNTL: { BUF0_STREAM = 0 | BUF1_STREAM = 0 | BUF2_STREAM = 0 | BUF3_STREAM = 0 | STREAM_ENABLE = 0 }
00000001 VPC_SO_OVERRIDE: { DISABLE }
- 0000001f PC_MODE_CNTL: 0x1f
+ 0000001f PC_MODE_CNTL: { COUNT1 = 31 }
+ 00000000 PC_PS_CNTL: { 0 }
+ 00000000 VPC_RAST_STREAM_CNTL: { STREAM = 0 }
+ 00000003 PC_DGEN_RAST_CNTL: { MODE = POLYMODE6_TRIANGLES }
@@ -10913,7 +10913,7 @@ ESTIMATED CRASH LOCATION!
+ ff00ff00 VPC_PS_CNTL: { NUMNONPOSVAR = 0 | PRIMIDLOC = 255 | VIEWIDLOC = 255 }
+ 00000000 VPC_SO_CNTL: { BUF0_STREAM = 0 | BUF1_STREAM = 0 | BUF2_STREAM = 0 | BUF3_STREAM = 0 | STREAM_ENABLE = 0 }
00000001 VPC_SO_OVERRIDE: { DISABLE }
- 0000001f PC_MODE_CNTL: 0x1f
+ 0000001f PC_MODE_CNTL: { COUNT1 = 31 }
+ 00000000 PC_PS_CNTL: { 0 }
+ 00000000 VPC_RAST_STREAM_CNTL: { STREAM = 0 }
+ 00000003 PC_DGEN_RAST_CNTL: { MODE = POLYMODE6_TRIANGLES }
@@ -11179,7 +11179,7 @@ ESTIMATED CRASH LOCATION!
+? 00000001 VPC_SO_OVERRIDE: { DISABLE }
+? 00000000 VPC_DBG_ECO_CNTL: 0
+? 00000000 VPC_LB_MODE_CNTL: FALSE
- +? 0000001f PC_MODE_CNTL: 0x1f
+ +? 0000001f PC_MODE_CNTL: { COUNT1 = 31 }
+? 00000000 PC_CONTEXT_SWITCH_GFX_PREEMPTION_MODE: 0
+? 00000000 VFD_RENDER_MODE: { RENDER_MODE = RENDERING_PASS }
+? 00000001 VFD_MODE_CNTL: { VERTEX }
diff --git a/src/freedreno/tests/reference/dEQP-VK.draw.indirect_draw.indexed.indirect_draw_count.triangle_list.log b/src/freedreno/tests/reference/dEQP-VK.draw.indirect_draw.indexed.indirect_draw_count.triangle_list.log
index f7d52f9207e..a058185a452 100644
--- a/src/freedreno/tests/reference/dEQP-VK.draw.indirect_draw.indexed.indirect_draw_count.triangle_list.log
+++ b/src/freedreno/tests/reference/dEQP-VK.draw.indirect_draw.indexed.indirect_draw_count.triangle_list.log
@@ -84,7 +84,7 @@ cmdstream[0]: 265 dwords
RB_MODE_CNTL: 0x1
00000000010580cc: 0000: 48881101 00000010
write PC_MODE_CNTL (9804)
- PC_MODE_CNTL: 0x1f
+ PC_MODE_CNTL: { COUNT1 = 31 }
00000000010580d4: 0000: 48980401 0000001f
write RB_SRGB_CNTL (880f)
RB_SRGB_CNTL: { 0 }
@@ -186,7 +186,7 @@ cmdstream[0]: 265 dwords
VFD_STEREO_RENDERING_CNTL: { VIEWS = 0 }
00000000010581dc: 0000: 40a00801 00000000
write PC_MODE_CNTL (9804)
- PC_MODE_CNTL: 0x1f
+ PC_MODE_CNTL: { COUNT1 = 31 }
00000000010581e4: 0000: 48980401 0000001f
opcode: CP_SET_DRAW_STATE (43) (4 dwords)
{ COUNT = 0 | DISABLE_ALL_GROUPS | GROUP_ID = 0 }
@@ -317,7 +317,7 @@ cmdstream[0]: 265 dwords
!+? 00000001 VPC_SO_OVERRIDE: { DISABLE }
+? 00000000 VPC_DBG_ECO_CNTL: 0
+? 00000000 VPC_LB_MODE_CNTL: FALSE
-!+? 0000001f PC_MODE_CNTL: 0x1f
+!+? 0000001f PC_MODE_CNTL: { COUNT1 = 31 }
+? 00000000 VPC_RAST_STREAM_CNTL: { STREAM = 0 }
+? 00000000 PC_PRIMITIVE_CNTL_6: { STRIDE_IN_VPC = 0 }
+? 00000000 PC_STEREO_RENDERING_CNTL: { VIEWS = 0 }
@@ -1359,7 +1359,7 @@ cmdstream[0]: 265 dwords
+ 00000000 VPC_SO_CNTL: { BUF0_STREAM = 0 | BUF1_STREAM = 0 | BUF2_STREAM = 0 | BUF3_STREAM = 0 | STREAM_ENABLE = 0 }
00000000 VPC_SO_OVERRIDE: { 0 }
!+ ffffffff PC_RESTART_INDEX: 4294967295
- 0000001f PC_MODE_CNTL: 0x1f
+ 0000001f PC_MODE_CNTL: { COUNT1 = 31 }
+ 00000000 PC_PS_CNTL: { 0 }
00000000 VPC_RAST_STREAM_CNTL: { STREAM = 0 }
!+ 00000003 PC_DGEN_RAST_CNTL: { MODE = POLYMODE6_TRIANGLES }
diff --git a/src/freedreno/tests/reference/dEQP-VK.ycbcr.plane_view.image_view.g8_b8_r8_3plane_420_unorm_plane_0_fragment-a750.log b/src/freedreno/tests/reference/dEQP-VK.ycbcr.plane_view.image_view.g8_b8_r8_3plane_420_unorm_plane_0_fragment-a750.log
index cc924f75051..79d547ded5a 100644
--- a/src/freedreno/tests/reference/dEQP-VK.ycbcr.plane_view.image_view.g8_b8_r8_3plane_420_unorm_plane_0_fragment-a750.log
+++ b/src/freedreno/tests/reference/dEQP-VK.ycbcr.plane_view.image_view.g8_b8_r8_3plane_420_unorm_plane_0_fragment-a750.log
@@ -953,7 +953,7 @@
+ 00ffffff VPC_VS_SIV_CNTL_V2: { LAYERLOC = 255 | VIEWLOC = 255 | SHADINGRATELOC = 255 }
+ 00000000 VPC_RAST_STREAM_CNTL_V2: { STREAM = 0 }
+ 00000000 PC_RESTART_INDEX: 0
- 00003f1f PC_MODE_CNTL: 0x1f | 0x3f00
+ 00003f1f PC_MODE_CNTL: { COUNT1 = 31 | COUNT2 = 0 }
+ 00000000 PC_PS_CNTL: { 0 }
00000000 PC_DGEN_SO_CNTL: { STREAM_ENABLE = 0 }
+ 00000003 PC_DGEN_RAST_CNTL: { MODE = POLYMODE6_TRIANGLES }
diff --git a/src/freedreno/tests/reference/fd-clouds.log b/src/freedreno/tests/reference/fd-clouds.log
index 47dced8e79e..2def75e4ed8 100644
--- a/src/freedreno/tests/reference/fd-clouds.log
+++ b/src/freedreno/tests/reference/fd-clouds.log
@@ -75,7 +75,7 @@ cmdstream[0]: 1023 dwords
RB_MODE_CNTL: 0x1
0000000001d910b4: 0000: 48881101 00000010
write PC_MODE_CNTL (9804)
- PC_MODE_CNTL: 0x1f
+ PC_MODE_CNTL: { COUNT1 = 31 }
0000000001d910bc: 0000: 48980401 0000001f
write RB_SRGB_CNTL (880f)
RB_SRGB_CNTL: { 0 }
@@ -216,7 +216,7 @@ cmdstream[0]: 1023 dwords
VFD_STEREO_RENDERING_CNTL: { VIEWS = 0 }
0000000001d91228: 0000: 40a00801 00000000
write PC_MODE_CNTL (9804)
- PC_MODE_CNTL: 0x1f
+ PC_MODE_CNTL: { COUNT1 = 31 }
0000000001d91230: 0000: 48980401 0000001f
opcode: CP_SET_DRAW_STATE (43) (4 dwords)
{ COUNT = 0 | DISABLE_ALL_GROUPS | GROUP_ID = 0 }
@@ -1021,7 +1021,7 @@ cmdstream[0]: 1023 dwords
+? 00000000 VPC_DBG_ECO_CNTL: 0
+? 00000000 VPC_LB_MODE_CNTL: FALSE
!+ ffffffff PC_RESTART_INDEX: 4294967295
-!+ 0000001f PC_MODE_CNTL: 0x1f
+!+ 0000001f PC_MODE_CNTL: { COUNT1 = 31 }
!+ 00000001 PC_POWER_CNTL: 0x1
+ 00000000 PC_PS_CNTL: { 0 }
+ 00000000 VPC_RAST_STREAM_CNTL: { STREAM = 0 }
@@ -5210,7 +5210,7 @@ cmdstream[0]: 1023 dwords
00000000 VPC_SO_CNTL: { BUF0_STREAM = 0 | BUF1_STREAM = 0 | BUF2_STREAM = 0 | BUF3_STREAM = 0 | STREAM_ENABLE = 0 }
00000001 VPC_SO_OVERRIDE: { DISABLE }
+ ffffffff PC_RESTART_INDEX: 4294967295
- 0000001f PC_MODE_CNTL: 0x1f
+ 0000001f PC_MODE_CNTL: { COUNT1 = 31 }
00000001 PC_POWER_CNTL: 0x1
00000000 PC_PS_CNTL: { 0 }
00000000 VPC_RAST_STREAM_CNTL: { STREAM = 0 }