diff --git a/src/engine/Engine.cpp b/src/engine/Engine.cpp index 397c17b3..04c9c2a0 100644 --- a/src/engine/Engine.cpp +++ b/src/engine/Engine.cpp @@ -564,7 +564,10 @@ void Engine::stepBlock(int frames) { std::lock_guard stepLock(internal->blockMutex); ReadLock lock(internal->mutex); // Configure thread + uint32_t csr = _mm_getcsr(); + DEBUG("original MXCSR %x", csr); initMXCSR(); + DEBUG("new MXCSR %x", csr); random::init(); internal->blockFrame = internal->frame; @@ -606,6 +609,9 @@ void Engine::stepBlock(int frames) { internal->meterTotal = 0.0; internal->meterMax = 0.0; } + + // Reset MXCSR back to original value + _mm_setcsr(csr); }