Commit 6d9ac917 authored by Krunoslav Kovac's avatar Krunoslav Kovac Committed by Alex Deucher
Browse files

drm/amd/display: [RS4][RV] SDR Brightness Boost



We assume FP16 1.0 frame buffer value maps to 80 nits.
DC changes are to make this configurable.

Signed-off-by: default avatarKrunoslav Kovac <Krunoslav.Kovac@amd.com>
Reviewed-by: default avatarAnthony Koo <Anthony.Koo@amd.com>
Acked-by: default avatarHarry Wentland <harry.wentland@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 529c690b
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -1057,6 +1057,9 @@ static enum surface_update_type get_plane_info_update_type(const struct dc_surfa
	if (u->plane_info->input_tf != u->surface->input_tf)
		update_flags->bits.input_tf_change = 1;

	if (u->plane_info->sdr_white_level != u->surface->sdr_white_level)
		update_flags->bits.output_tf_change = 1;

	if (u->plane_info->horizontal_mirror != u->surface->horizontal_mirror)
		update_flags->bits.horizontal_mirror_change = 1;

@@ -1101,7 +1104,8 @@ static enum surface_update_type get_plane_info_update_type(const struct dc_surfa
			|| update_flags->bits.stereo_format_change
			|| update_flags->bits.gamma_change
			|| update_flags->bits.bpp_change
			|| update_flags->bits.bandwidth_change)
			|| update_flags->bits.bandwidth_change
			|| update_flags->bits.output_tf_change)
		return UPDATE_TYPE_FULL;

	return UPDATE_TYPE_MED;
+5 −0
Original line number Diff line number Diff line
@@ -367,6 +367,8 @@ struct dc_transfer_func {
	struct dc_transfer_func_distributed_points tf_pts;
	enum dc_transfer_func_type type;
	enum dc_transfer_func_predefined tf;
	/* FP16 1.0 reference level in nits, default is 80 nits, only for PQ*/
	uint32_t sdr_ref_white_level;
	struct dc_context *ctx;
};

@@ -397,6 +399,7 @@ union surface_update_flags {
		uint32_t position_change:1;
		uint32_t in_transfer_func_change:1;
		uint32_t input_csc_change:1;
		uint32_t output_tf_change:1;

		/* Full updates */
		uint32_t new_plane:1;
@@ -428,6 +431,7 @@ struct dc_plane_state {
	struct dc_bias_and_scale *bias_and_scale;
	struct csc_transform input_csc_color_matrix;
	struct fixed31_32 coeff_reduction_factor;
	uint32_t sdr_white_level;

	// TODO: No longer used, remove
	struct dc_hdr_static_metadata hdr_static_ctx;
@@ -464,6 +468,7 @@ struct dc_plane_info {
	enum plane_stereo_format stereo_format;
	enum dc_color_space color_space;
	enum color_transfer_func input_tf;
	unsigned int sdr_white_level;
	bool horizontal_mirror;
	bool visible;
	bool per_pixel_alpha;