GPU Timing at Game Scale
Measures GPU drawing time for screen-sized fills and draws and the time the display fetch takes from drawing in each video mode.
| Machine | SCPH-5501 (NTSC) |
|---|---|
| Program | gputiming2 |
This is an old revision of this page, as edited by RemmyLee at 05:11, 23 October 2026. Edit this revision | Latest revision
Overview
The program times the commands a game sends at full scale: screen-sized fills, copies and uploads, polygons by area and shape, ordering-table lists and a frame-like list. Root counter 2 counts system clock cycles from just before the first GP0 word, and the program polls GPUSTAT until bits 26 and 28 are both set. Interrupts are off, and each row prints four samples.1
Every group starts with the display collapsed by GP1(07h), which keeps the GPU in vertical blank. One group (HDM) repeats four draws under each display mode to show how much time the display fetch takes from drawing.1
Results
With the display collapsed, the time of a GP0(02h) fill grows with its width. A 640 x 240 fill took about 1.8 times as long as a 320 x 240 one.2
| Size | Cycles (median of four) |
|---|---|
| 320 x 240 | 6,232 |
| 368 x 240 | 6,937 |
| 512 x 240 | 9,144 |
| 640 x 240 | 11,088 |
| 1008 x 248 | 17,213 |
Fills written back to back add up: one 64 x 64 fill took about 718 cycles, and five in a row took about 3,053. The display mode made no difference to a 320 x 240 fill. It took about 6,232 cycles with the display live at 320 x 240 and also at 640 x 480 interlaced and in 24-bit colour.2
The display fetch slows the other commands. A 15-bit sprite of 256 x 128 took 93,489 cycles with the display collapsed and grew with the width and depth of the live display:3
| Display | Cycles (median of four) |
|---|---|
| Collapsed | 93,489 |
| 256 x 240 | 93,494 |
| 320 x 240 | 99,110 |
| 512 x 240 | 101,325 |
| 640 x 240 | 103,049 |
| 640 x 480 interlaced | 102,288 |
| 640 x 480 interlaced, 24-bit | 108,664 |
A 128 x 128 copy grew from about 20,977 cycles collapsed to about 23,010 at 640 x 480 interlaced in 24-bit colour. A Gouraud-shaded triangle of size 200 took about 20,830 to 21,070 cycles in every mode.3
Turning the display off with GP1(03h) did not remove the cost. At 320 x 240 with the display off the sprite took 99,565 cycles. With the display on it took 99,110.3
Runs
28 September 2026
===== 00 RUN | BIOS 19951204 System ROM Version 3.0 11/18/96 A
14 tests
A chain program, linked at 80100000
Saved on the card in slot 2, from image 1
COP0 at start: BPC 00000000 BDA 80024F50 TAR 8001D3F0 DCIC 00000000 BadVaddr 1F801DAA BDAM FFFFFFFF
BPCM 00000000 SR 70000000 Cause 00000020 EPC 8001DF5C PRId 00000002
===== 01 HFL GPU FILLS BY SIZE | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 1F801DAA
Fills (GP0 02h) by size with the display collapsed; back-to-back fills of 64x64;
the 320x240 fill with the display live at 320x240 and at 640x480 interlaced.
Fill 16x1: 176 176 181 176
Fill 16x16: 294 293 295 294
Fill 32x32: 354 350 356 354
Fill 64x64: 721 716 719 720
Fill 128x128: 1812 1818 1803 1817
Fill 256x248: 5383 5395 5389 5448
Fill 320x240: 6240 6232 6231 6233
Fill 368x240: 6971 6968 6903 6906
Fill 512x240: 9141 9084 9147 9148
Fill 640x240: 11088 11088 11092 11082
Fill 1008x248: 17210 17216 17204 17216
Fill 16x248: 1627 1622 1636 1644
Fill 256x16: 473 481 475 476
Fill 1008x1: 294 305 291 296
2 fills of 64x64 written back to back: 1261 1268 1316 1317
3 fills of 64x64 written back to back: 1915 1860 1916 1855
4 fills of 64x64 written back to back: 2454 2458 2470 2457
5 fills of 64x64 written back to back: 3052 3050 3054 3056
Fill 320x240, display live 320x240: 6180 6230 6184 6242
Fill 320x240, display live 640x480i: 6230 6239 6244 6192
Fill 320x240, display live 320x240 24-bit: 6237 6229 6234 6241
Done.
===== 02 HXD GPU CPU TO VRAM | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 1F801DAA
CPU to VRAM: GP0(A0h) data by DMA2 (SyncMode 1, 16-word blocks, direction 2) and by
CPU stores, 16x16 to 256x128, read back by the CPU and compared, display collapsed and
live at 320x240 (psx-spx gpu.txt:698-702: DMA to VRAM may skip words outside vblank).
Collapsed, A0h 16x16 DMA block 16: channel done 300 265 259 252, idle 411 319 313 306, wrong words 0
Collapsed, A0h 32x32 DMA block 16: channel done 981 972 956 956, idle 1097 1026 1010 1010, wrong words 0
Collapsed, A0h 64x64 DMA block 16: channel done 3700 3676 3678 3660, idle 3811 3730 3732 3714, wrong words 0
Collapsed, A0h 128x64 DMA block 16: channel done 7311 7308 7313 7332, idle 7422 7372 7367 7386, wrong words 0
Collapsed, A0h 128x128 DMA block 16: channel done 14596 14589 14584 14584, idle 14707 14643 14638 14638, wrong words 0
Collapsed, A0h 256x128 DMA block 16: channel done 29037 29011 29029 29019, idle 29148 29065 29083 29078, wrong words 0
Collapsed, A0h 128x128 CPU stores: idle 34476 34447 34451 34444, wrong words 0
Collapsed, A0h 256x128 CPU stores: idle 3239 3242 3237 3244, wrong words 0
Live 320x240, A0h 16x16 DMA block 16: channel done 271 252 248 252, idle 387 306 302 306, wrong words 0
Live 320x240, A0h 32x32 DMA block 16: channel done 977 971 956 956, idle 1097 1025 1010 1010, wrong words 0
Live 320x240, A0h 64x64 DMA block 16: channel done 3703 3678 3663 3660, idle 3814 3732 3717 3714, wrong words 0
Live 320x240, A0h 128x64 DMA block 16: channel done 7345 7362 7379 7327, idle 7461 7416 7433 7381, wrong words 0
Live 320x240, A0h 128x128 DMA block 16: channel done 14720 14736 14658 14720, idle 14831 14790 14717 14774, wrong words 0
Live 320x240, A0h 256x128 DMA block 16: channel done 29116 29119 29101 29075, idle 29232 29173 29155 29129, wrong words 0
Live 320x240, A0h 128x128 CPU stores: idle 34450 34447 34447 34451, wrong words 0
Live 320x240, A0h 256x128 CPU stores: idle 3236 3236 3239 3238, wrong words 0
Done.
===== 03 HRD GPU VRAM TO CPU | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 1F801DAA
VRAM to CPU: GP0(C0h) data by DMA2 (SyncMode 1, 16-word blocks, direction 3) and by
CPU loads, 16x16 to 256x128, against the words written first, display collapsed and
live at 320x240.
Collapsed, C0h 16x16 DMA block 16: bit 27 at 41 66 66 71, channel done 298 247 247 292, idle 352 301 301 346, wrong words 0
Collapsed, C0h 32x32 DMA block 16: bit 27 at 41 71 66 66, channel done 1072 1098 1092 1098, idle 1126 1152 1152 1152, wrong words 0
Collapsed, C0h 64x64 DMA block 16: bit 27 at 41 76 66 68, channel done 4459 4438 4425 4431, idle 4513 4492 4479 4485, wrong words 0
Collapsed, C0h 128x64 DMA block 16: bit 27 at 41 71 66 66, channel done 8933 8930 8915 8907, idle 8987 8984 8979 8961, wrong words 0
Collapsed, C0h 128x128 DMA block 16: bit 27 at 41 70 70 70, channel done 17842 17833 17833 17833, idle 17896 17887 17887 17887, wrong words 0
Collapsed, C0h 256x128 DMA block 16: bit 27 at 41 66 68 71, channel done 35722 35703 35708 35711, idle 35779 35757 35762 35765, wrong words 0
Collapsed, C0h 128x128 CPU loads: reads end 9666 9630 9637 9635, wrong words 0
Collapsed, C0h 256x128 CPU loads: reads end 18988 18983 18996 18996, wrong words 0
Live 320x240, C0h 16x16 DMA block 16: bit 27 at 41 68 66 66, channel done 269 289 247 247, idle 323 343 301 301, wrong words 0
Live 320x240, C0h 32x32 DMA block 16: bit 27 at 124 71 66 66, channel done 1080 1109 1109 1111, idle 1134 1163 1163 1165, wrong words 0
Live 320x240, C0h 64x64 DMA block 16: bit 27 at 41 76 66 68, channel done 4459 4438 4425 4431, idle 4513 4492 4479 4485, wrong words 0
Live 320x240, C0h 128x64 DMA block 16: bit 27 at 40 71 66 66, channel done 8938 8958 8957 8968, idle 8992 9013 9011 9022, wrong words 0
Live 320x240, C0h 128x128 DMA block 16: bit 27 at 41 66 66 156, channel done 17958 17892 17856 17915, idle 18012 17946 17910 17969, wrong words 0
Live 320x240, C0h 256x128 DMA block 16: bit 27 at 124 91 66 66, channel done 35953 35721 35859 35896, idle 36007 35784 35913 35950, wrong words 0
Live 320x240, C0h 128x128 CPU loads: reads end 9624 9629 9632 9632, wrong words 0
Live 320x240, C0h 256x128 CPU loads: reads end 18987 18994 18994 18994, wrong words 0
Done.
===== 04 HCP GPU SCREEN COPIES | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 1F801DAA
VRAM to VRAM copies (GP0 80h) of screen size: whole buffers side by side, shifted by
one pixel and one row (overlapping), and 16 copies of 16x16 back to back.
Copy 320x240 from 0,256 to 320,256: 101445 101395 101402 101401
Copy 256x240 from 0,256 to 256,256: 78725 78788 78784 78776
Copy 128x240 to x 512: 39239 39165 39167 39231
Copy 64x240 to x 512: 22379 22378 22310 22375
Copy 320x120 down 120 rows: 50869 50818 50753 50747
Copy 320x240 to x+1 (overlapping): 101880 101950 101884 102071
Copy 320x240 to x-1 (overlapping): 102187 102186 102189 102190
Copy 320x240 to y+1 (overlapping): 101531 101396 101397 101401
Copy 320x240 to y-1 (overlapping): 101404 101522 101392 101403
Copy 368x240 to x 640: 113644 113640 113773 113598
4 copies of 16x16 back to back: 2683 2632 2643 2673
Done.
===== 05 HTF GPU FLAT TRI AREA | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 1F801DAA
Flat triangles (GP0 20h) by area and shape: right triangles of legs 0 to 240, wide
and tall ones of equal area, turned, flat top, flat bottom, general, a sliver.
Flat right triangle legs 0: 192 194 188 194
Flat right triangle legs 1: 193 188 194 193
Flat right triangle legs 8: 192 188 305 193
Flat right triangle legs 16: 305 302 305 312
Flat right triangle legs 32: 492 488 488 492
Flat right triangle legs 64: 1333 1338 1346 1334
Flat right triangle legs 128: 4558 4551 4546 4551
Flat right triangle legs 240: 15107 15098 15098 15100
Flat 512 wide 32 tall: 4487 4493 4496 4487
Flat 32 wide 240 tall: 2669 2670 2670 2670
Flat 256 wide 64 tall: 4483 4491 4492 4491
Flat 64 wide 240 tall: 4555 4551 4546 4551
Flat turned 45 degrees, 128 across: 3581 3524 3581 3580
Flat flat top 128: 4610 4731 4613 4607
Flat flat bottom 128: 4550 4551 4547 4546
Flat general 128: 3879 3884 3881 3886
Flat sliver 200 long: 433 432 427 485
Done.
===== 06 HTG GPU GOURAUD TRI AREA | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 1F801DAA
Gouraud triangles (GP0 30h), the same shapes, dither off; then dither on.
Gouraud right triangle legs 0: 386 387 386 384
Gouraud right triangle legs 1: 328 323 324 324
Gouraud right triangle legs 8: 395 398 399 397
Gouraud right triangle legs 16: 516 519 513 520
Gouraud right triangle legs 32: 950 944 945 938
Gouraud right triangle legs 64: 2570 2518 2524 2520
Gouraud right triangle legs 128: 8878 8875 8826 8826
Gouraud right triangle legs 240: 29748 29752 29744 29744
Gouraud 512 wide 32 tall: 8893 8827 8827 8827
Gouraud 32 wide 240 tall: 4823 4823 4829 4823
Gouraud 256 wide 64 tall: 8765 8764 8758 8762
Gouraud 64 wide 240 tall: 8630 8641 8640 8636
Gouraud turned 45 degrees, 128 across: 6761 6766 6765 6765
Gouraud flat top 128: 8890 8888 8946 8935
Gouraud flat bottom 128: 8809 8770 8815 8815
Gouraud general 128: 7486 7487 7494 7499
Gouraud sliver 200 long: 759 763 758 767
Gouraud dithered right triangle legs 0: 385 385 386 385
Gouraud dithered right triangle legs 1: 324 322 322 324
Gouraud dithered right triangle legs 8: 396 400 400 391
Gouraud dithered right triangle legs 16: 522 515 523 518
Gouraud dithered right triangle legs 32: 948 936 948 943
Gouraud dithered right triangle legs 64: 2523 2576 2579 2574
Gouraud dithered right triangle legs 128: 8832 8887 8878 8832
Gouraud dithered right triangle legs 240: 29745 29728 29745 29744
Gouraud dithered 512 wide 32 tall: 8884 8827 8827 8827
Gouraud dithered 32 wide 240 tall: 4826 4827 4817 4825
Gouraud dithered 256 wide 64 tall: 8764 8770 8815 8815
Gouraud dithered 64 wide 240 tall: 8643 8640 8641 8647
Gouraud dithered turned 45 degrees, 128 across: 6761 6768 6768 6768
Gouraud dithered flat top 128: 8938 8942 8946 8935
Gouraud dithered flat bottom 128: 8825 8772 8815 8815
Gouraud dithered general 128: 7499 7493 7494 7544
Gouraud dithered sliver 200 long: 817 817 761 762
Done.
===== 07 HTT GPU TEXTURED TRIS | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 1F801DAA
Textured triangles (GP0 24h) at 4, 8 and 15 bits: legs 16 to 240 at texture 1:1
(cold: another page named first, so the cache starts empty; warm: repeated), 128 at
texture 64 (magnified) and 255 (minified), and 128 with u running down the screen.
Depth 0 legs 16 texture 1:1, cold: 574 568 569 576
Depth 0 legs 16 texture 1:1, warm: 470 469 473 468
Depth 0 legs 64 texture 1:1, cold: 3839 3850 3902 3847
Depth 0 legs 64 texture 1:1, warm: 2527 2530 2541 2536
Depth 0 legs 128 texture 1:1, cold: 13781 13791 13789 13852
Depth 0 legs 128 texture 1:1, warm: 13020 13021 13079 13021
Depth 0 legs 240 texture 1:1, cold: 46351 46410 46402 46602
Depth 0 legs 240 texture 1:1, warm: 46423 46425 46426 46375
Depth 0 legs 128 texture 64: 10291 8830 8837 8847
Depth 0 legs 128 texture 255: 17333 17998 17982 17991
Depth 0 legs 128, u down the screen: 45824 44968 45154 44970
Depth 0 gouraud-textured legs 128: 13103 13160 13102 13108
Depth 0 raw legs 128: 12961 12960 12958 12962
Depth 1 legs 16 texture 1:1, cold: 875 624 629 630
Depth 1 legs 16 texture 1:1, warm: 468 468 469 468
Depth 1 legs 64 texture 1:1, cold: 4990 4999 4999 5010
Depth 1 legs 64 texture 1:1, warm: 3925 3918 3923 3920
Depth 1 legs 128 texture 1:1, cold: 18578 18519 18519 18519
Depth 1 legs 128 texture 1:1, warm: 18538 18541 18542 18526
Depth 1 legs 240 texture 1:1, cold: 63271 63258 63320 63260
Depth 1 legs 240 texture 1:1, warm: 63277 63342 63278 63288
Depth 1 legs 128 texture 64: 11443 10296 10346 10352
Depth 1 legs 128 texture 255: 27095 27629 27633 27629
Depth 1 legs 128, u down the screen: 70640 70700 70699 70709
Depth 1 gouraud-textured legs 128: 18498 18692 18562 18509
Depth 1 raw legs 128: 18357 18358 18353 18355
Depth 2 legs 16 texture 1:1, cold: 747 752 747 809
Depth 2 legs 16 texture 1:1, warm: 474 468 472 476
Depth 2 legs 64 texture 1:1, cold: 7366 7306 7305 7358
Depth 2 legs 64 texture 1:1, warm: 6471 6411 6473 6411
Depth 2 legs 128 texture 1:1, cold: 27794 27797 27795 27795
Depth 2 legs 128 texture 1:1, warm: 27816 27818 28059 27874
Depth 2 legs 240 texture 1:1, cold: 95973 95948 95963 95956
Depth 2 legs 240 texture 1:1, warm: 95997 95978 95992 96001
Depth 2 legs 128 texture 64: 17079 16109 16113 16109
Depth 2 legs 128 texture 255: 44307 44668 44673 44916
Depth 2 legs 128, u down the screen: 71725 71731 71671 71683
Depth 2 gouraud-textured legs 128: 27785 27838 27841 27794
Depth 2 raw legs 128: 27625 27628 27814 27636
Done.
===== 08 HMX GPU MODE COSTS | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 1F801DAA
Drawing modes on five shapes: plain; semi-transparent in modes 0-3 (the command's
semi bit, mode from E1h or the texpage attribute); dither; E6h 1 (set mask), 2 (check
mask, over pixels with bit 15 clear) and 3.
Plain: flat tri 128: 4547 4552 4547 4555
Plain: gouraud tri 128: 8822 8821 8821 8821
Plain: textured tri 128: 27632 27635 27633 27689
Plain: rect 128x128: 8595 8593 8604 8595
Plain: textured rect 128x128: 47047 46997 47061 47177
Semi mode 0: flat tri 128: 6857 6851 6859 6855
Semi mode 0: gouraud tri 128: 8887 8946 8935 8946
Semi mode 0: textured tri 128: 31087 31098 31027 31088
Semi mode 0: rect 128x128: 12956 12977 12970 12969
Semi mode 0: textured rect 128x128: 54692 54696 54688 54882
Semi mode 1: flat tri 128: 6852 6860 6855 6847
Semi mode 1: gouraud tri 128: 8929 8946 8935 8946
Semi mode 1: textured tri 128: 31092 31038 31022 31092
Semi mode 1: rect 128x128: 12974 12973 12966 12956
Semi mode 1: textured rect 128x128: 54684 54700 54865 54696
Semi mode 2: flat tri 128: 6857 6850 6847 6860
Semi mode 2: gouraud tri 128: 8941 8935 8946 8935
Semi mode 2: textured tri 128: 31025 31082 31089 31086
Semi mode 2: rect 128x128: 12970 12966 12973 12966
Semi mode 2: textured rect 128x128: 54696 54692 54879 54694
Semi mode 3: flat tri 128: 6851 6847 6856 6859
Semi mode 3: gouraud tri 128: 8887 8876 8882 8935
Semi mode 3: textured tri 128: 31025 31082 31089 31086
Semi mode 3: rect 128x128: 12970 12966 12973 12966
Semi mode 3: textured rect 128x128: 54696 54873 54683 54689
Dither: flat tri 128: 4554 4553 4546 4551
Dither: gouraud tri 128: 8833 8830 8832 8832
Dither: textured tri 128: 27686 27696 27629 27695
Dither: rect 128x128: 8610 8604 8609 8595
Dither: textured rect 128x128: 47048 47060 47232 46995
E6h 1: flat tri 128: 4546 4546 4551 4547
E6h 1: gouraud tri 128: 8881 8832 8832 8832
E6h 1: textured tri 128: 27685 27632 27631 27629
E6h 1: rect 128x128: 8602 8602 8598 8598
E6h 1: textured rect 128x128: 47048 47058 47058 47239
E6h 2: flat tri 128: 6852 6862 6855 6847
E6h 2: gouraud tri 128: 8887 8888 8946 8935
E6h 2: textured tri 128: 31034 31090 31029 31026
E6h 2: rect 128x128: 12970 12973 12966 12956
E6h 2: textured rect 128x128: 54694 54700 54685 54869
E6h 3: flat tri 128: 6857 6858 6859 6851
E6h 3: gouraud tri 128: 8893 8887 8949 8892
E6h 3: textured tri 128: 31085 31083 31089 31084
E6h 3: rect 128x128: 12970 12961 12973 12966
E6h 3: textured rect 128x128: 54688 54697 54872 54696
Done.
===== 09 HQD GPU QUADS BY SIDE | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 1F801DAA
Quads by side 16 to 240: flat (28h), gouraud (38h), textured 15-bit 1:1 (2Ch),
gouraud-textured (3Ch), and a square of 128 turned 45 degrees.
Flat quad 16: 383 385 394 380
Gouraud quad 16: 667 669 672 667
Textured quad 16: 1165 613 620 620
Gouraud-textured quad 16: 906 900 904 904
Flat quad 64: 2548 2544 2539 2542
Gouraud quad 64: 4737 4737 4731 4782
Textured quad 64: 13543 14175 14168 14160
Gouraud-textured quad 64: 14328 14337 14280 14342
Flat quad 128: 9002 8997 9006 9001
Gouraud quad 128: 17361 17367 17364 17360
Textured quad 128: 55248 55064 55076 55065
Gouraud-textured quad 128: 55232 55172 55232 55244
Flat quad 240: 30134 30194 30248 30121
Gouraud quad 240: 59172 59132 59171 59125
Textured quad 240: 191326 191464 191287 191282
Gouraud-textured quad 240: 191628 191454 191498 191635
Flat quad 128 turned 45 degrees: 8769 8767 8764 8758
Done.
===== 10 HRA GPU RECTS BY SIDE | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 1F801DAA
Rectangles by side 8 to 240: flat (60h), textured at 4, 8, 15 bits (64h) with the
texture cold and warm; a 320x240 flat rect; a 256x240 15-bit sprite (a background).
Flat rect 8: 181 176 179 176
Textured rect 8 depth 0, cold: 285 284 288 287
Textured rect 8 depth 0, warm: 190 188 188 191
Textured rect 8 depth 1, cold: 476 288 284 288
Textured rect 8 depth 1, warm: 190 193 194 193
Textured rect 8 depth 2, cold: 348 343 348 348
Textured rect 8 depth 2, warm: 193 188 194 188
Flat rect 16: 296 294 299 299
Textured rect 16 depth 0, cold: 411 411 407 408
Textured rect 16 depth 0, warm: 305 305 302 307
Textured rect 16 depth 1, cold: 598 593 593 598
Textured rect 16 depth 1, warm: 306 305 310 312
Textured rect 16 depth 2, cold: 894 894 893 893
Textured rect 16 depth 2, warm: 306 305 310 312
Flat rect 32: 725 717 721 724
Textured rect 32 depth 0, cold: 1321 1310 1311 1311
Textured rect 32 depth 0, warm: 733 727 726 727
Textured rect 32 depth 1, cold: 1990 1986 1986 1989
Textured rect 32 depth 1, warm: 729 733 731 728
Textured rect 32 depth 2, cold: 3138 3143 3138 3136
Textured rect 32 depth 2, warm: 728 733 736 733
Flat rect 64: 2356 2352 2303 2353
Textured rect 64 depth 0, cold: 4843 4843 4836 4833
Textured rect 64 depth 0, warm: 2369 2370 2365 2312
Textured rect 64 depth 1, cold: 7441 7441 7441 7392
Textured rect 64 depth 1, warm: 7456 7465 7403 7460
Textured rect 64 depth 2, cold: 11927 11927 11927 11926
Textured rect 64 depth 2, warm: 11944 11944 11939 11946
Flat rect 128: 8606 8593 8604 8595
Textured rect 128 depth 0, cold: 18787 18899 18839 18778
Textured rect 128 depth 0, warm: 18860 18859 18858 18857
Textured rect 128 depth 1, cold: 29146 29141 29151 29143
Textured rect 128 depth 1, warm: 29165 29164 29165 29176
Textured rect 128 depth 2, cold: 47036 47033 47206 46974
Textured rect 128 depth 2, warm: 47054 46992 47052 46993
Flat rect 240: 29519 29520 29521 29522
Textured rect 240 depth 0, cold: 65228 65403 65224 65228
Textured rect 240 depth 0, warm: 65241 65299 65237 65302
Textured rect 240 depth 1, cold: 102291 102050 102114 102113
Textured rect 240 depth 1, warm: 102122 102250 102130 102071
Textured rect 240 depth 2, cold: 164159 164145 164154 164154
Textured rect 240 depth 2, warm: 164172 164410 164175 164176
Flat rect 320x240: 39158 39164 39288 39156
15-bit sprite 256x240: 175213 175206 175394 175275
Done.
===== 11 HOT GPU ORDERING TABLES | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 1F801DAA
Linked lists by DMA2 (direction 2), one primitive a node, spread over a 16-wide grid:
16x16 4-bit sprites (7Ch), 32-pixel gouraud triangles, 32x32 8-bit textured quads, for
1 to 256 nodes; 64 sprites with the CLUT the same or alternating; 64 sprites with an
E1h node before each, the page the same or alternating.
1 sprites 16x16 4-bit: channel done 61 83 75 76, idle 420 268 260 266
8 sprites 16x16 4-bit: channel done 1153 1134 1124 1123, idle 1489 1453 1436 1497
32 sprites 16x16 4-bit: channel done 5330 5313 5325 5306, idle 5666 5628 5642 5676
128 sprites 16x16 4-bit: channel done 22059 22016 22049 22049, idle 22389 22391 22364 22365
256 sprites 16x16 4-bit: channel done 44321 44311 44375 44307, idle 44711 44684 44686 44635
1 gouraud triangles 32: channel done 50 86 78 78, idle 831 820 819 819
8 gouraud triangles 32: channel done 3863 3863 3863 3879, idle 5065 5040 5041 5065
32 gouraud triangles 32: channel done 18301 18327 18290 18306, idle 19497 19509 19518 19481
128 gouraud triangles 32: channel done 76126 76120 76096 76117, idle 77325 77295 77278 77288
256 gouraud triangles 32: channel done 153124 153171 153129 153117, idle 154318 154340 154306 154297
1 textured quads 32 8-bit: channel done 53 89 87 81, idle 2757 1379 1386 1384
8 textured quads 32 8-bit: channel done 8044 8043 8045 8049, idle 9862 9838 9847 9853
32 textured quads 32 8-bit: channel done 37036 37016 37008 37011, idle 38842 38808 38806 38812
128 textured quads 32 8-bit: channel done 152872 152896 152866 152865, idle 154694 154696 154689 154659
256 textured quads 32 8-bit: channel done 306875 306918 306868 306940, idle 308635 308656 308604 308683
64 sprites, CLUT the same: channel done 11018 10858 10894 10875, idle 11408 11232 11204 11251
64 sprites, CLUT alternating: channel done 12621 12650 12603 12598, idle 12954 12965 12975 12977
64 E1h and sprite nodes, page the same: channel done 11141 11134 11153 11134, idle 11483 11454 11469 11455
64 E1h and sprite nodes, page alternating: channel done 19127 19228 19411 19204, idle 19707 19855 20028 19840
Done.
===== 12 HFR GPU FRAME LIST | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 1F801DAA
A frame-like list by DMA2: fill 320x240, then N gouraud-textured 8-bit triangles of
about 24-40 by 20-36 pixels, an E1h node, then M 16x16 4-bit sprites; display collapsed,
live at 320x240, and live at 640x480 interlaced.
Collapsed, fill only: channel done 162 85 85 85, idle 6193 6159 6155 6155
Collapsed, 100 triangles 30 sprites: channel done 66086 65848 65786 65808, idle 66426 66163 66096 66122
Collapsed, 200 triangles 60 sprites: channel done 125154 125192 125146 125217, idle 125494 125505 125520 125533
Live 320x240, fill only: channel done 132 85 85 91, idle 6158 6159 6143 6155
Live 320x240, 100 triangles 30 sprites: channel done 65777 65821 65812 65771, idle 66112 66135 66127 66141
Live 320x240, 200 triangles 60 sprites: channel done 127703 127640 126749 127712, idle 128033 127955 127065 128100
Live 640x480i, 200 triangles 60 sprites: channel done 128202 127494 128175 128202, idle 128543 127869 128502 128572
Done.
===== 13 HDM GPU DISPLAY SHARE | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 1F801DAA
Four draws under each display mode, fullscreen NTSC ranges: collapsed, 240 lines at
each width, 640x480 interlaced, 320 and 640x480i in 24-bit, and 320x240 with the
display off (GP1 03h 1).
Collapsed, fill 256x248: 5381 5394 5454 5448
Collapsed, 15-bit sprite 256x128: 93489 93489 93498 93561
Collapsed, gouraud tri 200: 20827 20830 20840 20834
Collapsed, copy 128x128: 20977 20916 20979 20980
256x240, fill 256x248: 5445 5391 5380 5384
256x240, 15-bit sprite 256x128: 93489 93489 93498 96110
256x240, gouraud tri 200: 21013 21018 21016 21013
256x240, copy 128x128: 21342 21283 21342 21412
320x240, fill 256x248: 5818 5749 5814 5881
320x240, 15-bit sprite 256x128: 99745 98035 98538 99682
320x240, gouraud tri 200: 21004 21011 21002 21013
320x240, copy 128x128: 21402 21287 21347 21402
368x240, fill 256x248: 5871 5804 5870 5874
368x240, 15-bit sprite 256x128: 96355 99683 99691 99685
368x240, gouraud tri 200: 21073 21011 21062 21011
368x240, copy 128x128: 21888 21832 21890 21102
512x240, fill 256x248: 5394 5564 5993 5933
512x240, 15-bit sprite 256x128: 101319 101444 101328 101322
512x240, gouraud tri 200: 21014 21071 20835 20835
512x240, copy 128x128: 22188 22196 22136 22138
640x240, fill 256x248: 6052 6054 6054 6054
640x240, 15-bit sprite 256x128: 103088 103013 103085 97931
640x240, gouraud tri 200: 21073 21138 21018 21071
640x240, copy 128x128: 21352 21416 21278 21344
640x480i, fill 256x248: 5993 6112 6001 6061
640x480i, 15-bit sprite 256x128: 103075 101504 100276 103072
640x480i, gouraud tri 200: 21069 21071 21006 21125
640x480i, copy 128x128: 21409 21296 21462 21286
320x240 24-bit, fill 256x248: 5932 5993 5993 5993
320x240 24-bit, 15-bit sprite 256x128: 97255 101321 101322 101389
320x240 24-bit, gouraud tri 200: 21069 21011 21078 21011
320x240 24-bit, copy 128x128: 21897 21944 21586 20982
640x480i 24-bit, fill 256x248: 6467 6419 6474 6479
640x480i 24-bit, 15-bit sprite 256x128: 108658 108667 108661 108668
640x480i 24-bit, gouraud tri 200: 20831 20890 21131 21071
640x480i 24-bit, copy 128x128: 22984 22976 23039 23047
320x240 display off, fill 256x248: 5818 5875 5869 5752
320x240 display off, 15-bit sprite 256x128: 99690 99683 97137 99447
320x240 display off, gouraud tri 200: 21013 21005 21066 21018
320x240 display off, copy 128x128: 21409 21462 21476 21469
Done.
===== 14 HPL GPU DRAWSYNC POLL | BIOS 19951204 System ROM Version 3.0 11/18/96 A
BadVaddr as the group starts: 1F801DAA
What a DrawSync-style poll sees: during a DMA2 list, how many times GPUSTAT.26 rose
before the channel ended and after, when bits 26 and 28 were set for good (64 reads
in a row), and the last change (gpu.txt:1023-1026).
8 gouraud triangles 64: [26 rose 0 then 1, first at 17995, channel done 13601, idle for good 17995, last change 17995] [26 rose 0 then 1, first at 18009, channel done 13549, idle for good 18009, last change 18009] [26 rose 0 then 1, first at 18006, channel done 13549, idle for good 18006, last change 18006] [26 rose 0 then 1, first at 17995, channel done 13607, idle for good 17995, last change 17995]
32 sprites 16x16: [26 rose 0 then 1, first at 5813, channel done 5470, idle for good 5813, last change 5813] [26 rose 0 then 1, first at 5635, channel done 5358, idle for good 5635, last change 5635] [26 rose 0 then 1, first at 5641, channel done 5358, idle for good 5641, last change 5641] [26 rose 0 then 1, first at 5667, channel done 5320, idle for good 5667, last change 5667]
fill 256x248 then a flat tri 16: [26 rose 0 then 1, first at 5492, channel done 174, idle for good 5492, last change 5492] [26 rose 0 then 1, first at 5493, channel done 175, idle for good 5493, last change 5493] [26 rose 0 then 1, first at 5491, channel done 174, idle for good 5491, last change 5491] [26 rose 0 then 1, first at 5491, channel done 174, idle for good 5491, last change 5491]
tri, copy 128x128, tri: [26 rose 0 then 1, first at 21168, channel done 251, idle for good 21168, last change 21168] [26 rose 0 then 1, first at 21175, channel done 256, idle for good 21175, last change 21175] [26 rose 0 then 1, first at 21164, channel done 251, idle for good 21164, last change 21164] [26 rose 0 then 1, first at 21164, channel done 251, idle for good 21164, last change 21164]
Done.
References
-
^ a b Console test suite (PsyQ build), programs/gpu/gputiming2.c and gputiming2.md.
-
^ a b Hardware test run 20260928T0000Z-5501a-card-h: gputiming2/01HFL.txt.
-
^ a b c Hardware test run 20260928T0000Z-5501a-card-h: gputiming2/13HDM.txt.