09 September 2022, 06:00 | #1 |
Registered User
Join Date: Feb 2011
Location: Italy/Rome
Posts: 2,291
|
Blitter Speed
I did a simple to test blitters' speed with a channel enabled and disabled with cookie-cut operation. It seems that there is no difference at all! I've used 4 planes interleaved bitmap 320x256. My blitting is 48*124 pixel.
There is no visible difference at all. White coppers' line is full coockie-cut with ABCD enabled. Red one is full coockie-cut but only BCD enabled. It seems that A channel is well pipelined. Quite interesting [IMG][/IMG] |
09 September 2022, 07:32 | #2 |
Registered User
Join Date: Jun 2016
Location: europe
Posts: 1,039
|
That's because it has idle cycles (enabled A = fetch, disabled A = idle), so it takes the same period of time but fewer memory accesses.
|
09 September 2022, 11:45 | #3 |
Registered User
Join Date: Jul 2015
Location: The Netherlands
Posts: 3,411
|
You should be able to get the result you're looking for by using a Blitter channel combination of ACD instead of BCD, which does use all the cycles (barring one at the start and one at the end).
Just a matter of switching what's in channel A & B (I presume you have a pre-loaded value in A at the moment so that would be put in B instead) and rewrite the minterm to match the new channel combo Edit: hmm, I did forget about the first/last word mask there for a bit. That may be an issue with some types of blit, though not normally for a 'standard' cookie-cut blit. Last edited by roondar; 09 September 2022 at 12:00. |
09 September 2022, 13:11 | #4 |
Registered User
Join Date: Feb 2011
Location: Italy/Rome
Posts: 2,291
|
@roondar
I just wanted to inquire if it could be worth aid blitter with cpu during cookie-cut operation. Since it seems that A channel is for free, I won't do more tests |
09 September 2022, 14:26 | #5 |
Registered User
Join Date: Jun 2016
Location: europe
Posts: 1,039
|
During regular blits (e.g. cookie cut) A is not for free, it's the opposite. A is hardcoded, it always takes a slot, and if you disable it then the blitter waits/idles instead of reading from memory.
Related to what Roondar said, if your blit has size=3 words, using ABCD that's: **** **** **** (duration=12, 12 r/w + 0 idle) Using BCD: -*** -*** -*** (duration=12, 9 r/w + 3 idle) While using ABD or ACD: *** *** *** (duration=9, 9 r/w + 0 idle) So if you are e.g. blitting with a static 16-bit mask in bltXdat, it's better to put it in B or C, and not in A. Well, unless you specifically want idle cycles and prolonged blits so that the cpu has more freedom. |
09 September 2022, 21:43 | #6 |
Registered User
Join Date: Feb 2011
Location: Italy/Rome
Posts: 2,291
|
|
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
blitter speed and fmode | jotd | Coders. Asm / Hardware | 2 | 19 June 2021 14:38 |
Throttle Blitter speed | amilo3438 | support.WinUAE | 5 | 12 August 2017 19:47 |
Maximum blitter speed with pipelining | zero | Coders. Asm / Hardware | 41 | 25 November 2016 20:35 |
Blitter filling speed, how much? | sandruzzo | Coders. Asm / Hardware | 7 | 03 July 2015 14:38 |
WHDLoad blitter speed tests - needs you! | girv | project.WHDLoad | 44 | 22 February 2008 13:43 |
|
|