View Single Post
Old 09-15-2017, 12:32 AM   #154
Jack Winter
Human being with feelings
Jack Winter's Avatar
Join Date: Aug 2007
Location: Luxembourg/Spain
Posts: 1,830

Originally Posted by osxmidi View Post
I tested them out when you sent me them and there is nothing wrong with them.
Happy to hear that

The problem is that plugins like mercuriall spark end up unbalancing the parent/child if real time priorities are just set (like I had them in earlier linvst versions) in the server threads (lin-vst-server) and also with your patches.

It seems that the parent ( and child (lin-vst-server) need to have the same thread priorities set from the parent ( and then the child inherits the parents thread priorities and it's all balanced.

If someone is on a dual core and they use mercuriall spark with my old server thread priorities or your priorities, then it becomes unusable and Reaper and other hosts lock up unfortunately.
I did try mercuriall when you mentioned it, from what I remember it did work on my machine, but I also seem to recall it doing something really stupid, but can't for the life of me remember the details (was 2 months ago)

Dual core == 2 threads? If so I think I have some script around to offline cpus. IIRC I wrote it to dynamically disable hyperthreading, but I can probably hack it to just give me a 2 thread cpu for testing.

From my latency tests on dual and quad systems using around 6 different sound hardware interfaces, the way I've got the priorities makes a large difference in reducing xruns and it seems to be ok in Ardour, Tracktion, Bitwig and Reaper.
Yes, IMO it's indispensable to run the audio processing threads SCHED_FIFO if one wants low latency without xruns, the rest if the threads like the GUI shouldn't need it.

In fact I used to start the entire reaper in wine process using chrt ... wine reaper.exe for a long time, but it has side effects and is probably not the right way to go about this.

If you don't use it, I'd recommend using wine built with my wine-rt patch, or using wine-staging with rt support enabled, as I see quite a few VSTs creating rt threads themselves, something they probably shouldn't do

BTW, why the change to using a ringbuffer, what does that help with?
Reaper for Linux Documentation (WIP). Software: Archlinux/KDE, Fabfilter FX, Komplete 8, Nebula, Schwa/Stillwell, T-racks Max/Amplitube/SVX, etc. Gear: i7-2600k/4700HQ/16GB, RME Multiface/Babyface, Behringer X32, Genelec 8040, etc. :)

Last edited by Jack Winter; 09-15-2017 at 12:39 AM.
Jack Winter is offline   Reply With Quote