Commit graph

9901 commits

Author SHA1 Message Date
Mathieu Comandon 0c5180717f This is the log until this is resolved 2024-02-23 13:43:45 -08:00
Daniel Johnson 1e532b0405 Tone down the logging for missing games; don't bother to log when one game is being checked.
This happens a lot if you are selecting games one after the other (ie, via arrow keys) and it spams the log.
2024-02-23 13:43:45 -08:00
Daniel Johnson 69dea32f57 Rework 'missing' badge lookup so that resolves to the PGA game ID and path.
This way missing badges can appear on media for installed games even in the service views. We are doing this resolution only for visible games, so we should not hit the PGA database too much, I hope.

This moves some common code up to the GameView base class.
2024-02-23 13:43:45 -08:00
Daniel Johnson 7cbb33fe34 Recheck the missing status of each game that you select, though still on the worker thread.
This way you don't actually need to restart Lutris to get the missing status up to date, if you know hte obscure trick.

 But you have to do something, it's not just updating all the time.
2024-02-23 13:43:45 -08:00
Daniel Johnson d11b107c41 Walk back the automatic recheck logic in the cell-renderer.
It will now update missing status at startup, and if it needs to draw the badge for a previously unknown game.
2024-02-23 13:43:45 -08:00
Mathieu Comandon 3fef435cd5 Add i915 driver 2024-02-23 13:43:45 -08:00
Mathieu Comandon 2538e9398d Avoid access to present_menu before it's initialized 2024-02-23 13:43:45 -08:00
Mathieu Comandon ee88f1231c Map llvmpipe loader to virtio-pci driver 2024-02-23 13:43:45 -08:00
Mathieu Comandon fb8daf0ea6 Only show PCI ID if present 2024-02-23 13:43:45 -08:00
Mathieu Comandon 2ff6404588 Fix call of lspci 2024-02-23 13:43:45 -08:00
Mathieu Comandon fcaf28dc88 Add default value when lspci fails 2024-02-23 13:43:45 -08:00
Mathieu Comandon fa9ea2f4ee Also add V3D 2024-02-23 13:43:45 -08:00
Mathieu Comandon 84f221c17d Add loader mapping for Raspberry Pi 5 2024-02-23 13:43:45 -08:00
Mathieu Comandon c6a4b4739f Add PCI slot name to default value 2024-02-23 13:43:45 -08:00
Daniel Johnson 889f3d5f95 Convert the Lutris Playtime timer to user time.monotonic()
It was using datetime.now() which uses time-zones, and will produce bogus results in the presence of daylight saving time changes or system clock updates.

time.monotonic() is The Right Thing here, since we are just measuring the passage of time, not any notion of absolute time.

It even comes in seconds out of the box, like we want.
2024-02-23 13:43:45 -08:00
Mathieu Comandon e2fe84c544 Reorder display options and simplify driver version logging 2024-02-23 13:43:45 -08:00
Mathieu Comandon 8dd737af39 Better multi-GPU support Closes #5291) 2024-02-23 13:43:45 -08:00
Daniel Johnson f2e1c3abc7 When rewriting a json file, we need to truncate it, so it can be shorter not just longer.
Resolves #5292
2024-02-23 13:43:45 -08:00
Mathieu Comandon 8af61384eb Simplify ICD loading a bit 2024-02-23 13:43:45 -08:00
Mathieu Comandon 99e3bca49e Remove restore gamma option + cleanup docs 2024-02-23 13:43:45 -08:00
Mathieu Comandon 0038098eab Get rid of Optimus/Primusrun option. These are tools from a different era 2024-02-23 13:43:45 -08:00
Mathieu Comandon a7a4b2657b Remove DISABLE_LAYER_AMD_SWITCHABLE_GRAPHICS_1, the reason it was added is not documented well enough 2024-02-23 13:43:45 -08:00
Mathieu Comandon 15ee4646f3 Remove libstrangle option 2024-02-23 13:43:45 -08:00
GloriousEggroll dc7be3b8eb runners.commands.wine: add support for installation via ulwgl 2024-02-23 13:43:45 -08:00
GloriousEggroll 5ba87ed039 don't set GAMEID for ulwgl if one is already set via environment variable 2024-02-23 13:43:45 -08:00
Mathieu Comandon 8efe5161ba Show internal ID under Identifier label 2024-02-23 13:43:45 -08:00
Mathieu Comandon e25a2525c1 Add clean_configs script 2024-02-23 13:43:45 -08:00
Aino Spring b68b648ecb Show game id in configure menu 2024-02-23 13:43:45 -08:00
Mathieu Comandon ec25561e45 Prevent running Proton stuff on older Wine-GE builds 2024-02-23 13:43:45 -08:00
Aino Spring 6da69c127d Fixed empty context menu error
Right-clicking on empty space in list mode caused "cannot unpack non-iterable NoneType object" popup
2024-02-23 13:43:45 -08:00
Mathieu Comandon 6725976fff Update support for ulwgl 2024-02-23 13:43:45 -08:00
Mathieu Comandon af6fc91334 Remove update dxvk state cache feature, it's no longer relevant 2024-02-23 13:43:45 -08:00
Daniel Johnson 9cf12dd02b Apply O_NOFOLLOW only to links; TrashPortal fails if you use it with a plain old file, I find.
This does not seem right, but this change mitigates the problem.
2024-02-23 13:43:45 -08:00
Mathieu Comandon 2d4a21f267 Log every vulkaninfo call 2024-02-23 13:43:45 -08:00
Daniel Johnson cdd34e4bac Simplified MissingGame implementation
This uses GLib.timeout_add to insert delays to reduce filesystem pounding, but restore 'live' checks on non-missing games.

We still show and hide the Missing tab of the main window on the fly, with delay of up to 3 seconds.

We still only check games you can see in the view on the fly.
2024-02-23 13:43:45 -08:00
Daniel Johnson 6db8767ef3 Move the missing game ids set into a singleton class that updates it into the background and fires a notification when there are changes.
This lets the UI update in a non-blocking way, including the cell-renderer stuff.

The cell-renderer queues re-checks for games it sees are missing, so we'll 'notice' if you replace a missing game.

The implementation at this point is rather complex for what this is, but it seems to work.
2024-02-23 13:43:45 -08:00
Mathieu Comandon d3d8e18a9e Initial support for ULWGL 2024-02-23 13:43:45 -08:00
Mathieu Comandon f07f71564c Remove bare execption handler 2024-02-23 13:43:45 -08:00
Mathieu Comandon ff4748693f Remove unused parse_wine_path 2024-02-23 13:43:45 -08:00
Martin Wilck 2d8e98abda lutris scanner: import previously installed emulator games
"Import previously installed Lutris games" detects only games
with an "exe:" field in the installer script, iow, only Wine
or Linux games. Check for the "main_file" field, too, to support
Dosbox and other emulators.

Signed-off-by: Martin Wilck <mwilck@arcor.de>
2024-02-23 13:43:45 -08:00
Daniel Johnson 8ecf360546 Fix slug used when installing games already installed in Battle.net.
The service-game provides the slug.

Resolves #5265
2024-02-23 13:43:45 -08:00
Daniel Johnson 52ce77679f ADd some handling for 401 errors coming from itch.io
We need to realize this means we're not connected anymore, and also we should log out, so that you can then log back in.

 Resolves #5215, or I  hope it does- I can't repro.
2024-02-23 13:43:44 -08:00
telanus 88d340143f Added the Supermodel Emulator
Added the Sega Model 3 Emulator: Supermodel. Needs all it's support files in ~/.local/share/supermodel/ (IE Assets) else it won't work
2024-02-23 13:43:44 -08:00
Daniel Johnson 6bf610389e Clean up status_icon. It will now detect if it is running on X11; if not, we can't use Gtk.StatusIcon, so it won't try.
If neither AppIndicators nor Gtk.StatusIcon can be used, do not offer the status icon in the preferences either.
2024-02-23 13:43:44 -08:00
Daniel Johnson 3670025926 TrashPortal needs some additional flags to bet set when opening its FD when in flatpak.
O_PATH because we are just pointing at the file, not really opening it. O_NOFOLLOW so we can trash a link not its target. O_CLOEXEC seems unnecessary, but it's what GLib does.

Resolves #5250
Resolves #5251
2024-02-23 13:43:44 -08:00
Daniel Johnson 575511d292 No, size-request is no good, that enforces a minimum size!
Instead, I'll activate word-wrapped on the labels. If they are too long, they'll wrap instead of scrolling.
2024-02-23 13:43:44 -08:00
Daniel Johnson d466d280d8 Change PreferencesDialog to use a size request instead of default size.
The size can be smaller than required for the localized text; with a default size we get that size and wind up scrolling. Size request will not be honored if we'd have to scroll for that, so the localized text will fit.
2024-02-23 13:43:44 -08:00
Daniel Johnson e757d066c1 Add protection against None in steam.match_game()
This is confusing, but it looks like we pass None to match_game() when the Lutris API says some service game you have corresponds to a another service game from the same service you don't have

I don't understand when this would be true, but it's better not to crash over it.

Resolves #5248
2024-02-23 13:43:44 -08:00
spiffeeroo cb95d51c8b Fix Steam account name gui
Rename account.get=("PersonalName") to account.get("PersonaName").

$STEAMROOT/userdata/<AccountID>/config/localconfig.vdf has "PersonaName" inside of file.
2024-02-23 13:43:44 -08:00
Daniel Johnson c556ae4dc7 Create the loading spinner in the glade UI file, not dynamically.
The spinner does not seem to start always when created dynamically. It seems like if blank_overlay has not been shown to the user yet, it fails - even if it is shown before the spinner starts. Once shown to the user, all is good.

This commit works around this by not putting the spinner inside blank_overlay at all, and just pre-creating it.
2024-02-23 13:43:44 -08:00