Summary: | Some random ideas for smoother, faster rendering | ||
---|---|---|---|
Product: | [Applications] okular | Reporter: | Benoît Jacob <jacob.benoit.1> |
Component: | general | Assignee: | Okular developers <okular-devel> |
Status: | RESOLVED NOT A BUG | ||
Severity: | wishlist | ||
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Compiled Sources | ||
OS: | Unspecified | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Attachments: |
Callgrind run on okular
Callgrind run on xpdf |
Description
Benoît Jacob
2009-10-06 04:44:27 UTC
Note: I did check that poppler (default build options) was built with -O2. Also the sentence "both Okular and XPDF spend most time in Poppler-Splash rendering" is obviously wrong in view of the information that I gave just below, instead one should say that they both spend most time in displaySlice but * in Okular's case, it's the displaySlice provided by poppler-Splash * in XPDF's case, it has its own displaySlice I am attaching callgrind outputs... Created attachment 37393 [details]
Callgrind run on okular
Created attachment 37394 [details]
Callgrind run on xpdf
One issue per bug report dude. OK, I'm slicing it into 3 wishes/bugs. Feel free to close as... you decide. OK, forget about the "performance" issue, I'm pretty sure it was subjective now. What happens is that Okular and XPDF have a different notion of " 100% Zoom ". So what was 100% Zoom in XPDF was actually more like 66% Zoom in Okular. Because of that, I've been comparing Okular at a higher zoom level, i.e. at a disadvantage. Also, at very high zoom levels, XPDF is sluggish when scrolling, which compensates for the greater speed of initial rendering. I posted points 2) and 3) as issues #209630 and #209632. What happens when rendering is the following: a new pixmap is asked for being rendered, and when ready replaces the old one [for a specified observer]. It -may- happen that, due to the memory usage, some other pixmap of the requested page (be it for the same observer or another) is removed, thus leaving no other pixmap for a page. This means that when rendering a page, any other available pixmap for the same page _is_ actually used. Regarding the white page at higher zoom, this can have two main causes: a) what I said above (ie previous pixmap being removed for memory constraint) b) a page pixmap too big (you see that by reading the debug output, only the first time); in that case, only a planned tiled rendering could fix this issue. (Also, why is such discussion being done on bugzilla, and not in ML?) > (Also, why is such discussion being done on bugzilla, and not in ML?)
Because when I wrote that, I didn't know that it would be as "interesting" as you suggest in #9, I thought that 2) was a plain simple bug in Okular and 3) was just a usual wishlist item.
I didn't realize that Okular was so dependent on X's pixmap memory management. Naively one would think that X's memory management is only an internal thing that doesn't have to affect such visual aspects! So the naive question is this: why not just simply do all the rendering (of the current page / view) in, say, a QImage that X doesn't care about? Here I half expect my question to be stupid because I don't understand X client/server issues and what happens when people do e.g. X-over-a-network, but I'd honestly like to understand :)
Closing bug as said by reporter. Benoît if you want a quick explanation of why QPixmap and not QImage, ask on irc Final comment on the "performance issue", what I was experiencing was what is now described here: https://bugs.kde.org/show_bug.cgi?id=209680 |