HISE HEAVY ON GPU PROCESSING?
-
My graphics definitely slow down when using a plugin compiled in HISE. Anyone else find the same?
The level meters in DAWs and graphics in other plugins really get laggy whilst a HISE plugin is open.
What's the best way to gauge performance levels?
-
I haven't noticed any issues, does your plugin have a lot of interface components?
-
@d-healey about 60 knobs on the main interface, plus 6 analysers (which you can toggle on / off - def helps performance with them off but not game changing). It's busy for sure. Knobs are made in Knobman and about 0.5MB in size. It's a lot slower if I use images so have mainly used paint routines. I don't notice much on my new mac mini, but on my 2013 mac air it's very noticeable.
I also have a project with 100 instances of my plugin and the graphics really freeze up in it lol
-
@DanH Danny, Use The OpenGL Option, It Smooths The Performance Out
Just Add This Line, Into The Prefrenceses, For Win, Mac, And Linux.Works Like A Charm Here
HISE_USE_OPENGL_FOR_PLUGIN=1
-
@Natan oh great, will try asap thank you!
-
@Natan said in HISE HEAVY ON GPU PROCESSING?:
HISE_USE_OPENGL_FOR_PLUGIN=1
I didn't find it in preference >settings... Can you guide me where it is located exactly?
-
@Tania-Ghosh You have to enter it into the 'Extra Definitions' boxes in Settings.
It hasn't made a huge difference for me, will continue testing though
-
@DanH Be wary of the OpenGL option. It's a naughty little beast and will screw up a lot of things if you're not careful. It's better to optimize your GUI first by removing unnecessary hover and drag callbacks from panels, etc.
Try optimizing the code as well: https://forum.hise.audio/topic/79/scripting-best-practices/2
-
@Lunacy-Audio Will do, cheers!
-
@Lunacy-Audio said in HISE HEAVY ON GPU PROCESSING?:
@DanH Be wary of the OpenGL option. It's a naughty little beast and will screw up a lot of things if you're not careful. It's better to optimize your GUI first by removing unnecessary hover and drag callbacks from panels, etc.
Try optimizing the code as well: https://forum.hise.audio/topic/79/scripting-best-practices/2
So is it possible that enabling open gl can cause issues? What have you experienced so far? Can you please give an example or a little bit info about it please?
-
@Fortune It causes issues in certain contexts. For example, in Vienna Ensemble Pro it's a bit of a nightmare and my test users have had crashes whenever that setting was enabled. It can definitely speed up the interface if you have a massive number of knobs, sliders, waveforms. Waveforms are generally the biggest culprit in terms of GUI snappiness.
This is what Christoph said to me months ago about the OpenGL:
"Watch out for headless systems. I got a few bug reports from users that use PercX in a slave setup through Vienna Ensemble and their UI was black because they had no monitor attached to their slave PC so it deactivated any kind of hardware graphic rendering..." -
@Lunacy-Audio Very interesting info, thank you so much.
So maybe it is better to compile with open gl and without open gl separately, right?
-
@Fortune You can compile just once, but the OpenGL can be a setting in your Settings Floating Tile, so the user can choose which one to use.
-
@Lunacy-Audio So first I need to set
HISE_USE_OPENGL_FOR_PLUGIN=1
in extra definitions menu.And also must use in Settings Floating Tile?
Also I can't see use open gl option in Custom Settings Floating Tile :/
-
I think you need to add a Settings Floating Tile and set the content data like this:
const var settingsEngineTile = Content.getComponent("settings_Engine_Tile"); const var isPlugin = Engine.isPlugin(); const var tileData = { "Type": "CustomSettings", "Driver": !isPlugin, "Device": !isPlugin, "Output": !isPlugin, "BufferSize": !isPlugin, "SampleRate": !isPlugin, "GlobalBPM": false, "StreamingMode": true, "DebugMode": false, "GraphicRendering": true, "ScaleFactor": true, "SustainCC": false, "ClearMidiCC": true, "SampleLocation": true, "ScaleFactorList": [ 0.5, 0.75, 1, 1.25, 1.5, 2 ] }; settingsEngineTile.setContentData(tileData);
graphicRendering
is the OpenGL combobox that allows the user to toggle it on/off. -
@Lunacy-Audio said in HISE HEAVY ON GPU PROCESSING?:
I think you need to add a Settings Floating Tile and set the content data like this:
const var settingsEngineTile = Content.getComponent("settings_Engine_Tile"); const var isPlugin = Engine.isPlugin(); const var tileData = { "Type": "CustomSettings", "Driver": !isPlugin, "Device": !isPlugin, "Output": !isPlugin, "BufferSize": !isPlugin, "SampleRate": !isPlugin, "GlobalBPM": false, "StreamingMode": true, "DebugMode": false, "GraphicRendering": true, "ScaleFactor": true, "SustainCC": false, "ClearMidiCC": true, "SampleLocation": true, "ScaleFactorList": [ 0.5, 0.75, 1, 1.25, 1.5, 2 ] }; settingsEngineTile.setContentData(tileData);
graphicRendering
is the OpenGL combobox that allows the user to toggle it on/off.Oh I see Thank you.
So if I use this floating tile I won't need to useHISE_USE_OPENGL_FOR_PLUGIN=1
in extra definitions menu, right?
Also there is no combobox for Graphic Rendering even when I make it true. -
@DanH Ok....
HISE_USE_OPENGL_FOR_PLUGIN=1
-
@Tania-Ghosh Yeah, Just Paste That Code Into The White Boxes
-
@Natan Superb (y)
-
@Lunacy-Audio Am I right i thinking "VoiceAmountMultiplier": true / false should also be in that list?!