Measure render loop

This commit is contained in:
Björn Gaier 2023-11-04 19:43:41 -04:00
parent 950e04ddb7
commit f5e9ba0279
2 changed files with 61 additions and 42 deletions

View File

@ -1,42 +1,62 @@
#include "FontWriter/font_writer.hpp"
#include "Objects/paco.hpp"
#include "assets.hpp"
#include <PSX/GPU/gpu.hpp>
#include <PSX/GPU/gpu_primitives.hpp>
#include <PSX/Timer/frame_timer.hpp>
#include <stdio.h>
using namespace JabyEngine;
static object::Paco paco;
static void setup() {
Assets::load_for_main();
FontWriter::FontWriter::setup();
paco.setup();
}
static void update() {
FontWriter::FontWriter cursor;
const auto end_pos = cursor.write(FontWriter::Position::create(0, 32), "Cody is cute\n&\na \x1b[8;0;0mBAAAAABY!!!");
cursor.write(end_pos, "\x1b[0;7;7mJaby was\nhere c:");
paco.update();
}
static void render() {
GPU::swap_buffers_vsync(1);
FontWriter::FontWriter::render();
paco.render();
}
void main() {
setup();
while(true) {
update();
render();
}
#include "FontWriter/font_writer.hpp"
#include "Objects/paco.hpp"
#include "Overlay/Overlay.hpp"
#include "assets.hpp"
#include <PSX/GPU/gpu.hpp>
#include <PSX/GPU/gpu_primitives.hpp>
#include <PSX/Timer/frame_timer.hpp>
#include <PSX/Timer/high_res_timer.hpp>
#include <stdio.h>
using namespace JabyEngine;
static object::Paco paco;
static void setup() {
Assets::load_for_main();
FontWriter::FontWriter::setup();
paco.setup();
}
static void update() {
FontWriter::FontWriter cursor;
const auto end_pos = cursor.write(FontWriter::Position::create(0, 32), "Cody is cute\n&\na \x1b[8;0;0mBAAAAABY!!!");
cursor.write(end_pos, "\x1b[0;7;7mJaby was\nhere c:");
paco.update();
}
static void render() {
GPU::swap_buffers_vsync(1);
FontWriter::FontWriter::render();
paco.render();
}
void main() {
static constexpr size_t MaxRounds = 1;
size_t avg = 0;
size_t cur_rounds = 0;
setup();
Overlay::mesaure_busy_loop();
JabyEngine::HighResTime::enable();
while(true) {
const auto start = JabyEngine::HighResTime::get_time_stamp();
update();
render();
const auto end = JabyEngine::HighResTime::get_time_stamp();
avg += start.microseconds_to(end);
cur_rounds++;
if(cur_rounds == GPU::Display::frames_per_sec) {
printf("AVG Time: %ius\n", avg/MaxRounds);
avg = 0;
cur_rounds = 0;
}
}
}

View File

@ -9,4 +9,3 @@ _ZN10JabyEngine7SysCall6printfEPKcz:
li $t2, 0xa0
jr $t2
li $t1, 0x3f