mirror of
https://gitlab.com/shinovon/re3-symbian.git
synced 2026-05-23 01:57:21 +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)
|
if (gbShowTimebars)
|
||||||
tbDisplay();
|
tbDisplay();
|
||||||
|
|
||||||
|
tbStartTimer(0, "EndOfFrame");
|
||||||
DoRWStuffEndOfFrame();
|
DoRWStuffEndOfFrame();
|
||||||
|
tbEndTimer("EndOfFrame");
|
||||||
|
|
||||||
POP_MEMID(); // MEMID_RENDER
|
POP_MEMID(); // MEMID_RENDER
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -29,10 +29,23 @@ float MaxFrameTime;
|
||||||
|
|
||||||
uint32 curMS;
|
uint32 curMS;
|
||||||
uint32 msCollected[MAX_MS_COLLECTED];
|
uint32 msCollected[MAX_MS_COLLECTED];
|
||||||
|
uint frames;
|
||||||
#ifdef FRAMETIME
|
#ifdef FRAMETIME
|
||||||
float FrameInitTime;
|
float FrameInitTime;
|
||||||
#endif
|
#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()
|
void tbInit()
|
||||||
{
|
{
|
||||||
TimerBar.count = 0;
|
TimerBar.count = 0;
|
||||||
|
|
@ -67,6 +80,9 @@ void tbEndTimer(Const char* name)
|
||||||
}
|
}
|
||||||
assert(n != 1500);
|
assert(n != 1500);
|
||||||
TimerBar.Timers[n].endTime = (float)CTimer::GetCurrentTimeInCycles() / (float)CTimer::GetCyclesPerFrame();
|
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()
|
float Diag_GetFPS()
|
||||||
|
|
@ -74,6 +90,8 @@ float Diag_GetFPS()
|
||||||
return 39000.0f / (msCollected[(curMS - 1) % MAX_MS_COLLECTED] - msCollected[curMS % MAX_MS_COLLECTED]);
|
return 39000.0f / (msCollected[(curMS - 1) % MAX_MS_COLLECTED] - msCollected[curMS % MAX_MS_COLLECTED]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extern "C" void RDebug_Printf(const char*, ...);
|
||||||
|
|
||||||
void tbDisplay()
|
void tbDisplay()
|
||||||
{
|
{
|
||||||
char temp[200];
|
char temp[200];
|
||||||
|
|
@ -94,6 +112,26 @@ void tbDisplay()
|
||||||
CFont::SetPropOn();
|
CFont::SetPropOn();
|
||||||
CFont::SetFontStyle(FONT_BANK);
|
CFont::SetFontStyle(FONT_BANK);
|
||||||
sprintf(temp, "FPS: %.2f", Diag_GetFPS());
|
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);
|
AsciiToUnicode(temp, wtemp);
|
||||||
CFont::SetColor(CRGBA(255, 255, 255, 255));
|
CFont::SetColor(CRGBA(255, 255, 255, 255));
|
||||||
#ifndef MASTER
|
#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);
|
rw::SetRenderState(SRCBLEND, BLENDSRCALPHA);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extern "C" int matfx;
|
||||||
|
|
||||||
void
|
void
|
||||||
matfxRenderCB(Atomic *atomic, InstanceDataHeader *header)
|
matfxRenderCB(Atomic *atomic, InstanceDataHeader *header)
|
||||||
{
|
{
|
||||||
|
matfx++;
|
||||||
uint32 flags = atomic->geometry->flags;
|
uint32 flags = atomic->geometry->flags;
|
||||||
setWorldMatrix(atomic->getFrame()->getLTM());
|
setWorldMatrix(atomic->getFrame()->getLTM());
|
||||||
int32 vsBits = lightingCB(atomic);
|
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;
|
return pipe;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extern "C" int vboUploads;
|
||||||
|
|
||||||
void
|
void
|
||||||
defaultInstanceCB(Geometry *geo, InstanceDataHeader *header, bool32 reinstance)
|
defaultInstanceCB(Geometry *geo, InstanceDataHeader *header, bool32 reinstance)
|
||||||
{
|
{
|
||||||
|
|
@ -303,6 +305,7 @@ defaultInstanceCB(Geometry *geo, InstanceDataHeader *header, bool32 reinstance)
|
||||||
glBindBuffer(GL_ARRAY_BUFFER, header->vbo);
|
glBindBuffer(GL_ARRAY_BUFFER, header->vbo);
|
||||||
glBufferData(GL_ARRAY_BUFFER, header->totalNumVertex*attribs[0].stride,
|
glBufferData(GL_ARRAY_BUFFER, header->totalNumVertex*attribs[0].stride,
|
||||||
header->vertexBuffer, GL_STATIC_DRAW);
|
header->vertexBuffer, GL_STATIC_DRAW);
|
||||||
|
vboUploads++;
|
||||||
#ifdef RW_GL_USE_VAOS
|
#ifdef RW_GL_USE_VAOS
|
||||||
setAttribPointers(header->attribDesc, header->numAttribs);
|
setAttribPointers(header->attribDesc, header->numAttribs);
|
||||||
glBindVertexArray(0);
|
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
|
#define MAX_LIGHTS
|
||||||
|
|
||||||
|
extern "C" int draw;
|
||||||
|
extern "C" int render;
|
||||||
|
|
||||||
void
|
void
|
||||||
drawInst_simple(InstanceDataHeader *header, InstanceData *inst)
|
drawInst_simple(InstanceDataHeader *header, InstanceData *inst)
|
||||||
{
|
{
|
||||||
|
draw++;
|
||||||
flushCache();
|
flushCache();
|
||||||
glDrawElements(header->primType, inst->numIndex,
|
glDrawElements(header->primType, inst->numIndex,
|
||||||
GL_UNSIGNED_SHORT, ((uint8*) header->indexBuffer) + inst->offset);
|
GL_UNSIGNED_SHORT, ((uint8*) header->indexBuffer) + inst->offset);
|
||||||
|
|
@ -133,6 +137,7 @@ lightingCB(Atomic *atomic)
|
||||||
void
|
void
|
||||||
defaultRenderCB(Atomic *atomic, InstanceDataHeader *header)
|
defaultRenderCB(Atomic *atomic, InstanceDataHeader *header)
|
||||||
{
|
{
|
||||||
|
render++;
|
||||||
Material *m;
|
Material *m;
|
||||||
|
|
||||||
uint32 flags = atomic->geometry->flags;
|
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);
|
setUniform(u_boneMatrices, skinMatrices);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extern "C" int skin;
|
||||||
|
|
||||||
void
|
void
|
||||||
skinRenderCB(Atomic *atomic, InstanceDataHeader *header)
|
skinRenderCB(Atomic *atomic, InstanceDataHeader *header)
|
||||||
{
|
{
|
||||||
|
skin++;
|
||||||
Material *m;
|
Material *m;
|
||||||
|
|
||||||
uint32 flags = atomic->geometry->flags;
|
uint32 flags = atomic->geometry->flags;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue