-
-
Notifications
You must be signed in to change notification settings - Fork 66
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
JUCE8 Plugins Don't Work Causing Black Screen and Crash #386
Comments
Does the latest version of apShaper work for you? 1.2.4 switched to JUCE 8 and doesn't work for me, but 1.2.3 does. |
Just tried the demo and it doesn't work. It's based on JUCE 8.0.3 and apUnmask (which works) is based on JUCE 8.0.4 so I presume it's just a build from before the issue was fixed. The dev is really nice. If you drop him a mail explaining the issue, he'll probably do a new build. |
Just an additional symptom and a partial fix. Sonible prime:vocal is a JUCE 8.0.4 based ARA2 plugin and standalone app. It doesn't work with yabridge 5.1.1 due to the lack of ARA2 support (it doesn't allow plain VST usage). The standalone app manages to display it's initial screen but only updates for resizing. Same CreateSwapChainForComposition error. This can be fixed by creating a dxvk.conf file containing this single line d3d11.maxFeatureLevel = 9_1 then add this to your environment in your preferred way. DXVK_CONFIG_FILE=/wherever/your/file/is/dxvk.conf This fixes prime:vocal but just produces a black screen for apShaper 1.2.4. It may or may not work for other JUCE 8 plugins, I guess dependent on whether they've coded a fallback. Potentially, it would be nice to set DXVK_CONFIG_FILE in a yabridge toml file so that it can be enabled per plugin or per prefix. A fuller fix probably requires vkd3d, which does contain code to cover CreateSwapChainForComposition. I have yet to figure out a way of forcing JUCE 8 to use DirectX12, if that's possible. The version of vkd3d installed by winetricks is vkd3d-proton which works in conjunction with dxvk, using dxvk's DXGI implementation. |
Confirmed this also happen with reFX NEXUS5 vst. |
Thanks for giving yabridge a shot!
Problem description
This is not a yabridge issue but I'm documenting it here because people will come here.
Many JUCE8 plugins result in a black screen GUI because they require Direct2d feature level 1.3 and that's not currently available in wine, dxvk or vkd3d.
You will likely see this error in your logs
[Wine STDERR] err: DxgiFactory::CreateSwapChainForComposition: Not implemented
There is a workaround for plugin developers to call previous rendering methods after detecting wine but this requires developers to want to do this and implement it. Apulsoft have done this already and others might be willing if they are hit with a pleasant support request detailing the problem and pointing to the solution.
https://forum.juce.com/t/juce8-direct2d-wine-yabridge/64298/5
This is likely to be a growing problem unless there's an implementation of recent D2D features upstream as developers transition to JUCE8. Personally I back up my prefixes before I attempt an upgrade.
What did you expect to happen?
Working plugin
What actually happened?
Black screen plugin crashes after a while
Operating system
Debian 12.8 Bookworm
How did you install yabridge?
Directly
yabridge version
5.1.1
yabridgectl version
5.1.1
Wine version
wine-9.21.r1.g32abf9fc ( TkG Staging Esync Fsync )
Plugin
Many JUCE8 Plugins
Plugin type
VST3
Plugin architecture
64-bit
Host
Bitwig, Reaper, Mixbus
Desktop environment or WM
Gnome
GPU model
AMD Radeon RX 6600
GPU drivers and kernel
Mesa 22.3.6-1+deb12u1
Debug log
20:03:14 [Lair-9AGIJQgm] [Wine STDERR] 0024:fixme:d2d:d2d_device_create_device_context Options are ignored 0x1.
20:03:14 [Lair-9AGIJQgm] [Wine STDERR] err: DxgiFactory::CreateSwapChainForComposition: Not implemented
20:03:14 [Lair-9AGIJQgm] [Wine STDERR] err: DxgiFactory::CreateSwapChainForComposition: Not implemented
20:03:14 [Lair-9AGIJQgm] [Wine STDERR] 0024:fixme:d2d:d2d_device_create_device_context Options are ignored 0x1.
Anything else?
Plugins I know to be problematic:
Audio Modelling SWAM instruments and Ambiente
Hertz Drums
All Aberrant DSP plugins
All these plugins have older versions based on JUCE7 except Ambiente. If you check for older versions in your download page or contact the developer you should be able to get them.
Developers often have their own altered tree for JUCE, so not all JUCE8 plugins are a problem.
VocAlign6Pro is JUCE8 but exhibits other problems.
Minimal Audio Squash is JUCE8 but works fine.
Apulsoft apUnmask is JUCE8 works fine.
How to find out if your plugin is based on JUCE8
strings PluginName.vst3 | grep 'JUCE v8'
to scan the all your yabridge vst3 plugins, do this
cd ~/.vst3/yabridge && IFS=$(echo -en "\n\b"); for i in $(find . -name *.vst3 -type l); do grep 'JUCE v8' $i; done
The text was updated successfully, but these errors were encountered: