Deprecate PrefersNonDefaultGPU(boolean) in favor of PreferredGPU(string)
As the spec itself explains, PrefersNonDefaultGPU is a lose name because we can't bring in concepts like discrete and powerful GPU. However in a desktop computer with two or more GPUs, typically the default one is discrete and powerful and the other one (or one of the others) is the integrated and cheap one, so the meaning of "default" itself is not useful to tell anything about which is the "best" GPU for any application.
I believe the real problem is the fact the property is a boolean. If the property was a string named PreferredGPU or something like that, it would:
- let implementors provide users with a UI to decide which app to bind to which GPU, delegating the powerful and discrete definitions to the implementors (and ultimately to the users, if implementors don't rightfully feel like adding heuristics to their Desktop Environment).
- avoid the need to define a meaning downstream for a property named in a weird way upstream.
- be flexible enough to accommodate any implementation (a string with the PCI id, a regexp to match some GPU models, and so on).
The only problem I see with my proposal is if a DE (say Gnome) chose to store a PCI id and another DE (say KDE) parsed it as a regexp for the model name or something like that. In that case the desktop file would behave as expected only with the DE it was created in. However the spec already states that the preferred GPU might not be available, so in the other DE the app would just end up using the default one. Anyway I fail to imagine a use case where a user often swtiches Desktop Environments but uses the same desktop files (hence the same apps) in both of the DEs.
Please note I'm new here. When I realized Gnome implemented PrefersNonDefaultGPU, I found the name misleading enough to go to the roots of the problem to contribute my 2 cents. I'm not sure this is the correct way to propose a new spec and, if it isn't, please lead me to the correct place, thanks.