Module: Mesa
Branch: master
Commit: 899df55ee046847dfd2a49059a649da4e6c29fdb
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=899df55ee046847dfd2a49059a649da4e6c29fdb

Author: Dave Airlie <airl...@redhat.com>
Date:   Mon Apr 23 10:09:36 2018 +1000

ac/radv/radeonsi: refactor raster_config default values getters.

This just makes this common code between the two drivers.

Reviewed-by: Nicolai Hähnle <nicolai.haeh...@amd.com>
Reviewed-by: Bas Nieuwenhuizen <b...@basnieuwenhuizen.nl>

---

 src/amd/common/ac_gpu_info.c            | 93 +++++++++++++++++++++++++++++++++
 src/amd/common/ac_gpu_info.h            |  4 +-
 src/amd/vulkan/si_cmd_buffer.c          | 85 ++----------------------------
 src/gallium/drivers/radeonsi/si_state.c | 85 ++----------------------------
 4 files changed, 102 insertions(+), 165 deletions(-)

diff --git a/src/amd/common/ac_gpu_info.c b/src/amd/common/ac_gpu_info.c
index 12b03c4ea2..47a87650a6 100644
--- a/src/amd/common/ac_gpu_info.c
+++ b/src/amd/common/ac_gpu_info.c
@@ -554,3 +554,96 @@ ac_get_gs_table_depth(enum chip_class chip_class, enum 
radeon_family family)
                unreachable("Unknown GPU");
        }
 }
+
+void
+ac_get_raster_config(struct radeon_info *info,
+                    uint32_t *raster_config_p,
+                    uint32_t *raster_config_1_p)
+{
+       unsigned num_rb = MIN2(info->num_render_backends, 16);
+       unsigned raster_config, raster_config_1;
+       switch (info->family) {
+       case CHIP_TAHITI:
+       case CHIP_PITCAIRN:
+               raster_config = 0x2a00126a;
+               raster_config_1 = 0x00000000;
+               break;
+       case CHIP_VERDE:
+               raster_config = 0x0000124a;
+               raster_config_1 = 0x00000000;
+               break;
+       case CHIP_OLAND:
+               raster_config = 0x00000082;
+               raster_config_1 = 0x00000000;
+               break;
+       case CHIP_HAINAN:
+               raster_config = 0x00000000;
+               raster_config_1 = 0x00000000;
+               break;
+       case CHIP_BONAIRE:
+               raster_config = 0x16000012;
+               raster_config_1 = 0x00000000;
+               break;
+       case CHIP_HAWAII:
+               raster_config = 0x3a00161a;
+               raster_config_1 = 0x0000002e;
+               break;
+       case CHIP_FIJI:
+               if (info->cik_macrotile_mode_array[0] == 0x000000e8) {
+                       /* old kernels with old tiling config */
+                       raster_config = 0x16000012;
+                       raster_config_1 = 0x0000002a;
+               } else {
+                       raster_config = 0x3a00161a;
+                       raster_config_1 = 0x0000002e;
+               }
+               break;
+       case CHIP_POLARIS10:
+               raster_config = 0x16000012;
+               raster_config_1 = 0x0000002a;
+               break;
+       case CHIP_POLARIS11:
+       case CHIP_POLARIS12:
+               raster_config = 0x16000012;
+               raster_config_1 = 0x00000000;
+               break;
+       case CHIP_VEGAM:
+               raster_config = 0x3a00161a;
+               raster_config_1 = 0x0000002e;
+               break;
+       case CHIP_TONGA:
+               raster_config = 0x16000012;
+               raster_config_1 = 0x0000002a;
+               break;
+       case CHIP_ICELAND:
+               if (num_rb == 1)
+                       raster_config = 0x00000000;
+               else
+                       raster_config = 0x00000002;
+               raster_config_1 = 0x00000000;
+               break;
+       case CHIP_CARRIZO:
+               raster_config = 0x00000002;
+               raster_config_1 = 0x00000000;
+               break;
+       case CHIP_KAVERI:
+               /* KV should be 0x00000002, but that causes problems with 
radeon */
+               raster_config = 0x00000000; /* 0x00000002 */
+               raster_config_1 = 0x00000000;
+               break;
+       case CHIP_KABINI:
+       case CHIP_MULLINS:
+       case CHIP_STONEY:
+               raster_config = 0x00000000;
+               raster_config_1 = 0x00000000;
+               break;
+       default:
+               fprintf(stderr,
+                       "ac: Unknown GPU, using 0 for raster_config\n");
+               raster_config = 0x00000000;
+               raster_config_1 = 0x00000000;
+               break;
+       }
+       *raster_config_p = raster_config;
+       *raster_config_1_p = raster_config_1;
+}
diff --git a/src/amd/common/ac_gpu_info.h b/src/amd/common/ac_gpu_info.h
index 003d340e0c..9227ff3779 100644
--- a/src/amd/common/ac_gpu_info.h
+++ b/src/amd/common/ac_gpu_info.h
@@ -131,7 +131,9 @@ void ac_compute_driver_uuid(char *uuid, size_t size);
 void ac_compute_device_uuid(struct radeon_info *info, char *uuid, size_t size);
 void ac_print_gpu_info(struct radeon_info *info);
 int ac_get_gs_table_depth(enum chip_class chip_class, enum radeon_family 
family);
-
+void ac_get_raster_config(struct radeon_info *info,
+                         uint32_t *raster_config_p,
+                         uint32_t *raster_config_1_p);
 #ifdef __cplusplus
 }
 #endif
diff --git a/src/amd/vulkan/si_cmd_buffer.c b/src/amd/vulkan/si_cmd_buffer.c
index 80c819af49..b7a2ca244b 100644
--- a/src/amd/vulkan/si_cmd_buffer.c
+++ b/src/amd/vulkan/si_cmd_buffer.c
@@ -234,88 +234,9 @@ si_set_raster_config(struct radv_physical_device 
*physical_device,
        unsigned rb_mask = physical_device->rad_info.enabled_rb_mask;
        unsigned raster_config, raster_config_1;
 
-       switch (physical_device->rad_info.family) {
-       case CHIP_TAHITI:
-       case CHIP_PITCAIRN:
-               raster_config = 0x2a00126a;
-               raster_config_1 = 0x00000000;
-               break;
-       case CHIP_VERDE:
-               raster_config = 0x0000124a;
-               raster_config_1 = 0x00000000;
-               break;
-       case CHIP_OLAND:
-               raster_config = 0x00000082;
-               raster_config_1 = 0x00000000;
-               break;
-       case CHIP_HAINAN:
-               raster_config = 0x00000000;
-               raster_config_1 = 0x00000000;
-               break;
-       case CHIP_BONAIRE:
-               raster_config = 0x16000012;
-               raster_config_1 = 0x00000000;
-               break;
-       case CHIP_HAWAII:
-               raster_config = 0x3a00161a;
-               raster_config_1 = 0x0000002e;
-               break;
-       case CHIP_FIJI:
-               if (physical_device->rad_info.cik_macrotile_mode_array[0] == 
0x000000e8) {
-                       /* old kernels with old tiling config */
-                       raster_config = 0x16000012;
-                       raster_config_1 = 0x0000002a;
-               } else {
-                       raster_config = 0x3a00161a;
-                       raster_config_1 = 0x0000002e;
-               }
-               break;
-       case CHIP_POLARIS10:
-               raster_config = 0x16000012;
-               raster_config_1 = 0x0000002a;
-               break;
-       case CHIP_POLARIS11:
-       case CHIP_POLARIS12:
-               raster_config = 0x16000012;
-               raster_config_1 = 0x00000000;
-               break;
-       case CHIP_VEGAM:
-               raster_config = 0x3a00161a;
-               raster_config_1 = 0x0000002e;
-               break;
-       case CHIP_TONGA:
-               raster_config = 0x16000012;
-               raster_config_1 = 0x0000002a;
-               break;
-       case CHIP_ICELAND:
-               if (num_rb == 1)
-                       raster_config = 0x00000000;
-               else
-                       raster_config = 0x00000002;
-               raster_config_1 = 0x00000000;
-               break;
-       case CHIP_CARRIZO:
-               raster_config = 0x00000002;
-               raster_config_1 = 0x00000000;
-               break;
-       case CHIP_KAVERI:
-               /* KV should be 0x00000002, but that causes problems with 
radeon */
-               raster_config = 0x00000000; /* 0x00000002 */
-               raster_config_1 = 0x00000000;
-               break;
-       case CHIP_KABINI:
-       case CHIP_MULLINS:
-       case CHIP_STONEY:
-               raster_config = 0x00000000;
-               raster_config_1 = 0x00000000;
-               break;
-       default:
-               fprintf(stderr,
-                       "radv: Unknown GPU, using 0 for raster_config\n");
-               raster_config = 0x00000000;
-               raster_config_1 = 0x00000000;
-               break;
-       }
+       ac_get_raster_config(&physical_device->rad_info,
+                            &raster_config,
+                            &raster_config_1);
 
        /* Always use the default config when all backends are enabled
         * (or when we failed to determine the enabled backends).
diff --git a/src/gallium/drivers/radeonsi/si_state.c 
b/src/gallium/drivers/radeonsi/si_state.c
index b5fe6726b9..83f4f857d3 100644
--- a/src/gallium/drivers/radeonsi/si_state.c
+++ b/src/gallium/drivers/radeonsi/si_state.c
@@ -4742,92 +4742,13 @@ si_write_harvested_raster_configs(struct si_context 
*sctx,
 
 static void si_set_raster_config(struct si_context *sctx, struct si_pm4_state 
*pm4)
 {
-       struct si_screen *sscreen = sctx->screen;
        unsigned num_rb = MIN2(sctx->screen->info.num_render_backends, 16);
        unsigned rb_mask = sctx->screen->info.enabled_rb_mask;
        unsigned raster_config, raster_config_1;
 
-       switch (sctx->family) {
-       case CHIP_TAHITI:
-       case CHIP_PITCAIRN:
-               raster_config = 0x2a00126a;
-               raster_config_1 = 0x00000000;
-               break;
-       case CHIP_VERDE:
-               raster_config = 0x0000124a;
-               raster_config_1 = 0x00000000;
-               break;
-       case CHIP_OLAND:
-               raster_config = 0x00000082;
-               raster_config_1 = 0x00000000;
-               break;
-       case CHIP_HAINAN:
-               raster_config = 0x00000000;
-               raster_config_1 = 0x00000000;
-               break;
-       case CHIP_BONAIRE:
-               raster_config = 0x16000012;
-               raster_config_1 = 0x00000000;
-               break;
-       case CHIP_HAWAII:
-               raster_config = 0x3a00161a;
-               raster_config_1 = 0x0000002e;
-               break;
-       case CHIP_FIJI:
-               if (sscreen->info.cik_macrotile_mode_array[0] == 0x000000e8) {
-                       /* old kernels with old tiling config */
-                       raster_config = 0x16000012;
-                       raster_config_1 = 0x0000002a;
-               } else {
-                       raster_config = 0x3a00161a;
-                       raster_config_1 = 0x0000002e;
-               }
-               break;
-       case CHIP_VEGAM:
-               raster_config = 0x3a00161a;
-               raster_config_1 = 0x0000002e;
-               break;
-       case CHIP_POLARIS10:
-               raster_config = 0x16000012;
-               raster_config_1 = 0x0000002a;
-               break;
-       case CHIP_POLARIS11:
-       case CHIP_POLARIS12:
-               raster_config = 0x16000012;
-               raster_config_1 = 0x00000000;
-               break;
-       case CHIP_TONGA:
-               raster_config = 0x16000012;
-               raster_config_1 = 0x0000002a;
-               break;
-       case CHIP_ICELAND:
-               if (num_rb == 1)
-                       raster_config = 0x00000000;
-               else
-                       raster_config = 0x00000002;
-               raster_config_1 = 0x00000000;
-               break;
-       case CHIP_CARRIZO:
-               raster_config = 0x00000002;
-               raster_config_1 = 0x00000000;
-               break;
-       case CHIP_KAVERI:
-               /* KV should be 0x00000002, but that causes problems with 
radeon */
-               raster_config = 0x00000000; /* 0x00000002 */
-               raster_config_1 = 0x00000000;
-               break;
-       case CHIP_KABINI:
-       case CHIP_MULLINS:
-       case CHIP_STONEY:
-               raster_config = 0x00000000;
-               raster_config_1 = 0x00000000;
-               break;
-       default:
-               fprintf(stderr,
-                       "radeonsi: Unknown GPU, using 0 for raster_config\n");
-               raster_config = 0x00000000;
-               raster_config_1 = 0x00000000;
-       }
+       ac_get_raster_config(&sctx->screen->info,
+                            &raster_config,
+                            &raster_config_1);
 
        if (!rb_mask || util_bitcount(rb_mask) >= num_rb) {
                /* Always use the default config when all backends are enabled

_______________________________________________
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to