High CPU only when on Movies or TV item of home menu
#16
Nice find xbs08, it's down to 23% on Home now Smile

However, I still have the problem in Settings. On the first screen, with Appearance, Video, LiveTV, etc it's about 10%. Going down a level, for example to Appearance - Skin it's about 14%. As soon as I move the cursor to the right-hand pane though, it's up to 84%. This clearly makes no sense as there's no reason why it should be doing anything CPU heavy just by having the right-pane active so I guess there must be a bug somewhere.
Reply
#17
Has anyone actually noticed any performance issues, or is everyone just looking at numbers?
Reply
#18
Well just numbers are still important as if it's running at near max all the time that's obviously wasting electricity, creating heat, reducing lifespan.

It does seem snappier now as well though, which isn't really surprising if 60% CPU was being used before to do something unnecessary.
Reply
#19
(2013-02-21, 21:34)Ned Scott Wrote: Has anyone actually noticed any performance issues, or is everyone just looking at numbers?

It's probably going to slow down background processes but other than that, it's just obviously wrong and could be better.
Texture Cache Maintenance Utility: Preload your texture cache for optimal UI performance. Remotely manage media libraries. Purge unused artwork to free up space. Find missing media. Configurable QA check to highlight metadata issues. Aid in diagnosis of library and cache related problems.
Reply
#20
I keep my rpi on 24/7 with dynamic oc if i forget and leave it with a recently added visible it will not drop to stock speeds for another 20 hours. This isn't good. If i wanted to run the rpi full speed i wouldn't keep dynamic oc would i?
 
  • Intel NUC Kit DN2820FYKH ~ Crucial DDR3L SO-DIMM 4GB ~ SanDisk ReadyCache 32GB SSD ~ Microsoft MCE model 1039 RC6 remote
Reply
#21
I wasn't seeing this issue. I have recently added movies and TV shows and can have either visible and I don't get high cpu. But I tried to provoke it.
I highlighted the first recently added movie "X2:X-Men United". No high CPU.
I highlighted the second recently added movie "X-Men". No high CPU.
I highlighted the third recently added movie "X-Men: The Last ...".

Ah this produces high CPU because the title doesn't fit, and it has to scroll.
That's fair enough - the dirty rectangle rendering means the whole display has to be refreshed because this is constantly changing.

However after this, I highlighted again "X-Men", now there is no scrolling text, but the CPU is still high.
I can move away from Movies and the CPU goes down, but whenever Movies is highlighted, even though there is no scrolling text, the CPU is high.

I've grabbed a call stack. (I tried several times, and it's always inside the "Render" calls)

Code:
#0  0x0050bb34 in TransformYCoord (this=<optimized out>, z=0, y=192.5, x=80) at TransformMatrix.h:231
#1  ScaleFinalYCoord (y=<optimized out>, x=<optimized out>, this=<optimized out>) at GraphicContext.h:119
#2  CGUIFontTTFBase::RenderCharacter (this=this@entry=0x2a8f890, posX=<error reading variable: Could not find type for DW_OP_GNU_const_type>,
    posY=<error reading variable: Could not find type for DW_OP_GNU_const_type>, ch=ch@entry=0x2aaa43c, color=color@entry=4294967295, roundX=roundX@entry=96) at GUIFontTTF.cpp:706
#3  0x0050cbdc in CGUIFontTTFBase::DrawTextInternal (this=0x2a8f890, x=<optimized out>, y=<optimized out>, colors=..., text=..., alignment=0, maxPixelWidth=-26, scrolling=false) at GUIFontTTF.cpp:404
#4  0x0050528c in CGUIFont::DrawText (this=0x2a8f7e0, x=-26, y=183.5, colors=..., shadowColor=4278190080, text=..., alignment=8, maxPixelWidth=150) at GUIFont.cpp:108
#5  0x00548354 in CGUITextLayout::Render (this=0x310311c, x=-26, y=183.5, angle=26, color=<optimized out>, shadowColor=4278190080, alignment=8, maxWidth=150, solid=false) at GUITextLayout.cpp:93
#6  0x0051a3f8 in CGUILabel::Render (this=0x31030d0) at GUILabel.cpp:123
#7  0x005237f0 in CGUIListLabel::Render (this=0x3102f60) at GUIListLabel.cpp:86
#8  0x004eeecc in CGUIControl::DoRender (this=0x3102f60) at GUIControl.cpp:179
#9  0x004f7b34 in CGUIControlGroup::Render (this=0x3129df4) at GUIControlGroup.cpp:128
#10 0x004eeecc in CGUIControl::DoRender (this=0x3129df4) at GUIControl.cpp:179
#11 0x004df6d0 in CGUIBaseContainer::RenderItem (this=0xaf945c48, posX=<optimized out>, posY=<optimized out>, item=0xaf947618, focused=<optimized out>) at GUIBaseContainer.cpp:288
#12 0x004e1458 in CGUIBaseContainer::Render (this=0xaf945c48) at GUIBaseContainer.cpp:246
#13 0x004eeecc in CGUIControl::DoRender (this=0xaf945c48) at GUIControl.cpp:179
#14 0x004f7b34 in CGUIControlGroup::Render (this=0xaf944ec0) at GUIControlGroup.cpp:128
#15 0x004eeecc in CGUIControl::DoRender (this=0xaf944ec0) at GUIControl.cpp:179
#16 0x004f7b34 in CGUIControlGroup::Render (this=0xaf9449e0) at GUIControlGroup.cpp:128
#17 0x004eeecc in CGUIControl::DoRender (this=0xaf9449e0) at GUIControl.cpp:179
#18 0x004f7b34 in CGUIControlGroup::Render (this=0x2a49da8) at GUIControlGroup.cpp:128
#19 0x004eeecc in CGUIControl::DoRender (this=0x2a49da8) at GUIControl.cpp:179
#20 0x00551dc8 in CGUIWindow::DoRender (this=0x2a49da8) at GUIWindow.cpp:352
#21 0x005573f8 in CGUIWindowManager::RenderPass (this=this@entry=0x2839eb0) at GUIWindowManager.cpp:537
#22 0x00557528 in CGUIWindowManager::Render (this=0x2839eb0) at GUIWindowManager.cpp:562
#23 0x009d6634 in CApplication::RenderNoPresent (this=0x2838350) at Application.cpp:2206
#24 0x009d891c in CApplication::Render (this=0x2838350) at Application.cpp:2332
#25 0x00a5234c in CXBApplicationEx::Run (this=0x2838350) at XBApplicationEx.cpp:177
#26 0x00a5850c in XBMC_Run (renderGUI=<optimized out>) at xbmc.cpp:69
#27 0x002c8408 in main (argc=3, argv=0xbee92774) at main.cpp:84

So, looks like a bug in the dirty rectangle handling where the scrolling title text that happened ages ago is still forcing updates.

I know nothing about this code, so will not try to fix it, but it might be worth others trying to repeat my results, and submit a trac ticket.
Reply
#22
(2013-02-22, 15:53)popcornmix Wrote: I wasn't seeing this issue. I have recently added movies and TV shows and can have either visible and I don't get high cpu. But I tried to provoke it.
I highlighted the first recently added movie "X2:X-Men United". No high CPU.
I highlighted the second recently added movie "X-Men". No high CPU.
I highlighted the third recently added movie "X-Men: The Last ...".

Ah this produces high CPU because the title doesn't fit, and it has to scroll.
That's fair enough - the dirty rectangle rendering means the whole display has to be refreshed because this is constantly changing.

However after this, I highlighted again "X-Men", now there is no scrolling text, but the CPU is still high.
I can move away from Movies and the CPU goes down, but whenever Movies is highlighted, even though there is no scrolling text, the CPU is high.

I've been able to reproduce this low->high CPU consumption in Music, using your method, by selecting a title that needed to be scrolled.

However I've also got high CPU in Movies straight from the off, and this is without selecting any items in Recently Added (there are two items with titles that would scroll, if selected). It's all rather unpredictable, some times I boot and have low CPU in Mvovies/TV Shows/Music, another time I'll boot and have high CPU in Movies, another time it might be TV Shows... I'll create a trac ticket later today, and hopefully the glitch you have identified will lead to a complete solution.
Texture Cache Maintenance Utility: Preload your texture cache for optimal UI performance. Remotely manage media libraries. Purge unused artwork to free up space. Find missing media. Configurable QA check to highlight metadata issues. Aid in diagnosis of library and cache related problems.
Reply
#23
(2013-02-21, 21:34)Ned Scott Wrote: Has anyone actually noticed any performance issues, or is everyone just looking at numbers?

I imagine a library scan would take forever if you happened to leave "recently added" visible.
Remote control apps (e.g. XBMC commander) are very slow at loading video info when CPU is high.
Trying to copy files onto Pi will be slower.
Other services like Torrent/NZB downloads will be slow.
Reply
#24
Thanks for taking a look.
 
  • Intel NUC Kit DN2820FYKH ~ Crucial DDR3L SO-DIMM 4GB ~ SanDisk ReadyCache 32GB SSD ~ Microsoft MCE model 1039 RC6 remote
Reply
#25
Ticket #14136 opened.
Texture Cache Maintenance Utility: Preload your texture cache for optimal UI performance. Remotely manage media libraries. Purge unused artwork to free up space. Find missing media. Configurable QA check to highlight metadata issues. Aid in diagnosis of library and cache related problems.
Reply
#26
(2013-02-22, 15:53)popcornmix Wrote: Ah this produces high CPU because the title doesn't fit, and it has to scroll.
That's fair enough - the dirty rectangle rendering means the whole display has to be refreshed because this is constantly changing.

However after this, I highlighted again "X-Men", now there is no scrolling text, but the CPU is still high.
I can move away from Movies and the CPU goes down, but whenever Movies is highlighted, even though there is no scrolling text, the CPU is high.

You can also reproduce this scrolling bug within the addon menu while using the list view.
When you scroll through your addon list and come above an addon with a long description, the CPU will stay at 97% even when you select another addon. You can only stop it, when you completely exit the Addon menu.
My personal work-around currently is, that I edit all addons with an long description text and remove it in the according xml file, so that no scrolling happens.
The RSS feed with the scrolling text is also such no-go.

I think it would really help a lot, when the handling of dirty regions could be approved. I think it would also improve the speed of the overall XBMC interface as you could use "algorithmdirtyregions = 1", which unfortunately only produce/big massive artefacts at the moment.
Reply
#27
I've also found when playing a Recorded TV .ts file with debugging on, I see 25-30% CPU usage and 9.1fps (obviously wrong). If I pause, it goes up to 90% CPU and 71fps.
Reply
#28
(2013-02-22, 15:53)popcornmix Wrote: I wasn't seeing this issue. I have recently added movies and TV shows and can have either visible and I don't get high cpu. But I tried to provoke it.
I highlighted the first recently added movie "X2:X-Men United". No high CPU.
I highlighted the second recently added movie "X-Men". No high CPU.
I highlighted the third recently added movie "X-Men: The Last ...".

Ah this produces high CPU because the title doesn't fit, and it has to scroll.
That's fair enough - the dirty rectangle rendering means the whole display has to be refreshed because this is constantly changing.

However after this, I highlighted again "X-Men", now there is no scrolling text, but the CPU is still high.
I can move away from Movies and the CPU goes down, but whenever Movies is highlighted, even though there is no scrolling text, the CPU is high.

I've grabbed a call stack. (I tried several times, and it's always inside the "Render" calls)

Code:
#0  0x0050bb34 in TransformYCoord (this=<optimized out>, z=0, y=192.5, x=80) at TransformMatrix.h:231
#1  ScaleFinalYCoord (y=<optimized out>, x=<optimized out>, this=<optimized out>) at GraphicContext.h:119
#2  CGUIFontTTFBase::RenderCharacter (this=this@entry=0x2a8f890, posX=<error reading variable: Could not find type for DW_OP_GNU_const_type>,
    posY=<error reading variable: Could not find type for DW_OP_GNU_const_type>, ch=ch@entry=0x2aaa43c, color=color@entry=4294967295, roundX=roundX@entry=96) at GUIFontTTF.cpp:706
#3  0x0050cbdc in CGUIFontTTFBase::DrawTextInternal (this=0x2a8f890, x=<optimized out>, y=<optimized out>, colors=..., text=..., alignment=0, maxPixelWidth=-26, scrolling=false) at GUIFontTTF.cpp:404
#4  0x0050528c in CGUIFont::DrawText (this=0x2a8f7e0, x=-26, y=183.5, colors=..., shadowColor=4278190080, text=..., alignment=8, maxPixelWidth=150) at GUIFont.cpp:108
#5  0x00548354 in CGUITextLayout::Render (this=0x310311c, x=-26, y=183.5, angle=26, color=<optimized out>, shadowColor=4278190080, alignment=8, maxWidth=150, solid=false) at GUITextLayout.cpp:93
#6  0x0051a3f8 in CGUILabel::Render (this=0x31030d0) at GUILabel.cpp:123
#7  0x005237f0 in CGUIListLabel::Render (this=0x3102f60) at GUIListLabel.cpp:86
#8  0x004eeecc in CGUIControl::DoRender (this=0x3102f60) at GUIControl.cpp:179
#9  0x004f7b34 in CGUIControlGroup::Render (this=0x3129df4) at GUIControlGroup.cpp:128
#10 0x004eeecc in CGUIControl::DoRender (this=0x3129df4) at GUIControl.cpp:179
#11 0x004df6d0 in CGUIBaseContainer::RenderItem (this=0xaf945c48, posX=<optimized out>, posY=<optimized out>, item=0xaf947618, focused=<optimized out>) at GUIBaseContainer.cpp:288
#12 0x004e1458 in CGUIBaseContainer::Render (this=0xaf945c48) at GUIBaseContainer.cpp:246
#13 0x004eeecc in CGUIControl::DoRender (this=0xaf945c48) at GUIControl.cpp:179
#14 0x004f7b34 in CGUIControlGroup::Render (this=0xaf944ec0) at GUIControlGroup.cpp:128
#15 0x004eeecc in CGUIControl::DoRender (this=0xaf944ec0) at GUIControl.cpp:179
#16 0x004f7b34 in CGUIControlGroup::Render (this=0xaf9449e0) at GUIControlGroup.cpp:128
#17 0x004eeecc in CGUIControl::DoRender (this=0xaf9449e0) at GUIControl.cpp:179
#18 0x004f7b34 in CGUIControlGroup::Render (this=0x2a49da8) at GUIControlGroup.cpp:128
#19 0x004eeecc in CGUIControl::DoRender (this=0x2a49da8) at GUIControl.cpp:179
#20 0x00551dc8 in CGUIWindow::DoRender (this=0x2a49da8) at GUIWindow.cpp:352
#21 0x005573f8 in CGUIWindowManager::RenderPass (this=this@entry=0x2839eb0) at GUIWindowManager.cpp:537
#22 0x00557528 in CGUIWindowManager::Render (this=0x2839eb0) at GUIWindowManager.cpp:562
#23 0x009d6634 in CApplication::RenderNoPresent (this=0x2838350) at Application.cpp:2206
#24 0x009d891c in CApplication::Render (this=0x2838350) at Application.cpp:2332
#25 0x00a5234c in CXBApplicationEx::Run (this=0x2838350) at XBApplicationEx.cpp:177
#26 0x00a5850c in XBMC_Run (renderGUI=<optimized out>) at xbmc.cpp:69
#27 0x002c8408 in main (argc=3, argv=0xbee92774) at main.cpp:84

So, looks like a bug in the dirty rectangle handling where the scrolling title text that happened ages ago is still forcing updates.

I know nothing about this code, so will not try to fix it, but it might be worth others trying to repeat my results, and submit a trac ticket.
Could you create ticket at trac.xbmc.org and cc pieh (me) and jmarshall? Easier to keep track of things there than on forum.
Always read the XBMC online-manual, FAQ and search the forums before posting.
Do NOT e-mail Team-XBMC members asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting, make sure you read this first

My previous forum/trac nickname: grajen3
Reply
#29
(2013-03-08, 02:01)pieh Wrote: Could you create ticket at trac.xbmc.org and cc pieh (me) and jmarshall? Easier to keep track of things there than on forum.

Already done.
Texture Cache Maintenance Utility: Preload your texture cache for optimal UI performance. Remotely manage media libraries. Purge unused artwork to free up space. Find missing media. Configurable QA check to highlight metadata issues. Aid in diagnosis of library and cache related problems.
Reply
#30
ok for me a few things worked:

1.) disable the youtube plugin (if you have it installed in addons)
2.) enable dirty regions my settings:

/home/pi/.xbmc/userdata/advancedsettings.xml


<advancedsettings>
<fanartres>540</fanartres>
<imageres>512</imageres>
<useddsfanart>false</useddsfanart>
<lookandfeel>
<enablerssfeeds>false</enablerssfeeds>
</lookandfeel>
<gui>
<algorithmdirtyregions>3</algorithmdirtyregions>
<nofliptimeout>0</nofliptimeout>
</gui>
<bginfoloadermaxthreads>2</bginfoloadermaxthreads>
</advancedsettings>



and thirdly ... its all down to skin, it seems nearly all skins are innefficient in my case (im using Raspberry PI) ... what i have done is modified the nbox skin so at least when its on the home screen its using < 30% CPU ... ive mainly tracked CPU issues down scrolling text, (as this constantly activates dirty regions - you can check this by changing the 3 to a 2 - when you reboot you will be on home screen and see what items are constantly being redrawn, this indicates that this control is doing some animation and triggering a re-draw) and any kind of visual changes (such as a blinking cursor) .... once i shut these off in the skin CPU below 30% ... I may have a go at modifying the nbox skin and try and make it Raspberry PI efficient .... as at the moment the CPU usage at 100% will eventually kill an always on RPI =(
Reply

Logout Mark Read Team Forum Stats Members Help
High CPU only when on Movies or TV item of home menu0