https://bugs.freedesktop.org/show_bug.cgi?id=84728
Bug ID: 84728
Summary: headless: excessive clipping / perf. issue ...
Product: LibreOffice
Version: 4.3.0.2 rc
Hardware: Other
OS: All
Status: UNCONFIRMED
Severity: normal
Priority: medium
Component: Libreoffice
Assignee: [email protected]
Reporter: [email protected]
Rendering is significantly slowed down by complex clip setups - which can be
caught like this:
diff --git a/vcl/headless/svpgdi.cxx b/vcl/headless/svpgdi.cxx
index 6f993db..aa43951 100644
--- a/vcl/headless/svpgdi.cxx
+++ b/vcl/headless/svpgdi.cxx
@@ -304,7 +304,10 @@ bool SvpSalGraphics::setClipRegion( const vcl::Region&
i_rClip )
m_bClipSetup = true;
}
else
+ {
+ SAL_DEBUG("Complex clipping regions pushed " << aRectangles);
m_bClipSetup = false;
+ }
return true;
}
To reproduce run:
./tilebench `pwd` /opt/libreoffice/testfiles/CP41vsAOO401/groupshape.rtf
preferably under callgrind under master - and you'll see the issue.
We -try- hard to defer setting up an alpha clipping mask - since that is
usually huge and also horribly expensive =)
Stupidly we do this even for rendering rectangles which -should- be easy to do;
and (it seems) the biggest chunk of our time is spent filling those masks.
We should either:
a) stop creating un-necessarily complex clipping setups: I can't see why we
would need anything more complex than a simple rectangle ~ever really =) quite
possibly the code is just being obtuse and we can fix it higher up.
and/or
b) handle rectangle & line rendering better.
I attach a prototype patch here [ that incidentally screws up all the rectangle
rendering - as you can see if you load groupshape.rtf in 'gtktiledrender' ;-]
which needs some more thought as to why it breaks ~everything I guess ;-)
Quite possibly we need to do gradient rendering for the outline / border of the
document - or somesuch in BitmapDevice itself - only profiling will tell.
--
You are receiving this mail because:
You are the assignee for the bug.
_______________________________________________
Libreoffice-bugs mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/libreoffice-bugs