drm/amd/display: Do Not Fallback To SW Cursor If HW Cursor Required
authorAustin Zheng <Austin.Zheng@amd.com>
Fri, 18 Oct 2024 18:55:21 +0000 (14:55 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 4 Nov 2024 16:33:32 +0000 (11:33 -0500)
[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>
drivers/gpu/drm/amd/display/dc/core/dc_stream.c

index 5d233c09d23989a10cea766c5a86056951e9f1cc..8b0632104aef0737673f06ad19ec99e9734c3575 100644 (file)
@@ -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;
        }