Try to disable openMP at runtime

This commit is contained in:
Vincent Lejeune 2014-09-12 01:12:55 +02:00
parent 53fe339fb3
commit 6f65874ab2

View File

@ -463,6 +463,8 @@ InstanceData *InstanceBuffer, DrawElementsIndirectCommand *CommandBuffer, size_t
ShadowPassCmd::getInstance()->Size[cascade][Mat] = CommandBufferOffset - ShadowPassCmd::getInstance()->Offset[cascade][Mat]; ShadowPassCmd::getInstance()->Size[cascade][Mat] = CommandBufferOffset - ShadowPassCmd::getInstance()->Offset[cascade][Mat];
} }
int enableOpenMP;
void IrrDriver::PrepareDrawCalls(scene::ICameraSceneNode *camnode) void IrrDriver::PrepareDrawCalls(scene::ICameraSceneNode *camnode)
{ {
windDir = getWindDir(); windDir = getWindDir();
@ -558,7 +560,10 @@ void IrrDriver::PrepareDrawCalls(scene::ICameraSceneNode *camnode)
ShadowCmdBuffer = ShadowPassCmd::getInstance()->Ptr; ShadowCmdBuffer = ShadowPassCmd::getInstance()->Ptr;
GlowCmdBuffer = GlowPassCmd::getInstance()->Ptr; GlowCmdBuffer = GlowPassCmd::getInstance()->Ptr;
RSMCmdBuffer = RSMPassCmd::getInstance()->Ptr; RSMCmdBuffer = RSMPassCmd::getInstance()->Ptr;
enableOpenMP = 1;
} }
else
enableOpenMP = 0;
ListInstancedMatDefault::getInstance()->clear(); ListInstancedMatDefault::getInstance()->clear();
ListInstancedMatAlphaRef::getInstance()->clear(); ListInstancedMatAlphaRef::getInstance()->clear();
@ -573,7 +578,7 @@ void IrrDriver::PrepareDrawCalls(scene::ICameraSceneNode *camnode)
PROFILER_PUSH_CPU_MARKER("- Draw Command upload", 0xFF, 0x0, 0xFF); PROFILER_PUSH_CPU_MARKER("- Draw Command upload", 0xFF, 0x0, 0xFF);
auto playercamculling = [](const scene::ISceneNode *nd) {return dynamic_cast<const STKMeshCommon*>(nd)->isCulledForPlayerCam(); }; auto playercamculling = [](const scene::ISceneNode *nd) {return dynamic_cast<const STKMeshCommon*>(nd)->isCulledForPlayerCam(); };
#pragma omp parallel sections #pragma omp parallel sections if(enableOpenMP)
{ {
#pragma omp section #pragma omp section
{ {