Cubase 9.5 hangs on project close on Win 10

Hi there, I’ve the same issue but I’m on a mac with macOS Sierra. I don’t have issues if I work on projects with only audio files. If I start to use Spitfire Audio libraries the issue rises. And like in your case if I attempt to close the project after a few minutes it closes well. If I try to work for more time the project hangs by closing.
For sure we are using different plugins, we are on different OS systems with different libraries. The only stuff we are sharing is Steinberg’s software. The common sense let me suppose hat the issue is not in our projects or computers but by Steinberg. I mean, maybe…
But I really don’t know how to find a way to fix this.

In the end it way actually some plugins (several from different vendors which made it hard to find…) that were the culprit. Some of those bugs were fixed, one other that didn’t get fixed I just didn’t use anymore until I tested it again a few weeks ago with Cubase 10.5 and suddenly no problem anymore, no deadlocks.

Similar thing happened when sonible release their smart:comp, there were actually several users on gearslutz who had the “Cubase hang” problem with it, and the developers had a hard time finding the bug. Very esoteric.
Cubase seems to handle plugin/dll unloading differently than other DAWs. I’ve never heard it happen on MacOS, though.

Hi fese. Did you ever get to the bottom of this? I’m here in Feb 2021 after dealing with what seems the same for over a year. It happens with Acustica Audio plugins in my case. There are a number of reports of it, had numerous tickets opened. Support found the D3D10Warp.dll problem and once more we seem to be at a dead end.

Could the solution be adding this…?

Please /RELEASE me…?

Hi garethk,

in the end, it was the plugin developers that fixed it. Here is one excerpt from the one that eventually found the problem (at least in the VSTGUI Framework the he used for his plugins.)

It seems something changed in DirectX (D2D). It probably changed in a Windows 10 update (the first versions of Windows 10 were not affected by this).
Hopefully, those who use VSTGUI may have the possibility to fix the problem.
As far as they do not depend on an earlier version of VSTGUI (<4.3), they can update to 4.3.
Those who do not use VSTGUI (or those who would like to know more about this issue) should check a diff between VSTGUI 4.2 (or 4.0) and VSTGUI 4.3.
The following file, especially… and its ~D2DFactory destructor in particular (+ the “useCount” usage in v4.3):
/lib\platform\win32\win32support.cpp/
If one uses VSTGUI, it should then be worth starting by debugging this destructor.

Most other Plugins use the framework JUCE, and I have no information about that. Even more confusingly, another JUCE-based plugin that showed the hang problem seemed to have “fixed” itself after a couple of months or so after not using it. I only noticed that because the dev sent me a bugfix to test, and I compared the old and new versions and I could not reproduce the hang anymore.

1 Like

Thanks so much for that info. I’ll see what the plugin maker makes of that…

Also, in an attempt to group related threads together, I have found this:

It would be nice to know why this happens with multiple plugins only in Cubase. No other DAWs seem to have this problem.
Latest TaskManager DMP: https://drive.google.com/file/d/1yG4zC2QuZdAPu7Fpoc3tRCFzqaB6RdLi/view?usp=sharing
Interestingly I was allowed to open the File Menu before the freeze which suggests an occasional delay in the commencement of the freeze:

Yep, looks like you have the same problem as I had. I guess that Face Bender is one of your plugins.
Did you open a support ticket with Acustica? At the moment, this would be your best bet, I don’t think Steinberg is gonna solve the problem.
Send them the github.com-Link I posted a few days ago and the following excerpt from your dump and maybe links to all those threads. Worth a try, worked for me with my plugins (Toneboosters, who were really quick to fix it).

# Child-SP          RetAddr           Call Site`
Preformatted text`    00 00000000`0014cdb8 00007ffa`ff1fa34e ntdll!NtWaitForSingleObject+0x14
01 00000000`0014cdc0 00007ffa`ee50cef4 KERNELBASE!WaitForSingleObjectEx+0x8e
02 00000000`0014ce60 00007ffa`ee25a9a9 D3D10Warp!ThreadPool::WaitWhileBusy+0xe4
03 00000000`0014cee0 00007ffa`ee2232c9 D3D10Warp!UMContext::FlushAllRenderingTasks+0x1379
04 00000000`0014d810 00007ffa`ee22071e D3D10Warp!UMDevice::Destroy+0xb9
05 00000000`0014d900 00007ffa`ee22f65b D3D10Warp!UMDevice::`vector deleting destructor'+0x1e
06 00000000`0014d930 00007ffa`fa861abc D3D10Warp!UMDevice::DestroyDevice+0x5b
07 00000000`0014d970 00007ffa`fa87394e d3d11!NDXGI::CDevice::DestroyDriverInstance+0x5c
08 00000000`0014d9c0 00007ffa`fa86c31a d3d11!CContext::LUCBeginLayerDestruction+0x6e
09 00000000`0014da10 00007ffa`fa849590 d3d11!CD3D11LayeredChild<ID3D11DeviceChild,NDXGI::CDevice,64>::LUCBeginLayerDestruction+0x1a
0a 00000000`0014da40 00007ffa`fa86b65b d3d11!CUseCountedObject<NOutermost::CDeviceChild>::`scalar deleting destructor'+0x50
0b 00000000`0014da70 00007ffa`fa865ca9 d3d11!CUseCountedObject<NOutermost::CDeviceChild>::UCDestroy+0x1b
0c 00000000`0014daa0 00007ffa`fa861863 d3d11!CUseCountedObject<NOutermost::CDeviceChild>::UCReleaseUse+0xe9
0d 00000000`0014dad0 00007ffa`fa8735e9 d3d11!CDevice::LLOBeginLayerDestruction+0x143
0e 00000000`0014db00 00007ffa`fa87104a d3d11!NDXGI::CDevice::LLOBeginLayerDestruction+0xd9
0f 00000000`0014db40 00007ffa`fa8626b7 d3d11!NOutermost::CDevice::LLOBeginLayerDestruction+0x1a
10 00000000`0014db70 00007ffa`fa862674 d3d11!TComObject<NOutermost::CDevice>::~TComObject<NOutermost::CDevice>+0x23
11 00000000`0014dba0 00007ffa`fa866899 d3d11!TComObject<NOutermost::CDevice>::`scalar deleting destructor'+0x14
12 00000000`0014dbd0 00007ffa`fa8634f6 d3d11!TComObject<NOutermost::CDevice>::Release+0x39
13 00000000`0014dc00 00007ffa`fafad5cf d3d11!CUseCountedObject<NOutermost::CDeviceChild>::Release+0x156
14 00000000`0014dc30 00007ffa`fafad1a9 d2d1!CHwSurfaceRenderTargetSharedData::~CHwSurfaceRenderTargetSharedData+0x15f
15 00000000`0014dc60 00007ffa`fafb60dd d2d1!InitializableObject<RefCountedObject<CD3DDeviceLevel1,LockingRequired,DeleteOnZeroReference> >::`vector deleting destructor'+0x29
16 00000000`0014dc90 00007ffa`fb0563ba d2d1!RefCountedObject<CD3DDeviceLevel1,LockingRequired,DeleteOnZeroReference>::Release+0x3d
17 00000000`0014dcc0 00007ffa`fb00be1d d2d1!CD3DDeviceManager::D3DDeviceInformation::`scalar deleting destructor'+0x22
18 00000000`0014dcf0 00007ffa`fafbaa08 d2d1!D2DFactory::~D2DFactory+0x51239
19 00000000`0014dd30 00007ffa`fafa896a d2d1!RefCountedObject<D2DFactoryLocking<MultiThreadedTrait>,LockingRequired,DeleteOnZeroReference>::`vector deleting destructor'+0x14
1b 00000000`0014dd90 00007ffa`8719e795 Face_Bender_x64!VSTPluginMain+0x56b15
1c 00000000`0014ddd0 00007ffa`87199cf2 Face_Bender_x64!VSTPluginMain+0x8c7ff
1d 00000000`0014de40 00007ffa`87199e65 Face_Bender_x64!VSTPluginMain+0x87d5c
1e 00000000`0014de70 00007ffb`01847cad Face_Bender_x64!VSTPluginMain+0x87ecf
1f 00000000`0014deb0 00007ffb`01854d4b ntdll!LdrpCallInitRoutine+0x61
20 00000000`0014df20 00007ffb`0185479b ntdll!LdrpProcessDetachNode+0x107
21 00000000`0014dff0 00007ffb`01843bca ntdll!LdrpUnloadNode+0x3f
22 00000000`0014e040 00007ffb`01843b44 ntdll!LdrpDecrementModuleLoadCountEx+0x72
23 00000000`0014e070 00007ffa`ff1ee8be ntdll!LdrUnloadDll+0x94
1 Like

After some more tests with Cubase and a demo version of reaper, I think I have a hunch why one DAW hangs and one not.
Cubase, when you close a project, unloads all DLLs from the plugins used in the project (my guess is to save memory, as the core of current Cubase was developed 20 years ago when memory was expensive). This is what you see in the thread dump in my post above. Thus, the D2DFactory-Destructor is called (D2DFactory::~D2DFactory ), and this is where things go wrong, reference counters not being decremented, resources or locks not being released and the program goes into a deadlock (not a C+±expert, just a guess).
Reaper, on the opposite, seems keeps once loaded DLLs happily in memory after closing a project, ready for use in the next project. This makes sense, as Reaper was developed some years after Cubase and computer memory was getting cheaper. Average RAM size in 2000 was perhaps 512MB to 1G in 2000, but probably four times as big five or six years later. Memory saving wasn’t that big an issue anymore.

As I don’t have other DAWs around, I cannot test them, but my guess is that they work similar to Reaper.
Cubase just shows its age here (well, not only here tbh)

1 Like

That’s the best guess I’ve heard anyone make sir. I’ve been trying to get some basic idea of how VSTGUI and JUCE work. I know AA use JUCE.

I’ve opened numerous tickets with Steinberg and Acustica Audio over the last year so that they’re both clearly tired of me. Steinberg support were very helpful at first but now just ignore me and my woodpeckerish ways. I won’t go into the whole rigmarole, but I’d already sent the github and other links to both companies. AA were kind enough to at least reply with a simple “thankyou for the information” before closing the ticket. Perhaps that’s telling. My word of the moment is /RELEASE. Could the solution be that simple?

What you say above makes total sense to me (I’m no programmer either). I know that what might seem a simple problem in software who’s core programming is old may not have a workaround. But the plugin maker might be able to do something.

Just to note, this is the only project with Facebender in.

Well done on the theory. Let’s hope something is resolved…

1 Like

I know how you feel regarding to support tickets, I’ve had the same journey, tickets to Steinberg (useless) and the plugin vendors, doing fresh install of windows and so on, until at last I found one dev that had the right hunch.

The big problem with this is that most of the time developers cannot reproduce it. For whatever reason the combination of Windows+Cubase+affected plugins seems to work fine for most people, just for a few not. No idea whether that is related to specific graphic cards or drivers or some other esoteric reason.
I thought I was the only one with that problem back then, not much found on the internet. I posted on the usual forums, few if any replies with a similar problem.

Good luck to you, hope it works out well.

1 Like

Big thanks for all your help. It seems a decent amount of people have the problem these days so I hope it can be resolved. AA have all the info including your well-educated theory, so I’m hoping it might help to point them in the right direction.

Hi Guys - I posted this reply from Acustica a little while ago after experiencing the same problems.

“The Cubase DirectX hang on exit has as the source problem the Microsoft’s DirectX module that is used by Steinberg’s VSTGUI4 graphic framework. In short, the fault is in the way that communicates the VSTGUI4 graphic framework with Microsoft’s DirectX API. Acustica Audio after waiting some months for an effective solution has decided in the course of 2021 to change the graphic framework from VSTGUI4 to JUCE.”

Obviously there do seem to be some people with the Cubase/Win10/Acustica plugin combination who AREN’T experiencing this ‘hang on exit’ problem. I’m suspecting my NVidia graphics card (GTX 970) as if I run exactly the same combination on my laptop with Intel built in graphics I can never get Cubase to hang with the AA plugins. Any thoughts? I’ll try to see if I can test on my main machine with a different graphics card (I remember reading elsewhere about this problem and it being suggested that it never occurred with an AMD Radeon card…

My Cubase AA combination always freezes with both 2 different Intel integrated GPUs and an NVIDIA GPU so it’s not card specific. I believe someone with an AMD card also reported a problem…?. The one consistent factor is that if the project is closed after only a few minutes there is no freeze, but if it’s more than 15 mins or so the freeze always happens. I’ve had the same issue from windows 1909 to 20H2, Cubase 10.5 to 11.0.10

Thanks for the info. You’re very probably right and seem to have been at this a lot longer than I have. I’ve not paid attention to the ‘uptime’ yet - although on my main machine, I always get a freeze, even if I create a test project with a load of AA plugins as fast as I can. It SEEMS as if I can create a project with AAplugins, save it, close Cubase (which freezes), restart Cubase and reload the project and from then it always seems to exit without the freeze as long as I don’t add or remove any of the AAPlugins - although I have to admit I haven’t tested this exhaustively.

There doesn’t seem to be any work around then? Have you come across anyone with a Win10/Cubase/AAplugins combination who doesn’t get the freeze?

One anomaly SEEMS to be that I’ve only recently moved from Cubase 6 to 11 (!) and I never noticed the problem on V6 even though I used lots of AA plugins for a few years now…

It might be more than one reason. I’ve been at this problem for 14 months now. Sadly I adopted AA at around the same time as upgrading to 10.5, so I can’t say which version it might have started with, but I’ve read posts from people with similar problems all the way back to C8. Confirmed plugins that can cause the problem include AA, Slate, OTT and the freeware L6 Limiter.

the theory from @fese in this thread above sounds the best guess to me,

ie how Cubase might deal with memory and how the issue could be resolved with some reprogramming in VSTGUI / JUCE. I’m no expert on any of this, but I’m even trying to learn the basics of those 2 scripting languages just to have a stab at helping with a solution. I sent a number of links to AA and Steinberg. Steinberg were very responsive at first, but I think I’ve been moved to their blacklist, lol. But I was a bit miffed as they treated it like a new problem, then I found out it had a long history. I sent them links from KVR etc, that’s when they got offish and just told me to talk to the plugin maker. Some links:

I lke the prediction from raz_Klinghoffer here, quite amusing:

OTT:

The guy at xfer is very responsive to problems. I’ve had good dealings with him re a problem I had with Serum.
Another thread detailing the issue:

This final ticket from December was closed without a response:


Just to say, earlier in the year Uwe Hübner & Ed Doll at Steinberg support were very responsive to the problem and seemed to be trying to find a solution before I was brick-walled. I guess I’m too much of a moaning troll…
I hope a solution is found.

UPDATE: Had a bad period of crashing with other plugins. Seems to have stopped now. Just AA and Limiter 6.

Ok, that’s interesting/depressing to hear Gareth. I’m still only getting hangs with AA products at the moment… everything else seems fine. The biggest problem is that any AA plug in that I use hangs Cubase even if I just remove it from a project, which is majorly more frustrating than the ‘hang on exit’ issue. Do you get this too?

It was temporary. Sorry for the drama. Just AA again. But like you, it’s any situation which involves removing an AA plugin after about 15 minutes, including removing an insert, disabling a track, etc.

Ah well, that’s something. I’ve been demoing a couple of Plugins for the AA N4 Nebula player with the same results which is slightly concerning as AA say that the problem will be solved once they’ve migrated everything from VSTGUI to JUCE, but according to the N4 player update notes, N4 already uses JUCE? I know you looked into this a little… is this going to be a problem or am I just confused :slight_smile:

1 Like