Files
TempleOS-Rijn/TempleOS/Demo/Lectures/GraphicsCPULoad.CPP
T
2018-09-08 21:45:52 +02:00

77 lines
3.0 KiB
C++

//This is the fastest you can update the whole screen.
//See $LK-A,"::/TempleOS/Demo/Lectures/MiniGrLib.CPP"$ if this interests you.
F64 VGAPattern(I64 p)
{//This returns the time to update in seconds.
F64 start=tT;
I64 i,plane,*ptr;
for (plane=1;plane<0x10;plane<<=1) {
OutU8(VGA_SC_INDEX,VGA_MAP_MASK);
OutU8(VGA_SC_DATA,plane);
ptr=0xA0000;
for (i=0;i<640*480/64;i++)
*ptr++=p;
}
return tT-start;
}
U0 GrDemo()
{
I64 i;
F64 t;
Bool old_preempt=Preempt(OFF);
CPURep;
for (i=0;i<16;i++) {
t=VGAPattern(0x5555555555555555);
"$$FG,GREEN$$Rate:$$FG,RED$$%5.1f FPS$$FG$$"
" $$FG,GREEN$$Load@60Hz:$$FG,RED$$%5.1f%%$$FG$$\n",1/t,100*t*60.0;
t=VGAPattern(0x3333333333333333);
"$$FG,GREEN$$Rate:$$FG,RED$$%5.1f FPS$$FG$$"
" $$FG,GREEN$$Load@60Hz:$$FG,RED$$%5.1f%%$$FG$$\n",1/t,100*t*60.0;
}
Preempt(old_preempt);
//<CTRL-ALT-F> will flush screen VGA cache.
VGAFlush;
}
GrDemo;
/* Program Output (Not VMware)$HL,0$$WW+H,1$$FD,1$
8 Cores 2.660GHz
$FG,2$Rate:$FG,4$369.7 FPS$FG$ $FG,2$Load@60Hz:$FG,4$ 16.2%$FG$
$FG,2$Rate:$FG,4$369.8 FPS$FG$ $FG,2$Load@60Hz:$FG,4$ 16.2%$FG$
$FG,2$Rate:$FG,4$370.3 FPS$FG$ $FG,2$Load@60Hz:$FG,4$ 16.2%$FG$
$FG,2$Rate:$FG,4$361.2 FPS$FG$ $FG,2$Load@60Hz:$FG,4$ 16.6%$FG$
$FG,2$Rate:$FG,4$369.8 FPS$FG$ $FG,2$Load@60Hz:$FG,4$ 16.2%$FG$
$FG,2$Rate:$FG,4$370.2 FPS$FG$ $FG,2$Load@60Hz:$FG,4$ 16.2%$FG$
$FG,2$Rate:$FG,4$369.9 FPS$FG$ $FG,2$Load@60Hz:$FG,4$ 16.2%$FG$
$FG,2$Rate:$FG,4$369.8 FPS$FG$ $FG,2$Load@60Hz:$FG,4$ 16.2%$FG$
$FG,2$Rate:$FG,4$360.6 FPS$FG$ $FG,2$Load@60Hz:$FG,4$ 16.6%$FG$
$FG,2$Rate:$FG,4$370.4 FPS$FG$ $FG,2$Load@60Hz:$FG,4$ 16.2%$FG$
$FG,2$Rate:$FG,4$369.8 FPS$FG$ $FG,2$Load@60Hz:$FG,4$ 16.2%$FG$
$FG,2$Rate:$FG,4$369.8 FPS$FG$ $FG,2$Load@60Hz:$FG,4$ 16.2%$FG$
$FG,2$Rate:$FG,4$369.8 FPS$FG$ $FG,2$Load@60Hz:$FG,4$ 16.2%$FG$
$FG,2$Rate:$FG,4$353.1 FPS$FG$ $FG,2$Load@60Hz:$FG,4$ 17.0%$FG$
$FG,2$Rate:$FG,4$370.3 FPS$FG$ $FG,2$Load@60Hz:$FG,4$ 16.2%$FG$
$FG,2$Rate:$FG,4$369.8 FPS$FG$ $FG,2$Load@60Hz:$FG,4$ 16.2%$FG$
$FG,2$Rate:$FG,4$369.8 FPS$FG$ $FG,2$Load@60Hz:$FG,4$ 16.2%$FG$
$FG,2$Rate:$FG,4$369.9 FPS$FG$ $FG,2$Load@60Hz:$FG,4$ 16.2%$FG$
$FG,2$Rate:$FG,4$357.0 FPS$FG$ $FG,2$Load@60Hz:$FG,4$ 16.8%$FG$
$FG,2$Rate:$FG,4$369.9 FPS$FG$ $FG,2$Load@60Hz:$FG,4$ 16.2%$FG$
$FG,2$Rate:$FG,4$370.4 FPS$FG$ $FG,2$Load@60Hz:$FG,4$ 16.2%$FG$
$FG,2$Rate:$FG,4$369.8 FPS$FG$ $FG,2$Load@60Hz:$FG,4$ 16.2%$FG$
$FG,2$Rate:$FG,4$369.8 FPS$FG$ $FG,2$Load@60Hz:$FG,4$ 16.2%$FG$
$FG,2$Rate:$FG,4$369.9 FPS$FG$ $FG,2$Load@60Hz:$FG,4$ 16.2%$FG$
$FG,2$Rate:$FG,4$353.9 FPS$FG$ $FG,2$Load@60Hz:$FG,4$ 17.0%$FG$
$FG,2$Rate:$FG,4$369.9 FPS$FG$ $FG,2$Load@60Hz:$FG,4$ 16.2%$FG$
$FG,2$Rate:$FG,4$370.2 FPS$FG$ $FG,2$Load@60Hz:$FG,4$ 16.2%$FG$
$FG,2$Rate:$FG,4$370.4 FPS$FG$ $FG,2$Load@60Hz:$FG,4$ 16.2%$FG$
$FG,2$Rate:$FG,4$369.9 FPS$FG$ $FG,2$Load@60Hz:$FG,4$ 16.2%$FG$
$FG,2$Rate:$FG,4$369.7 FPS$FG$ $FG,2$Load@60Hz:$FG,4$ 16.2%$FG$
$FG,2$Rate:$FG,4$369.9 FPS$FG$ $FG,2$Load@60Hz:$FG,4$ 16.2%$FG$
$FG,2$Rate:$FG,4$369.8 FPS$FG$ $FG,2$Load@60Hz:$FG,4$ 16.2%$FG$
$HL,1$*/