Jump to content
daryl1968

W10 FLS Slot Limit Increase

Recommended Posts

Interesting - any CbB coders ( @Noel Borthwick ) know if this would affect performance?

https://blogs.windows.com/windowsexperience/2019/01/09/announcing-windows-10-insider-preview-build-18312/?fbclid=IwAR1ycVXxAedMN3u0ejLugykUTrquurZc8LKHJXPznFGcDOn1MemXwtly5K4

Here's the excerpt of interest:

 Windows 10 Insider Preview Build 18312

FLS Slot Limit Increase

As PCs get more powerful, musicians have created increasingly complex projects with more tracks, more instruments, and deeper effects chains. As a result, some of those musicians were running up against a FLS (Fiber Local Storage) slot allocation ceiling that prevented them from loading into their DAWs (Digital Audio Workstations) as many unique plugins as they’d like. This build greatly raises that per-process FLS slot allocation ceiling, allowing loading potentially thousands of unique plugins. Beyond musicians, this change will positively impact any application that dynamically loads hundreds or thousands of unique DLLs that have statically-linked Visual C++ runtimes, or otherwise allocate FLS slots.

  • Like 1

Share this post


Link to post
Share on other sites

Yes we got notification from Microsoft about this and will be testing this update.
It should only affects cases where people were loading up hundreds of instances of plugins inside the DAW. You could hit the ceiling if the plugins were built with an old VC runtime or if they were statically linked with it (static linking is not ideal since every plugin instance has a duplicate copy of the runtime so takes more memory)

No other functionality should be impacted. Its good that they fixed it however.

  • Thanks 1

Share this post


Link to post
Share on other sites
18 minutes ago, Noel Borthwick said:

Yes we got notification from Microsoft about this and will be testing this update.
It should only affects cases where people were loading up hundreds of instances of plugins inside the DAW. You could hit the ceiling if the plugins were built with an old VC runtime or if they were statically linked with it (static linking is not ideal since every plugin instance has a duplicate copy of the runtime so takes more memory)

No other functionality should be impacted. Its good that they fixed it however.

great - good to know.

Thanks Noel

Share this post


Link to post
Share on other sites

If anyone is on the Insider program please try out that build and report back. The way to test would be to load up as many instances of VST plugins as you can in CbB.

Try and load up 1000 or more instances :) <<see correction below>>

A quick way to test is by adding an effects chain containing say 20 or so plugins (not important which ones) and then duplicate that chain several times in the track, and finally duplicate the track.

CORRECTION:

My original recipe above wont work. You have to add UNIQUE instances of plugins that specifically load a new DLL to run into the limit. i.e loading a 100 waves plugins wont hit the problem since they are all loaded from a single waves shell dll. Also loading the same plugin multiple times is fine since it all comes from the same dll. This is likely why most people never run into the 128 slot limit.

Here is a much more detailed explanation from Pete Brown from Microsoft. 

So to test this you need more than 128 UNIQUE plugins installed and need to load them all into a single project to see if its fixed. Good luck :)

Share this post


Link to post
Share on other sites
Just now, Noel Borthwick said:

See correction to my post above. You may actually need Bapu. You must own more than 128 unique plugins to run into this..

Lol. I knew he had a special purpose. 

Share this post


Link to post
Share on other sites

Well I could probably compile 100 copies of a test plugin just changing the guid. I'm not in the mood to wait for 100 compiles today :)

  • Like 1
  • Haha 1

Share this post


Link to post
Share on other sites

I actually found a VST that reports how many FLS slots are left.

I loaded it into a project I have that doesn't have all that many plug-ins and it said that I had 79 slots left.

Now I know  I don't have 50 plug-ins in this project, so some of them must be using multiple .DLL's, Cakewalk itself must use several (I count 14 .DLL's in the Core folder, if that means anything).

Very interesting, and I never heard of this limitation. It seems to be something that film composer types would run up against moreso than audio recorders like me.

Nice that Microsoft are addressing it and announcing it right ahead of the NAMM Show.

Share this post


Link to post
Share on other sites
5 minutes ago, Starship Krupa said:

I actually found a VST that reports how many FLS slots are left.

I loaded it into a project I have that doesn't have all that many plug-ins and it said that I had 79 slots left.

Now I know  I don't have 50 plug-ins in this project, so some of them must be using multiple .DLL's, Cakewalk itself must use several (I count 14 .DLL's in the Core folder, if that means anything).

Very interesting, and I never heard of this limitation. It seems to be something that film composer types would run up against moreso than audio recorders like me.

Nice that Microsoft are addressing it and announcing it right ahead of the NAMM Show.

Ha. Interesting

Share this post


Link to post
Share on other sites

Must users use multiple instances of similar plugins. i.e if you patch 100 intances of an EQ or compressor this would count as 1. 

I think its very infrequent that anyone would run into a hundred unique plugins in a single project even if there are hundreds of tracks.

Irrespective its a good fix to have since apps could load DLL's for other stuff that counts towards the FLS limit.

  • Haha 1

Share this post


Link to post
Share on other sites

There are some real subtleties to this. I figured it would be good to post a clarification. 

Most DAWs use between 20 and 40 FLS slots. Plugins typically use 1 to 45 slots themselves (with most using < 4).

It's not about loading up 128 plugins, but loading up plugins that take up the remaining slots left after the DAW has its slots allocated. The VC runtime allocates a slot (the whole static linking thing), but code may allocate FLS slots for other, completely legitimate, reasons. Or the plugin may just have a whole lot of statically linked runtimes in its numerous sub components, using up slots and wasting memory by filling it with many copies of the same runtime code. You don't know which case it is unless you decompile the plugin code.

Here are some numbers that folks put up in another forum (I have not personally confirmed them, but they look right):

  • Steinberg Padshop - 1
  • Spectrasonics Trilian - 1
  • Waves (Waveshell) 2
  • Waves Codex - 2
  • UAD -2
  • Roland TR 808-2
  • dbx160 - 2
  • Slate VMR - 2
  • FXpansion BFD3 - 2
  • Korg Arp Odyssey - 3
  • Steinberg Dark Planet - 3
  • BX20 - 4
  • ATR102 - 4
  • Kontakt -4
  • Maschine-4
  • SSL E Legacy - 4
  • API 2500 - 4
  • EMT 140/250 - 4
  • Fairchild 670 MKII - 4
  • LA-2A Grey - 4
  • Arturia Arp 2600 v3 - 6
  • Arturia Buchla - 6
  • Arturia DX7 - 6
  • Synclavier - 7
  • CMI - 8
  • Analogue Lab3 45

I've also separately confirmed that iZotope Neutron uses 10 slots itself for the version I have (I'm a rev behind current, as I recall)

So if the DAW uses, say, 30 slots, and you also have Analog Lab 3 loaded, and Neutron, you end up 85 of your 128 slots taken up. It's not at all hard to hit that limit this way. Note that freezing or disabling tracks doesn't change this count. It's about code loaded into the process. Also note that adding and removing a bunch of different plugins in a session can also use up slots, as it appears the slots don't always go back to the pool. Not sure why there, and I haven't looked into it.

The limit is per-process, not machine-wide. Solutions that host plugins in a separate process get their own 128 slots.

The limit itself goes back to Windows Vista, and hasn't changed since then. Folks using Windows 7 have confirmed that the slot count is the same as on Windows 10.

The fix itself, if all goes well, will be in the 19H1 release of Windows 10, in the first half of this calendar year.

Pete

  • Thanks 2

Share this post


Link to post
Share on other sites
5 minutes ago, Pete Brown said:

There are some real subtleties to this. I figured it would be good to post a clarification. 

Most DAWs use between 20 and 40 FLS slots. Plugins typically use 1 to 45 slots themselves (with most using < 4).

It's not about loading up 128 plugins, but loading up plugins that take up the remaining slots left after the DAW has its slots allocated. The VC runtime allocates a slot (the whole static linking thing), but code may allocate FLS slots for other, completely legitimate, reasons. Or the plugin may just have a whole lot of statically linked runtimes in its numerous sub components, using up slots and wasting memory by filling it with many copies of the same runtime code. You don't know which case it is unless you decompile the plugin code.

Here are some numbers that folks put up in another forum (I have not personally confirmed them, but they look right):

  • Steinberg Padshop - 1
  • Spectrasonics Trilian - 1
  • Waves (Waveshell) 2
  • Waves Codex - 2
  • UAD -2
  • Roland TR 808-2
  • dbx160 - 2
  • Slate VMR - 2
  • FXpansion BFD3 - 2
  • Korg Arp Odyssey - 3
  • Steinberg Dark Planet - 3
  • BX20 - 4
  • ATR102 - 4
  • Kontakt -4
  • Maschine-4
  • SSL E Legacy - 4
  • API 2500 - 4
  • EMT 140/250 - 4
  • Fairchild 670 MKII - 4
  • LA-2A Grey - 4
  • Arturia Arp 2600 v3 - 6
  • Arturia Buchla - 6
  • Arturia DX7 - 6
  • Synclavier - 7
  • CMI - 8
  • Analogue Lab3 45

I've also separately confirmed that iZotope Neutron uses 10 slots itself for the version I have (I'm a rev behind current, as I recall)

So if the DAW uses, say, 30 slots, and you also have Analog Lab 3 loaded, and Neutron, you end up 85 of your 128 slots taken up. It's not at all hard to hit that limit this way. Note that freezing or disabling tracks doesn't change this count. It's about code loaded into the process. Also note that adding and removing a bunch of different plugins in a session can also use up slots, as it appears the slots don't always go back to the pool. Not sure why there, and I haven't looked into it.

The limit is per-process, not machine-wide. Solutions that host plugins in a separate process get their own 128 slots.

The limit itself goes back to Windows Vista, and hasn't changed since then. Folks using Windows 7 have confirmed that the slot count is the same as on Windows 10.

The fix itself, if all goes well, will be in the 19H1 release of Windows 10, in the first half of this calendar year.

Pete

Excellent info Pete

Share this post


Link to post
Share on other sites

Thanks Pete for the explanation. Hopefully it will make it into the Windows build.

Share this post


Link to post
Share on other sites

How about trying to limit what stuff you shove though a DAW. Some of the best music was created  with a minimum number of tracks and effects. 😀

  • Like 1

Share this post


Link to post
Share on other sites
1 minute ago, whistlekiller said:

How about trying to limit what stuff you shove though a DAW. Some of the best music was created  with a minimum number of tracks and effects. 😀

Read 'Here There and Everywhere' by Geoff Emerick. It changed the way I approached recording forever. Great read. 

  • Like 1

Share this post


Link to post
Share on other sites
18 minutes ago, whistlekiller said:

How about trying to limit what stuff you shove though a DAW. Some of the best music was created  with a minimum number of tracks and effects. 😀

That's up to the individual.

We just didn't think the OS should be making that decision for you.

Pete

  • Like 2
  • Great Idea 1

Share this post


Link to post
Share on other sites
1 hour ago, Pete Brown said:

Also note that adding and removing a bunch of different plugins in a session can also use up slots, as it appears the slots don't always go back to the pool.

That's pretty bad. I wonder if it's due to undo history or memory leaks. Did you try clearing your undo history @Pete Brown

Thanks for the details, appreciated.

Share this post


Link to post
Share on other sites
51 minutes ago, Noel Borthwick said:

That's pretty bad. I wonder if it's due to undo history or memory leaks. Did you try clearing your undo history @Pete Brown

Thanks for the details, appreciated.

I didn't dig into it at all. I also haven't tried it in Cakewalk. I've seen others report it, and I had it happen with me in another DAW.

Pete

Share this post


Link to post
Share on other sites

I've installed 18312 on my DAW PC.

FWIW, I tried out the FLS Checker plugin, and it maxes out at 128. So DAWs all show 128 even after a ton of plugins have been added.

46720193941_d4d431be21_o.png

To confirm the slot increase, I wrote a small C++ console app. It's running under the debugger here, so a few slots are taken.

Results

32845424918_1bbaaca812_o.png

Code

31779028037_3325e17e86_o.png

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×
×
  • Create New...