Memory exhausted, transition to SublimeKSP

2»

Comments

  • EvilDragon
    EvilDragon Moderator Posts: 1,022 mod

    Right, because the first two require a UI refresh.

  • Reid115
    Reid115 Member Posts: 47 Member
    edited May 2022

    @EvilDragon

    Do you know of any Kontakt instruments that use a particularly large number of UI elements (1000+)? I feel like I can't be the first one to notice this problem/symptom of the UI slowing considerably from many elements, so it would be interesting to test out another equally-heavy instrument to see how it does in terms of UI performance. I've seen posts where people are talking about working on instruments with 20k+ lines of code, so there has to be stuff out there that's more dense than what I'm doing.

    It's a shame that a UI refresh will refresh all elements, even ones that are hidden and thus unneccessary to update (unless explicitly told to). If Kontakt only refreshed visible elements, it would reduce UI CPU consumption drastically, but I don't know much about the nitty gritty of how this stuff works.

  • EvilDragon
    EvilDragon Moderator Posts: 1,022 mod

    I think a bunch of Sample Logic instruments use a lot of widgets. I know for a fact that Fluid Harmonics by In Session Audio uses over 700.


    Actually, there were some UI refresh optimizations around Kontakt 6.3 times, particularly due to Straylight's CPU usage - and I think some of that did pertain to not triggering a refresh for hidden widgets. Not 100% sure though. But Z-order matters and if you do something with a widget that is below other widgets, all that area needs to be invalidated.

  • Reid115
    Reid115 Member Posts: 47 Member

    But Z-order matters and if you do something with a widget that is below other widgets, all that area needs to be invalidated.

    Can you elaborate on this? The main thing is, I have different tabs in my instrument (custom tabs, same script). Each tab is a separate panel, and they all have the same master panel as their parent. Obviously, only 1 tab panel is shown at a time, so when I move a control, I don't want it to invalidate anything on the other tabs which aren't shown. Is there any way to do that? I know it's currently invalidating stuff on other tabs because if I add a bunch of elements to say tab 1 and then move a control on tab 2, it uses more CPU than if I had nothing on tab 1. It doesn't make a difference if I put tab 1 on Z-layer -1 and tab 2 on Z-layer 1.

Back To Top