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

David Edmundson david at davidedmundson.co.uk
Mon Jul 21 13:51:58 UTC 2014


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

(Updated July 21, 2014, 1:51 p.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 (updated)
-----

  src/declarativeimports/core/svgitem.cpp 1ed0631 
  src/declarativeimports/core/tooltipdialog.cpp e62ed6e 
  src/plasma/framesvg.h dd6d8da 
  src/plasma/framesvg.cpp fcc6809 
  src/plasma/private/framesvg_p.h 8aceef2 
  tests/dialog.qml PRE-CREATION 
  tests/testborders.qml PRE-CREATION 
  src/declarativeimports/core/framesvgitem.cpp 8320212 
  src/declarativeimports/core/framesvgitem.h e155f6a 

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/e18ef8f9/attachment.html>


More information about the Plasma-devel mailing list