freedreno/registers: add useful A6XX_SP_TP_MODE_CNTL bitfields

Add additional bitfields for the A6XX_SP_TP_MODE_CNTL registers, ones that
we already use and the texcoord rounding mode bitfield that we'll need for
D3D-over-Vulkan implementations.

Signed-off-by: Zan Dobersek <zdobersek@igalia.com>
Reviewed-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33987>
This commit is contained in:
Zan Dobersek
2025-03-11 09:27:33 +01:00
committed by Marge Bot
parent e183650aa4
commit 3b1ca55b40
8 changed files with 44 additions and 26 deletions

View File

@@ -7066,7 +7066,7 @@ WARNING: 64b discontinuity (no _LO dword for 890d)
00000000 SP_TP_SAMPLE_LOCATION_0: { SAMPLE_0_X = 0.000000 | SAMPLE_0_Y = 0.000000 | SAMPLE_1_X = 0.000000 | SAMPLE_1_Y = 0.000000 | SAMPLE_2_X = 0.000000 | SAMPLE_2_Y = 0.000000 | SAMPLE_3_X = 0.000000 | SAMPLE_3_Y = 0.000000 }
00000000 SP_TP_SAMPLE_LOCATION_1: { SAMPLE_0_X = 0.000000 | SAMPLE_0_Y = 0.000000 | SAMPLE_1_X = 0.000000 | SAMPLE_1_Y = 0.000000 | SAMPLE_2_X = 0.000000 | SAMPLE_2_Y = 0.000000 | SAMPLE_3_X = 0.000000 | SAMPLE_3_Y = 0.000000 }
00000000 SP_TP_WINDOW_OFFSET: { X = 0 | Y = 0 }
0000004c SP_TP_MODE_CNTL: { ISAMMODE = 0 | UNK3 = 0x13 }
0000004c SP_TP_MODE_CNTL: { ISAMMODE = 0 | TEXCOORDROUNDMODE = COORD_ROUND_NEAREST_EVEN | NEARESTMIPSNAP = ROUND_CLAMP_TRUNCATE | 0x48 }
deadbeef 0xb380: deadbeef
deadbeef 0xb381: deadbeef
deadbeef 0xb382: deadbeef
@@ -7078,7 +7078,7 @@ WARNING: 64b discontinuity (no _LO dword for 890d)
00000000 SP_TP_SAMPLE_LOCATION_0: { SAMPLE_0_X = 0.000000 | SAMPLE_0_Y = 0.000000 | SAMPLE_1_X = 0.000000 | SAMPLE_1_Y = 0.000000 | SAMPLE_2_X = 0.000000 | SAMPLE_2_Y = 0.000000 | SAMPLE_3_X = 0.000000 | SAMPLE_3_Y = 0.000000 }
00000000 SP_TP_SAMPLE_LOCATION_1: { SAMPLE_0_X = 0.000000 | SAMPLE_0_Y = 0.000000 | SAMPLE_1_X = 0.000000 | SAMPLE_1_Y = 0.000000 | SAMPLE_2_X = 0.000000 | SAMPLE_2_Y = 0.000000 | SAMPLE_3_X = 0.000000 | SAMPLE_3_Y = 0.000000 }
00000000 SP_TP_WINDOW_OFFSET: { X = 0 | Y = 0 }
0000004c SP_TP_MODE_CNTL: { ISAMMODE = 0 | UNK3 = 0x13 }
0000004c SP_TP_MODE_CNTL: { ISAMMODE = 0 | TEXCOORDROUNDMODE = COORD_ROUND_NEAREST_EVEN | NEARESTMIPSNAP = ROUND_CLAMP_TRUNCATE | 0x48 }
deadbeef 0xb380: deadbeef
deadbeef 0xb381: deadbeef
deadbeef 0xb382: deadbeef
@@ -7377,7 +7377,7 @@ WARNING: 64b discontinuity (no _LO dword for 890d)
00000000 SP_TP_SAMPLE_LOCATION_0: { SAMPLE_0_X = 0.000000 | SAMPLE_0_Y = 0.000000 | SAMPLE_1_X = 0.000000 | SAMPLE_1_Y = 0.000000 | SAMPLE_2_X = 0.000000 | SAMPLE_2_Y = 0.000000 | SAMPLE_3_X = 0.000000 | SAMPLE_3_Y = 0.000000 }
00000000 SP_TP_SAMPLE_LOCATION_1: { SAMPLE_0_X = 0.000000 | SAMPLE_0_Y = 0.000000 | SAMPLE_1_X = 0.000000 | SAMPLE_1_Y = 0.000000 | SAMPLE_2_X = 0.000000 | SAMPLE_2_Y = 0.000000 | SAMPLE_3_X = 0.000000 | SAMPLE_3_Y = 0.000000 }
00000000 SP_TP_WINDOW_OFFSET: { X = 0 | Y = 0 }
0000004c SP_TP_MODE_CNTL: { ISAMMODE = 0 | UNK3 = 0x13 }
0000004c SP_TP_MODE_CNTL: { ISAMMODE = 0 | TEXCOORDROUNDMODE = COORD_ROUND_NEAREST_EVEN | NEARESTMIPSNAP = ROUND_CLAMP_TRUNCATE | 0x48 }
deadbeef 0xb380: deadbeef
deadbeef 0xb381: deadbeef
deadbeef 0xb382: deadbeef
@@ -7389,7 +7389,7 @@ WARNING: 64b discontinuity (no _LO dword for 890d)
00000000 SP_TP_SAMPLE_LOCATION_0: { SAMPLE_0_X = 0.000000 | SAMPLE_0_Y = 0.000000 | SAMPLE_1_X = 0.000000 | SAMPLE_1_Y = 0.000000 | SAMPLE_2_X = 0.000000 | SAMPLE_2_Y = 0.000000 | SAMPLE_3_X = 0.000000 | SAMPLE_3_Y = 0.000000 }
00000000 SP_TP_SAMPLE_LOCATION_1: { SAMPLE_0_X = 0.000000 | SAMPLE_0_Y = 0.000000 | SAMPLE_1_X = 0.000000 | SAMPLE_1_Y = 0.000000 | SAMPLE_2_X = 0.000000 | SAMPLE_2_Y = 0.000000 | SAMPLE_3_X = 0.000000 | SAMPLE_3_Y = 0.000000 }
00000000 SP_TP_WINDOW_OFFSET: { X = 0 | Y = 0 }
0000004c SP_TP_MODE_CNTL: { ISAMMODE = 0 | UNK3 = 0x13 }
0000004c SP_TP_MODE_CNTL: { ISAMMODE = 0 | TEXCOORDROUNDMODE = COORD_ROUND_NEAREST_EVEN | NEARESTMIPSNAP = ROUND_CLAMP_TRUNCATE | 0x48 }
deadbeef 0xb380: deadbeef
deadbeef 0xb381: deadbeef
deadbeef 0xb382: deadbeef

View File

@@ -2000,7 +2000,7 @@ got cmdszdw=38
+ 00000000 SP_UNKNOWN_B182: 0
+ 00000000 SP_UNKNOWN_B183: 0
!+ 100001100 SP_TP_BORDER_COLOR_BASE_ADDR: 0x100001100 base=100000000, offset=4352, size=532480
!+ 000000a2 SP_TP_MODE_CNTL: { ISAMMODE = ISAMMODE_GL | UNK3 = 0x28 }
!+ 000000a2 SP_TP_MODE_CNTL: { ISAMMODE = ISAMMODE_GL | TEXCOORDROUNDMODE = COORD_TRUNCATE | NEARESTMIPSNAP = CLAMP_ROUND_TRUNCATE | DESTDATATYPEOVERRIDE }
!+ 00108000 TPL1_DBG_ECO_CNTL: 0x108000
!+ 00000044 TPL1_UNKNOWN_B605: 68
!+ 000000fc HLSQ_CONTROL_5_REG: { LINELENGTHREGID = r63.x | FOVEATIONQUALITYREGID = r0.x }
@@ -2310,7 +2310,7 @@ got cmdszdw=38
+ 00000000 SP_UNKNOWN_B183: 0
+ 100001100 SP_TP_BORDER_COLOR_BASE_ADDR: 0x100001100 base=100000000, offset=4352, size=532480
+ 00000000 SP_TP_WINDOW_OFFSET: { X = 0 | Y = 0 }
+ 000000a2 SP_TP_MODE_CNTL: { ISAMMODE = ISAMMODE_GL | UNK3 = 0x28 }
+ 000000a2 SP_TP_MODE_CNTL: { ISAMMODE = ISAMMODE_GL | TEXCOORDROUNDMODE = COORD_TRUNCATE | NEARESTMIPSNAP = CLAMP_ROUND_TRUNCATE | DESTDATATYPEOVERRIDE }
+ 00000000 SP_WINDOW_OFFSET: { X = 0 | Y = 0 }
+ 00108000 TPL1_DBG_ECO_CNTL: 0x108000
+ 00000044 TPL1_UNKNOWN_B605: 68
@@ -5190,7 +5190,7 @@ ESTIMATED CRASH LOCATION!
+ 00000000 SP_UNKNOWN_B182: 0
+ 00000000 SP_UNKNOWN_B183: 0
+ 100001100 SP_TP_BORDER_COLOR_BASE_ADDR: 0x100001100 base=100000000, offset=4352, size=532480
+ 000000a2 SP_TP_MODE_CNTL: { ISAMMODE = ISAMMODE_GL | UNK3 = 0x28 }
+ 000000a2 SP_TP_MODE_CNTL: { ISAMMODE = ISAMMODE_GL | TEXCOORDROUNDMODE = COORD_TRUNCATE | NEARESTMIPSNAP = CLAMP_ROUND_TRUNCATE | DESTDATATYPEOVERRIDE }
!+ 00500360 SP_PS_2D_SRC_INFO: { COLOR_FORMAT = FMT6_16_16_16_16_UNORM | TILE_MODE = TILE6_3 | COLOR_SWAP = WZYX | SAMPLES = MSAA_ONE | UNK20 | UNK22 }
!+ 0020803f SP_PS_2D_SRC_SIZE: { WIDTH = 63 | HEIGHT = 65 }
!+ 100082000 SP_PS_2D_SRC: 0x100082000
@@ -18842,7 +18842,7 @@ WARNING: 64b discontinuity (no _LO dword for 890d)
00000000 SP_TP_SAMPLE_LOCATION_0: { SAMPLE_0_X = 0.000000 | SAMPLE_0_Y = 0.000000 | SAMPLE_1_X = 0.000000 | SAMPLE_1_Y = 0.000000 | SAMPLE_2_X = 0.000000 | SAMPLE_2_Y = 0.000000 | SAMPLE_3_X = 0.000000 | SAMPLE_3_Y = 0.000000 }
00000000 SP_TP_SAMPLE_LOCATION_1: { SAMPLE_0_X = 0.000000 | SAMPLE_0_Y = 0.000000 | SAMPLE_1_X = 0.000000 | SAMPLE_1_Y = 0.000000 | SAMPLE_2_X = 0.000000 | SAMPLE_2_Y = 0.000000 | SAMPLE_3_X = 0.000000 | SAMPLE_3_Y = 0.000000 }
00000000 SP_TP_WINDOW_OFFSET: { X = 0 | Y = 0 }
000000a2 SP_TP_MODE_CNTL: { ISAMMODE = ISAMMODE_GL | UNK3 = 0x28 }
000000a2 SP_TP_MODE_CNTL: { ISAMMODE = ISAMMODE_GL | TEXCOORDROUNDMODE = COORD_TRUNCATE | NEARESTMIPSNAP = CLAMP_ROUND_TRUNCATE | DESTDATATYPEOVERRIDE }
deadbeef 0xb380: deadbeef
deadbeef 0xb381: deadbeef
deadbeef 0xb382: deadbeef
@@ -18854,7 +18854,7 @@ WARNING: 64b discontinuity (no _LO dword for 890d)
00000000 SP_TP_SAMPLE_LOCATION_0: { SAMPLE_0_X = 0.000000 | SAMPLE_0_Y = 0.000000 | SAMPLE_1_X = 0.000000 | SAMPLE_1_Y = 0.000000 | SAMPLE_2_X = 0.000000 | SAMPLE_2_Y = 0.000000 | SAMPLE_3_X = 0.000000 | SAMPLE_3_Y = 0.000000 }
00000000 SP_TP_SAMPLE_LOCATION_1: { SAMPLE_0_X = 0.000000 | SAMPLE_0_Y = 0.000000 | SAMPLE_1_X = 0.000000 | SAMPLE_1_Y = 0.000000 | SAMPLE_2_X = 0.000000 | SAMPLE_2_Y = 0.000000 | SAMPLE_3_X = 0.000000 | SAMPLE_3_Y = 0.000000 }
00000000 SP_TP_WINDOW_OFFSET: { X = 0 | Y = 0 }
000000a2 SP_TP_MODE_CNTL: { ISAMMODE = ISAMMODE_GL | UNK3 = 0x28 }
000000a2 SP_TP_MODE_CNTL: { ISAMMODE = ISAMMODE_GL | TEXCOORDROUNDMODE = COORD_TRUNCATE | NEARESTMIPSNAP = CLAMP_ROUND_TRUNCATE | DESTDATATYPEOVERRIDE }
deadbeef 0xb380: deadbeef
deadbeef 0xb381: deadbeef
deadbeef 0xb382: deadbeef
@@ -19153,7 +19153,7 @@ WARNING: 64b discontinuity (no _LO dword for 890d)
00000000 SP_TP_SAMPLE_LOCATION_0: { SAMPLE_0_X = 0.000000 | SAMPLE_0_Y = 0.000000 | SAMPLE_1_X = 0.000000 | SAMPLE_1_Y = 0.000000 | SAMPLE_2_X = 0.000000 | SAMPLE_2_Y = 0.000000 | SAMPLE_3_X = 0.000000 | SAMPLE_3_Y = 0.000000 }
00000000 SP_TP_SAMPLE_LOCATION_1: { SAMPLE_0_X = 0.000000 | SAMPLE_0_Y = 0.000000 | SAMPLE_1_X = 0.000000 | SAMPLE_1_Y = 0.000000 | SAMPLE_2_X = 0.000000 | SAMPLE_2_Y = 0.000000 | SAMPLE_3_X = 0.000000 | SAMPLE_3_Y = 0.000000 }
00000000 SP_TP_WINDOW_OFFSET: { X = 0 | Y = 0 }
000000a2 SP_TP_MODE_CNTL: { ISAMMODE = ISAMMODE_GL | UNK3 = 0x28 }
000000a2 SP_TP_MODE_CNTL: { ISAMMODE = ISAMMODE_GL | TEXCOORDROUNDMODE = COORD_TRUNCATE | NEARESTMIPSNAP = CLAMP_ROUND_TRUNCATE | DESTDATATYPEOVERRIDE }
deadbeef 0xb380: deadbeef
deadbeef 0xb381: deadbeef
deadbeef 0xb382: deadbeef
@@ -19165,7 +19165,7 @@ WARNING: 64b discontinuity (no _LO dword for 890d)
00000000 SP_TP_SAMPLE_LOCATION_0: { SAMPLE_0_X = 0.000000 | SAMPLE_0_Y = 0.000000 | SAMPLE_1_X = 0.000000 | SAMPLE_1_Y = 0.000000 | SAMPLE_2_X = 0.000000 | SAMPLE_2_Y = 0.000000 | SAMPLE_3_X = 0.000000 | SAMPLE_3_Y = 0.000000 }
00000000 SP_TP_SAMPLE_LOCATION_1: { SAMPLE_0_X = 0.000000 | SAMPLE_0_Y = 0.000000 | SAMPLE_1_X = 0.000000 | SAMPLE_1_Y = 0.000000 | SAMPLE_2_X = 0.000000 | SAMPLE_2_Y = 0.000000 | SAMPLE_3_X = 0.000000 | SAMPLE_3_Y = 0.000000 }
00000000 SP_TP_WINDOW_OFFSET: { X = 0 | Y = 0 }
000000a2 SP_TP_MODE_CNTL: { ISAMMODE = ISAMMODE_GL | UNK3 = 0x28 }
000000a2 SP_TP_MODE_CNTL: { ISAMMODE = ISAMMODE_GL | TEXCOORDROUNDMODE = COORD_TRUNCATE | NEARESTMIPSNAP = CLAMP_ROUND_TRUNCATE | DESTDATATYPEOVERRIDE }
deadbeef 0xb380: deadbeef
deadbeef 0xb381: deadbeef
deadbeef 0xb382: deadbeef

View File

@@ -174,7 +174,7 @@ cmdstream[0]: 265 dwords
PC_UNKNOWN_9E72: 0
00000000010581bc: 0000: 409e7201 00000000
write SP_TP_MODE_CNTL (b309)
SP_TP_MODE_CNTL: { ISAMMODE = ISAMMODE_GL | UNK3 = 0x28 }
SP_TP_MODE_CNTL: { ISAMMODE = ISAMMODE_GL | TEXCOORDROUNDMODE = COORD_TRUNCATE | NEARESTMIPSNAP = CLAMP_ROUND_TRUNCATE | DESTDATATYPEOVERRIDE }
00000000010581c4: 0000: 40b30901 000000a2
write HLSQ_CONTROL_5_REG (b986)
HLSQ_CONTROL_5_REG: { LINELENGTHREGID = r63.x | FOVEATIONQUALITYREGID = r0.x }
@@ -343,7 +343,7 @@ cmdstream[0]: 265 dwords
+ 00000000 SP_UNKNOWN_B182: 0
+ 00000000 SP_UNKNOWN_B183: 0
!+ 01011000 SP_TP_BORDER_COLOR_BASE_ADDR: 0x1011000
!+ 000000a2 SP_TP_MODE_CNTL: { ISAMMODE = ISAMMODE_GL | UNK3 = 0x28 }
!+ 000000a2 SP_TP_MODE_CNTL: { ISAMMODE = ISAMMODE_GL | TEXCOORDROUNDMODE = COORD_TRUNCATE | NEARESTMIPSNAP = CLAMP_ROUND_TRUNCATE | DESTDATATYPEOVERRIDE }
!+ 00100000 TPL1_DBG_ECO_CNTL: 0x100000
!+ 00000044 TPL1_UNKNOWN_B605: 68
!+ 000000fc HLSQ_CONTROL_5_REG: { LINELENGTHREGID = r63.x | FOVEATIONQUALITYREGID = r0.x }

View File

@@ -174,7 +174,7 @@ cmdstream[0]: 1023 dwords
SP_TP_SAMPLE_CONFIG: { 0 }
0000000001d911bc: 0000: 48b30401 00000000
write SP_TP_MODE_CNTL (b309)
SP_TP_MODE_CNTL: { ISAMMODE = ISAMMODE_GL | UNK3 = 0x28 }
SP_TP_MODE_CNTL: { ISAMMODE = ISAMMODE_GL | TEXCOORDROUNDMODE = COORD_TRUNCATE | NEARESTMIPSNAP = CLAMP_ROUND_TRUNCATE | DESTDATATYPEOVERRIDE }
0000000001d911c4: 0000: 40b30901 000000a2
write RB_SAMPLE_CONFIG (8804)
RB_SAMPLE_CONFIG: { 0 }
@@ -1113,7 +1113,7 @@ cmdstream[0]: 1023 dwords
!+ 00000004 SP_TP_DEST_MSAA_CNTL: { SAMPLES = MSAA_ONE | MSAA_DISABLE }
+ 00000000 SP_TP_SAMPLE_CONFIG: { 0 }
+ 00000000 SP_TP_WINDOW_OFFSET: { X = 0 | Y = 0 }
!+ 000000a2 SP_TP_MODE_CNTL: { ISAMMODE = ISAMMODE_GL | UNK3 = 0x28 }
!+ 000000a2 SP_TP_MODE_CNTL: { ISAMMODE = ISAMMODE_GL | TEXCOORDROUNDMODE = COORD_TRUNCATE | NEARESTMIPSNAP = CLAMP_ROUND_TRUNCATE | DESTDATATYPEOVERRIDE }
!+ 00100000 TPL1_DBG_ECO_CNTL: 0x100000
!+ 00000044 TPL1_UNKNOWN_B605: 68
!+ 00000100 HLSQ_VS_CNTL: { CONSTLEN = 0 | ENABLED }

View File

@@ -2616,7 +2616,7 @@ got cmdszdw=416
+ 00000000 SP_UNKNOWN_B183: 0
+ 00000000 SP_TP_SAMPLE_CONFIG: { 0 }
+ 00000000 SP_TP_WINDOW_OFFSET: { X = 0 | Y = 0 }
!+ 000000a2 SP_TP_MODE_CNTL: { ISAMMODE = ISAMMODE_GL | UNK3 = 0x28 }
!+ 000000a2 SP_TP_MODE_CNTL: { ISAMMODE = ISAMMODE_GL | TEXCOORDROUNDMODE = COORD_TRUNCATE | NEARESTMIPSNAP = CLAMP_ROUND_TRUNCATE | DESTDATATYPEOVERRIDE }
+ 00000000 SP_WINDOW_OFFSET: { X = 0 | Y = 0 }
!+ 00108000 TPL1_DBG_ECO_CNTL: 0x108000
!+ 00000044 TPL1_UNKNOWN_B605: 68
@@ -152837,7 +152837,7 @@ WARNING: 64b discontinuity (no _LO dword for 890d)
00000000 SP_TP_SAMPLE_LOCATION_0: { SAMPLE_0_X = 0.000000 | SAMPLE_0_Y = 0.000000 | SAMPLE_1_X = 0.000000 | SAMPLE_1_Y = 0.000000 | SAMPLE_2_X = 0.000000 | SAMPLE_2_Y = 0.000000 | SAMPLE_3_X = 0.000000 | SAMPLE_3_Y = 0.000000 }
00000000 SP_TP_SAMPLE_LOCATION_1: { SAMPLE_0_X = 0.000000 | SAMPLE_0_Y = 0.000000 | SAMPLE_1_X = 0.000000 | SAMPLE_1_Y = 0.000000 | SAMPLE_2_X = 0.000000 | SAMPLE_2_Y = 0.000000 | SAMPLE_3_X = 0.000000 | SAMPLE_3_Y = 0.000000 }
00000000 SP_TP_WINDOW_OFFSET: { X = 0 | Y = 0 }
000000a2 SP_TP_MODE_CNTL: { ISAMMODE = ISAMMODE_GL | UNK3 = 0x28 }
000000a2 SP_TP_MODE_CNTL: { ISAMMODE = ISAMMODE_GL | TEXCOORDROUNDMODE = COORD_TRUNCATE | NEARESTMIPSNAP = CLAMP_ROUND_TRUNCATE | DESTDATATYPEOVERRIDE }
deadbeef 0xb380: deadbeef
deadbeef 0xb381: deadbeef
deadbeef 0xb382: deadbeef
@@ -152849,7 +152849,7 @@ WARNING: 64b discontinuity (no _LO dword for 890d)
00000000 SP_TP_SAMPLE_LOCATION_0: { SAMPLE_0_X = 0.000000 | SAMPLE_0_Y = 0.000000 | SAMPLE_1_X = 0.000000 | SAMPLE_1_Y = 0.000000 | SAMPLE_2_X = 0.000000 | SAMPLE_2_Y = 0.000000 | SAMPLE_3_X = 0.000000 | SAMPLE_3_Y = 0.000000 }
00000000 SP_TP_SAMPLE_LOCATION_1: { SAMPLE_0_X = 0.000000 | SAMPLE_0_Y = 0.000000 | SAMPLE_1_X = 0.000000 | SAMPLE_1_Y = 0.000000 | SAMPLE_2_X = 0.000000 | SAMPLE_2_Y = 0.000000 | SAMPLE_3_X = 0.000000 | SAMPLE_3_Y = 0.000000 }
00000000 SP_TP_WINDOW_OFFSET: { X = 0 | Y = 0 }
000000a2 SP_TP_MODE_CNTL: { ISAMMODE = ISAMMODE_GL | UNK3 = 0x28 }
000000a2 SP_TP_MODE_CNTL: { ISAMMODE = ISAMMODE_GL | TEXCOORDROUNDMODE = COORD_TRUNCATE | NEARESTMIPSNAP = CLAMP_ROUND_TRUNCATE | DESTDATATYPEOVERRIDE }
deadbeef 0xb380: deadbeef
deadbeef 0xb381: deadbeef
deadbeef 0xb382: deadbeef
@@ -153148,7 +153148,7 @@ WARNING: 64b discontinuity (no _LO dword for 890d)
00000000 SP_TP_SAMPLE_LOCATION_0: { SAMPLE_0_X = 0.000000 | SAMPLE_0_Y = 0.000000 | SAMPLE_1_X = 0.000000 | SAMPLE_1_Y = 0.000000 | SAMPLE_2_X = 0.000000 | SAMPLE_2_Y = 0.000000 | SAMPLE_3_X = 0.000000 | SAMPLE_3_Y = 0.000000 }
00000000 SP_TP_SAMPLE_LOCATION_1: { SAMPLE_0_X = 0.000000 | SAMPLE_0_Y = 0.000000 | SAMPLE_1_X = 0.000000 | SAMPLE_1_Y = 0.000000 | SAMPLE_2_X = 0.000000 | SAMPLE_2_Y = 0.000000 | SAMPLE_3_X = 0.000000 | SAMPLE_3_Y = 0.000000 }
00000000 SP_TP_WINDOW_OFFSET: { X = 0 | Y = 0 }
000000a2 SP_TP_MODE_CNTL: { ISAMMODE = ISAMMODE_GL | UNK3 = 0x28 }
000000a2 SP_TP_MODE_CNTL: { ISAMMODE = ISAMMODE_GL | TEXCOORDROUNDMODE = COORD_TRUNCATE | NEARESTMIPSNAP = CLAMP_ROUND_TRUNCATE | DESTDATATYPEOVERRIDE }
deadbeef 0xb380: deadbeef
deadbeef 0xb381: deadbeef
deadbeef 0xb382: deadbeef
@@ -153160,7 +153160,7 @@ WARNING: 64b discontinuity (no _LO dword for 890d)
00000000 SP_TP_SAMPLE_LOCATION_0: { SAMPLE_0_X = 0.000000 | SAMPLE_0_Y = 0.000000 | SAMPLE_1_X = 0.000000 | SAMPLE_1_Y = 0.000000 | SAMPLE_2_X = 0.000000 | SAMPLE_2_Y = 0.000000 | SAMPLE_3_X = 0.000000 | SAMPLE_3_Y = 0.000000 }
00000000 SP_TP_SAMPLE_LOCATION_1: { SAMPLE_0_X = 0.000000 | SAMPLE_0_Y = 0.000000 | SAMPLE_1_X = 0.000000 | SAMPLE_1_Y = 0.000000 | SAMPLE_2_X = 0.000000 | SAMPLE_2_Y = 0.000000 | SAMPLE_3_X = 0.000000 | SAMPLE_3_Y = 0.000000 }
00000000 SP_TP_WINDOW_OFFSET: { X = 0 | Y = 0 }
000000a2 SP_TP_MODE_CNTL: { ISAMMODE = ISAMMODE_GL | UNK3 = 0x28 }
000000a2 SP_TP_MODE_CNTL: { ISAMMODE = ISAMMODE_GL | TEXCOORDROUNDMODE = COORD_TRUNCATE | NEARESTMIPSNAP = CLAMP_ROUND_TRUNCATE | DESTDATATYPEOVERRIDE }
deadbeef 0xb380: deadbeef
deadbeef 0xb381: deadbeef
deadbeef 0xb382: deadbeef

View File

@@ -5402,9 +5402,22 @@ to upconvert to 32b float internally?
<reg32 offset="0xb305" name="SP_TP_SAMPLE_LOCATION_0" type="a6xx_sample_locations" usage="rp_blit"/>
<reg32 offset="0xb306" name="SP_TP_SAMPLE_LOCATION_1" type="a6xx_sample_locations" usage="rp_blit"/>
<reg32 offset="0xb307" name="SP_TP_WINDOW_OFFSET" type="a6xx_reg_xy" usage="rp_blit"/>
<enum name="a6xx_coord_round">
<value value="0" name="COORD_TRUNCATE"/>
<value value="1" name="COORD_ROUND_NEAREST_EVEN"/>
</enum>
<enum name="a6xx_nearest_mode">
<value value="0" name="ROUND_CLAMP_TRUNCATE"/>
<value value="1" name="CLAMP_ROUND_TRUNCATE"/>
</enum>
<reg32 offset="0xb309" name="SP_TP_MODE_CNTL" usage="cmd">
<bitfield name="ISAMMODE" low="0" high="1" type="a6xx_isam_mode"/>
<bitfield name="UNK3" low="2" high="7"/>
<bitfield name="TEXCOORDROUNDMODE" pos="2" type="a6xx_coord_round"/>
<bitfield name="NEARESTMIPSNAP" pos="5" type="a6xx_nearest_mode"/>
<bitfield name="DESTDATATYPEOVERRIDE" pos="7" type="boolean"/>
</reg32>
<reg32 offset="0xb310" name="SP_UNKNOWN_B310" variants="A7XX-" usage="cmd"/>

View File

@@ -1527,9 +1527,10 @@ tu6_init_static_regs(struct tu_device *dev, struct tu_cs *cs)
}
tu_cs_emit_write_reg(cs, REG_A6XX_VPC_UNKNOWN_9602, 0);
tu_cs_emit_write_reg(cs, REG_A6XX_PC_UNKNOWN_9E72, 0);
tu_cs_emit_write_reg(cs, REG_A6XX_SP_TP_MODE_CNTL,
0x000000a0 |
A6XX_SP_TP_MODE_CNTL_ISAMMODE(ISAMMODE_GL));
tu_cs_emit_regs(cs, A6XX_SP_TP_MODE_CNTL(.isammode = ISAMMODE_GL,
.texcoordroundmode = COORD_TRUNCATE,
.nearestmipsnap = CLAMP_ROUND_TRUNCATE,
.destdatatypeoverride = true));
tu_cs_emit_regs(cs, HLSQ_CONTROL_5_REG(CHIP, .dword = 0xfc));
tu_cs_emit_write_reg(cs, REG_A6XX_VFD_MODE_CNTL, 0x00000000);

View File

@@ -977,8 +977,12 @@ fd6_emit_static_regs(struct fd_context *ctx, struct fd_ringbuffer *ring)
/* NOTE blob seems to (mostly?) use 0xb2 for SP_TP_MODE_CNTL
* but this seems to kill texture gather offsets.
*/
WRITE(REG_A6XX_SP_TP_MODE_CNTL, 0xa0 |
A6XX_SP_TP_MODE_CNTL_ISAMMODE(ISAMMODE_GL));
OUT_REG(ring,
A6XX_SP_TP_MODE_CNTL(
.isammode = ISAMMODE_GL,
.texcoordroundmode = COORD_TRUNCATE,
.nearestmipsnap = CLAMP_ROUND_TRUNCATE,
.destdatatypeoverride = true));
OUT_REG(ring, HLSQ_CONTROL_5_REG(
CHIP,