fix(bridge): set ringMask=7 on Windows — ring collapsed to 1 slot (slot = writeIndex & 0), dropped audio blocks on GUI jank
This commit is contained in:
@@ -717,6 +717,10 @@ int main(int argc, char* argv[]) {
|
|||||||
}
|
}
|
||||||
auto* shmIPC = (SharedAudioBufferIPC*)MapViewOfFile(hMapFile, FILE_MAP_ALL_ACCESS, 0, 0, sizeof(SharedAudioBufferIPC));
|
auto* shmIPC = (SharedAudioBufferIPC*)MapViewOfFile(hMapFile, FILE_MAP_ALL_ACCESS, 0, 0, sizeof(SharedAudioBufferIPC));
|
||||||
if (!shmIPC) { CloseHandle(hMapFile); return 1; }
|
if (!shmIPC) { CloseHandle(hMapFile); return 1; }
|
||||||
|
// VSTi crackle fix: 8-slot audio ring (see SharedMemoryIPC.h). Must be set
|
||||||
|
// on Windows too — ringMask stays 0 otherwise and the ring collapses to
|
||||||
|
// 1 slot (slot = writeIndex & 0), dropping whole blocks on any jank.
|
||||||
|
shmIPC->ringMask = 7;
|
||||||
#else
|
#else
|
||||||
(void)shmName; // POSIX shm mapping (shm_open) added when porting off Windows
|
(void)shmName; // POSIX shm mapping (shm_open) added when porting off Windows
|
||||||
auto* shmIPC = (SharedAudioBufferIPC*)std::calloc(1, sizeof(SharedAudioBufferIPC));
|
auto* shmIPC = (SharedAudioBufferIPC*)std::calloc(1, sizeof(SharedAudioBufferIPC));
|
||||||
|
|||||||
Reference in New Issue
Block a user