radeonsi/gfx10: set PA_SC_TILE_STEERING_OVERRIDE
authorMarek Olšák <marek.olsak@amd.com>
Wed, 5 Jun 2019 19:04:45 +0000 (15:04 -0400)
committerMarek Olšák <marek.olsak@amd.com>
Wed, 3 Jul 2019 19:51:13 +0000 (15:51 -0400)
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
src/amd/common/ac_gpu_info.c
src/amd/common/ac_gpu_info.h
src/gallium/drivers/radeonsi/si_state.c

index 79d83a7effc68194d7fe8bb266c6fc99b789b7c0..596a9ebe5088b5e4a88b3a0f44d2e503bd54edf9 100644 (file)
@@ -405,6 +405,7 @@ bool ac_query_gpu_info(int fd, void *dev_p,
        info->has_read_registers_query = true;
        info->has_scheduled_fence_dependency = info->drm_minor >= 28;
 
+       info->pa_sc_tile_steering_override = device_info.pa_sc_tile_steering_override;
        info->num_render_backends = amdinfo->rb_pipes;
        /* The value returned by the kernel driver was wrong. */
        if (info->family == CHIP_KAVERI)
@@ -599,6 +600,7 @@ void ac_print_gpu_info(struct radeon_info *info)
        printf("    max_sh_per_se = %i\n", info->max_sh_per_se);
 
        printf("Render backend info:\n");
+       printf("    pa_sc_tile_steering_override = 0x%x\n", info->pa_sc_tile_steering_override);
        printf("    num_render_backends = %i\n", info->num_render_backends);
        printf("    num_tile_pipes = %i\n", info->num_tile_pipes);
        printf("    pipe_interleave_bytes = %i\n", info->pipe_interleave_bytes);
index cea6181dc7ecd145b704112bca4f37aeed05baed..c42548f83524afb0fef01e4514a8da98da00057a 100644 (file)
@@ -138,6 +138,7 @@ struct radeon_info {
        bool                        r600_gb_backend_map_valid;
        uint32_t                    r600_num_banks;
        uint32_t                    gb_addr_config;
+       uint32_t                    pa_sc_tile_steering_override; /* CLEAR_STATE also sets this */
        uint32_t                    num_render_backends;
        uint32_t                    num_tile_pipes; /* pipe count from PIPE_CONFIG */
        uint32_t                    pipe_interleave_bytes;
index 3b3ee913c799a3cfeecfe90bbfc3bb8fce1c1ec3..e9388e6252ce8dc7b06bb0902e690c449e2afc61 100644 (file)
@@ -5564,6 +5564,8 @@ static void si_init_config(struct si_context *sctx)
                 */
                si_pm4_set_reg(pm4, R_028C50_PA_SC_NGG_MODE_CNTL,
                               S_028C50_MAX_DEALLOCS_IN_WAVE(512));
+               si_pm4_set_reg(pm4, R_02835C_PA_SC_TILE_STEERING_OVERRIDE,
+                              sscreen->info.pa_sc_tile_steering_override);
        }
 
        if (sctx->chip_class >= GFX8) {