Win10 Live11 vst3 HDPI GUI OpenGL scaling issue

  • A new basic plug-in project vst3 appears pixelated in Ableton Live 11 on Windows 10 with a >100% Display scale by default. (A)

  • Disabling Auto-Scale Plug-In Window in Live solves this issue. (B) But it gets worse when using OpenGL. (D)

I’ve used Projucer’s develop branch hoping that the last few vst3 host size and scale commits would solve this issue. And tested it with Live 11.0.10.

C,D

openGlContext.attachTo(*getTopLevelComponent());

added to PluginEditor constructor.

scale/dpi

const auto scale = juce::Desktop::getInstance().getDisplays().getDisplayForRect(getTopLevelComponent()->getScreenBounds())->scale;
const auto dpi = juce::Desktop::getInstance().getDisplays().getDisplayForRect(getTopLevelComponent()->getScreenBounds())->dpi;

DBG("scale: " + juce::String(scale) + " dpi: " + juce::String(dpi));

added to PluginEditor resized()

The behaviour when not using OpenGL appears correct. “Auto scaling” means bitmap stretching, so when auto scaling is on, all plugins will appear blurry/pixelated on hi-DPI displays. As a quick test, I tried loading Surge (a non-JUCE VST3 plugin) and this also appears blurry when auto scaling is enabled.

Regarding the OpenGL issue, I just tried modifying the CMake/AudioPlugin example project to use an OpenGL context. The context is a member of the AudioProcessorEditor, and I call context.attachTo (*this) at the end of the constructor. Opening the plugin window on a display with a scale factor of 175% and auto-scaling disabled works correctly in Live 11.0.11.

Do you get different results when you open and close the editor window a few times, or if you wait for a few seconds after opening the editor? Although the editor opens in the correct state for me, I noticed that the window size sometimes changed incorrectly when moving the editor between screens with different scale factors, and needed a few seconds to sort itself out. Again, I saw the same behaviour when I tested with Surge, so I don’t think this is a JUCE issue.

If you have any other Windows DAWs, it’s worth testing your plugin in those too. If you see the same issues in all DAWs, it’s likely that the problem is in one of the components shared by all of the tests (e.g. JUCE or your graphics card drivers). If you only see problems in Live then the issue is more likely to be in the DAW itself.

1 Like

Thank you for your quick reply! I did have the OpenGL GUI snap into a correct scale after a while with a window focus change or resize. It’s hard to say exactly when this will happen. Then when reopening the plugin it would initially be stretched and snap correct when moving the plugin window.

Other DAWs: In Reaper and FL Studio it works like a charm. In Renoise 3.3.2. demo the plugin view within the window looks half size and half res. I’m not that familiar with Renoise and it seems it ignores the windows display scale setting completely.

I’ve just updated Live to 11.0.11 and built my project with the develop branch and the issue remains. I’ve also moved context.attachTo (*this) to the end of the constructor, but it made no difference.