View Single Post
Old 09-15-2017, 12:42 AM   #155
osxmidi
Human being with feelings
 
Join Date: Feb 2014
Posts: 620
Default

Quote:
Originally Posted by Jack Winter View Post
Happy to hear that



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.



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?
The ringbuffer is connected to the semaphore handling.

Some other things are

Reaper (and other hosts hammer certain calls).

Reaper hammers the getrect call and that's a lot of traffic to send to the server from the parent so I avoid the getrect calls and I also avoid the effeditidle calls by having the windows timer activate only from the server to refresh the plugins gui.

Reaper hammers the get/set parameters on automation and it used to lock up and it seemed to be that the pipes couldn't handle the traffic, that's why I went to semaphores and put the get/set parameters on their own thread.

Last edited by osxmidi; 09-15-2017 at 12:50 AM.
osxmidi is offline   Reply With Quote