psx.wiki
Log in
Main page
Hardware
Hardware tests
System software
SDKs
File formats
Games
Tools
History
All pages
page
view source
history
View source for GPU Timing at Game Scale
← GPU Timing at Game Scale
You do not have permission to edit this page.
Log in
to edit.
--- title: GPU Timing at Game Scale type: test summary: Measures GPU drawing time for screen-sized fills and draws and the time the display fetch takes from drawing in each video mode. category: Hardware tests info: Machine = SCPH-5501 (NTSC) info: Program = gputiming2 --- ## 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](/hardware/gpu/gpustat/) until bits 26 and 28 are both set. Interrupts are off, and each row prints four samples.[^src] Every group starts with the display collapsed by GP1(07h), which keeps the [GPU](/hardware/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.[^src] See also: - [GPU Drawing Time and Status Bits](/tests/gpu-drawing-time/) - [GPU Flat Quad Fill Time](/tests/gpu-flat-quad-fill-time/) ## 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.[^hfl] Table: Screen-sized fills | 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.[^hfl] 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:[^hdm] Table: 256 x 128 sprite under each display mode | 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.[^hdm] 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.[^hdm] ## Runs ### 28 September 2026 [gputiming2/00RUN.txt](/tests/raw/20260928T0000Z-5501a-card-h/gputiming2/00RUN.txt) ``` ===== 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 ``` [gputiming2/01HFL.txt](/tests/raw/20260928T0000Z-5501a-card-h/gputiming2/01HFL.txt) ``` ===== 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. ``` [gputiming2/02HXD.txt](/tests/raw/20260928T0000Z-5501a-card-h/gputiming2/02HXD.txt) ``` ===== 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. ``` [gputiming2/03HRD.txt](/tests/raw/20260928T0000Z-5501a-card-h/gputiming2/03HRD.txt) ``` ===== 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. ``` [gputiming2/04HCP.txt](/tests/raw/20260928T0000Z-5501a-card-h/gputiming2/04HCP.txt) ``` ===== 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. ``` [gputiming2/05HTF.txt](/tests/raw/20260928T0000Z-5501a-card-h/gputiming2/05HTF.txt) ``` ===== 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. ``` [gputiming2/06HTG.txt](/tests/raw/20260928T0000Z-5501a-card-h/gputiming2/06HTG.txt) ``` ===== 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. ``` [gputiming2/07HTT.txt](/tests/raw/20260928T0000Z-5501a-card-h/gputiming2/07HTT.txt) ``` ===== 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. ``` [gputiming2/08HMX.txt](/tests/raw/20260928T0000Z-5501a-card-h/gputiming2/08HMX.txt) ``` ===== 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. ``` [gputiming2/09HQD.txt](/tests/raw/20260928T0000Z-5501a-card-h/gputiming2/09HQD.txt) ``` ===== 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. ``` [gputiming2/10HRA.txt](/tests/raw/20260928T0000Z-5501a-card-h/gputiming2/10HRA.txt) ``` ===== 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. ``` [gputiming2/11HOT.txt](/tests/raw/20260928T0000Z-5501a-card-h/gputiming2/11HOT.txt) ``` ===== 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. ``` [gputiming2/12HFR.txt](/tests/raw/20260928T0000Z-5501a-card-h/gputiming2/12HFR.txt) ``` ===== 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. ``` [gputiming2/13HDM.txt](/tests/raw/20260928T0000Z-5501a-card-h/gputiming2/13HDM.txt) ``` ===== 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. ``` [gputiming2/14HPL.txt](/tests/raw/20260928T0000Z-5501a-card-h/gputiming2/14HPL.txt) ``` ===== 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 [^src]: Console test suite (PsyQ build), programs/gpu/gputiming2.c and gputiming2.md. [^hfl]: Hardware test run 20260928T0000Z-5501a-card-h: [gputiming2/01HFL.txt](/tests/raw/20260928T0000Z-5501a-card-h/gputiming2/01HFL.txt). [^hdm]: Hardware test run 20260928T0000Z-5501a-card-h: [gputiming2/13HDM.txt](/tests/raw/20260928T0000Z-5501a-card-h/gputiming2/13HDM.txt).