From 0df1054d060204d6f38082e7c8532571933aba41 Mon Sep 17 00:00:00 2001 From: chiachih Date: Sat, 27 Apr 2024 14:27:59 +0800 Subject: [PATCH] amd/vpelib: adding blend gamma bypass - added bypass blend - bypass blnd Reviewed-by: Jesse Agate Acked-by: Jack Chih Signed-off-by: Tiberiu Visan --- Part-of: --- src/amd/vpelib/inc/vpe_types.h | 2 ++ src/amd/vpelib/src/chip/vpe10/vpe10_mpc.c | 3 ++- src/amd/vpelib/src/core/resource.c | 29 ++++++++++++----------- src/amd/vpelib/src/core/vpelib.c | 8 +++++++ 4 files changed, 27 insertions(+), 15 deletions(-) diff --git a/src/amd/vpelib/inc/vpe_types.h b/src/amd/vpelib/inc/vpe_types.h index f3781181060..4dceadf21b1 100644 --- a/src/amd/vpelib/inc/vpe_types.h +++ b/src/amd/vpelib/inc/vpe_types.h @@ -337,6 +337,7 @@ struct vpe_debug_options { uint32_t bypass_ogam : 1; uint32_t bypass_dpp_gamut_remap : 1; uint32_t bypass_post_csc : 1; + uint32_t bypass_blndgam : 1; uint32_t clamping_setting : 1; uint32_t expansion_mode : 1; uint32_t bypass_per_pixel_alpha : 1; @@ -361,6 +362,7 @@ struct vpe_debug_options { uint32_t bypass_ogam : 1; uint32_t bypass_dpp_gamut_remap : 1; uint32_t bypass_post_csc : 1; + uint32_t bypass_blndgam : 1; uint32_t clamping_setting : 1; uint32_t bypass_per_pixel_alpha : 1; uint32_t dpp_crc_ctrl : 1; diff --git a/src/amd/vpelib/src/chip/vpe10/vpe10_mpc.c b/src/amd/vpelib/src/chip/vpe10/vpe10_mpc.c index 533d215431c..d55095ff61b 100644 --- a/src/amd/vpelib/src/chip/vpe10/vpe10_mpc.c +++ b/src/amd/vpelib/src/chip/vpe10/vpe10_mpc.c @@ -1142,7 +1142,8 @@ void vpe10_mpc_program_1dlut(struct mpc *mpc, const struct pwl_params *params, e { PROGRAM_ENTRY(); - if (params == NULL) { + if ((params == NULL) || (vpe_priv == NULL) || + (vpe_priv->init.debug.bypass_blndgam == true)) { // the bypass flag is used in debug mode to skip this block entirely REG_SET(VPMPCC_MCM_1DLUT_CONTROL, REG_DEFAULT(VPMPCC_MCM_1DLUT_CONTROL), VPMPCC_MCM_1DLUT_MODE, 0); diff --git a/src/amd/vpelib/src/core/resource.c b/src/amd/vpelib/src/core/resource.c index 3644a83a89f..1a367c90ec8 100644 --- a/src/amd/vpelib/src/core/resource.c +++ b/src/amd/vpelib/src/core/resource.c @@ -36,20 +36,20 @@ #endif static const struct vpe_debug_options debug_defaults = { - .flags = {0}, - .cm_in_bypass = 0, - .vpcnvc_bypass = 0, - .mpc_bypass = 0, - .identity_3dlut = 0, - .sce_3dlut = 0, - .disable_reuse_bit = 0, - .bg_bit_depth = 0, - .bypass_gamcor = 0, - .bypass_ogam = 0, - .bypass_dpp_gamut_remap = 0, - .bypass_post_csc = 0, - .bg_color_fill_only = 0, - .assert_when_not_support = 0, + .flags = {0}, + .cm_in_bypass = 0, + .vpcnvc_bypass = 0, + .mpc_bypass = 0, + .identity_3dlut = 0, + .sce_3dlut = 0, + .disable_reuse_bit = 0, + .bg_bit_depth = 0, + .bypass_gamcor = 0, + .bypass_ogam = 0, + .bypass_dpp_gamut_remap = 0, + .bypass_post_csc = 0, + .bg_color_fill_only = 0, + .assert_when_not_support = 0, .enable_mem_low_power = { .bits = @@ -77,6 +77,7 @@ static const struct vpe_debug_options debug_defaults = { .mpc_crc_ctrl = 0, .visual_confirm_params = {{{0}}}, .skip_optimal_tap_check = 0, + .bypass_blndgam = 0 }; enum vpe_ip_level vpe_resource_parse_ip_version( diff --git a/src/amd/vpelib/src/core/vpelib.c b/src/amd/vpelib/src/core/vpelib.c index 9c394906e63..5970deca71c 100644 --- a/src/amd/vpelib/src/core/vpelib.c +++ b/src/amd/vpelib/src/core/vpelib.c @@ -41,6 +41,10 @@ static void override_debug_option( struct vpe_debug_options *debug, const struct vpe_debug_options *user_debug) { + if ((debug == NULL) || (user_debug == NULL)) { + return; + } + if (user_debug->flags.bg_bit_depth) debug->bg_bit_depth = user_debug->bg_bit_depth; @@ -114,6 +118,10 @@ static void override_debug_option( if (user_debug->flags.skip_optimal_tap_check) debug->skip_optimal_tap_check = user_debug->skip_optimal_tap_check; + + if (user_debug->flags.bypass_blndgam) + debug->bypass_blndgam = user_debug->flags.bypass_blndgam; + } #ifdef VPE_BUILD_1_1