Possible Performance Regression with Mesa

João Paulo Silva Goncalves jpaulo.silvagoncalves at gmail.com
Fri Apr 26 17:51:56 UTC 2024


Hi Daniel, 

On Fri, Apr 26, 2024 at 12:17:33PM +0100, Daniel Stone wrote:

> One thing you can try is to edit
> weston/libweston/backend-drm/state-propose.c and, inside
> dmabuf_feedback_maybe_update(), prevent action_needed from ever being
> set to ACTION_NEEDED_ADD_SCANOUT_TRANCHE. It would be interesting to
> know if this restores full performance.
 
Tried it. Same performance as before, so didn't solve the issue. I just 
removed the part of the code that set action_needed to ACTION_NEEDED_SCANOUT_TRANCHE.
 
Regards,
João Paulo Goncalves
 
diff --git a/libweston/backend-drm/state-propose.c b/libweston/backend-drm/state-propose.c
index 18a6d628..0ba23517 100644
--- a/libweston/backend-drm/state-propose.c
+++ b/libweston/backend-drm/state-propose.c
@@ -311,7 +311,9 @@ dmabuf_feedback_maybe_update(struct drm_device *device, struct weston_view *ev,
                action_needed = ACTION_NEEDED_REMOVE_SCANOUT_TRANCHE;
        /* Direct scanout may be possible if client re-allocates using the
         * params from the scanout tranche. */
-       } else if (try_view_on_plane_failure_reasons & (FAILURE_REASONS_ADD_FB_FAILED |
+       }
+       #if 0
+       else if (try_view_on_plane_failure_reasons & (FAILURE_REASONS_ADD_FB_FAILED |
                                                        FAILURE_REASONS_FB_FORMAT_INCOMPATIBLE |
                                                        FAILURE_REASONS_DMABUF_MODIFIER_INVALID |
                                                        FAILURE_REASONS_GBM_BO_IMPORT_FAILED |
@@ -321,6 +323,7 @@ dmabuf_feedback_maybe_update(struct drm_device *device, struct weston_view *ev,
        } else if (try_view_on_plane_failure_reasons == FAILURE_REASONS_NONE) {
                action_needed = ACTION_NEEDED_ADD_SCANOUT_TRANCHE;
        }
+       #endif

        /* No actions needed, so disarm timer and return */
        if (action_needed == ACTION_NEEDED_NONE ||


More information about the mesa-dev mailing list