2020-05-28, 10:04
(2020-05-26, 00:13)DeawD8t Wrote: (...)
Currently top (with Irix Mode Off) shows me 10% cpu utilization if I play some mp3 audio stream (I can live with that). As soon as the Slideshow Screensaver kicks in this jumps to > 70% cpu utilization (constant - not only during Slide transitions). Slide jpegs are stored on a local hard drive and have been shrinked to a 1024x768 format.
I might add that due to the lack of driver support this netbook has no hardware rendering acceleration.
I had high hopes for both the dirty region and smart redraw activation, because from my understanding of these techniques, the screensaver's rather "static" rendering of a full screen still image *should* benefit from "only rendering changed regions" - but it seems that it doesn't have any effect.
Is this a known problem, or am I on a completely wrong track with my assumptions regarding how the rendering is done? I run Kodi 18.7, Picture Slideshow Screensaver Addon version is 5.0.9. on an Ubuntu 18.04.2 LTS
Update: I investigated a little bit further (I have never poked that deep into Kodi, so I am still in a steep learning curve and apologize for any naive or dumb questions and assumptions).
tl;dr: IMHO the culprit of this lies somewhere in how the overlay of music track duration / progress is rendered in the GUI. Disabling "Display music info (...)" is a quick and dirty workaround for cpu utilization to calm down.
Some more details of what I have tried so far:
- if I explicitly disable both "dirty region awareness" and "smartredraw", via <algorithmdirtyregions>0</algorithmdirtyregions> and <smartredraw>false</smartredraw> in advancedsettings.xml, then I get constant high utilization of > 70% (mainly from 4 different llvmpipe threads inside the kodi-x11 process, determined by top -H through a ssh, no matter if the screensaver runs or not); this is expected for this weak Netbook Atom platform without hardware rendering and is a proof for me that dirty region rendering is still a valid, working and needed approach on my platform.
- If I enable dirty regions awareness again, and disable to show music info in the Screensaver settings, also the Screensaver behaves as expected (short CPU spike during transition, otherwise utilization around a baseline 10%) - so disabling music info would be a workaround - however, I want to use the "Display music info" feature as it gives a nice feedback that something is playing.
- If I enable "Display music info" in the Screensaver settings and <visualizedirtyregions>true</visualizedirtyregions> in advancedsettings.xml, it becomes obvious, that if music info is displayed, the screen as a whole remains "dirty" the whole time the Screensaver runs (it is tinted red and has some transpartent overlay from visualizedirtyregions). However IMHO expected behaviour would be: only a "region" around the music info should be dirty.
At the moment I trying to tie together the information I get from .kodi/addons/screensaver.picture.slideshow/resources/skins/default/720p/script-python-slideshow.xml and .kodi/addons/screensaver.picture.slideshow/resources/lib/gui.py; if I am not mistaken (I am no programmer ...), the music info control gets startet ("self._set_prop('Music', 'show')") inside self._get_settings() when the Screensaver gets activated, but my wisdom ends when trying to understand how the elapsed time of the music playing ("$INFO[Player.Time(hh:mm
![Confused Confused](https://forum.kodi.tv/images/smilies/confused.png)
Any hint where to look further is appreciated, also if this is the wrong forum thread, e.g. if this is a more GUI / rendering specific problem that should be addressed elsewhere (where?). My (probably naive) approach would be to find out, if I can "regionize" somehow the Display music info Control, so it is properly picked up as a dirty region and not the whole screen. An alternative I am going to try is to remove the progress and "time" label controls, which whould still be an ugly workaround.