[AD] Patch for performance issues in i386 blitters

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


Attached are diffs which fix a few minor performance issues in the x86 
blitters: stack misalignment and unnecessary operation size prefixes.  
Changes are not expected to negatively impact any target CPU, as overall code 
structure remains intact.

Files affected:
 src/i386/iblit8.s
 src/i386/iblit16.s
 src/i386/iblit24.s
 src/i386/iblit32.s
 src/i386/blit.inc

Tests run on PMMX-200 w/ PCI NVidia TNT video.  All tests run 3 times with 
results, mean results, and mean change listed.

CLR  = Clear(320x200)
CLRX = Clear(320x200) w/ MMX
BSS  = Blit Screen->Screen
BSSA = Blit Screen->Screen (Aligned)
BMS  = Blit Memory->Screen
BMSA = Blit Memory->Screen (Aligned)
MBMS = Masked Blit Memory->Screen

320x200x8 VESA2L
*Before*  CLR  CLRX   BSS  BSSA   BMS  BMSA  MBMS
Test 1:  1270  2444  2170  2420 12055 28553 15113
Test 2:  1270  2413  2172  2421 12060 28630 15122
Test 3:  1259  2451  2190  2429 12006 28796 15149
Mean  :  1266  2436  2177  2423 12040 28660 15128

After:
*After*   CLR  CLRX   BSS  BSSA   BMS  BMSA  MBMS
Test 1:  1276  2510  2200  2423 12124 30747 15946
Test 2:  1278  2502  2208  2465 12140 31061 15795
Test 3:  1273  2500  2194  2466 12101 30945 15962
Mean  :  1276  2504  2201  2451 12122 30918 15901
Change: +0.8% +2.8% +1.1% +1.2% +0.7% +7.9% +5.1%


320x200x16 VESA2L
*Before*  CLR  CLRX   BSS  BSSA   BMS  BMSA  MBMS
Test 1:   645  1253  2049  2190 10527 20276 10257
Test 2:   643  1264  2062  2192 10417 20260 10294
Test 3:   640  1261  2049  2202 10430 20211 10152
Mean  :   643  1259  2053  2195 10458 20249 10234

After:
*After*   CLR  CLRX   BSS  BSSA   BMS  BMSA  MBMS
Test 1:   677  1328  2061  2213 10490 21483 10415
Test 2:   673  1333  2055  2204 10660 21324 10424
Test 3:   674  1330  2055  2228 10585 21256 10461
Mean  :   675  1330  2057  2215 10578 21354 10433
Change: +5.0% +5.6% +0.2% +0.9% +1.1% +5.5% +1.9%


320x200x32 VESA2L
*Before*  CLR   BSS  BSSA   BMS  BMSA  MBMS
Test 1:   326   609   610  9010  9071 11615
Test 2:   326   615   609  8966  9518 11716
Test 3:   324   610   609  9071  9037 11607
Mean  :   325   611   609  9016  9209 11646

*After*   CLR   BSS  BSSA   BMS  BMSA  MBMS
Test 1:   326   614   611  9292  9254 12002
Test 2:   326   615   612  9290  9181 12047
Test 3:   325   608   609  9289  9336 11999
Mean  :   326   612   611  9290  9257 12016
Change: +0.3% +0.2% +0.3% +3.0% +0.5% +3.2%

-Charles Bilyue'

Attachment: BLITTE~1.ZIP
Description: Zip archive



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