On Tue, January 15, 2013 08:47:33 Samuel Rødal wrote: > On 01/14/2013 06:04 PM, Thomas Senyk wrote: > > On Mon, January 14, 2013 12:54:56 Samuel Rødal wrote: > >> On 01/11/2013 04:59 PM, Thomas Senyk wrote: > >>> Hi, > >>> > >>> as with Quick2.0 we got the very nice DistanceField-font-rendering. > >>> So in theory animations on Text{ font.pixelSize } should be fairly > >>> cheap, > >>> right? > >>> > >>> With the following code snipped I got performance problems never the > >>> less: > >>> > >>> import QtQuick 2.0 > >>> Text { > >>> > >>> id: text > >>> width: 500 > >>> height: 100 > >>> text: "Test font.pixelSize animation" > >>> NumberAnimation { > >>> > >>> running: true > >>> loops: Animation.Infinite > >>> duration: 2000 > >>> target: text > >>> property: "font.pixelSize" > >>> from: 10 > >>> to: 90 > >>> > >>> } > >>> > >>> } > >>> > >>> > >>> The strange thing is, on my desktop he has 100% cpu load for the first > >>> 2-4 > >>> loops. > >>> ... I wild guess: It looks like it needs to render the font-glyphs for > >>> each(?) size and after a few cycles it got all of them rendered and > >>> cached...? (it can't render all of them in the first loop as he jumps > >>> due > >>> to bad performance) > >>> > >>> On embedded (raspberry pi) I get <20% load all the time. > >>> > >>> On desktop I got: > >>> - intel xeon 3ghz > >>> - nvidia 8600gts > >>> - Qt5 checkout from this week, branch: stable > >>> - xcb as platform backend (using freetype and fontconfig) > >>> > >>> On the raspberry I got: > >>> - BCM 2835 (slow ARM11 cpu, fast VideoCore IV GPU) > >>> - eglfs as platform backend > >>> - no fontconfig -> QBasicFontDatabase > >>> > >>> (If it helps I can do a fontconfig build) > >>> > >>> Is this know? Can anyone verify? > >>> And possible explanation? .. maybe my Qt5 build on desktop is flawed? > >> > >> Try adding "renderType: Text.QtRendering" in the Text element. On > >> desktop it might be that Text.NativeRendering is the default (which does > >> not use distance field glyphs but texture glyphs cached based on the > >> pixel size, maybe even on the scale?). > > > > No the default was already "renderType: Text.QtRendering" > > > > Changing the property does work, as the font is rendered differently with > > "renderType: Text.NativeRendering" > > (Especially during the animation one can see how the font is changing with > > renderType: Text.NativeRendering, e.g. line-width/boldness is jumping) > > > > > > The performance behavior seams to be the same. > > First 2-4 cycles it's 100% cpu then is drops to <5% > > > > > > Again from the other side of this thread: > > I'm not searching for a quick work-around (e.g. scale), I rather want to > > understand why this is happening, why it's different on my rpi and if this > > is a bug or a wanted/accepted behavior. > > I don't understand it, the distance field text should not be > re-generated based on pixelSize. Maybe there's something else going on, > since it's on desktop you could run it through callgrind perhaps :)
K! This is the answer I was seeking for, now I can invest time with the guarantee that I'm not wasting it ;) I might not have the time this week, hopefully next week. (If somebody else got the same problem, send me an mail with your configuration so I can take it in consideration.) > > > Greets > > Thomas > > > > p.s.: (a bit off-topic) > > @ "cached based even on scale" > > Scale with "renderType: Text.NativeRendering" is similar as with > > Qt4/Quick1: He renders with the specified font size and scales it during > > gl-painting> > > -> "font.pixelSize: 1; scale: 30" looks extremely unreadable. > > > > Where "renderType: Text.QtRendering" produces the same output with > > "font.pixelSize: 1; scale: 30;" and "font.pixelSize: 30; scale: 1;" > > (not counting the 'Text' elements geometry properties) > > Good to know :) > > -- > Samuel _______________________________________________ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest