aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/files/0295-drm-amdgpu-gfx7-Reduce-linecount-in-table-init.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/files/0295-drm-amdgpu-gfx7-Reduce-linecount-in-table-init.patch')
-rw-r--r--common/recipes-kernel/linux/files/0295-drm-amdgpu-gfx7-Reduce-linecount-in-table-init.patch1389
1 files changed, 1389 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/files/0295-drm-amdgpu-gfx7-Reduce-linecount-in-table-init.patch b/common/recipes-kernel/linux/files/0295-drm-amdgpu-gfx7-Reduce-linecount-in-table-init.patch
new file mode 100644
index 00000000..6869eea3
--- /dev/null
+++ b/common/recipes-kernel/linux/files/0295-drm-amdgpu-gfx7-Reduce-linecount-in-table-init.patch
@@ -0,0 +1,1389 @@
+From 7138ed10984deb0ccd7a2c78a0750fbd7f61257d Mon Sep 17 00:00:00 2001
+From: Tom St Denis <tom.stdenis@amd.com>
+Date: Mon, 8 Feb 2016 09:55:13 -0500
+Subject: [PATCH 0295/1110] drm/amdgpu/gfx7: Reduce linecount in table init
+
+Replaces switch statements with direct assignments to
+reduce line count significantly.
+
+Signed-off-by: Tom St Denis <tom.stdenis@amd.com>
+Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
+---
+ drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c | 1345 +++++++++++++--------------------
+ 1 file changed, 525 insertions(+), 820 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
+index 99d85f6..1543240 100644
+--- a/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
++++ b/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
+@@ -1006,9 +1006,15 @@ out:
+ */
+ static void gfx_v7_0_tiling_mode_table_init(struct amdgpu_device *adev)
+ {
+- const u32 num_tile_mode_states = 32;
+- const u32 num_secondary_tile_mode_states = 16;
+- u32 reg_offset, gb_tile_moden, split_equal_to_row_size;
++ const u32 num_tile_mode_states =
++ ARRAY_SIZE(adev->gfx.config.tile_mode_array);
++ const u32 num_secondary_tile_mode_states =
++ ARRAY_SIZE(adev->gfx.config.macrotile_mode_array);
++ u32 reg_offset, split_equal_to_row_size;
++ uint32_t *tile, *macrotile;
++
++ tile = adev->gfx.config.tile_mode_array;
++ macrotile = adev->gfx.config.macrotile_mode_array;
+
+ switch (adev->gfx.config.mem_row_size_in_kb) {
+ case 1:
+@@ -1023,832 +1029,531 @@ static void gfx_v7_0_tiling_mode_table_init(struct amdgpu_device *adev)
+ break;
+ }
+
++ for (reg_offset = 0; reg_offset < num_tile_mode_states; reg_offset++)
++ tile[reg_offset] = 0;
++ for (reg_offset = 0; reg_offset < num_secondary_tile_mode_states; reg_offset++)
++ macrotile[reg_offset] = 0;
++
+ switch (adev->asic_type) {
+ case CHIP_BONAIRE:
+- for (reg_offset = 0; reg_offset < num_tile_mode_states; reg_offset++) {
+- switch (reg_offset) {
+- case 0:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
+- PIPE_CONFIG(ADDR_SURF_P4_16x16) |
+- TILE_SPLIT(ADDR_SURF_TILE_SPLIT_64B) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_DEPTH_MICRO_TILING));
+- break;
+- case 1:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
+- PIPE_CONFIG(ADDR_SURF_P4_16x16) |
+- TILE_SPLIT(ADDR_SURF_TILE_SPLIT_128B) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_DEPTH_MICRO_TILING));
+- break;
+- case 2:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
+- PIPE_CONFIG(ADDR_SURF_P4_16x16) |
+- TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_DEPTH_MICRO_TILING));
+- break;
+- case 3:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
+- PIPE_CONFIG(ADDR_SURF_P4_16x16) |
+- TILE_SPLIT(ADDR_SURF_TILE_SPLIT_512B) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_DEPTH_MICRO_TILING));
+- break;
+- case 4:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
+- PIPE_CONFIG(ADDR_SURF_P4_16x16) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_DEPTH_MICRO_TILING) |
+- TILE_SPLIT(split_equal_to_row_size));
+- break;
+- case 5:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_1D_TILED_THIN1) |
+- PIPE_CONFIG(ADDR_SURF_P4_16x16) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_DEPTH_MICRO_TILING));
+- break;
+- case 6:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_PRT_TILED_THIN1) |
+- PIPE_CONFIG(ADDR_SURF_P4_16x16) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_DEPTH_MICRO_TILING) |
+- TILE_SPLIT(split_equal_to_row_size));
+- break;
+- case 7:
+- gb_tile_moden = (TILE_SPLIT(split_equal_to_row_size));
+- break;
+-
+- case 8:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_LINEAR_ALIGNED) |
+- PIPE_CONFIG(ADDR_SURF_P4_16x16));
+- break;
+- case 9:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_1D_TILED_THIN1) |
+- PIPE_CONFIG(ADDR_SURF_P4_16x16) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_DISPLAY_MICRO_TILING));
+- break;
+- case 10:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
+- PIPE_CONFIG(ADDR_SURF_P4_16x16) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_DISPLAY_MICRO_TILING) |
+- SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_2));
+- break;
+- case 11:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_PRT_TILED_THIN1) |
+- PIPE_CONFIG(ADDR_SURF_P4_16x16) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_DISPLAY_MICRO_TILING) |
+- SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_8));
+- break;
+- case 12:
+- gb_tile_moden = (TILE_SPLIT(split_equal_to_row_size));
+- break;
+- case 13:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_1D_TILED_THIN1) |
+- PIPE_CONFIG(ADDR_SURF_P4_16x16) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_THIN_MICRO_TILING));
+- break;
+- case 14:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
+- PIPE_CONFIG(ADDR_SURF_P4_16x16) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_THIN_MICRO_TILING) |
+- SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_2));
+- break;
+- case 15:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_3D_TILED_THIN1) |
+- PIPE_CONFIG(ADDR_SURF_P4_16x16) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_THIN_MICRO_TILING) |
+- SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_2));
+- break;
+- case 16:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_PRT_TILED_THIN1) |
+- PIPE_CONFIG(ADDR_SURF_P4_16x16) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_THIN_MICRO_TILING) |
+- SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_8));
+- break;
+- case 17:
+- gb_tile_moden = (TILE_SPLIT(split_equal_to_row_size));
+- break;
+- case 18:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_1D_TILED_THICK) |
+- PIPE_CONFIG(ADDR_SURF_P4_16x16) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_THIN_MICRO_TILING) |
+- SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_1));
+- break;
+- case 19:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_1D_TILED_THICK) |
+- PIPE_CONFIG(ADDR_SURF_P4_16x16) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_THIN_MICRO_TILING));
+- break;
+- case 20:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_2D_TILED_THICK) |
+- PIPE_CONFIG(ADDR_SURF_P4_16x16) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_THIN_MICRO_TILING) |
+- SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_1));
+- break;
+- case 21:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_3D_TILED_THICK) |
+- PIPE_CONFIG(ADDR_SURF_P4_16x16) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_THIN_MICRO_TILING) |
+- SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_1));
+- break;
+- case 22:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_PRT_TILED_THICK) |
+- PIPE_CONFIG(ADDR_SURF_P4_16x16) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_THIN_MICRO_TILING) |
+- SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_1));
+- break;
+- case 23:
+- gb_tile_moden = (TILE_SPLIT(split_equal_to_row_size));
+- break;
+- case 24:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_2D_TILED_THICK) |
+- PIPE_CONFIG(ADDR_SURF_P4_16x16) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_THIN_MICRO_TILING) |
+- SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_1));
+- break;
+- case 25:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_2D_TILED_XTHICK) |
+- PIPE_CONFIG(ADDR_SURF_P4_16x16) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_THIN_MICRO_TILING) |
+- SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_1));
+- break;
+- case 26:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_3D_TILED_XTHICK) |
+- PIPE_CONFIG(ADDR_SURF_P4_16x16) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_THIN_MICRO_TILING) |
+- SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_1));
+- break;
+- case 27:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_1D_TILED_THIN1) |
+- PIPE_CONFIG(ADDR_SURF_P4_16x16) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_ROTATED_MICRO_TILING));
+- break;
+- case 28:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
+- PIPE_CONFIG(ADDR_SURF_P4_16x16) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_ROTATED_MICRO_TILING) |
+- SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_2));
+- break;
+- case 29:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_PRT_TILED_THIN1) |
+- PIPE_CONFIG(ADDR_SURF_P4_16x16) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_ROTATED_MICRO_TILING) |
+- SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_8));
+- break;
+- case 30:
+- gb_tile_moden = (TILE_SPLIT(split_equal_to_row_size));
+- break;
+- default:
+- gb_tile_moden = 0;
+- break;
+- }
+- adev->gfx.config.tile_mode_array[reg_offset] = gb_tile_moden;
+- WREG32(mmGB_TILE_MODE0 + reg_offset, gb_tile_moden);
+- }
+- for (reg_offset = 0; reg_offset < num_secondary_tile_mode_states; reg_offset++) {
+- switch (reg_offset) {
+- case 0:
+- gb_tile_moden = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
+- BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
+- MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_4) |
+- NUM_BANKS(ADDR_SURF_16_BANK));
+- break;
+- case 1:
+- gb_tile_moden = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
+- BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
+- MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_4) |
+- NUM_BANKS(ADDR_SURF_16_BANK));
+- break;
+- case 2:
+- gb_tile_moden = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
+- BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
+- MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
+- NUM_BANKS(ADDR_SURF_16_BANK));
+- break;
+- case 3:
+- gb_tile_moden = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
+- BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
+- MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
+- NUM_BANKS(ADDR_SURF_16_BANK));
+- break;
+- case 4:
+- gb_tile_moden = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
+- BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
+- MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
+- NUM_BANKS(ADDR_SURF_16_BANK));
+- break;
+- case 5:
+- gb_tile_moden = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
+- BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
+- MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
+- NUM_BANKS(ADDR_SURF_8_BANK));
+- break;
+- case 6:
+- gb_tile_moden = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
+- BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
+- MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
+- NUM_BANKS(ADDR_SURF_4_BANK));
+- break;
+- case 8:
+- gb_tile_moden = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_2) |
+- BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_8) |
+- MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_4) |
+- NUM_BANKS(ADDR_SURF_16_BANK));
+- break;
+- case 9:
+- gb_tile_moden = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_2) |
+- BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
+- MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_4) |
+- NUM_BANKS(ADDR_SURF_16_BANK));
+- break;
+- case 10:
+- gb_tile_moden = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
+- BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
+- MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_4) |
+- NUM_BANKS(ADDR_SURF_16_BANK));
+- break;
+- case 11:
+- gb_tile_moden = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
+- BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
+- MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_4) |
+- NUM_BANKS(ADDR_SURF_16_BANK));
+- break;
+- case 12:
+- gb_tile_moden = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
+- BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
+- MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
+- NUM_BANKS(ADDR_SURF_16_BANK));
+- break;
+- case 13:
+- gb_tile_moden = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
+- BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
+- MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
+- NUM_BANKS(ADDR_SURF_8_BANK));
+- break;
+- case 14:
+- gb_tile_moden = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
+- BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
+- MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
+- NUM_BANKS(ADDR_SURF_4_BANK));
+- break;
+- default:
+- gb_tile_moden = 0;
+- break;
+- }
+- adev->gfx.config.macrotile_mode_array[reg_offset] = gb_tile_moden;
+- WREG32(mmGB_MACROTILE_MODE0 + reg_offset, gb_tile_moden);
+- }
++ tile[0] = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
++ PIPE_CONFIG(ADDR_SURF_P4_16x16) |
++ TILE_SPLIT(ADDR_SURF_TILE_SPLIT_64B) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_DEPTH_MICRO_TILING));
++ tile[1] = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
++ PIPE_CONFIG(ADDR_SURF_P4_16x16) |
++ TILE_SPLIT(ADDR_SURF_TILE_SPLIT_128B) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_DEPTH_MICRO_TILING));
++ tile[2] = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
++ PIPE_CONFIG(ADDR_SURF_P4_16x16) |
++ TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_DEPTH_MICRO_TILING));
++ tile[3] = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
++ PIPE_CONFIG(ADDR_SURF_P4_16x16) |
++ TILE_SPLIT(ADDR_SURF_TILE_SPLIT_512B) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_DEPTH_MICRO_TILING));
++ tile[4] = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
++ PIPE_CONFIG(ADDR_SURF_P4_16x16) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_DEPTH_MICRO_TILING) |
++ TILE_SPLIT(split_equal_to_row_size));
++ tile[5] = (ARRAY_MODE(ARRAY_1D_TILED_THIN1) |
++ PIPE_CONFIG(ADDR_SURF_P4_16x16) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_DEPTH_MICRO_TILING));
++ tile[6] = (ARRAY_MODE(ARRAY_PRT_TILED_THIN1) |
++ PIPE_CONFIG(ADDR_SURF_P4_16x16) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_DEPTH_MICRO_TILING) |
++ TILE_SPLIT(split_equal_to_row_size));
++ tile[7] = (TILE_SPLIT(split_equal_to_row_size));
++ tile[8] = (ARRAY_MODE(ARRAY_LINEAR_ALIGNED) |
++ PIPE_CONFIG(ADDR_SURF_P4_16x16));
++ tile[9] = (ARRAY_MODE(ARRAY_1D_TILED_THIN1) |
++ PIPE_CONFIG(ADDR_SURF_P4_16x16) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_DISPLAY_MICRO_TILING));
++ tile[10] = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
++ PIPE_CONFIG(ADDR_SURF_P4_16x16) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_DISPLAY_MICRO_TILING) |
++ SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_2));
++ tile[11] = (ARRAY_MODE(ARRAY_PRT_TILED_THIN1) |
++ PIPE_CONFIG(ADDR_SURF_P4_16x16) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_DISPLAY_MICRO_TILING) |
++ SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_8));
++ tile[12] = (TILE_SPLIT(split_equal_to_row_size));
++ tile[13] = (ARRAY_MODE(ARRAY_1D_TILED_THIN1) |
++ PIPE_CONFIG(ADDR_SURF_P4_16x16) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_THIN_MICRO_TILING));
++ tile[14] = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
++ PIPE_CONFIG(ADDR_SURF_P4_16x16) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_THIN_MICRO_TILING) |
++ SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_2));
++ tile[15] = (ARRAY_MODE(ARRAY_3D_TILED_THIN1) |
++ PIPE_CONFIG(ADDR_SURF_P4_16x16) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_THIN_MICRO_TILING) |
++ SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_2));
++ tile[16] = (ARRAY_MODE(ARRAY_PRT_TILED_THIN1) |
++ PIPE_CONFIG(ADDR_SURF_P4_16x16) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_THIN_MICRO_TILING) |
++ SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_8));
++ tile[17] = (TILE_SPLIT(split_equal_to_row_size));
++ tile[18] = (ARRAY_MODE(ARRAY_1D_TILED_THICK) |
++ PIPE_CONFIG(ADDR_SURF_P4_16x16) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_THIN_MICRO_TILING) |
++ SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_1));
++ tile[19] = (ARRAY_MODE(ARRAY_1D_TILED_THICK) |
++ PIPE_CONFIG(ADDR_SURF_P4_16x16) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_THIN_MICRO_TILING));
++ tile[20] = (ARRAY_MODE(ARRAY_2D_TILED_THICK) |
++ PIPE_CONFIG(ADDR_SURF_P4_16x16) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_THIN_MICRO_TILING) |
++ SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_1));
++ tile[21] = (ARRAY_MODE(ARRAY_3D_TILED_THICK) |
++ PIPE_CONFIG(ADDR_SURF_P4_16x16) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_THIN_MICRO_TILING) |
++ SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_1));
++ tile[22] = (ARRAY_MODE(ARRAY_PRT_TILED_THICK) |
++ PIPE_CONFIG(ADDR_SURF_P4_16x16) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_THIN_MICRO_TILING) |
++ SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_1));
++ tile[23] = (TILE_SPLIT(split_equal_to_row_size));
++ tile[24] = (ARRAY_MODE(ARRAY_2D_TILED_THICK) |
++ PIPE_CONFIG(ADDR_SURF_P4_16x16) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_THIN_MICRO_TILING) |
++ SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_1));
++ tile[25] = (ARRAY_MODE(ARRAY_2D_TILED_XTHICK) |
++ PIPE_CONFIG(ADDR_SURF_P4_16x16) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_THIN_MICRO_TILING) |
++ SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_1));
++ tile[26] = (ARRAY_MODE(ARRAY_3D_TILED_XTHICK) |
++ PIPE_CONFIG(ADDR_SURF_P4_16x16) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_THIN_MICRO_TILING) |
++ SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_1));
++ tile[27] = (ARRAY_MODE(ARRAY_1D_TILED_THIN1) |
++ PIPE_CONFIG(ADDR_SURF_P4_16x16) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_ROTATED_MICRO_TILING));
++ tile[28] = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
++ PIPE_CONFIG(ADDR_SURF_P4_16x16) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_ROTATED_MICRO_TILING) |
++ SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_2));
++ tile[29] = (ARRAY_MODE(ARRAY_PRT_TILED_THIN1) |
++ PIPE_CONFIG(ADDR_SURF_P4_16x16) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_ROTATED_MICRO_TILING) |
++ SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_8));
++ tile[30] = (TILE_SPLIT(split_equal_to_row_size));
++
++ macrotile[0] = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
++ BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
++ MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_4) |
++ NUM_BANKS(ADDR_SURF_16_BANK));
++ macrotile[1] = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
++ BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
++ MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_4) |
++ NUM_BANKS(ADDR_SURF_16_BANK));
++ macrotile[2] = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
++ BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
++ MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
++ NUM_BANKS(ADDR_SURF_16_BANK));
++ macrotile[3] = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
++ BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
++ MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
++ NUM_BANKS(ADDR_SURF_16_BANK));
++ macrotile[4] = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
++ BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
++ MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
++ NUM_BANKS(ADDR_SURF_16_BANK));
++ macrotile[5] = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
++ BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
++ MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
++ NUM_BANKS(ADDR_SURF_8_BANK));
++ macrotile[6] = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
++ BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
++ MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
++ NUM_BANKS(ADDR_SURF_4_BANK));
++ macrotile[8] = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_2) |
++ BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_8) |
++ MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_4) |
++ NUM_BANKS(ADDR_SURF_16_BANK));
++ macrotile[9] = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_2) |
++ BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
++ MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_4) |
++ NUM_BANKS(ADDR_SURF_16_BANK));
++ macrotile[10] = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
++ BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
++ MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_4) |
++ NUM_BANKS(ADDR_SURF_16_BANK));
++ macrotile[11] = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
++ BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
++ MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_4) |
++ NUM_BANKS(ADDR_SURF_16_BANK));
++ macrotile[12] = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
++ BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
++ MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
++ NUM_BANKS(ADDR_SURF_16_BANK));
++ macrotile[13] = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
++ BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
++ MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
++ NUM_BANKS(ADDR_SURF_8_BANK));
++ macrotile[14] = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
++ BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
++ MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
++ NUM_BANKS(ADDR_SURF_4_BANK));
++
++ for (reg_offset = 0; reg_offset < num_tile_mode_states; reg_offset++)
++ WREG32(mmGB_TILE_MODE0 + reg_offset, tile[reg_offset]);
++ for (reg_offset = 0; reg_offset < num_secondary_tile_mode_states; reg_offset++)
++ if (reg_offset != 7)
++ WREG32(mmGB_MACROTILE_MODE0 + reg_offset, macrotile[reg_offset]);
+ break;
+ case CHIP_HAWAII:
+- for (reg_offset = 0; reg_offset < num_tile_mode_states; reg_offset++) {
+- switch (reg_offset) {
+- case 0:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
+- PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) |
+- TILE_SPLIT(ADDR_SURF_TILE_SPLIT_64B) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_DEPTH_MICRO_TILING));
+- break;
+- case 1:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
+- PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) |
+- TILE_SPLIT(ADDR_SURF_TILE_SPLIT_128B) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_DEPTH_MICRO_TILING));
+- break;
+- case 2:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
+- PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) |
+- TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_DEPTH_MICRO_TILING));
+- break;
+- case 3:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
+- PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) |
+- TILE_SPLIT(ADDR_SURF_TILE_SPLIT_512B) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_DEPTH_MICRO_TILING));
+- break;
+- case 4:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
+- PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_DEPTH_MICRO_TILING) |
+- TILE_SPLIT(split_equal_to_row_size));
+- break;
+- case 5:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_1D_TILED_THIN1) |
+- PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_DEPTH_MICRO_TILING) |
+- TILE_SPLIT(split_equal_to_row_size));
+- break;
+- case 6:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_PRT_TILED_THIN1) |
+- PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_DEPTH_MICRO_TILING) |
+- TILE_SPLIT(split_equal_to_row_size));
+- break;
+- case 7:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_PRT_TILED_THIN1) |
+- PIPE_CONFIG(ADDR_SURF_P4_16x16) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_DEPTH_MICRO_TILING) |
+- TILE_SPLIT(split_equal_to_row_size));
+- break;
+-
+- case 8:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_LINEAR_ALIGNED) |
+- PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16));
+- break;
+- case 9:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_1D_TILED_THIN1) |
+- PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_DISPLAY_MICRO_TILING));
+- break;
+- case 10:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
+- PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_DISPLAY_MICRO_TILING) |
+- SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_2));
+- break;
+- case 11:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_PRT_TILED_THIN1) |
+- PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_DISPLAY_MICRO_TILING) |
+- SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_8));
+- break;
+- case 12:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_PRT_2D_TILED_THIN1) |
+- PIPE_CONFIG(ADDR_SURF_P4_16x16) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_DISPLAY_MICRO_TILING) |
+- SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_8));
+- break;
+- case 13:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_1D_TILED_THIN1) |
+- PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_THIN_MICRO_TILING));
+- break;
+- case 14:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
+- PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_THIN_MICRO_TILING) |
+- SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_2));
+- break;
+- case 15:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_3D_TILED_THIN1) |
+- PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_THIN_MICRO_TILING) |
+- SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_2));
+- break;
+- case 16:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_PRT_TILED_THIN1) |
+- PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_THIN_MICRO_TILING) |
+- SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_8));
+- break;
+- case 17:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_PRT_TILED_THIN1) |
+- PIPE_CONFIG(ADDR_SURF_P4_16x16) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_THIN_MICRO_TILING) |
+- SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_8));
+- break;
+- case 18:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_1D_TILED_THICK) |
+- PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_THIN_MICRO_TILING) |
+- SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_1));
+- break;
+- case 19:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_1D_TILED_THICK) |
+- PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_THICK_MICRO_TILING));
+- break;
+- case 20:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_2D_TILED_THICK) |
+- PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_THICK_MICRO_TILING) |
+- SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_1));
+- break;
+- case 21:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_3D_TILED_THICK) |
+- PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_THICK_MICRO_TILING) |
+- SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_1));
+- break;
+- case 22:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_PRT_TILED_THICK) |
+- PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_THICK_MICRO_TILING) |
+- SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_1));
+- break;
+- case 23:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_PRT_TILED_THICK) |
+- PIPE_CONFIG(ADDR_SURF_P4_16x16) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_THICK_MICRO_TILING) |
+- SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_1));
+- break;
+- case 24:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_2D_TILED_THICK) |
+- PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_THIN_MICRO_TILING) |
+- SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_1));
+- break;
+- case 25:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_2D_TILED_XTHICK) |
+- PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_THICK_MICRO_TILING) |
+- SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_1));
+- break;
+- case 26:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_3D_TILED_XTHICK) |
+- PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_THICK_MICRO_TILING) |
+- SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_1));
+- break;
+- case 27:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_1D_TILED_THIN1) |
+- PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_ROTATED_MICRO_TILING));
+- break;
+- case 28:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
+- PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_ROTATED_MICRO_TILING) |
+- SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_2));
+- break;
+- case 29:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_PRT_TILED_THIN1) |
+- PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_ROTATED_MICRO_TILING) |
+- SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_8));
+- break;
+- case 30:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_PRT_TILED_THIN1) |
+- PIPE_CONFIG(ADDR_SURF_P4_16x16) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_ROTATED_MICRO_TILING) |
+- SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_8));
+- break;
+- default:
+- gb_tile_moden = 0;
+- break;
+- }
+- adev->gfx.config.tile_mode_array[reg_offset] = gb_tile_moden;
+- WREG32(mmGB_TILE_MODE0 + reg_offset, gb_tile_moden);
+- }
+- for (reg_offset = 0; reg_offset < num_secondary_tile_mode_states; reg_offset++) {
+- switch (reg_offset) {
+- case 0:
+- gb_tile_moden = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
+- BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
+- MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
+- NUM_BANKS(ADDR_SURF_16_BANK));
+- break;
+- case 1:
+- gb_tile_moden = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
+- BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
+- MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
+- NUM_BANKS(ADDR_SURF_16_BANK));
+- break;
+- case 2:
+- gb_tile_moden = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
+- BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
+- MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
+- NUM_BANKS(ADDR_SURF_16_BANK));
+- break;
+- case 3:
+- gb_tile_moden = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
+- BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
+- MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
+- NUM_BANKS(ADDR_SURF_16_BANK));
+- break;
+- case 4:
+- gb_tile_moden = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
+- BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
+- MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
+- NUM_BANKS(ADDR_SURF_8_BANK));
+- break;
+- case 5:
+- gb_tile_moden = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
+- BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
+- MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
+- NUM_BANKS(ADDR_SURF_4_BANK));
+- break;
+- case 6:
+- gb_tile_moden = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
+- BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
+- MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
+- NUM_BANKS(ADDR_SURF_4_BANK));
+- break;
+- case 8:
+- gb_tile_moden = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
+- BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
+- MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
+- NUM_BANKS(ADDR_SURF_16_BANK));
+- break;
+- case 9:
+- gb_tile_moden = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
+- BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
+- MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
+- NUM_BANKS(ADDR_SURF_16_BANK));
+- break;
+- case 10:
+- gb_tile_moden = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
+- BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
+- MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
+- NUM_BANKS(ADDR_SURF_16_BANK));
+- break;
+- case 11:
+- gb_tile_moden = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
+- BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
+- MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
+- NUM_BANKS(ADDR_SURF_8_BANK));
+- break;
+- case 12:
+- gb_tile_moden = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
+- BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
+- MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
+- NUM_BANKS(ADDR_SURF_16_BANK));
+- break;
+- case 13:
+- gb_tile_moden = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
+- BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
+- MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
+- NUM_BANKS(ADDR_SURF_8_BANK));
+- break;
+- case 14:
+- gb_tile_moden = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
+- BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
+- MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
+- NUM_BANKS(ADDR_SURF_4_BANK));
+- break;
+- default:
+- gb_tile_moden = 0;
+- break;
+- }
+- adev->gfx.config.macrotile_mode_array[reg_offset] = gb_tile_moden;
+- WREG32(mmGB_MACROTILE_MODE0 + reg_offset, gb_tile_moden);
+- }
++ tile[0] = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
++ PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) |
++ TILE_SPLIT(ADDR_SURF_TILE_SPLIT_64B) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_DEPTH_MICRO_TILING));
++ tile[1] = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
++ PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) |
++ TILE_SPLIT(ADDR_SURF_TILE_SPLIT_128B) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_DEPTH_MICRO_TILING));
++ tile[2] = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
++ PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) |
++ TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_DEPTH_MICRO_TILING));
++ tile[3] = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
++ PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) |
++ TILE_SPLIT(ADDR_SURF_TILE_SPLIT_512B) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_DEPTH_MICRO_TILING));
++ tile[4] = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
++ PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_DEPTH_MICRO_TILING) |
++ TILE_SPLIT(split_equal_to_row_size));
++ tile[5] = (ARRAY_MODE(ARRAY_1D_TILED_THIN1) |
++ PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_DEPTH_MICRO_TILING) |
++ TILE_SPLIT(split_equal_to_row_size));
++ tile[6] = (ARRAY_MODE(ARRAY_PRT_TILED_THIN1) |
++ PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_DEPTH_MICRO_TILING) |
++ TILE_SPLIT(split_equal_to_row_size));
++ tile[7] = (ARRAY_MODE(ARRAY_PRT_TILED_THIN1) |
++ PIPE_CONFIG(ADDR_SURF_P4_16x16) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_DEPTH_MICRO_TILING) |
++ TILE_SPLIT(split_equal_to_row_size));
++ tile[8] = (ARRAY_MODE(ARRAY_LINEAR_ALIGNED) |
++ PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16));
++ tile[9] = (ARRAY_MODE(ARRAY_1D_TILED_THIN1) |
++ PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_DISPLAY_MICRO_TILING));
++ tile[10] = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
++ PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_DISPLAY_MICRO_TILING) |
++ SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_2));
++ tile[11] = (ARRAY_MODE(ARRAY_PRT_TILED_THIN1) |
++ PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_DISPLAY_MICRO_TILING) |
++ SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_8));
++ tile[12] = (ARRAY_MODE(ARRAY_PRT_2D_TILED_THIN1) |
++ PIPE_CONFIG(ADDR_SURF_P4_16x16) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_DISPLAY_MICRO_TILING) |
++ SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_8));
++ tile[13] = (ARRAY_MODE(ARRAY_1D_TILED_THIN1) |
++ PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_THIN_MICRO_TILING));
++ tile[14] = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
++ PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_THIN_MICRO_TILING) |
++ SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_2));
++ tile[15] = (ARRAY_MODE(ARRAY_3D_TILED_THIN1) |
++ PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_THIN_MICRO_TILING) |
++ SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_2));
++ tile[16] = (ARRAY_MODE(ARRAY_PRT_TILED_THIN1) |
++ PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_THIN_MICRO_TILING) |
++ SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_8));
++ tile[17] = (ARRAY_MODE(ARRAY_PRT_TILED_THIN1) |
++ PIPE_CONFIG(ADDR_SURF_P4_16x16) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_THIN_MICRO_TILING) |
++ SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_8));
++ tile[18] = (ARRAY_MODE(ARRAY_1D_TILED_THICK) |
++ PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_THIN_MICRO_TILING) |
++ SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_1));
++ tile[19] = (ARRAY_MODE(ARRAY_1D_TILED_THICK) |
++ PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_THICK_MICRO_TILING));
++ tile[20] = (ARRAY_MODE(ARRAY_2D_TILED_THICK) |
++ PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_THICK_MICRO_TILING) |
++ SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_1));
++ tile[21] = (ARRAY_MODE(ARRAY_3D_TILED_THICK) |
++ PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_THICK_MICRO_TILING) |
++ SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_1));
++ tile[22] = (ARRAY_MODE(ARRAY_PRT_TILED_THICK) |
++ PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_THICK_MICRO_TILING) |
++ SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_1));
++ tile[23] = (ARRAY_MODE(ARRAY_PRT_TILED_THICK) |
++ PIPE_CONFIG(ADDR_SURF_P4_16x16) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_THICK_MICRO_TILING) |
++ SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_1));
++ tile[24] = (ARRAY_MODE(ARRAY_2D_TILED_THICK) |
++ PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_THIN_MICRO_TILING) |
++ SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_1));
++ tile[25] = (ARRAY_MODE(ARRAY_2D_TILED_XTHICK) |
++ PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_THICK_MICRO_TILING) |
++ SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_1));
++ tile[26] = (ARRAY_MODE(ARRAY_3D_TILED_XTHICK) |
++ PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_THICK_MICRO_TILING) |
++ SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_1));
++ tile[27] = (ARRAY_MODE(ARRAY_1D_TILED_THIN1) |
++ PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_ROTATED_MICRO_TILING));
++ tile[28] = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
++ PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_ROTATED_MICRO_TILING) |
++ SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_2));
++ tile[29] = (ARRAY_MODE(ARRAY_PRT_TILED_THIN1) |
++ PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_ROTATED_MICRO_TILING) |
++ SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_8));
++ tile[30] = (ARRAY_MODE(ARRAY_PRT_TILED_THIN1) |
++ PIPE_CONFIG(ADDR_SURF_P4_16x16) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_ROTATED_MICRO_TILING) |
++ SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_8));
++
++ macrotile[0] = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
++ BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
++ MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
++ NUM_BANKS(ADDR_SURF_16_BANK));
++ macrotile[1] = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
++ BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
++ MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
++ NUM_BANKS(ADDR_SURF_16_BANK));
++ macrotile[2] = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
++ BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
++ MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
++ NUM_BANKS(ADDR_SURF_16_BANK));
++ macrotile[3] = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
++ BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
++ MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
++ NUM_BANKS(ADDR_SURF_16_BANK));
++ macrotile[4] = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
++ BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
++ MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
++ NUM_BANKS(ADDR_SURF_8_BANK));
++ macrotile[5] = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
++ BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
++ MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
++ NUM_BANKS(ADDR_SURF_4_BANK));
++ macrotile[6] = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
++ BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
++ MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
++ NUM_BANKS(ADDR_SURF_4_BANK));
++ macrotile[8] = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
++ BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
++ MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
++ NUM_BANKS(ADDR_SURF_16_BANK));
++ macrotile[9] = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
++ BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
++ MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
++ NUM_BANKS(ADDR_SURF_16_BANK));
++ macrotile[10] = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
++ BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
++ MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
++ NUM_BANKS(ADDR_SURF_16_BANK));
++ macrotile[11] = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
++ BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
++ MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
++ NUM_BANKS(ADDR_SURF_8_BANK));
++ macrotile[12] = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
++ BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
++ MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
++ NUM_BANKS(ADDR_SURF_16_BANK));
++ macrotile[13] = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
++ BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
++ MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
++ NUM_BANKS(ADDR_SURF_8_BANK));
++ macrotile[14] = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
++ BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
++ MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
++ NUM_BANKS(ADDR_SURF_4_BANK));
++
++ for (reg_offset = 0; reg_offset < num_tile_mode_states; reg_offset++)
++ WREG32(mmGB_TILE_MODE0 + reg_offset, tile[reg_offset]);
++ for (reg_offset = 0; reg_offset < num_secondary_tile_mode_states; reg_offset++)
++ if (reg_offset != 7)
++ WREG32(mmGB_MACROTILE_MODE0 + reg_offset, macrotile[reg_offset]);
+ break;
+ case CHIP_KABINI:
+ case CHIP_KAVERI:
+ case CHIP_MULLINS:
+ default:
+- for (reg_offset = 0; reg_offset < num_tile_mode_states; reg_offset++) {
+- switch (reg_offset) {
+- case 0:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
+- PIPE_CONFIG(ADDR_SURF_P2) |
+- TILE_SPLIT(ADDR_SURF_TILE_SPLIT_64B) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_DEPTH_MICRO_TILING));
+- break;
+- case 1:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
+- PIPE_CONFIG(ADDR_SURF_P2) |
+- TILE_SPLIT(ADDR_SURF_TILE_SPLIT_128B) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_DEPTH_MICRO_TILING));
+- break;
+- case 2:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
+- PIPE_CONFIG(ADDR_SURF_P2) |
+- TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_DEPTH_MICRO_TILING));
+- break;
+- case 3:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
+- PIPE_CONFIG(ADDR_SURF_P2) |
+- TILE_SPLIT(ADDR_SURF_TILE_SPLIT_512B) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_DEPTH_MICRO_TILING));
+- break;
+- case 4:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
+- PIPE_CONFIG(ADDR_SURF_P2) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_DEPTH_MICRO_TILING) |
+- TILE_SPLIT(split_equal_to_row_size));
+- break;
+- case 5:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_1D_TILED_THIN1) |
+- PIPE_CONFIG(ADDR_SURF_P2) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_DEPTH_MICRO_TILING));
+- break;
+- case 6:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_PRT_TILED_THIN1) |
+- PIPE_CONFIG(ADDR_SURF_P2) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_DEPTH_MICRO_TILING) |
+- TILE_SPLIT(split_equal_to_row_size));
+- break;
+- case 7:
+- gb_tile_moden = (TILE_SPLIT(split_equal_to_row_size));
+- break;
+-
+- case 8:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_LINEAR_ALIGNED) |
+- PIPE_CONFIG(ADDR_SURF_P2));
+- break;
+- case 9:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_1D_TILED_THIN1) |
+- PIPE_CONFIG(ADDR_SURF_P2) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_DISPLAY_MICRO_TILING));
+- break;
+- case 10:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
+- PIPE_CONFIG(ADDR_SURF_P2) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_DISPLAY_MICRO_TILING) |
+- SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_2));
+- break;
+- case 11:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_PRT_TILED_THIN1) |
+- PIPE_CONFIG(ADDR_SURF_P2) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_DISPLAY_MICRO_TILING) |
+- SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_8));
+- break;
+- case 12:
+- gb_tile_moden = (TILE_SPLIT(split_equal_to_row_size));
+- break;
+- case 13:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_1D_TILED_THIN1) |
+- PIPE_CONFIG(ADDR_SURF_P2) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_THIN_MICRO_TILING));
+- break;
+- case 14:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
+- PIPE_CONFIG(ADDR_SURF_P2) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_THIN_MICRO_TILING) |
+- SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_2));
+- break;
+- case 15:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_3D_TILED_THIN1) |
+- PIPE_CONFIG(ADDR_SURF_P2) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_THIN_MICRO_TILING) |
+- SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_2));
+- break;
+- case 16:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_PRT_TILED_THIN1) |
+- PIPE_CONFIG(ADDR_SURF_P2) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_THIN_MICRO_TILING) |
+- SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_8));
+- break;
+- case 17:
+- gb_tile_moden = (TILE_SPLIT(split_equal_to_row_size));
+- break;
+- case 18:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_1D_TILED_THICK) |
+- PIPE_CONFIG(ADDR_SURF_P2) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_THIN_MICRO_TILING) |
+- SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_1));
+- break;
+- case 19:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_1D_TILED_THICK) |
+- PIPE_CONFIG(ADDR_SURF_P2) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_THICK_MICRO_TILING));
+- break;
+- case 20:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_2D_TILED_THICK) |
+- PIPE_CONFIG(ADDR_SURF_P2) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_THICK_MICRO_TILING) |
+- SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_1));
+- break;
+- case 21:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_3D_TILED_THICK) |
+- PIPE_CONFIG(ADDR_SURF_P2) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_THICK_MICRO_TILING) |
+- SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_1));
+- break;
+- case 22:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_PRT_TILED_THICK) |
+- PIPE_CONFIG(ADDR_SURF_P2) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_THICK_MICRO_TILING) |
+- SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_1));
+- break;
+- case 23:
+- gb_tile_moden = (TILE_SPLIT(split_equal_to_row_size));
+- break;
+- case 24:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_2D_TILED_THICK) |
+- PIPE_CONFIG(ADDR_SURF_P2) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_THIN_MICRO_TILING) |
+- SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_1));
+- break;
+- case 25:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_2D_TILED_XTHICK) |
+- PIPE_CONFIG(ADDR_SURF_P2) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_THICK_MICRO_TILING) |
+- SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_1));
+- break;
+- case 26:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_3D_TILED_XTHICK) |
+- PIPE_CONFIG(ADDR_SURF_P2) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_THICK_MICRO_TILING) |
+- SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_1));
+- break;
+- case 27:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_1D_TILED_THIN1) |
+- PIPE_CONFIG(ADDR_SURF_P2) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_ROTATED_MICRO_TILING));
+- break;
+- case 28:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
+- PIPE_CONFIG(ADDR_SURF_P2) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_ROTATED_MICRO_TILING) |
+- SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_2));
+- break;
+- case 29:
+- gb_tile_moden = (ARRAY_MODE(ARRAY_PRT_TILED_THIN1) |
+- PIPE_CONFIG(ADDR_SURF_P2) |
+- MICRO_TILE_MODE_NEW(ADDR_SURF_ROTATED_MICRO_TILING) |
+- SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_8));
+- break;
+- case 30:
+- gb_tile_moden = (TILE_SPLIT(split_equal_to_row_size));
+- break;
+- default:
+- gb_tile_moden = 0;
+- break;
+- }
+- adev->gfx.config.tile_mode_array[reg_offset] = gb_tile_moden;
+- WREG32(mmGB_TILE_MODE0 + reg_offset, gb_tile_moden);
+- }
+- for (reg_offset = 0; reg_offset < num_secondary_tile_mode_states; reg_offset++) {
+- switch (reg_offset) {
+- case 0:
+- gb_tile_moden = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
+- BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
+- MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_4) |
+- NUM_BANKS(ADDR_SURF_8_BANK));
+- break;
+- case 1:
+- gb_tile_moden = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
+- BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
+- MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_4) |
+- NUM_BANKS(ADDR_SURF_8_BANK));
+- break;
+- case 2:
+- gb_tile_moden = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
+- BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
+- MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
+- NUM_BANKS(ADDR_SURF_8_BANK));
+- break;
+- case 3:
+- gb_tile_moden = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
+- BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
+- MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
+- NUM_BANKS(ADDR_SURF_8_BANK));
+- break;
+- case 4:
+- gb_tile_moden = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
+- BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
+- MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
+- NUM_BANKS(ADDR_SURF_8_BANK));
+- break;
+- case 5:
+- gb_tile_moden = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
+- BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
+- MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
+- NUM_BANKS(ADDR_SURF_8_BANK));
+- break;
+- case 6:
+- gb_tile_moden = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
+- BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
+- MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
+- NUM_BANKS(ADDR_SURF_8_BANK));
+- break;
+- case 8:
+- gb_tile_moden = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_4) |
+- BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_8) |
+- MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_4) |
+- NUM_BANKS(ADDR_SURF_16_BANK));
+- break;
+- case 9:
+- gb_tile_moden = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_4) |
+- BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
+- MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_4) |
+- NUM_BANKS(ADDR_SURF_16_BANK));
+- break;
+- case 10:
+- gb_tile_moden = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_2) |
+- BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
+- MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_4) |
+- NUM_BANKS(ADDR_SURF_16_BANK));
+- break;
+- case 11:
+- gb_tile_moden = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_2) |
+- BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
+- MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_4) |
+- NUM_BANKS(ADDR_SURF_16_BANK));
+- break;
+- case 12:
+- gb_tile_moden = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
+- BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
+- MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_4) |
+- NUM_BANKS(ADDR_SURF_16_BANK));
+- break;
+- case 13:
+- gb_tile_moden = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
+- BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
+- MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_4) |
+- NUM_BANKS(ADDR_SURF_16_BANK));
+- break;
+- case 14:
+- gb_tile_moden = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
+- BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
+- MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
+- NUM_BANKS(ADDR_SURF_8_BANK));
+- break;
+- default:
+- gb_tile_moden = 0;
+- break;
+- }
+- adev->gfx.config.macrotile_mode_array[reg_offset] = gb_tile_moden;
+- WREG32(mmGB_MACROTILE_MODE0 + reg_offset, gb_tile_moden);
+- }
++ tile[0] = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
++ PIPE_CONFIG(ADDR_SURF_P2) |
++ TILE_SPLIT(ADDR_SURF_TILE_SPLIT_64B) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_DEPTH_MICRO_TILING));
++ tile[1] = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
++ PIPE_CONFIG(ADDR_SURF_P2) |
++ TILE_SPLIT(ADDR_SURF_TILE_SPLIT_128B) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_DEPTH_MICRO_TILING));
++ tile[2] = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
++ PIPE_CONFIG(ADDR_SURF_P2) |
++ TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_DEPTH_MICRO_TILING));
++ tile[3] = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
++ PIPE_CONFIG(ADDR_SURF_P2) |
++ TILE_SPLIT(ADDR_SURF_TILE_SPLIT_512B) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_DEPTH_MICRO_TILING));
++ tile[4] = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
++ PIPE_CONFIG(ADDR_SURF_P2) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_DEPTH_MICRO_TILING) |
++ TILE_SPLIT(split_equal_to_row_size));
++ tile[5] = (ARRAY_MODE(ARRAY_1D_TILED_THIN1) |
++ PIPE_CONFIG(ADDR_SURF_P2) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_DEPTH_MICRO_TILING));
++ tile[6] = (ARRAY_MODE(ARRAY_PRT_TILED_THIN1) |
++ PIPE_CONFIG(ADDR_SURF_P2) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_DEPTH_MICRO_TILING) |
++ TILE_SPLIT(split_equal_to_row_size));
++ tile[7] = (TILE_SPLIT(split_equal_to_row_size));
++ tile[8] = (ARRAY_MODE(ARRAY_LINEAR_ALIGNED) |
++ PIPE_CONFIG(ADDR_SURF_P2));
++ tile[9] = (ARRAY_MODE(ARRAY_1D_TILED_THIN1) |
++ PIPE_CONFIG(ADDR_SURF_P2) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_DISPLAY_MICRO_TILING));
++ tile[10] = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
++ PIPE_CONFIG(ADDR_SURF_P2) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_DISPLAY_MICRO_TILING) |
++ SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_2));
++ tile[11] = (ARRAY_MODE(ARRAY_PRT_TILED_THIN1) |
++ PIPE_CONFIG(ADDR_SURF_P2) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_DISPLAY_MICRO_TILING) |
++ SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_8));
++ tile[12] = (TILE_SPLIT(split_equal_to_row_size));
++ tile[13] = (ARRAY_MODE(ARRAY_1D_TILED_THIN1) |
++ PIPE_CONFIG(ADDR_SURF_P2) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_THIN_MICRO_TILING));
++ tile[14] = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
++ PIPE_CONFIG(ADDR_SURF_P2) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_THIN_MICRO_TILING) |
++ SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_2));
++ tile[15] = (ARRAY_MODE(ARRAY_3D_TILED_THIN1) |
++ PIPE_CONFIG(ADDR_SURF_P2) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_THIN_MICRO_TILING) |
++ SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_2));
++ tile[16] = (ARRAY_MODE(ARRAY_PRT_TILED_THIN1) |
++ PIPE_CONFIG(ADDR_SURF_P2) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_THIN_MICRO_TILING) |
++ SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_8));
++ tile[17] = (TILE_SPLIT(split_equal_to_row_size));
++ tile[18] = (ARRAY_MODE(ARRAY_1D_TILED_THICK) |
++ PIPE_CONFIG(ADDR_SURF_P2) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_THIN_MICRO_TILING) |
++ SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_1));
++ tile[19] = (ARRAY_MODE(ARRAY_1D_TILED_THICK) |
++ PIPE_CONFIG(ADDR_SURF_P2) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_THICK_MICRO_TILING));
++ tile[20] = (ARRAY_MODE(ARRAY_2D_TILED_THICK) |
++ PIPE_CONFIG(ADDR_SURF_P2) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_THICK_MICRO_TILING) |
++ SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_1));
++ tile[21] = (ARRAY_MODE(ARRAY_3D_TILED_THICK) |
++ PIPE_CONFIG(ADDR_SURF_P2) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_THICK_MICRO_TILING) |
++ SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_1));
++ tile[22] = (ARRAY_MODE(ARRAY_PRT_TILED_THICK) |
++ PIPE_CONFIG(ADDR_SURF_P2) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_THICK_MICRO_TILING) |
++ SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_1));
++ tile[23] = (TILE_SPLIT(split_equal_to_row_size));
++ tile[24] = (ARRAY_MODE(ARRAY_2D_TILED_THICK) |
++ PIPE_CONFIG(ADDR_SURF_P2) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_THIN_MICRO_TILING) |
++ SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_1));
++ tile[25] = (ARRAY_MODE(ARRAY_2D_TILED_XTHICK) |
++ PIPE_CONFIG(ADDR_SURF_P2) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_THICK_MICRO_TILING) |
++ SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_1));
++ tile[26] = (ARRAY_MODE(ARRAY_3D_TILED_XTHICK) |
++ PIPE_CONFIG(ADDR_SURF_P2) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_THICK_MICRO_TILING) |
++ SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_1));
++ tile[27] = (ARRAY_MODE(ARRAY_1D_TILED_THIN1) |
++ PIPE_CONFIG(ADDR_SURF_P2) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_ROTATED_MICRO_TILING));
++ tile[28] = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
++ PIPE_CONFIG(ADDR_SURF_P2) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_ROTATED_MICRO_TILING) |
++ SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_2));
++ tile[29] = (ARRAY_MODE(ARRAY_PRT_TILED_THIN1) |
++ PIPE_CONFIG(ADDR_SURF_P2) |
++ MICRO_TILE_MODE_NEW(ADDR_SURF_ROTATED_MICRO_TILING) |
++ SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_8));
++ tile[30] = (TILE_SPLIT(split_equal_to_row_size));
++
++ macrotile[0] = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
++ BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
++ MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_4) |
++ NUM_BANKS(ADDR_SURF_8_BANK));
++ macrotile[1] = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
++ BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
++ MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_4) |
++ NUM_BANKS(ADDR_SURF_8_BANK));
++ macrotile[2] = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
++ BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
++ MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
++ NUM_BANKS(ADDR_SURF_8_BANK));
++ macrotile[3] = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
++ BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
++ MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
++ NUM_BANKS(ADDR_SURF_8_BANK));
++ macrotile[4] = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
++ BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
++ MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
++ NUM_BANKS(ADDR_SURF_8_BANK));
++ macrotile[5] = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
++ BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
++ MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
++ NUM_BANKS(ADDR_SURF_8_BANK));
++ macrotile[6] = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
++ BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
++ MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
++ NUM_BANKS(ADDR_SURF_8_BANK));
++ macrotile[8] = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_4) |
++ BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_8) |
++ MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_4) |
++ NUM_BANKS(ADDR_SURF_16_BANK));
++ macrotile[9] = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_4) |
++ BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
++ MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_4) |
++ NUM_BANKS(ADDR_SURF_16_BANK));
++ macrotile[10] = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_2) |
++ BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
++ MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_4) |
++ NUM_BANKS(ADDR_SURF_16_BANK));
++ macrotile[11] = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_2) |
++ BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
++ MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_4) |
++ NUM_BANKS(ADDR_SURF_16_BANK));
++ macrotile[12] = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
++ BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
++ MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_4) |
++ NUM_BANKS(ADDR_SURF_16_BANK));
++ macrotile[13] = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
++ BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
++ MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_4) |
++ NUM_BANKS(ADDR_SURF_16_BANK));
++ macrotile[14] = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
++ BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
++ MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
++ NUM_BANKS(ADDR_SURF_8_BANK));
++
++ for (reg_offset = 0; reg_offset < num_tile_mode_states; reg_offset++)
++ WREG32(mmGB_TILE_MODE0 + reg_offset, tile[reg_offset]);
++ for (reg_offset = 0; reg_offset < num_secondary_tile_mode_states; reg_offset++)
++ if (reg_offset != 7)
++ WREG32(mmGB_MACROTILE_MODE0 + reg_offset, macrotile[reg_offset]);
+ break;
+ }
+ }
+--
+2.7.4
+