Plasma::Wallpaper does software scaling/copying when it isn't necessary

Zack Rusin zack at kde.org
Sun Jul 11 23:28:57 CEST 2010


On Sunday 11 July 2010 12:44:50 velociraptor Genjix wrote:
> See the conversation
> http://kde-look.org/content/show.php?content=112105&forumpage=4 titled
> "Phonon video backend?" 
> I do the scaling using hardware acceleration

Really? To me it looks like you're just using sws_scale which is a software 
scale.

> but Plasma::Wallpaper requires me to still copy this array with slow
> software acceleration. If the format is correct then just give me the target
> X surface. 

I'm not sure what would that give you. I'm guessing you want to use something 
like XvPutImage which wouldn't work because you already convert the frames to 
RGB and basically no one accelerates Xv with RGB surfaces. Besides it would be 
only meaningful assuming that a) Plasma currently runs on a system with X11, 
b) the driver doesn't implement Xv using an overlay. While we could assume "a" 
and disable the plugin if it's not the case, there's no reliable way of 
testing b and it will obviously break the entire Plasma (your video will 
render on top of everything).


> A video wallpaper should be as natural as an image or colour in today's
> world.

That's a bit unrealistic. A static wallpaper needs to be uploaded only once, 
while the video will need to be uploaded ~24 times per second (and given that 
you're scaling in software even on an avarage laptop that's 1280*800*4*24 =~ 
98MB every second).

IMHO for video it'd be more interesting to start Plasma with a GL engine and 
after decoding the frame (to whatever is the video native YUV format, e.g. 
YUV420 for VP8) rendering it as a texture while doing the to rgb conversion 
and scale in shaders.

z


More information about the Plasma-devel mailing list