Some stats

This commit is contained in:
Shinovon 2026-05-03 01:29:57 +05:00
parent 1209902fe9
commit 7e7188abbd
6 changed files with 54 additions and 0 deletions

View file

@ -1750,7 +1750,9 @@ Idle(void *arg)
if (gbShowTimebars)
tbDisplay();
tbStartTimer(0, "EndOfFrame");
DoRWStuffEndOfFrame();
tbEndTimer("EndOfFrame");
POP_MEMID(); // MEMID_RENDER

View file

@ -29,10 +29,23 @@ float MaxFrameTime;
uint32 curMS;
uint32 msCollected[MAX_MS_COLLECTED];
uint frames;
#ifdef FRAMETIME
float FrameInitTime;
#endif
extern "C" int vboUploads;
extern "C" int draw;
extern "C" int render;
extern "C" int matfx;
extern "C" int skin;
int vboUploads;
int draw;
int render;
int matfx;
int skin;
float endOfFrameTime;
void tbInit()
{
TimerBar.count = 0;
@ -67,6 +80,9 @@ void tbEndTimer(Const char* name)
}
assert(n != 1500);
TimerBar.Timers[n].endTime = (float)CTimer::GetCurrentTimeInCycles() / (float)CTimer::GetCyclesPerFrame();
if (strcmp(name, "EndOfFrame")) {
endOfFrameTime = TimerBar.Timers[n].endTime - TimerBar.Timers[n].startTime;
}
}
float Diag_GetFPS()
@ -74,6 +90,8 @@ float Diag_GetFPS()
return 39000.0f / (msCollected[(curMS - 1) % MAX_MS_COLLECTED] - msCollected[curMS % MAX_MS_COLLECTED]);
}
extern "C" void RDebug_Printf(const char*, ...);
void tbDisplay()
{
char temp[200];
@ -94,6 +112,26 @@ void tbDisplay()
CFont::SetPropOn();
CFont::SetFontStyle(FONT_BANK);
sprintf(temp, "FPS: %.2f", Diag_GetFPS());
if (frames >= 15) {
RDebug_Printf("FPS: %.2f", Diag_GetFPS());
RDebug_Printf("vbo: %d, draw: %d, render: %d, matfx: %d, skin: %d ", vboUploads, draw, render, matfx, skin);
for (uint32 i = 0; i < TimerBar.count; i++) {
MaxTimes[i] = Max(MaxTimes[i], TimerBar.Timers[i].endTime - TimerBar.Timers[i].startTime);
RDebug_Printf("%s: %.2f", &TimerBar.Timers[i].name[0], MaxTimes[i]);
}
MaxFrameTime = Max(MaxFrameTime, FrameEndTime - FrameInitTime);
RDebug_Printf("EndOfFrame: %.2f", endOfFrameTime);
RDebug_Printf("Frame Time: %.2f", MaxFrameTime);
RDebug_Printf(" ");
frames = 0;
} else frames++;
vboUploads = 0;
draw = 0;
render = 0;
matfx = 0;
skin = 0;
AsciiToUnicode(temp, wtemp);
CFont::SetColor(CRGBA(255, 255, 255, 255));
#ifndef MASTER

View file

@ -149,9 +149,12 @@ matfxEnvRender(InstanceDataHeader *header, InstanceData *inst, int32 vsBits, uin
rw::SetRenderState(SRCBLEND, BLENDSRCALPHA);
}
extern "C" int matfx;
void
matfxRenderCB(Atomic *atomic, InstanceDataHeader *header)
{
matfx++;
uint32 flags = atomic->geometry->flags;
setWorldMatrix(atomic->getFrame()->getLTM());
int32 vsBits = lightingCB(atomic);

View file

@ -167,6 +167,8 @@ ObjPipeline::create(void)
return pipe;
}
extern "C" int vboUploads;
void
defaultInstanceCB(Geometry *geo, InstanceDataHeader *header, bool32 reinstance)
{
@ -303,6 +305,7 @@ defaultInstanceCB(Geometry *geo, InstanceDataHeader *header, bool32 reinstance)
glBindBuffer(GL_ARRAY_BUFFER, header->vbo);
glBufferData(GL_ARRAY_BUFFER, header->totalNumVertex*attribs[0].stride,
header->vertexBuffer, GL_STATIC_DRAW);
vboUploads++;
#ifdef RW_GL_USE_VAOS
setAttribPointers(header->attribDesc, header->numAttribs);
glBindVertexArray(0);

View file

@ -21,9 +21,13 @@ namespace gl3 {
#define MAX_LIGHTS
extern "C" int draw;
extern "C" int render;
void
drawInst_simple(InstanceDataHeader *header, InstanceData *inst)
{
draw++;
flushCache();
glDrawElements(header->primType, inst->numIndex,
GL_UNSIGNED_SHORT, ((uint8*) header->indexBuffer) + inst->offset);
@ -133,6 +137,7 @@ lightingCB(Atomic *atomic)
void
defaultRenderCB(Atomic *atomic, InstanceDataHeader *header)
{
render++;
Material *m;
uint32 flags = atomic->geometry->flags;

View file

@ -246,9 +246,12 @@ uploadSkinMatrices(Atomic *a)
setUniform(u_boneMatrices, skinMatrices);
}
extern "C" int skin;
void
skinRenderCB(Atomic *atomic, InstanceDataHeader *header)
{
skin++;
Material *m;
uint32 flags = atomic->geometry->flags;