Review Request 119330: Convert FrameSvgItem to use 9 tiles instead of a big texture.

Marco Martin notmart at gmail.com
Mon Jul 21 08:15:54 UTC 2014



> On July 18, 2014, 11:58 a.m., Marco Martin wrote:
> > framesvgitem part starting to look good!
> > I would still like to have all of framesvg private again tough
> 
> Aleix Pol Gonzalez wrote:
>     Can you ellaborate on what don't you like about the approach?
>     We're not installing headers, so we don't need to maintain ABI there.

All of the data taken from FrameData is obtainable from Svg public api, with code no more complex, even.

Even if Qt is doing it I don't care (there they have a level of complexity that actually justifies that, plus they have to access things that do not have any alternate way to accessing, unlike this), no private parts exported as symbols is a policy I'm quite serious to enforce in that library.


- Marco


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/119330/#review62651
-----------------------------------------------------------


On July 18, 2014, 10:54 a.m., David Edmundson wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/119330/
> -----------------------------------------------------------
> 
> (Updated July 18, 2014, 10:54 a.m.)
> 
> 
> Review request for Plasma.
> 
> 
> Repository: plasma-framework
> 
> 
> Description
> -------
> 
> Use FrameSVG as 9 tiles instead of uploading a big texture of the finished frame each time.
> 
> This also saves the cache being populated with full created frames in different sizes; which end up taking up space in the disk and shared memory cache as well as the GPU memory.
> 
> A code path falls back to the original uploading the entire texture if obscure settings are used, i.e overlay.
> 
> Benchmarks:
>  - apitrace when resizing a frame goes from an average of 7.6ms per frame of *CPU* time just for the swizzling and uploading to 1.4ms
>   
>  - GPU time also drops from 40us to 10us
> 
> Themes will need to remove stretch-borders (when we gain nothing from stretching; i.e Breeze) to get the most out of it. 
> 
> 
> Diffs
> -----
> 
>   src/plasma/private/framesvg_p.h 8aceef2 
>   tests/dialog.qml PRE-CREATION 
>   tests/testborders.qml PRE-CREATION 
>   src/declarativeimports/core/framesvgitem.h e155f6a 
>   src/declarativeimports/core/framesvgitem.cpp 8320212 
>   src/declarativeimports/core/svgitem.cpp 1ed0631 
>   src/plasma/framesvg.h dd6d8da 
>   src/plasma/framesvg.cpp fcc6809 
> 
> Diff: https://git.reviewboard.kde.org/r/119330/diff/
> 
> 
> Testing
> -------
> 
> Tested oxygen + breeze + some random (and ugly) themes from kde-look.
> 
> Theme changes work.
> 
> Everything looks the same; including the borders on oxygen.
> 
> 
> Thanks,
> 
> David Edmundson
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20140721/cce01442/attachment.html>


More information about the Plasma-devel mailing list