Posts: 827
Joined: Jun 2014
Reputation:
25
CiNcH
Posting Freak
Posts: 827
2016-12-10, 00:15
(This post was last modified: 2016-12-10, 00:16 by CiNcH.)
I just measured power consumption of the TV and with SPMC, it drew about 0.5-1W less when playing the sample. That's not a problem of course as it won't make my electricity bill explode. But it might be an indication that there is some more number crunching going on on the SoC, for which 1W of additional power is a lot already.
Kodi runs on very thin devices nowadays and I think it is important to be sensitive on this matter. I am currently analyzing occasional hiccups with the PVR (due to data rate drops over WiFi) and it just makes you wonder whether problems correlate.
Posts: 23,312
Joined: Aug 2011
Reputation:
1,077
fritsch
Team-Kodi Developer
Posts: 23,312
Means you want to identify a badly written driver that looses bytes whenever the cpu shortly needs to do more things?
Btw. I already told you in my first reply why kodi v17 draws more power while video playback than Jarvis does.
What about your measurements on idle?
First decide what functions / features you expect from a system. Then decide for the hardware. Don't waste your money on crap.
Posts: 23,312
Joined: Aug 2011
Reputation:
1,077
fritsch
Team-Kodi Developer
Posts: 23,312
Oki - then everything has been said. Let's keep that thread open here so if someone wants to look after it, he can find this writeup.
First decide what functions / features you expect from a system. Then decide for the hardware. Don't waste your money on crap.
Posts: 23,312
Joined: Aug 2011
Reputation:
1,077
fritsch
Team-Kodi Developer
Posts: 23,312
No. On Jarvis it was not implemented properly. It used a timer and hoped that the gpu would swapbuffer accordingly - which (in short) did nothing with bypass renders.
We have a queue of decoded pictures. Those pics have a timestamp when there "start of rendering" should be, e.g.
[1,40,80,120,160] in a 25 fps video.
Now let's assume your refreshrate is 50hz, meaning your gpu is doing a swapbuffer 50 times a second anyway to drive the display refresh.
Now, we walk to this queue at 1,20,40,60,80,100,120,140,160.
1,20: display 1
40,60: display 40
... and so on.
That has the big advantage that we - as we are now - display driven can exactly enqueue whatever is currently right. We don't need to estimate next swapbuffers and enqueue what we think would come on display. The display drives us. You know, you cannot just wait "25 ms" and then think if you now call swapbuffers it will land on screen immediately.
So much about the Render Manager. Sync Playback to Display additionally measures swapbuffers "delays" and compensates audio so that the displayclock driven video and audio will be in sync. This especially helps if you run 50 fps at 60 hz or 24 fps at 60 hz. You know about the 3:2 Pulldown of earlier times, by hard coding pulldown? With this method described it works "automatically" as always the right frame is taken.
First decide what functions / features you expect from a system. Then decide for the hardware. Don't waste your money on crap.
Posts: 827
Joined: Jun 2014
Reputation:
25
CiNcH
Posting Freak
Posts: 827
2016-12-12, 12:47
(This post was last modified: 2016-12-12, 13:41 by CiNcH.)
I wrote an EVR Custom Presenter myself so I know quite a bit about frame rendering, swapchains and synchronizing to the VSync.
Let's see whether I got you right...
Let's stick to your 25fps @ 50Hz example...
- In Krypton you put 50fps into the GPU driver queue which then does the swapping.
- In Jarvis the renderer times the swapping of the 25fps.
And when I enable 'Sync playback to display' in Krypton, I get the Jarvis behaviour with some A/V VSync synchronization?
Posts: 827
Joined: Jun 2014
Reputation:
25
CiNcH
Posting Freak
Posts: 827
OK. Created the ticket anyway. I don't have to know how it works. I report the numbers and you do the interpretation ^^ .
Posts: 827
Joined: Jun 2014
Reputation:
25
CiNcH
Posting Freak
Posts: 827
I just want to add some new numbers, playing back 1080i H.264 on Android TV Marshmallow (Sony BRAVIA with MT5890 chipset)...
Kodi 17.1: 20% (surfaceflinger: 10%)
SPMC 16.6: 10% (surfaceflinger: 6%)
VLC: 8% (surfaceflinger: 4%)
MX Player (MediaCodec): 5% (surfaceflinger: 4%)
MX Player (libstagefright): 7% (surfaceflinger: 7%)
Posts: 827
Joined: Jun 2014
Reputation:
25
CiNcH
Posting Freak
Posts: 827
Didn't improve CPU usage for me.
Video playback actually got worse (MediaCodec Surface). When navigating the KODI menu in parallel, video picture freezes every couple of seconds.
Posts: 202
Joined: Feb 2014
Reputation:
3
2017-05-01, 18:42
(This post was last modified: 2017-05-01, 18:44 by shomari.)
...wow. I wonder how that'll play out going forward, then.
edit: yup the gui causes slowdown with the latest vpupdate test build, but not with the first one.