Re: [AD] Color convertors

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


> This patch (hopefully) fixes the pairing problem in the MMX code.
> I can't tested the *->15 or *->24 convertors, so someone else will
> have to do the testing.

Here are the results:

K6-III 400 Mhz, MMX enabled, Matrox G200

Win95 OSR2, 800x600x16 desktop:

640x480x8 window:

  SOLID results:       former code      new code    new code
                                                      (unpaired)  (paired)
    putpixel()      - 13924            12727         12692
    hline()         - 32795            31432           30945
    vline()         - 24546            23588           23543
    line()          - 509              443              461
    rectfill()      - 3290             2997         2946
    circle()        - 336              304          305
    circlefill()    - 604              576         569
    ellipse()       - 347              301      301
    ellipsefill()   - 602              586      577
    arc()           - 583              522      538
    triangle()      - 620              592     590

Other functions:

    textout()                    - 2346     2118     2142
    vram->vram blit()            - 5647     5052     5073
    aligned vram->vram blit()    - 5843     5267     5259
    blit() from memory           - 688      610     613
    aligned blit() from memory   - 691      611     617
    vram->vram masked_blit()     - 5436     4878     4909
    masked_blit() from memory    - 679      605     607
    draw_sprite()                - 682      609     612
    draw_rle_sprite()            - 688      611     617
    draw_compiled_sprite()       - 568      612     617
    draw_trans_sprite()          - 679      599     605
    draw_trans_rle_sprite()      - 683      606     610
    draw_lit_sprite()            - 677      605     605
    draw_lit_rle_sprite()        - 686      609     614



640x480x32 window:

  SOLID results:       former code        new code     new code
                                                     (unpaired)   (paired)
    putpixel()      - 11985             12158       12218
    hline()         - 30793             30617       30429
    vline()         - 23243             22545       22755
    line()          - 430               409       432
    rectfill()      - 2681              2728       2679
    circle()        - 277               274       282
    circlefill()    - 563               573       559
    ellipse()       - 279               279       284
    ellipsefill()   - 565               578       573
    arc()           - 482               489       481
    triangle()      - 586               586       580

Other functions:

    textout()                    - 1944     1950     1984
    vram->vram blit()            - 4700     4642     4680
    aligned vram->vram blit()    - 4866     4850      4873
    blit() from memory           - 571      561      579
    aligned blit() from memory   - 570      564      580
    vram->vram masked_blit()     - 4366     4293      4319
    masked_blit() from memory    - 569      563      577
    draw_sprite()                - 559      550      561
    draw_rle_sprite()            - 559      556      563
    draw_compiled_sprite()       - 564      556      567
    draw_trans_sprite()          - 544      539      548
    draw_trans_rle_sprite()      - 552      546      552
    draw_lit_sprite()            - 540      537     550
    draw_lit_rle_sprite()        - 550      540      552



Win95 OSR2, 800x600x32 desktop:

640x480x8 window:

  SOLID results:       former code        new code     new code
                                                       (unpaired)  (paired)
    putpixel()      - 8340             8118      8208
    hline()         - 26514             26084      25720
    vline()         - 18594             18288      18509
    line()          - 267               236      244
    rectfill()      - 1739              1575     1616
    circle()        - 173               159      163
    circlefill()    - 503               498      495
    ellipse()       - 170               165     167
    ellipsefill()   - 521               503      495
    arc()           - 291               291      280
    triangle()      - 532               523     526

Other functions:

    textout()                    - 1259     1206     1212
    vram->vram blit()            - 3018     2869      2919
    aligned vram->vram blit()    - 3132     2989      3044
    blit() from memory           - 343      326      328
    aligned blit() from memory   - 345      327      329
    vram->vram masked_blit()     - 2947     2832      2844
    masked_blit() from memory    - 341      325      328
    draw_sprite()                - 343      326      328
    draw_rle_sprite()            - 343      326      325
    draw_compiled_sprite()       - 343      326      329
    draw_trans_sprite()          - 341      322      326
    draw_trans_rle_sprite()      - 343      324      328
    draw_lit_sprite()            - 341      326     326
    draw_lit_rle_sprite()        - 342      324      329


They look a little better. I'm going to further investigate this MMX
code.

---
Eric Botcazou
ebotcazou@xxxxxxxxxx



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