Apache OpenOffice (AOO) Bugzilla – Full Text Issue Listing |
Summary: | Impress forces excessive Xorg utilization and eventually crashes the window manager | ||
---|---|---|---|
Product: | Impress | Reporter: | plangfelder <peter.langfelder> |
Component: | editing | Assignee: | Armin Le Grand <Armin.Le.Grand> |
Status: | CLOSED FIXED | QA Contact: | issues@graphics <issues> |
Severity: | Trivial | ||
Priority: | P3 | CC: | cno, issues, philipp.lohmann |
Version: | OOO330m20 | ||
Target Milestone: | --- | ||
Hardware: | Other | ||
OS: | Unix, all | ||
Issue Type: | DEFECT | Latest Confirmation in: | --- |
Developer Difficulty: | --- | ||
Issue Depends on: | |||
Issue Blocks: | 120237 |
Description
plangfelder
2011-02-02 03:48:03 UTC
Reproducible. Reassigned. related to 105116 ? At least one part of the problem seems to be a larger number of MaskPrimitive2D objects. For the metafile object on page 64 of the document mentioned above, more than 20000 mask primitives are rendered. With the current definition of the mask primitive this is quite expensive. AW: The definition is not the problem, a renderer is free to use the MaskPrimitive to set a ClipRegion at the target device. Problem is that setting a clip region in X will not produce AAed edges which is needed with AA enabled. To do that, the current mechanism is necessary (copying target in VDEV, painting masked context, generate AAed mask (8bit), combining to BitmapEx with RGBA and copying back). If someone knows a better mechanism on X without losing AAed bounds I would be happy. AW: Currently no workaround. AW: The definition is not the problem, a renderer is free to use the MaskPrimitive to set a ClipRegion at the target device. Problem is that setting a clip region in X will not produce AAed edges which is needed with AA enabled. To do that, the current mechanism is necessary (copying target in VDEV, painting masked context, generate AAed mask (8bit), combining to BitmapEx with RGBA and copying back). If someone knows a better mechanism on X without losing AAed bounds I would be happy. AW: Currently no workaround. AW->PL: Adding you to CC. Maybe You have an idea...? Indeed I do: don't do that 20000 times for just one object (see af's comment) set target to 3.x since they are not release relevant for 3.4 ALG: Taking a look, trying to add buffering for used VirDevs... ALG: Comitted buffering implementation, VDevs get now reused and freed if not needed after 10 seconds. Done. |