aboutsummaryrefslogtreecommitdiff
path: root/kernel/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/main.c')
-rw-r--r--kernel/main.c28
1 files changed, 22 insertions, 6 deletions
diff --git a/kernel/main.c b/kernel/main.c
index dd05880..336b31c 100644
--- a/kernel/main.c
+++ b/kernel/main.c
@@ -55,18 +55,34 @@ void main(struct multiboot_info_t *hdr, uint32_t magic)
if(gfx_status)
{
- for(int i=0;i<100000;++i)
+ int startpix = *current_tick;
+ for(int i=0;i<1000000;++i)
{
int rx = rand() % *gfx_width;
int ry = rand() % *gfx_height;
gfx_drawpixel(rx, ry, rand() % 0xFFFFFF);
}
- int start = *current_tick;
- for(int i=0;i<1000;++i)
- gfx_clear(0xff00ff);
- int end = *current_tick;
- printf("ticks for 1000 fills: %x\n", end-start);
+ int endpix = *current_tick;
+ int startfill = *current_tick;
+ for(int i=0;i<100;++i)
+ gfx_clear(rand() % 0xFFFFFF);
+ int endfill = *current_tick;
+
+ int starttext = *current_tick;
+ for(int i=0;i<1000000;++i)
+ {
+ int rx = rand() % *gfx_width;
+ int ry = rand() % *gfx_height;
+ gfx_drawchar(rx, ry, 'A', VGA_RGBPACK(0xff, 0xff, 0xff), 0);
+ }
+ int endtext = *current_tick;
+ gfx_reset();
+ printf("--- Graphics benchmark results ---\n");
+ printf("Ticks for 1,000,000 random pixels: %d\n", endpix-startpix);
+ printf("Ticks for 100 random fills: %d\n", endfill-startfill);
+ printf("Ticks for 1,000,000 chars: %d\n", endtext-starttext);
+ printf("Resolution: %dx%dx%d\n", *gfx_width, *gfx_height, *gfx_bpp * 8);
}
printf("Testing keyboard LED's...\n");