drm/amd/display: Calculate scaling ratios on every medium/full update
[Why] If a plane isn't being actively enabled or disabled then DC won't always recalculate scaling rects and ratios for the primary plane. This results in only a partial or corrupted rect being displayed on the screen instead of scaling to fit the screen. [How] Add back the logic to recalculate the scaling rects into dc_commit_updates_for_stream since this is the expected place to do it in DC. This was previously removed a few years ago to fix an underscan issue but underscan is still functional now with this change - and it should be, since this is only updating to the latest plane state getting passed in. Signed-off-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com> Reviewed-by: Aric Cyr <Aric.Cyr@amd.com> Acked-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
		
							parent
							
								
									3efcaf77de
								
							
						
					
					
						commit
						3bae20137c
					
				| @ -2464,7 +2464,7 @@ void dc_commit_updates_for_stream(struct dc *dc, | ||||
| 	enum surface_update_type update_type; | ||||
| 	struct dc_state *context; | ||||
| 	struct dc_context *dc_ctx = dc->ctx; | ||||
| 	int i; | ||||
| 	int i, j; | ||||
| 
 | ||||
| 	stream_status = dc_stream_get_status(stream); | ||||
| 	context = dc->current_state; | ||||
| @ -2502,6 +2502,17 @@ void dc_commit_updates_for_stream(struct dc *dc, | ||||
| 
 | ||||
| 		copy_surface_update_to_plane(surface, &srf_updates[i]); | ||||
| 
 | ||||
| 		if (update_type >= UPDATE_TYPE_MED) { | ||||
| 			for (j = 0; j < dc->res_pool->pipe_count; j++) { | ||||
| 				struct pipe_ctx *pipe_ctx = | ||||
| 					&context->res_ctx.pipe_ctx[j]; | ||||
| 
 | ||||
| 				if (pipe_ctx->plane_state != surface) | ||||
| 					continue; | ||||
| 
 | ||||
| 				resource_build_scaling_params(pipe_ctx); | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	copy_stream_update_to_stream(dc, context, stream, stream_update); | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user