dri-devel.lists.freedesktop.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/7] A few drm_syncobj optimisations
@ 2025-03-18 15:54 Tvrtko Ursulin
  2025-03-18 15:54 ` [PATCH 1/7] drm/syncobj: Remove unhelpful helper Tvrtko Ursulin
                   ` (7 more replies)
  0 siblings, 8 replies; 25+ messages in thread
From: Tvrtko Ursulin @ 2025-03-18 15:54 UTC (permalink / raw)
  To: dri-devel; +Cc: kernel-dev, Tvrtko Ursulin

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. But, as
suggested by Michel Dänzer, I did do a five ~100 second runs on the each kernel
to be able to show the ministat analysis.

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(-)

-- 
2.48.0

^ permalink raw reply	[flat|nested] 25+ messages in thread
* [PATCH v2 0/7] A few drm_syncobj optimisations
@ 2025-01-06 10:55 Tvrtko Ursulin
  2025-01-06 10:55 ` [PATCH 3/7] drm/syncobj: Avoid one temporary allocation in drm_syncobj_array_find Tvrtko Ursulin
  0 siblings, 1 reply; 25+ messages in thread
From: Tvrtko Ursulin @ 2025-01-06 10:55 UTC (permalink / raw)
  To: dri-devel; +Cc: kernel-dev, Tvrtko Ursulin

From: Tvrtko Ursulin <tvrtko.ursulin@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

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(-)

-- 
2.47.1


^ permalink raw reply	[flat|nested] 25+ messages in thread

end of thread, other threads:[~2025-03-25 21:10 UTC | newest]

Thread overview: 25+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-03-18 15:54 [PATCH 0/7] A few drm_syncobj optimisations Tvrtko Ursulin
2025-03-18 15:54 ` [PATCH 1/7] drm/syncobj: Remove unhelpful helper Tvrtko Ursulin
2025-03-24 21:38   ` Maíra Canal
2025-03-25  9:12     ` Tvrtko Ursulin
2025-03-18 15:54 ` [PATCH 2/7] drm/syncobj: Do not allocate an array to store zeros when waiting Tvrtko Ursulin
2025-03-24 21:55   ` Maíra Canal
2025-03-18 15:54 ` [PATCH 3/7] drm/syncobj: Avoid one temporary allocation in drm_syncobj_array_find Tvrtko Ursulin
2025-03-24 22:29   ` Maíra Canal
2025-03-25  9:26     ` Tvrtko Ursulin
2025-03-18 15:54 ` [PATCH 4/7] drm/syncobj: Use put_user in drm_syncobj_query_ioctl Tvrtko Ursulin
2025-03-24 22:32   ` Maíra Canal
2025-03-18 15:54 ` [PATCH 5/7] drm/syncobj: Avoid temporary allocation in drm_syncobj_timeline_signal_ioctl Tvrtko Ursulin
2025-03-24 22:50   ` Maíra Canal
2025-03-18 15:54 ` [PATCH 6/7] drm/syncobj: Add a fast path to drm_syncobj_array_wait_timeout Tvrtko Ursulin
2025-03-24 23:00   ` Maíra Canal
2025-03-25  9:33     ` Tvrtko Ursulin
2025-03-25 19:56       ` Maíra Canal
2025-03-18 15:54 ` [PATCH 7/7] drm/syncobj: Add a fast path to drm_syncobj_array_find Tvrtko Ursulin
2025-03-24 23:06   ` Maíra Canal
2025-03-25  9:54     ` Tvrtko Ursulin
2025-03-25 20:12       ` Maíra Canal
2025-03-24 23:17 ` [PATCH 0/7] A few drm_syncobj optimisations Maíra Canal
2025-03-25  9:57   ` Tvrtko Ursulin
2025-03-25 21:10     ` Maíra Canal
  -- strict thread matches above, loose matches on Subject: below --
2025-01-06 10:55 [PATCH v2 " Tvrtko Ursulin
2025-01-06 10:55 ` [PATCH 3/7] drm/syncobj: Avoid one temporary allocation in drm_syncobj_array_find Tvrtko Ursulin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).