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

Tvrtko Ursulin tvrtko.ursulin at igalia.com
Tue Jan 7 12:37:39 UTC 2025


On 07/01/2025 11:22, Michel Dänzer wrote:
> 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.

Thanks! Now lets hope someone can spare the time to review.

I pasted the graph into a reply to cover letter of v2 of the series. 
That's my best idea since it is a series with a few small improvements 
which add up to a total.

Regards,

Tvrtko


More information about the dri-devel mailing list