From bfb6d09e95d69ecf94d5f0aff56e3ffa40836c72 Mon Sep 17 00:00:00 2001 From: Connor Abbott Date: Thu, 23 Jan 2025 11:57:54 -0500 Subject: [PATCH] freedreno: Add bin scaling registers These let us avoid manually patching the viewport as we had to do on a6xx. However they do not affect blits, so we still have to manually scale there. They exist from a740. Part-of: --- src/freedreno/common/freedreno_devices.py | 48 ++++++++++----------- src/freedreno/registers/adreno/a6xx.xml | 51 +++++++++++++++++++---- 2 files changed, 68 insertions(+), 31 deletions(-) diff --git a/src/freedreno/common/freedreno_devices.py b/src/freedreno/common/freedreno_devices.py index 8fc040c1e43..5dd267feab2 100644 --- a/src/freedreno/common/freedreno_devices.py +++ b/src/freedreno/common/freedreno_devices.py @@ -1025,7 +1025,7 @@ a730_raw_magic_regs = [ [A6XXRegs.REG_A7XX_RB_UNKNOWN_8E79, 0x00000000], [A6XXRegs.REG_A7XX_RB_UNKNOWN_8899, 0x00000000], - [A6XXRegs.REG_A7XX_RB_UNKNOWN_88F5, 0x00000000], + [A6XXRegs.REG_A7XX_RB_BIN_FOVEAT, 0x00000000], ] a740_magic_regs = dict( @@ -1073,10 +1073,10 @@ a740_raw_magic_regs = [ [A6XXRegs.REG_A7XX_GRAS_UNKNOWN_8120, 0x09510840], [A6XXRegs.REG_A7XX_GRAS_UNKNOWN_8121, 0x00000a62], - [A6XXRegs.REG_A7XX_GRAS_UNKNOWN_8009, 0x00000000], - [A6XXRegs.REG_A7XX_GRAS_UNKNOWN_800A, 0x00000000], - [A6XXRegs.REG_A7XX_GRAS_UNKNOWN_800B, 0x00000000], - [A6XXRegs.REG_A7XX_GRAS_UNKNOWN_800C, 0x00000000], + [A6XXRegs.REG_A7XX_GRAS_BIN_FOVEAT_OFFSET_0, 0x00000000], + [A6XXRegs.REG_A7XX_GRAS_BIN_FOVEAT_OFFSET_1, 0x00000000], + [A6XXRegs.REG_A7XX_GRAS_BIN_FOVEAT_OFFSET_2, 0x00000000], + [A6XXRegs.REG_A7XX_GRAS_BIN_FOVEAT_OFFSET_3, 0x00000000], [A6XXRegs.REG_A7XX_SP_UNKNOWN_0CE2, 0x00000000], [A6XXRegs.REG_A7XX_SP_UNKNOWN_0CE2+1, 0x00000000], @@ -1089,10 +1089,10 @@ a740_raw_magic_regs = [ [A6XXRegs.REG_A7XX_RB_UNKNOWN_8E79, 0x00000000], [A6XXRegs.REG_A7XX_RB_UNKNOWN_8899, 0x00000000], - [A6XXRegs.REG_A7XX_RB_UNKNOWN_88F5, 0x00000000], + [A6XXRegs.REG_A7XX_RB_BIN_FOVEAT, 0x00000000], [A6XXRegs.REG_A7XX_RB_UNKNOWN_8C34, 0x00000000], - [A6XXRegs.REG_A7XX_GRAS_UNKNOWN_8008, 0x00000000], + [A6XXRegs.REG_A7XX_GRAS_BIN_FOVEAT, 0x00000000], ] add_gpus([ @@ -1185,10 +1185,10 @@ add_gpus([ [A6XXRegs.REG_A7XX_GRAS_UNKNOWN_8120, 0x09510840], [A6XXRegs.REG_A7XX_GRAS_UNKNOWN_8121, 0x00000a62], - [A6XXRegs.REG_A7XX_GRAS_UNKNOWN_8009, 0x00000000], - [A6XXRegs.REG_A7XX_GRAS_UNKNOWN_800A, 0x00000000], - [A6XXRegs.REG_A7XX_GRAS_UNKNOWN_800B, 0x00000000], - [A6XXRegs.REG_A7XX_GRAS_UNKNOWN_800C, 0x00000000], + [A6XXRegs.REG_A7XX_GRAS_BIN_FOVEAT_OFFSET_0, 0x00000000], + [A6XXRegs.REG_A7XX_GRAS_BIN_FOVEAT_OFFSET_1, 0x00000000], + [A6XXRegs.REG_A7XX_GRAS_BIN_FOVEAT_OFFSET_2, 0x00000000], + [A6XXRegs.REG_A7XX_GRAS_BIN_FOVEAT_OFFSET_3, 0x00000000], [A6XXRegs.REG_A7XX_SP_UNKNOWN_0CE2, 0x00000000], [A6XXRegs.REG_A7XX_SP_UNKNOWN_0CE2+1, 0x00000000], @@ -1201,10 +1201,10 @@ add_gpus([ [A6XXRegs.REG_A7XX_RB_UNKNOWN_8E79, 0x00000000], [A6XXRegs.REG_A7XX_RB_UNKNOWN_8899, 0x00000000], - [A6XXRegs.REG_A7XX_RB_UNKNOWN_88F5, 0x00000000], + [A6XXRegs.REG_A7XX_RB_BIN_FOVEAT, 0x00000000], [A6XXRegs.REG_A7XX_RB_UNKNOWN_8C34, 0x00000000], - [A6XXRegs.REG_A7XX_GRAS_UNKNOWN_8008, 0x00000000], + [A6XXRegs.REG_A7XX_GRAS_BIN_FOVEAT, 0x00000000], ], )) @@ -1268,10 +1268,10 @@ add_gpus([ [A6XXRegs.REG_A7XX_GRAS_UNKNOWN_8120, 0x09510840], [A6XXRegs.REG_A7XX_GRAS_UNKNOWN_8121, 0x00000a62], - [A6XXRegs.REG_A7XX_GRAS_UNKNOWN_8009, 0x00000000], - [A6XXRegs.REG_A7XX_GRAS_UNKNOWN_800A, 0x00000000], - [A6XXRegs.REG_A7XX_GRAS_UNKNOWN_800B, 0x00000000], - [A6XXRegs.REG_A7XX_GRAS_UNKNOWN_800C, 0x00000000], + [A6XXRegs.REG_A7XX_GRAS_BIN_FOVEAT_OFFSET_0, 0x00000000], + [A6XXRegs.REG_A7XX_GRAS_BIN_FOVEAT_OFFSET_1, 0x00000000], + [A6XXRegs.REG_A7XX_GRAS_BIN_FOVEAT_OFFSET_2, 0x00000000], + [A6XXRegs.REG_A7XX_GRAS_BIN_FOVEAT_OFFSET_3, 0x00000000], [A6XXRegs.REG_A7XX_SP_UNKNOWN_0CE2, 0x00000000], [A6XXRegs.REG_A7XX_SP_UNKNOWN_0CE2+1, 0x00000000], @@ -1284,7 +1284,7 @@ add_gpus([ [A6XXRegs.REG_A7XX_RB_UNKNOWN_8E79, 0x00000000], [A6XXRegs.REG_A7XX_RB_UNKNOWN_8899, 0x00000000], - [A6XXRegs.REG_A7XX_RB_UNKNOWN_88F5, 0x00000000], + [A6XXRegs.REG_A7XX_RB_BIN_FOVEAT, 0x00000000], ], )) @@ -1372,10 +1372,10 @@ add_gpus([ [A6XXRegs.REG_A7XX_SP_UNKNOWN_B310, 0x00000000], [A6XXRegs.REG_A7XX_GRAS_UNKNOWN_8120, 0x09510840], [A6XXRegs.REG_A7XX_GRAS_UNKNOWN_8121, 0x00000a62], - [A6XXRegs.REG_A7XX_GRAS_UNKNOWN_8009, 0x00000000], - [A6XXRegs.REG_A7XX_GRAS_UNKNOWN_800A, 0x00000000], - [A6XXRegs.REG_A7XX_GRAS_UNKNOWN_800B, 0x00000000], - [A6XXRegs.REG_A7XX_GRAS_UNKNOWN_800C, 0x00000000], + [A6XXRegs.REG_A7XX_GRAS_BIN_FOVEAT_OFFSET_0, 0x00000000], + [A6XXRegs.REG_A7XX_GRAS_BIN_FOVEAT_OFFSET_1, 0x00000000], + [A6XXRegs.REG_A7XX_GRAS_BIN_FOVEAT_OFFSET_2, 0x00000000], + [A6XXRegs.REG_A7XX_GRAS_BIN_FOVEAT_OFFSET_3, 0x00000000], [A6XXRegs.REG_A7XX_SP_UNKNOWN_0CE2, 0x00000000], [A6XXRegs.REG_A7XX_SP_UNKNOWN_0CE2+1, 0x00000000], @@ -1387,10 +1387,10 @@ add_gpus([ [A6XXRegs.REG_A7XX_GRAS_UNKNOWN_80A7, 0x00000000], [A6XXRegs.REG_A7XX_RB_UNKNOWN_8899, 0x00000000], - [A6XXRegs.REG_A7XX_RB_UNKNOWN_88F5, 0x00000000], + [A6XXRegs.REG_A7XX_RB_BIN_FOVEAT, 0x00000000], [A6XXRegs.REG_A7XX_RB_UNKNOWN_8C34, 0x00000000], - [A6XXRegs.REG_A7XX_GRAS_UNKNOWN_8008, 0x00000000], + [A6XXRegs.REG_A7XX_GRAS_BIN_FOVEAT, 0x00000000], [0x930a, 0], [0x960a, 1], diff --git a/src/freedreno/registers/adreno/a6xx.xml b/src/freedreno/registers/adreno/a6xx.xml index d22b4f778f8..b895489283d 100644 --- a/src/freedreno/registers/adreno/a6xx.xml +++ b/src/freedreno/registers/adreno/a6xx.xml @@ -857,12 +857,48 @@ by a particular renderpass/blit. - + + + + + + + + + + + + + + + + + + + + + - - - - + + + + + + + + + + + + + + + + + + + + @@ -1739,8 +1775,9 @@ by a particular renderpass/blit. - - + + +