[Pixman] [PATCH v2 03/11] vmx: implement fast path vmx_fill

Oded Gabbay oded.gabbay at gmail.com
Thu Jul 16 05:09:03 PDT 2015


On Wed, Jul 15, 2015 at 9:45 PM, Adam Jackson <ajax at redhat.com> wrote:
> On Wed, 2015-07-15 at 16:36 +0300, Oded Gabbay wrote:
>
>> +    else
>> +    {
>> +     return FALSE;
>> +    }
>> +
>> +    vfiller = create_mask_1x32_128(&filler);
>
> This appears to be less of a regression for small operations if you
> fall back to the C code for byte_width < 64 here.  That seems to be
> about the optimal magic number to use for a cutoff.  Making it 32
> doesn't affect 10x10 fill at 32bpp (40 bytes wide), but making it 128
> severely punishes 100x100 fill at 8bpp (100 bytes wide).
>
> x11perf -rect{1,10,100,500} at 32bpp:
>
>     master             vmx_fill    vmx_fill for >=64   Operation
> ----------  -------------------  -------------------   -----------------
> 19644005.2  16586597.0 (0.844x)  17323615.4 (0.882x)   1x1 rectangle
>  6880326.9   5516644.2 (0.802x)   6619153.8 (0.962x)   10x10 rectangle
>   126143.3    456974.3 (3.623x)    474572.7 (3.762x)   100x100 rectangle
>     5421.5     29948.8 (5.524x)     29519.3 (5.445x)   500x500 rectangle
>
> - ajax

ajax,

I checked your suggestion in cairo benchmark (trimmed) and I got a
minor slowdown vs. the original patch:

Slowdowns
=========
t-firefox-scrolling  1197.96 (1199.58 0.17%) -> 1303.35 (1306.72
0.16%):  1.09x slowdown
t-firefox-asteroids  492.77 (509.11 2.49%) -> 552.92 (575.34 2.88%):
1.12x slowdown

Oded


More information about the Pixman mailing list