[PATCH 3/6] drm/syncobj: Do not allocate an array to store zeros

Michel Dänzer michel.daenzer at mailbox.org
Tue Jan 7 11:22:44 UTC 2025


On 2025-01-07 10:29, Tvrtko Ursulin wrote:
> 
> On 06/01/2025 17:16, Michel Dänzer wrote:
>> On 2025-01-02 20:44, Tvrtko Ursulin wrote:
>>>
>>> "vkgears -present-mailbox" average framerate:
>>>
>>>    Before: 21410.1089
>>>    After:  21609.7225
>>>
>>> With a disclaimer that measuring with vkgears feels a bit variable,
>>> nevertheless it did not look like noise.
>>
>> That's ~1% difference. IME the frame rate can easily vary more than that during a single run.
>>
>> The frame rate surely varies by more than 1 fps during each run, so comparing such large average values down to 4 digits after the decimal point doesn't seem very useful.
>>
>> Doing multiple (at least 3 or more each) before & after runs and comparing the distribution of individual measured values using something like ministat might confirm it's essentially noise, or give more confidence it's not.
> 
> I did multiple runs and I thought from the code changes it would be obvious there is some code there which should go.

FWIW, I didn't question that, in fact I don't have any particular opinion on the actual code changes. Claims of performance differences based on two numbers are just a pet peeve of mine. :)


> But fair enough, I agree ministat is common practice so I re-did it. Five ~100 second runs each kernel. Absolute numbers are a bit different before I turned on 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)
> 
> It's a small difference but every little helps.

This gives a lot of confidence in the performance gain, thanks! Would be great if you could incorporate at least a summary of this into a commit log somehow.


-- 
Earthling Michel Dänzer       \        GNOME / Xwayland / Mesa developer
https://redhat.com             \               Libre software enthusiast


More information about the dri-devel mailing list