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[3] || !culled_for_cams[4] || !culled_for_cams[5]))
|
||||
{
|
||||
skinning_offset =
|
||||
std::accumulate(m_mesh_for_skinning.begin(),
|
||||
m_mesh_for_skinning.end(), 0, [] (const size_t previous,
|
||||
const STKAnimatedMesh* m)
|
||||
{ return previous + m->getTotalJointSize(); });
|
||||
skinning_offset = getSkinningOffset();
|
||||
m_mesh_for_skinning.insert(am);
|
||||
am->setSkinningOffset(skinning_offset * sizeof(core::matrix4));
|
||||
}
|
||||
@ -584,6 +580,7 @@ void DrawCalls::prepareDrawCalls( ShadowMatrices& shadow_matrices,
|
||||
&m_immediate_draw_list, camnode, shadow_matrices);
|
||||
PROFILER_POP_CPU_MARKER();
|
||||
|
||||
irr_driver->setSkinningJoint(getSkinningOffset());
|
||||
// Add a 1 s timeout
|
||||
if (!m_sync)
|
||||
m_sync = glFenceSync(GL_SYNC_GPU_COMMANDS_COMPLETE, 0);
|
||||
@ -882,3 +879,12 @@ void DrawCalls::multidrawGlow() const
|
||||
m_glow_cmd_buffer->multidraw();
|
||||
}
|
||||
#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 multidrawGlow() const;
|
||||
void renderBoundingBoxes();
|
||||
uint32_t getSkinningOffset() const;
|
||||
};
|
||||
|
||||
#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_boundingboxesviz = false;
|
||||
m_last_light_bucket_distance = 0;
|
||||
m_skinning_joint = 0;
|
||||
} // IrrDriver
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
@ -1899,9 +1900,10 @@ void IrrDriver::displayFPS()
|
||||
if ((UserConfigParams::m_artist_debug_mode)&&(CVS->isGLSL()))
|
||||
{
|
||||
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),
|
||||
m_renderer->getPolyCount(SHADOW_PASS), m_last_light_bucket_distance);
|
||||
m_renderer->getPolyCount(SHADOW_PASS), m_last_light_bucket_distance,
|
||||
m_skinning_joint);
|
||||
}
|
||||
else
|
||||
fps_string = _("FPS: %d/%d/%d - %d KTris", min, fps, max, (int)roundf(kilotris));
|
||||
|
@ -173,6 +173,7 @@ private:
|
||||
bool m_boundingboxesviz;
|
||||
|
||||
unsigned m_last_light_bucket_distance;
|
||||
unsigned m_skinning_joint;
|
||||
u32 m_renderpass;
|
||||
class STKMeshSceneNode *m_sun_interposer;
|
||||
core::vector3df m_sun_direction;
|
||||
@ -292,6 +293,7 @@ public:
|
||||
void showPointer();
|
||||
void hidePointer();
|
||||
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; }
|
||||
core::position2di getMouseLocation();
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user