drm/amd/display: use max lb for latency hiding
authorDmytro Laktyushkin <Dmytro.Laktyushkin@amd.com>
Mon, 7 Dec 2020 21:23:41 +0000 (16:23 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 24 Mar 2021 03:31:46 +0000 (23:31 -0400)
Enable max memory lb config to improve stutter efficiency and
latency hiding. Also increase max number of lb lines to be
used by dml since experiments have shown that there isnt a hard max
beyond what fits in lb.

Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Dmytro Laktyushkin <Dmytro.Laktyushkin@amd.com>
Reviewed-by: Eric Bernstein <Eric.Bernstein@amd.com>
Acked-by: Solomon Chiu <solomon.chiu@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/dcn10/dcn10_resource.c
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c
drivers/gpu/drm/amd/display/dc/dcn21/dcn21_resource.c
drivers/gpu/drm/amd/display/dc/dcn30/dcn30_resource.c
drivers/gpu/drm/amd/display/dc/dcn301/dcn301_resource.c
drivers/gpu/drm/amd/display/dc/dcn302/dcn302_resource.c

index 90e912fef2b36c069142e570bea412bb151486f4..33811953585b3d4ef1a00d2d33ecb0e164320b9c 100644 (file)
@@ -82,7 +82,7 @@ const struct _vcs_dpi_ip_params_st dcn1_0_ip = {
        .meta_chunk_size_kbytes = 2,
        .writeback_chunk_size_kbytes = 2,
        .line_buffer_size_bits = 589824,
-       .max_line_buffer_lines = 12,
+       .max_line_buffer_lines = 32,
        .IsLineBufferBppFixed = 0,
        .LineBufferFixedBpp = -1,
        .writeback_luma_buffer_size_kbytes = 12,
@@ -619,6 +619,7 @@ static const struct dc_debug_options debug_defaults_drv = {
                .recovery_enabled = false, /*enable this by default after testing.*/
                .max_downscale_src_width = 3840,
                .underflow_assert_delay_us = 0xFFFFFFFF,
+               .use_max_lb = true
 };
 
 static const struct dc_debug_options debug_defaults_diags = {
@@ -630,6 +631,7 @@ static const struct dc_debug_options debug_defaults_diags = {
                .disable_pplib_clock_request = true,
                .disable_pplib_wm_range = true,
                .underflow_assert_delay_us = 0xFFFFFFFF,
+               .use_max_lb = true
 };
 
 static void dcn10_dpp_destroy(struct dpp **dpp)
index a65efed63fbf9996a875b04763af168615f7658b..9ae12a87d685853fe1618f4a614d9ae497d31d2d 100644 (file)
@@ -112,7 +112,7 @@ struct _vcs_dpi_ip_params_st dcn2_0_ip = {
        .is_line_buffer_bpp_fixed = 0,
        .line_buffer_fixed_bpp = 0,
        .dcc_supported = true,
-       .max_line_buffer_lines = 12,
+       .max_line_buffer_lines = 32,
        .writeback_luma_buffer_size_kbytes = 12,
        .writeback_chroma_buffer_size_kbytes = 8,
        .writeback_chroma_line_buffer_width_pixels = 4,
@@ -180,7 +180,7 @@ static struct _vcs_dpi_ip_params_st dcn2_0_nv14_ip = {
        .is_line_buffer_bpp_fixed = 0,
        .line_buffer_fixed_bpp = 0,
        .dcc_supported = true,
-       .max_line_buffer_lines = 12,
+       .max_line_buffer_lines = 32,
        .writeback_luma_buffer_size_kbytes = 12,
        .writeback_chroma_buffer_size_kbytes = 8,
        .writeback_chroma_line_buffer_width_pixels = 4,
@@ -1075,6 +1075,7 @@ static const struct dc_debug_options debug_defaults_drv = {
                .scl_reset_length10 = true,
                .sanity_checks = false,
                .underflow_assert_delay_us = 0xFFFFFFFF,
+               .use_max_lb = true
 };
 
 static const struct dc_debug_options debug_defaults_diags = {
@@ -1091,6 +1092,7 @@ static const struct dc_debug_options debug_defaults_diags = {
                .scl_reset_length10 = true,
                .underflow_assert_delay_us = 0xFFFFFFFF,
                .enable_tri_buf = true,
+               .use_max_lb = true
 };
 
 void dcn20_dpp_destroy(struct dpp **dpp)
index 2c4e309d1836dbfc484209dc9f4afcb0f22f2c39..bd8e4c0f92db30a7926a3268fc8e124728fee972 100644 (file)
@@ -115,7 +115,7 @@ struct _vcs_dpi_ip_params_st dcn2_1_ip = {
        .is_line_buffer_bpp_fixed = 0,
        .line_buffer_fixed_bpp = 0,
        .dcc_supported = true,
-       .max_line_buffer_lines = 12,
+       .max_line_buffer_lines = 32,
        .writeback_luma_buffer_size_kbytes = 12,
        .writeback_chroma_buffer_size_kbytes = 8,
        .writeback_chroma_line_buffer_width_pixels = 4,
@@ -882,7 +882,9 @@ static const struct dc_debug_options debug_defaults_drv = {
                .scl_reset_length10 = true,
                .sanity_checks = true,
                .disable_48mhz_pwrdwn = false,
-               .usbc_combo_phy_reset_wa = true
+               .usbc_combo_phy_reset_wa = true,
+               .dmub_command_table = true,
+               .use_max_lb = true
 };
 
 static const struct dc_debug_options debug_defaults_diags = {
@@ -898,7 +900,8 @@ static const struct dc_debug_options debug_defaults_diags = {
                .disable_stutter = true,
                .disable_48mhz_pwrdwn = true,
                .disable_psr = true,
-               .enable_tri_buf = true
+               .enable_tri_buf = true,
+               .use_max_lb = true
 };
 
 enum dcn20_clk_src_array_id {
index 71e2d5e025710faf6079de2fc2622747afb1218a..a3ac7e275f3d685706225527526a6473c10dbe19 100644 (file)
@@ -120,7 +120,7 @@ struct _vcs_dpi_ip_params_st dcn3_0_ip = {
        .dcc_supported = true,
        .writeback_interface_buffer_size_kbytes = 90,
        .writeback_line_buffer_buffer_size = 0,
-       .max_line_buffer_lines = 12,
+       .max_line_buffer_lines = 32,
        .writeback_luma_buffer_size_kbytes = 12,  // writeback_line_buffer_buffer_size = 656640
        .writeback_chroma_buffer_size_kbytes = 8,
        .writeback_chroma_line_buffer_width_pixels = 4,
@@ -852,6 +852,7 @@ static const struct dc_debug_options debug_defaults_drv = {
        .dwb_fi_phase = -1, // -1 = disable,
        .dmub_command_table = true,
        .disable_psr = false,
+       .use_max_lb = true
 };
 
 static const struct dc_debug_options debug_defaults_diags = {
@@ -870,6 +871,7 @@ static const struct dc_debug_options debug_defaults_diags = {
        .dmub_command_table = true,
        .disable_psr = true,
        .enable_tri_buf = true,
+       .use_max_lb = true
 };
 
 void dcn30_dpp_destroy(struct dpp **dpp)
index c109d0cdab421d91460d001f21822d96226d30a7..039541924c9f05c7c359a40de6a3a7283e82533d 100644 (file)
@@ -116,7 +116,7 @@ struct _vcs_dpi_ip_params_st dcn3_01_ip = {
        .dcc_supported = true,
        .writeback_interface_buffer_size_kbytes = 90,
        .writeback_line_buffer_buffer_size = 656640,
-       .max_line_buffer_lines = 12,
+       .max_line_buffer_lines = 32,
        .writeback_luma_buffer_size_kbytes = 12,  // writeback_line_buffer_buffer_size = 656640
        .writeback_chroma_buffer_size_kbytes = 8,
        .writeback_chroma_line_buffer_width_pixels = 4,
index 4b659b63f75b3d3aea15df00bb218d25957904a9..98b464e8b25eb6677d0f645e9b348e577117835a 100644 (file)
@@ -101,7 +101,7 @@ struct _vcs_dpi_ip_params_st dcn3_02_ip = {
                .dcc_supported = true,
                .writeback_interface_buffer_size_kbytes = 90,
                .writeback_line_buffer_buffer_size = 0,
-               .max_line_buffer_lines = 12,
+               .max_line_buffer_lines = 32,
                .writeback_luma_buffer_size_kbytes = 12,  // writeback_line_buffer_buffer_size = 656640
                .writeback_chroma_buffer_size_kbytes = 8,
                .writeback_chroma_line_buffer_width_pixels = 4,
@@ -223,6 +223,7 @@ static const struct dc_debug_options debug_defaults_drv = {
                .underflow_assert_delay_us = 0xFFFFFFFF,
                .dwb_fi_phase = -1, // -1 = disable,
                .dmub_command_table = true,
+               .use_max_lb = true
 };
 
 static const struct dc_debug_options debug_defaults_diags = {
@@ -241,6 +242,7 @@ static const struct dc_debug_options debug_defaults_diags = {
                .dmub_command_table = true,
                .enable_tri_buf = true,
                .disable_psr = true,
+               .use_max_lb = true
 };
 
 enum dcn302_clk_src_array_id {