DISTRHO / Cardinal

Virtual modular synthesizer plugin
https://cardinal.kx.studio/
GNU General Public License v3.0
2.18k stars 149 forks source link

Low FPS #10

Closed zezic closed 2 years ago

zezic commented 2 years ago

Cardinal is slower in graphical performance compared to the original VCV Rack. On my system Cardinal gives about 32 FPS when VCV Rack is able to reach 60 FPS without problems. My GPU is Vega 8 (integrated into AMD Ryzen 7 5700G), running on Linux.

falkTX commented 2 years ago

This is normal and expected. With standalone vcvrack, it is the "plugin" (rack) that takes care of refresh rate, but it is not the same for audio plugins. Typically for audio plugins we plug into the host run loop, so we are bound to how fast (or not) it renders the UI.

zezic commented 2 years ago

Can we run our UI faster than host loop calls us? I have some plugins which are able to reach 60 FPS under yabridge. I think @robbert-vdh know something about it.

falkTX commented 2 years ago

We could bypass the host and try to do things ourselves. On linux that would involves spawning a thread to drive UI events. I really, really do not want to go into that route. Depending on the host, you can configure it to drive its UI faster.

For yabridge the same doesnt apply since it always needs to run in its custom thread.

zezic commented 2 years ago

Ah, okay then. There is just so much cable-dragging mouse action involved in modular systems workflow and also so much panning around the work area that I thought it would be much more comfortable to have a higher framerate.

zezic commented 2 years ago

I mean, when things are static in their position (like the UIs of most of the audio plugins) it's not such noticeable if they run at 30 FPS. So, turning the knob at 30 FPS feels normal, but panning around the window with 30 FPS vs 60 FPS is a big diff

Wait. I just noticed that Cardinal is running at 60 FPS inside Bitwig. It only has limited framerate when started as a standalone executable.

zezic commented 2 years ago

False alarm.

falkTX commented 2 years ago

That seems alright to me. I consider the jack standalone to be more of a testing tool rather than something to use for real. The standalone does an actual "sleep" call to simulate the idle loop.

btw, going to convert this into a discussion, so others will see it.