[PATCH v2 0/7] A few drm_syncobj optimisations
Tvrtko Ursulin
tursulin at ursulin.net
Tue Jan 7 12:12:41 UTC 2025
On 06/01/2025 10:55, Tvrtko Ursulin wrote:
> From: Tvrtko Ursulin <tvrtko.ursulin at igalia.com>
>
> A small set of drm_syncobj optimisations which should make things a tiny bit
> more efficient on the CPU side of things.
>
> Improvement seems to be around 1.5%* more FPS if observed with "vkgears
> -present-mailbox" on a Steam Deck Plasma desktop, but I am reluctant to make a
> definitive claim on the numbers since there is some run to run variance. It
> would be best if someone could verify or suggest a more heavy workload for
> syncobjs.
>
> *)
> Before average fps after 200s: 22102
> After: 22426
Copying over from the discussion on v1 of the series:
Five ~100 second runs each kernel. Absolute numbers are a bit different
before I turned *off* some kernel hardening options since.
x before
+ after
+------------------------------------------------------------+
| x + |
| x x + |
| x xx ++++ |
| x x xx x ++++ |
| x xx x xx x+ ++++ |
| xxxxx xxxxxx+ ++++ + + |
| xxxxxxx xxxxxx+x ++++ +++ |
| x xxxxxxxxxxx*xx+* x++++++++ ++ |
| x x xxxxxxxxxxxx**x*+*+*++++++++ ++++ + |
| xx x xxxxxxxxxx*x****+***+**+++++ ++++++ |
|x xxx x xxxxx*x****x***********+*++**+++++++ + + +|
| |_______A______| |
| |______A_______| |
+------------------------------------------------------------+
N Min Max Median Avg Stddev
x 135 21697.58 22809.467 22321.396 22307.707 198.75011
+ 118 22200.746 23277.09 22661.4 22671.442 192.10609
Difference at 95.0% confidence
363.735 +/- 48.3345
1.63054% +/- 0.216672%
(Student's t, pooled s = 195.681)
> Tvrtko Ursulin (7):
> drm/syncobj: Remove unhelpful helper
> drm/syncobj: Do not allocate an array to store zeros when waiting
> drm/syncobj: Avoid one temporary allocation in drm_syncobj_array_find
> drm/syncobj: Use put_user in drm_syncobj_query_ioctl
> drm/syncobj: Avoid temporary allocation in
> drm_syncobj_timeline_signal_ioctl
> drm/syncobj: Add a fast path to drm_syncobj_array_wait_timeout
> drm/syncobj: Add a fast path to drm_syncobj_array_find
>
> drivers/gpu/drm/drm_syncobj.c | 281 ++++++++++++++++++----------------
> 1 file changed, 147 insertions(+), 134 deletions(-)
>
More information about the dri-devel
mailing list