Browse Source

Save and restore MXCSR back to original value in Engine::stepBlock().

tags/v2.0.0
Andrew Belt 3 years ago
parent
commit
908878e45d
1 changed files with 6 additions and 0 deletions
  1. +6
    -0
      src/engine/Engine.cpp

+ 6
- 0
src/engine/Engine.cpp View File

@@ -564,7 +564,10 @@ void Engine::stepBlock(int frames) {
std::lock_guard<std::mutex> 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);
}




Loading…
Cancel
Save