16 July 2019, 06:13 | #1 |
Registered User
Join Date: Jan 2019
Location: Brisbane
Posts: 99
|
Do these timings look right
Using blitter to perform some performance tests right now.. side project fun.
Orange section is using 50% clear using Blitter (Nasty cleared) and 50% CPU Wait blitter called immediately after the CPU code completes. Its called at the start of the vertical blank interrupt. (total approx 30 scanlines) Blue section is 3 individual blits, each 48x48x3 bitplanes using all channels, masked, and interleaved source+dest data. I add another 1 word for shifting. So really 64x48x3... These more or less scale linearly when blitting the same source data. ie. 1 blit is using only 33% of the blue time. waitBlitter called between individual blits. (total approx 57 scanlines) (or approx 19 scan lines per 64x48x3 bitplane blit) Green is free CPU time once waitBlitter is called (with nasty bit set) I wanted to check if these timing seem reasonable. CPU shouldnt matter if I understand right, Blitter speed should not be impacted here. The CPU is an 040 under WinUAE. So important for the clear... Most accurate emulation settings I could find. Its very similar running on my A1200/060 How does it look? Did I do something silly Last edited by Auscoder; 16 July 2019 at 06:36. |
16 July 2019, 09:11 | #2 |
WinUAE developer
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,505
|
It probably is correct if CPU is not doing any chipset bus accesses during the blit because 68040+ CPU speed and memory accesses are far from accurately emulated. (Number of accesses is closer to real if memory cycle exact and data cache emulation is enabled but timing between accesses is still going to be far from correct)
If blitter nasty is off, CPU accesses to chipset bus (which includes custom registers = nasty off and polling bltbusy wastes blitter cycles) will affect blitter speed. If you do blitter clear, you can keep blitter nasty enabled because clear cycle sequence uses every other cycle, CPU will always have cycles available. |
17 July 2019, 02:40 | #3 | |||
Registered User
Join Date: Jan 2019
Location: Brisbane
Posts: 99
|
Quote:
Quote:
Quote:
|
|||
17 July 2019, 08:37 | #4 | ||
Registered User
Join Date: Nov 2006
Location: Stockholm, Sweden
Posts: 237
|
Quote:
Particularly these sections toward the end of the page: Quote:
|
||
17 July 2019, 09:35 | #5 |
WinUAE developer
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,505
|
Note that blitter nasty works exactly like described, it is not just blitter cycles that count but _any_ 3 consecutive chipset bus cycles that stalls the CPU.
This is important difference because you might think that for example blitter clear or linedraw is "immune" to blitter nasty=0 because it only uses every other cycle. But if it is interleaved with for example bitplane and copper cycles, CPU may start stealing blitter cycles. |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
68020+ instruction timings? | oRBIT | Coders. Asm / Hardware | 3 | 23 September 2017 12:38 |
Floppy drive timings and NTSC floppy unreliability | mark_k | support.WinUAE | 6 | 02 February 2013 22:03 |
Fastest possible but maintain chipset timings | Kintaro | support.WinUAE | 0 | 26 July 2005 14:39 |
CPU emulation and timings....... | Bloodwych | support.WinUAE | 1 | 04 August 2003 16:00 |
|
|