Forcing window rendering at high framerate on hidden workspace

Hyprland version
Hyprland 0.51.0 built from branch main at commit 76d998743ac10e712238c1016db4d8e8d16f1049  (cm: handle inert cm outputs (11916)).

Describe your issue / feature…

Hello !

I have a program made with Godot that I would like to run inside of a hidden workspace. This window is a simple shader output that I would like to use as a background in OBS.

However when I put this window inside of a hidden workspace, it renders at 1 frame per 5 seconds approx. I’ve tried to use the “renderunfocused” while dispatching the window to get it to render at a higher framerate but it doesn’t work:

hyprctl dispatch exec ‘[renderunfocused;]’ /home/neryss/balatro-shader/background.x86_64```

Is there any way to achieve this ?

Thanks in advance, have a good day !

Make sure to read the note on about exec

The exec dispatcher supports adding rules. Please note some windows might work better, some worse. It records the PID of the spawned process and uses that. For example, if your process forks and then the fork opens a window, this will not work.

hyprctl dispatch exec '[renderunfocused]' "glxgears >> test.log" && tail -f test.log works on my mashine as expected, it caps it at render_unfocused_fps instead of 1

Unless you have a specific reason for setting it only when opened like that, the simpler option is to simply use a window rule. Then it will work regardless of how it’s opened.

Edit: feature idea - window rules rule for when a window is being captured. Captured windows not visible on the screen are still visible to the capturing software so throttling them seems like a bad default, no?

Thank you for the note about “exec”, the window now renders properly when set on a hidden workspace. So it seems it was not behaving properly when using the dispatch exec with a rule as parameter as you stated

I set a window rule and it now works when launching my program manually or through hyprctl dipatch exec program, OBS can capture it at default framerate.

Thank you once again for your advice !