Re: [AD] Allegro on icc

[ Thread Index | Date Index | More lists.liballeg.org/allegro-developers Archives ]


> Recompiling only that file with gcc the issue and produces the correct 
> output. I'll recompile with full optimizations and build the font.c file 
> with gcc (and the same optimization switches as for icc) and post some 
> timing tests (there's no automatic benchmark testing, is there?) in a 
> moment.

And here they are.
Notice that putpixel is significantly faster for the intel compiler, but 
some ofthe other primitives are not for SOLID drawing. ICC is consistently 
faster for all other drawing modes.

ICC is consistently slower for blitting but roughly on par or slightly 
faster for sprite drawing. The compiled sprite functionality is a freak 
due to the fact that the ICC version is compiled without compiled sprite 
support because it compiled without inline asm support.

Of course, this is only one benchmark and I wouldn't suggest that this is 
solid enough to base any real conclusions on. ICC may also have some 
specialized optimization options worth investigating I have not looked at 
here.

Evert
Comparing speed of GCC 3.3.1 (with inline asm and -march=-i686) and ICC 8.0
Allegro version 4.1.12 WIP
---------------------------------------------------------------------------
Misc. stuff:
                        gcc         icc
clear_bitmap(320x200):  4260        2547
fixmul():               9590244     9291351
fixdiv():               8354831     4398782
fixsqrt():              11242678    5869424
fixasin():              13763287    12783877
fixacos():              13784172    13602487
fixatan():              3835357     6234118
fixatan2():             2848445     2879236


Memory profile:

Memory bitmap size: 640x480
Color depth: 16 bpp

DRAW_MODE_SOLID results:
                      gcc          icc
    putpixel()      - 1275635      1400304
    hline()         - 772163       669995
    vline()         - 470129       548294
    line()          - 119833       139547
    rectfill()      - 76402        55816
    circle()        - 67251        88575
    circlefill()    - 65305        51536
    ellipse()       - 45408        53250
    ellipsefill()   - 46612        40032
    arc()           - 79035        84761
    triangle()      - 55042        47732


DRAW_MODE_XOR results:
                      gcc          icc
    putpixel()      - 1226056      1356849
    hline()         - 507707       661205
    vline()         - 152715       245381
    line()          - 91777        122519
    rectfill()      - 22961        41359
    circle()        - 48701        71620
    circlefill()    - 24203        40727
    ellipse()       - 38331        47723
    ellipsefill()   - 22127        35047
    arc()           - 67171        76127
    triangle()      - 26362        39205


DRAW_MODE_COPY_PATTERN results:
                      gcc          icc
    putpixel()      - 863018       909672
    hline()         - 416731       511177
    vline()         - 145837       236463
    line()          - 96580        118461
    rectfill()      - 20995        33973
    circle()        - 57650        73616
    circlefill()    - 21687        33175
    ellipse()       - 39577        48260
    ellipsefill()   - 20339        28610
    arc()           - 68464        76647
    triangle()      - 24691        32975


DRAW_MODE_SOLID_PATTERN results:
                      gcc          icc
    putpixel()      - 844910       922197
    hline()         - 331278       437814
    vline()         - 141127       227640
    line()          - 91182        113371
    rectfill()      - 13981        23643
    circle()        - 53246        71475
    circlefill()    - 14293        23505
    ellipse()       - 37307        45833
    ellipsefill()   - 14131        21903
    arc()           - 66052        73267
    triangle()      - 16563        25626


DRAW_MODE_MASKED_PATTERN results:
                      gcc          icc
    putpixel()      - 856385       911577
    hline()         - 378246       441796
    vline()         - 153963       230971
    line()          - 104669       113006
    rectfill()      - 17611        25457
    circle()        - 61232        69668
    circlefill()    - 18348        24485
    ellipse()       - 41515        45572
    ellipsefill()   - 17566        23030
    arc()           - 68702        70655
    triangle()      - 20770        25641


DRAW_MODE_TRANS results:
                      gcc          icc
    putpixel()      - 791808       835854
    hline()         - 135307       223159
    vline()         - 103297       175381
    line()          - 55200        86086
    rectfill()      - 4316         7298
    circle()        - 27842        51076
    circlefill()    - 4149         7834
    ellipse()       - 24664        37120
    ellipsefill()   - 4358         8299
    arc()           - 46291        61599
    triangle()      - 5903         9630


Other functions:
                                   gcc          icc
    textout()                    - 60401        65910
    vram->vram blit()            - N/A          N/A    
    aligned vram->vram blit()    - N/A          N/A    
    blit() from memory           - 182710       134807 
    aligned blit() from memory   - 224039       131702 
    vram->vram masked_blit()     - N/A          N/A    
    masked_blit() from memory    - 54433        46505  
    draw_sprite()                - 100869       103286 
    draw_rle_sprite()            - 161240       164027 
    draw_compiled_sprite()       - 509685       168038 
    draw_trans_sprite()          - 29396        48191  
    draw_trans_rle_sprite()      - 34756        57158  
    draw_lit_sprite()            - 29028        50437  
    draw_lit_rle_sprite()        - 46521        59630  


Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/