summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/amd/display
diff options
context:
space:
mode:
authorAustin Zheng <Austin.Zheng@amd.com>2024-10-18 14:55:21 -0400
committerAlex Deucher <alexander.deucher@amd.com>2024-11-04 11:33:32 -0500
commitd29bd94c4fc9f10e043a5a207c902b4261cb7fd7 (patch)
treeb646904a9f730e7836e88f585cf00bb81860aad4 /drivers/gpu/drm/amd/display
parentb95264cf75bd8840b10733c50678d154c02b5431 (diff)
downloadlinux-d29bd94c4fc9f10e043a5a207c902b4261cb7fd7.tar.gz
linux-d29bd94c4fc9f10e043a5a207c902b4261cb7fd7.tar.bz2
linux-d29bd94c4fc9f10e043a5a207c902b4261cb7fd7.zip
drm/amd/display: Do Not Fallback To SW Cursor If HW Cursor Required
[Why/How] Tearing can occur if there is a flip immediate plane and SW cursor. check_subvp_sw_cursor_fallback_req falls back to SW cursor if the stream has the potential to use subVP. Check for fallback not needed if HW cursor is required. e.g. Fullscreen gaming Reviewed-by: Dillon Varone <dillon.varone@amd.com> Signed-off-by: Austin Zheng <Austin.Zheng@amd.com> Signed-off-by: Zaeem Mohamed <zaeem.mohamed@amd.com> Tested-by: Daniel Wheeler <daniel.wheeler@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/display')
-rw-r--r--drivers/gpu/drm/amd/display/dc/core/dc_stream.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_stream.c b/drivers/gpu/drm/amd/display/dc/core/dc_stream.c
index 5d233c09d239..8b0632104aef 100644
--- a/drivers/gpu/drm/amd/display/dc/core/dc_stream.c
+++ b/drivers/gpu/drm/amd/display/dc/core/dc_stream.c
@@ -292,7 +292,9 @@ bool dc_stream_set_cursor_attributes(
* 2. If not subvp high refresh, for single display cases, if resolution is >= 5K and refresh rate < 120hz
* 3. If not subvp high refresh, for multi display cases, if resolution is >= 4K and refresh rate < 120hz
*/
- if (dc->debug.allow_sw_cursor_fallback && attributes->height * attributes->width * 4 > 16384) {
+ if (dc->debug.allow_sw_cursor_fallback &&
+ attributes->height * attributes->width * 4 > 16384 &&
+ !stream->hw_cursor_req) {
if (check_subvp_sw_cursor_fallback_req(dc, stream))
return false;
}