Show debug info about total skinning joints being calculated
This commit is contained in:
parent
d21e5e0f76
commit
407ed319de
@ -252,11 +252,7 @@ void DrawCalls::handleSTKCommon(scene::ISceneNode *Node,
|
|||||||
(!culled_for_cams[0] || !culled_for_cams[1] || !culled_for_cams[2] ||
|
(!culled_for_cams[0] || !culled_for_cams[1] || !culled_for_cams[2] ||
|
||||||
!culled_for_cams[3] || !culled_for_cams[4] || !culled_for_cams[5]))
|
!culled_for_cams[3] || !culled_for_cams[4] || !culled_for_cams[5]))
|
||||||
{
|
{
|
||||||
skinning_offset =
|
skinning_offset = getSkinningOffset();
|
||||||
std::accumulate(m_mesh_for_skinning.begin(),
|
|
||||||
m_mesh_for_skinning.end(), 0, [] (const size_t previous,
|
|
||||||
const STKAnimatedMesh* m)
|
|
||||||
{ return previous + m->getTotalJointSize(); });
|
|
||||||
m_mesh_for_skinning.insert(am);
|
m_mesh_for_skinning.insert(am);
|
||||||
am->setSkinningOffset(skinning_offset * sizeof(core::matrix4));
|
am->setSkinningOffset(skinning_offset * sizeof(core::matrix4));
|
||||||
}
|
}
|
||||||
@ -584,6 +580,7 @@ void DrawCalls::prepareDrawCalls( ShadowMatrices& shadow_matrices,
|
|||||||
&m_immediate_draw_list, camnode, shadow_matrices);
|
&m_immediate_draw_list, camnode, shadow_matrices);
|
||||||
PROFILER_POP_CPU_MARKER();
|
PROFILER_POP_CPU_MARKER();
|
||||||
|
|
||||||
|
irr_driver->setSkinningJoint(getSkinningOffset());
|
||||||
// Add a 1 s timeout
|
// Add a 1 s timeout
|
||||||
if (!m_sync)
|
if (!m_sync)
|
||||||
m_sync = glFenceSync(GL_SYNC_GPU_COMMANDS_COMPLETE, 0);
|
m_sync = glFenceSync(GL_SYNC_GPU_COMMANDS_COMPLETE, 0);
|
||||||
@ -882,3 +879,12 @@ void DrawCalls::multidrawGlow() const
|
|||||||
m_glow_cmd_buffer->multidraw();
|
m_glow_cmd_buffer->multidraw();
|
||||||
}
|
}
|
||||||
#endif // !defined(USE_GLES2)
|
#endif // !defined(USE_GLES2)
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
uint32_t DrawCalls::getSkinningOffset() const
|
||||||
|
{
|
||||||
|
return std::accumulate(m_mesh_for_skinning.begin(),
|
||||||
|
m_mesh_for_skinning.end(), 0, []
|
||||||
|
(const size_t previous, const STKAnimatedMesh* m)
|
||||||
|
{ return previous + m->getTotalJointSize(); });
|
||||||
|
} // getSkinningOffset
|
||||||
|
@ -107,6 +107,7 @@ public:
|
|||||||
void drawIndirectGlow() const;
|
void drawIndirectGlow() const;
|
||||||
void multidrawGlow() const;
|
void multidrawGlow() const;
|
||||||
void renderBoundingBoxes();
|
void renderBoundingBoxes();
|
||||||
|
uint32_t getSkinningOffset() const;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif //HEADER_DRAW_CALLS_HPP
|
#endif //HEADER_DRAW_CALLS_HPP
|
||||||
|
@ -139,6 +139,7 @@ IrrDriver::IrrDriver()
|
|||||||
m_lightviz = m_shadowviz = m_distortviz = m_rsm = m_rh = m_gi = false;
|
m_lightviz = m_shadowviz = m_distortviz = m_rsm = m_rh = m_gi = false;
|
||||||
m_boundingboxesviz = false;
|
m_boundingboxesviz = false;
|
||||||
m_last_light_bucket_distance = 0;
|
m_last_light_bucket_distance = 0;
|
||||||
|
m_skinning_joint = 0;
|
||||||
} // IrrDriver
|
} // IrrDriver
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
@ -1899,9 +1900,10 @@ void IrrDriver::displayFPS()
|
|||||||
if ((UserConfigParams::m_artist_debug_mode)&&(CVS->isGLSL()))
|
if ((UserConfigParams::m_artist_debug_mode)&&(CVS->isGLSL()))
|
||||||
{
|
{
|
||||||
fps_string = _("FPS: %d/%d/%d - PolyCount: %d Solid, "
|
fps_string = _("FPS: %d/%d/%d - PolyCount: %d Solid, "
|
||||||
"%d Shadows - LightDist : %d",
|
"%d Shadows - LightDist : %d, Total skinning joints: %d",
|
||||||
min, fps, max, m_renderer->getPolyCount(SOLID_NORMAL_AND_DEPTH_PASS),
|
min, fps, max, m_renderer->getPolyCount(SOLID_NORMAL_AND_DEPTH_PASS),
|
||||||
m_renderer->getPolyCount(SHADOW_PASS), m_last_light_bucket_distance);
|
m_renderer->getPolyCount(SHADOW_PASS), m_last_light_bucket_distance,
|
||||||
|
m_skinning_joint);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
fps_string = _("FPS: %d/%d/%d - %d KTris", min, fps, max, (int)roundf(kilotris));
|
fps_string = _("FPS: %d/%d/%d - %d KTris", min, fps, max, (int)roundf(kilotris));
|
||||||
|
@ -173,6 +173,7 @@ private:
|
|||||||
bool m_boundingboxesviz;
|
bool m_boundingboxesviz;
|
||||||
|
|
||||||
unsigned m_last_light_bucket_distance;
|
unsigned m_last_light_bucket_distance;
|
||||||
|
unsigned m_skinning_joint;
|
||||||
u32 m_renderpass;
|
u32 m_renderpass;
|
||||||
class STKMeshSceneNode *m_sun_interposer;
|
class STKMeshSceneNode *m_sun_interposer;
|
||||||
core::vector3df m_sun_direction;
|
core::vector3df m_sun_direction;
|
||||||
@ -292,6 +293,7 @@ public:
|
|||||||
void showPointer();
|
void showPointer();
|
||||||
void hidePointer();
|
void hidePointer();
|
||||||
void setLastLightBucketDistance(unsigned d) { m_last_light_bucket_distance = d; }
|
void setLastLightBucketDistance(unsigned d) { m_last_light_bucket_distance = d; }
|
||||||
|
void setSkinningJoint(unsigned d) { m_skinning_joint = d; }
|
||||||
bool isPointerShown() const { return m_pointer_shown; }
|
bool isPointerShown() const { return m_pointer_shown; }
|
||||||
core::position2di getMouseLocation();
|
core::position2di getMouseLocation();
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user