Solved Delete please
#31
@garbear My opinion is just that you're trying to fix what is probably a real issue, but it's not related per se to the login screen.
That services depend on profiles is unavoidable, that's basically what profiles are for. The root cause of this, that is that too many services are loaded just for showing a profile selecting dialog.

The Kodi login screen is no different than any login screen on any OS: It needs a limited set of services from "some" profile (in Kodi case, most likely the master profile).

From the top of my head, the services you need for this is:
- GUI/skin from master
- input manager from master
- ... (probably some others)

At startup, you'd only need those ones, then when the final profile is selected, you can de-init those and go through the standard init stages with the final profile.
When switching profile, you'd de-init the current profile (basically Application::cleanup), rince, repeat.

If you think of the Kodi login the same way as login/logoff on any multiuser OS, it makes the matter clearer, imo.
Reply
#32
(2018-08-18, 09:53)rainman74 Wrote: @garbear Until a solution is found, you couldn't just setting back InitStageThree back where it was?

Remember the January PR I linked to? If peripherals don't start, then no one can log into a profile on the Xbox One. Kodi is basically bricked at that point unless you have a keyboard. Not good.
(2018-08-18, 12:52)Koying Wrote: The Kodi login screen is no different than any login screen on any OS: It needs a limited set of services from "some" profile (in Kodi case, most likely the master profile).

I agree 100%. The question is, do we reorganize the services and then add the callbacks, or add the callbacks and reorganize the services into them? I was gonna take the second approach, but maybe your way makes more sense. It depends if the priority is solving the bug or doing it right. Before I was all about doing it right, but now that release is coming up, we really need to tackle these bugs.

I still have a shaky grasp of when services should be invoked, and I've seen that you can reorganize them well. If you open any PRs that improve the situation I'll work to get them merged.
RetroPlayer releases: https://github.com/garbear/xbmc/releases

Donations: eigendude.eth
Reply
#33
Along those lines it might be advantageous to define a "boot skin" that only supplies what's required for profile login.  No need for every skin to create its own version, and some skins are pretty heavy weight with dependencies, etc.

scott s.
.
Reply
#34
(2018-08-18, 21:50)garbear Wrote:
(2018-08-18, 09:53)rainman74 Wrote: @garbear Until a solution is found, you couldn't just setting back InitStageThree back where it was?

Remember the January PR I linked to? If peripherals don't start, then no one can log into a profile on the Xbox One. Kodi is basically bricked at that point unless you have a keyboard. Not good.
(2018-08-18, 12:52)Koying Wrote: The Kodi login screen is no different than any login screen on any OS: It needs a limited set of services from "some" profile (in Kodi case, most likely the master profile).

I agree 100%. The question is, do we reorganize the services and then add the callbacks, or add the callbacks and reorganize the services into them? I was gonna take the second approach, but maybe your way makes more sense. It depends if the priority is solving the bug or doing it right. Before I was all about doing it right, but now that release is coming up, we really need to tackle these bugs.

I still have a shaky grasp of when services should be invoked, and I've seen that you can reorganize them well. If you open any PRs that improve the situation I'll work to get them merged. 
@Koying I know you retired from Kodi, but is it possible that you could create a PR for this by including your idea regarding the solution? That would be absolutely brilliant!
Reply
#35
No, just doing high-level architecture, here.
Besides, so many refactors happened/are happening that I probably would have a hard time finding my way back in the Kodi codebase...
Reply
#36
(2018-08-21, 08:09)Koying Wrote: No, just doing high-level architecture, here.
Besides, so many refactors happened/are happening that I probably would have a hard time finding my way back in the Kodi codebase...
 too bad, but maybe @garbear has a brilliant idea here!
Reply
#37
@garbear do you have any news on this yet?
Reply
#38
I spent a couple days straight on this and had no major successes. Circular dependencies are too hard to break when they span hundreds of thousands of lines of code. My approach didn't work out, so someone else will have to tackle this problem.
RetroPlayer releases: https://github.com/garbear/xbmc/releases

Donations: eigendude.eth
Reply
#39
(2018-08-29, 17:45)garbear Wrote: I spent a couple days straight on this and had no major successes. Circular dependencies are too hard to break when they span hundreds of thousands of lines of code. My approach didn't work out, so someone else will have to tackle this problem.
 Is it possible to activate this change only for the Kodi build for Xbox One and to restore the original state for the other environments? It doesn't make much sense to optimize something for just one "exotic" system, and thus negatively affect the Android and Windows versions?
Reply
#40
@garbear any idea here who can tackle this problem?
Reply

Logout Mark Read Team Forum Stats Members Help
Delete please0