mirror of
https://gitlab.com/shinovon/re3-symbian.git
synced 2026-05-22 17:47:20 +03:00
Some stats
This commit is contained in:
parent
1209902fe9
commit
7e7188abbd
6 changed files with 54 additions and 0 deletions
|
|
@ -1750,7 +1750,9 @@ Idle(void *arg)
|
|||
if (gbShowTimebars)
|
||||
tbDisplay();
|
||||
|
||||
tbStartTimer(0, "EndOfFrame");
|
||||
DoRWStuffEndOfFrame();
|
||||
tbEndTimer("EndOfFrame");
|
||||
|
||||
POP_MEMID(); // MEMID_RENDER
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
3
vendor/librw/src/gl/gl3matfx.cpp
vendored
3
vendor/librw/src/gl/gl3matfx.cpp
vendored
|
|
@ -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);
|
||||
|
|
|
|||
3
vendor/librw/src/gl/gl3pipe.cpp
vendored
3
vendor/librw/src/gl/gl3pipe.cpp
vendored
|
|
@ -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);
|
||||
|
|
|
|||
5
vendor/librw/src/gl/gl3render.cpp
vendored
5
vendor/librw/src/gl/gl3render.cpp
vendored
|
|
@ -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;
|
||||
|
|
|
|||
3
vendor/librw/src/gl/gl3skin.cpp
vendored
3
vendor/librw/src/gl/gl3skin.cpp
vendored
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue