From: Peterson <peterson....@amd.com>

[WHY]
When using a sw cursor and flip immediate, the plane that is flipping
immediately will do partial updates causing tearing.
When on certain displays, subvp is expected based on
timings but should be disabled in specific use cases that are not
accounted for.

[HOW]
This was fixed by improving the timings check by using the hw cursor
required flag to cover the unaccounted use cases.

Reviewed-by: Austin Zheng <austin.zh...@amd.com>
Signed-off-by: Peterson <peterson....@amd.com>
Signed-off-by: Fangzhi Zuo <jerry....@amd.com>
---
 drivers/gpu/drm/amd/display/dc/core/dc.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/display/dc/core/dc.c 
b/drivers/gpu/drm/amd/display/dc/core/dc.c
index 49fe7dcf9372..dc14c0d05e8f 100644
--- a/drivers/gpu/drm/amd/display/dc/core/dc.c
+++ b/drivers/gpu/drm/amd/display/dc/core/dc.c
@@ -6056,7 +6056,7 @@ void dc_query_current_properties(struct dc *dc, struct 
dc_current_properties *pr
        bool subvp_sw_cursor_req = false;
 
        for (i = 0; i < dc->current_state->stream_count; i++) {
-               if (check_subvp_sw_cursor_fallback_req(dc, 
dc->current_state->streams[i])) {
+               if (check_subvp_sw_cursor_fallback_req(dc, 
dc->current_state->streams[i]) && 
!dc->current_state->streams[i]->hw_cursor_req) {
                        subvp_sw_cursor_req = true;
                        break;
                }
-- 
2.43.0

Reply via email to