The raw config sections aren't the right thing; we need to look at the 'levels', which contain the settings loaded from .yaml files, so we will see them if they are in the files, and not if they weren't.
This still avoids picking up the normal default version, but should see explicitly set versions better.
Resolves#4950
Just use @lru_cache() to keep it, and just discard it entirely on any change. Nothing clever, but this should allow for quick lookups from StoreItem.
I am not caching the actual missing status because the user could fix this by renaming things, and that would leave us with a stale cache. Let us hope we don't need that cached.
This affects the default you get for a new game or a new install, if you haven't configured some other version.
The last commit makes us download the newest version; this one makes us use it.
We'll try to cope with spaces in the names of monitors. We look for the 'connected' token after the first token which we hope is the name. This will tolerate a name with spaces in it, so long as it does not contain 'connected' as a separate word.
Also, put more of the parsing code under the exception handler so we get better error reporting here.
Resolves#4915
The "enable discord rich presence for avalible games" line is modified, since "rich presence" was being translated, which is a proper English word "it would be like translating software like "facebook" which should not be done, it is also I add in parentheses information about what requires installing pypresence for it to work
Like libvulkan problems, these result in DXVK and VKD3D being disabled in the config UI, and they won't be used. Maybe this is excessive - some games might have worked perhaps- but something is clearly broken.
The checks for non-VULKAN libraries are still done at startup, but result in log entries only.
If the /proc/drivers/nvidia/version file is missing, that will fallback also onto glxinfo.
If we fail altogether, we now raise an exception. The callers would just crash anyway if they got {} back, and Lutris would fail to start. This way the error is a bit more relevant, though it will likely be about GlxInfo.
The config window ill show new 'error' entries and will disable the DXVK and VKD3D options. These show the text from the old game-start warning, with the link.
If you play a game in the face of this, Lutris will not warn you further, but it will disable DXVK and VKD3D.