From 6c75c2fdd95d1aad14a99e0e28302d0ecb6b1a88 Mon Sep 17 00:00:00 2001 From: Wohlstand Date: Tue, 25 Mar 2025 12:38:12 +0300 Subject: WinMM Experiment: Set high priority to render thread This should help resolve the choppying problem on weaker machines in parallel with background activity. --- utils/winmm_drv/src/MidiSynth.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/utils/winmm_drv/src/MidiSynth.cpp b/utils/winmm_drv/src/MidiSynth.cpp index 078d930..cef311f 100644 --- a/utils/winmm_drv/src/MidiSynth.cpp +++ b/utils/winmm_drv/src/MidiSynth.cpp @@ -286,8 +286,10 @@ public: int Start() { + HANDLE renderThread; getPosWraps = 0; prevPlayPos = 0; + for(UINT i = 0; i < chunks; i++) { if(waveOutWrite(hWaveOut, &WaveHdr[i], sizeof(WAVEHDR)) != MMSYSERR_NOERROR) @@ -297,7 +299,8 @@ public: } } - _beginthread(RenderingThread, 8192 * sizeSample, this); + renderThread = (HANDLE)_beginthread(RenderingThread, 8192 * sizeSample, this); + SetThreadPriority(renderThread, THREAD_PRIORITY_HIGHEST); return 0; } -- cgit v1.2.3