Solution found:
1. Try to force start 0ad once from the terminal with options (Cite vladislavbelov)
$ 0ad -conf=rendererbackend:vulkan
If 0ad window appears then it's an OpenGL bug. Proceed to the next step.
2. To fix this permanently, add to your user.cfg this line:
rendererbackend = "vulkan"
Then if you run 0ad again (using any calling method), it should use the Vulkan engine.
3. If there are still additional errors, you can force debug output by adding this list to your user.cfg then run 0ad:
renderer.backend.debugcontext = "true"
renderer.backend.debuglabels = "true"
renderer.backend.debugmessages = "true"
renderer.backend.debugscopedlabels = "true"
renderer.backend.gl.enableframebufferinvalidating = "true"
renderer.backend.vulkan.debugbarrierafterframebufferpass = "true"
renderer.backend.vulkan.debugwaitidleafterpresent = "true"
renderer.backend.vulkan.debugwaitidlebeforeacquire = "true"
renderer.backend.vulkan.debugwaitidlebeforepresent = "true"
renderer.backend.vulkan.deviceindexoverride = "-1"
renderer.backend.vulkan.disabledescriptorindexing = "true"
Explanation:
Due to the recent Nvidia driver updates on Linux based OS, there are some OpenGL rendering issues and 0ad is one of the affected applications. If you force the backend to use Vulkan renderer then the bug is bypassed. However, you must ensure that your Vulkan layers are installed correctly. My Vulkan packages:
lib32-vulkan-icd-loader 1.4.335.0-1
vulkan-icd-loader 1.4.335.0-1.1
vulkan-tools 1.4.335.0-1.1