godotengine / godot

Godot Engine – Multi-platform 2D and 3D game engine
https://godotengine.org
MIT License
90.63k stars 21.1k forks source link

Switching between tabs in the editor causes flickering between tab contents #94967

Open wwaltb opened 2 months ago

wwaltb commented 2 months ago

Tested versions

System information

Godot v4.3.rc1 - Arch Linux #1 ZEN SMP PREEMPT_DYNAMIC Fri, 28 Jun 2024 04:32:27 +0000 - Wayland - Vulkan (Forward+) - dedicated NVIDIA GeForce GT 730M (nvidia; 470.256.02) - Intel(R) Core(TM) i5-4300M CPU @ 2.60GHz (4 Threads)

Issue description

When I switch between tabs, like the Scene and Import tabs, or the different scenes in the editor, then the view for the content that the tab represents starts flickering back and forth between the previous tab and new one. It also sometimes causes other elements of the UI to flicker as well. When I move my cursor off of the tabs then the flickering subsides.

https://github.com/user-attachments/assets/d1912217-abc1-49ac-a71b-2f477d251d76

https://github.com/user-attachments/assets/a569fcb2-60ca-4392-aa9a-9eee49c7616f

Steps to reproduce

The bug is visible in new projects.

Minimal reproduction project (MRP)

N/A

Calinou commented 2 months ago

Vulkan (Forward+) - dedicated NVIDIA GeForce GT 730M

I suggest using the Compatibility rendering method, as Vulkan on Kepler GPUs tends to be pretty broken. In fact, I'm surprised it even works on your end since NVIDIA has never implemented support for Vulkan on mobile Kepler GPUs (only desktop).

Also, try reproducing this with Update Continuously enabled in the Editor Settings.

wwaltb commented 2 months ago

Okay thanks for the suggestions. I was unable to reproduce with Update Continuously checked and when using Compatibility rendering. Would you recommend I switch to Compatibility rendering for my projects or continue using Forward+ with Update Continuously on? Also, should one of these options be selected by default or suggested to users when a mobile Kepler GPU is detected?

Calinou commented 2 months ago

Would you recommend I switch to Compatibility rendering for my projects or continue using Forward+ with Update Continuously on?

Update Continuously greatly increases CPU/GPU utilization in the editor, so it's a bad idea to use on a laptop as it'll get hot quickly and reduce battery life.

I suggest sticking to the Compatibility rendering method, especially since mobile Kepler GPUs are too slow by 2024 standards to really benefit from Forward+/Mobile features.

Also, should one of these options be selected by default or suggested to users when a mobile Kepler GPU is detected?

Detecting such GPUs is feasible, but I would probably do two things to ensure they fall back to Compatibility correctly: