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.