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