| <<<Back 1 day (to 2013/08/20) | 2013/08/21 |
kens | chrisl what's the magic invocation to build with no UTF8 in Windows ? | 08:26.52 |
| GS_NO_UTF8 ? | 08:27.03 |
chrisl | yes GS_NO_UTF8=1 on the nmake command line | 08:28.41 |
kens | Right, just repeating all my tests with that set too | 08:28.53 |
| OK I reckonI'm done with filenameforall, the next commit will address all of SaGS' concerns. I've tested it with and without UTF8 support and with and without COMPILE_INITS to prove that the resource machinery works in all cases. | 08:43.54 |
chrisl | kens: if you can reassign the bug to me so I remember to review the Unix code, too | 08:47.49 |
kens | chrisl OK will do. | 08:47.56 |
| I'm just writing some comments on it now | 08:48.04 |
chrisl | Thanks. I need to go post a few letters.... bbiab | 08:48.45 |
paulgardiner | kens: What was the trick for getting extended error info out of Adobe Reader? | 09:18.00 |
kens | press control whenyou press the OK button on the 'error' dialog | 09:18.19 |
| It doesn't always tell you anything | 09:18.31 |
paulgardiner | Thanks. It's told me something at least | 09:19.00 |
kens | It cnabe a bit opaque 'expected name object' or similar | 09:19.15 |
paulgardiner | Yeah: "expected dict object" in this case, but it's something at least | 09:19.45 |
kens | Gives you a clue anyway | 09:19.54 |
| OK I'm out for a couple of hours, will be back later | 09:23.36 |
atulagrwl | paulgardiner: I have commented on bug 694527 | 09:37.26 |
| this is kind of blocker for us. Can I help in any way, let me know? | 09:37.54 |
paulgardiner | atulagrwl: Great. Thank you | 09:37.58 |
atulagrwl | Do we have any mailing list where I can discuss these issues? Discussing on irc is kind of weird for me and logging bug and waiting seems kind of overkill :) | 09:39.08 |
Robin_Watts | atagrwl: irc is the easiest way to speak directly to the people responsible. It's our only line of "real time" support (and even then it's not really support as we don't offer support to GPL customers, officially) | 09:41.03 |
| If you don't want to use irc, use bugzilla. There is no mailing list. | 09:41.28 |
| atulagrwl: In what way is this a blocker for you? | 09:41.56 |
| Are you using MuPDF as part of an app or something? | 09:42.30 |
atulagrwl | Robin_Watts: Yes we are using mupdf for opening pdf in our android app. | 09:42.58 |
Robin_Watts | Right. You are aware of the licensing terms of mupdf, right? | 09:43.31 |
atulagrwl | Robin_Watts: I agree irc is the best way to communicate real time. Maybe I could not find right people and hence I was looking for mailing list. | 09:43.59 |
Robin_Watts | MuPDF is licensed in 2 ways; firstly, it is available under the GNU GPL. If you want to use it under this license, you need to abide by all the restrictions of the GPL, including (but not limited to) releasing the source code of the entire app that uses MuPDF. | 09:44.37 |
atulagrwl | We know the licensing term. We are ready to open the source of our app. | 09:44.52 |
Robin_Watts | If you aren't prepared to abide by the GPL then you need to get a commercial license. | 09:45.00 |
| Ah, ok, great. | 09:45.04 |
| Just didn't want to have it be a nasty shock to you later :) | 09:45.26 |
atulagrwl | Robin_Watts: I could not find way for commercial licence of mupdf. Can you please share the link for it as well? If we can afford commercial lincence, we will buy it. | 09:46.06 |
Robin_Watts | Thanks for the bug report - we are actively working on it. If you hang around here we may be able to get you to test fixes etc. | 09:46.14 |
atulagrwl | Does commercial license comes with some support? | 09:46.23 |
Robin_Watts | atulagrwl: We don't have a specific set price - everything is tailor made to fit our customers requirements. | 09:46.41 |
| The best thing is for me to put you in touch with Scott, our sales guy. He'll ask you for details about your app, and then work on a licensing proposal. | 09:47.13 |
atulagrwl | Great !! | 09:47.31 |
Robin_Watts | Is the email address on the bug the best one to contact you on? | 09:47.50 |
atulagrwl | Yes, Bug 694527 is reported by me | 09:48.11 |
| irc is really fast once you know the right person to talk to.. Now I know whom to ping :) | 09:49.12 |
Robin_Watts | atulagrwl: So I can write scott a quick email introducing you... what's your name :) | 09:49.16 |
atulagrwl | "Atul Aggarwal" | 09:49.34 |
Robin_Watts | atulagrwl: Yeah, if you get people in the right timezone, it helps a lot :) | 09:49.34 |
| Paul and I are in the UK. | 09:49.41 |
atulagrwl | Got it. Thanks | 09:50.08 |
Robin_Watts | email sent. going for a run now. | 09:52.46 |
atulagrwl | Robin_Watts: Thanks again. | 09:53.27 |
paulgardiner | atulagrwl: on Android, I'm still seeing the MuPDF-created highlight when opening the doc in Adobe Reader | 09:53.52 |
| ... although that's with my test file. I'll try yours too | 09:54.34 |
atulagrwl | paulgardiner: I am expecting that there might is something wrong with my pdf because this feature is completely broken (which I expect not to be) | 09:55.29 |
paulgardiner | atulagrwl: the problem seems to be specific to your file, but that doesn't necessarily imply it is your file that is flawed. | 09:57.30 |
atulagrwl | I knew, there might be some kind of pdf which is flawed.. | 09:57.59 |
| I have some experience with pdf. | 09:58.17 |
| This is the pdf which I created with an simple rtf file using adobe acrobat. | 09:58.38 |
paulgardiner | Using your file, and then adding the highlight using MuPDF, the result I see here on Android is that MuPDF and Adobe Reader open the doc and display the highlight, but Foxit fails to load it. | 10:01.01 |
atulagrwl | Interesting, in my case I don't see changes in reader also. | 10:02.37 |
paulgardiner | That's really odd. | 10:02.59 |
| atulagrwl: is there anything you can see in the resulting file that looks to you not to follow the spec? | 10:04.23 |
atulagrwl | Let me try again first to make sure I am not reporting anything wrong. | 10:05.20 |
| paulgardiner: Your observation is correct. It opens fine in Reader Mobile. | 10:10.57 |
paulgardiner | okay good. | 10:11.15 |
atulagrwl | I doubt pdf struct is intact as mac previewer is also failing with same pdf. | 10:11.40 |
| If I change the startxref to 116 in the my pdf, it opens fine in Acrobat (mac) but without highlight | 10:14.34 |
paulgardiner | Yeah that would make sense. | 10:15.15 |
| I do see something odd in the before-highlighting version of the file: the trailer sets Size to 8, whereas there are objects numbering as high as 15. | 10:16.43 |
atulagrwl | paulgardiner: One question, I see at 116 byte offset there is an object of type Xref but I do not see an object but direct xref at 19331 byte. (Might be a silly question). | 10:21.30 |
paulgardiner | Yes. It may be to do with mixing the two types of xref. I thought that was permitted, but perhaps not. | 10:25.59 |
atulagrwl | Can you check with the sample pdf file you created which worked with foxit also? | 10:27.44 |
paulgardiner | That one had the old-style xref. | 10:29.18 |
atulagrwl | paulgardiner: Can that we tested quickly if we are on right track or not? | 10:32.07 |
paulgardiner | Possibly, if we could find another file that used the stream form of xref, but didn't have some of the other strange features of Blank.pdf | 10:36.22 |
| Ah, it's linearized. Perhaps there are problems specific to performing incremental update on a linearized file. | 10:39.54 |
atulagrwl | paulgardiner: I tried to disable linearnzation but acrobat is generating linearized file only.. Let me check if I can find another file | 10:43.34 |
paulgardiner | We need to handle linearized pdf in any case, either by recognising it and disabling incremental update, or by working out why it causes this problem. | 10:53.54 |
atulagrwl | If you want I can send file with highlighting done from Acrobat (on Blank.pdf) | 10:54.46 |
paulgardiner | Does it look to have used incremental update: i.e., is the original file a prefix of the one with the highlight added? | 10:56.07 |
sags | @kens: Hi. The man with the bad news is back :) | 10:56.27 |
chrisl | sags: kens is out for another half hour or so | 10:57.04 |
sags | @chrisl: OK. Are you available for a quick sanity check. I'll let the complicated thing for a comment on the bug. | 10:57.57 |
| s/Are ... ./ Are ... ?/ It was a question, of course. | 10:58.36 |
chrisl | sags: sure | 10:58.44 |
atulagrwl | paulgardiner: Nope. | 10:59.31 |
sags | Here: how does thsi evaluate "j > 0 && pattern[j-1] == '/' || pattern[j-1] == '\\'". I think "&&" has a higher precedence than "||". | 10:59.32 |
atulagrwl | file is completely changed. | 10:59.40 |
paulgardiner | atulagrwl: okay, no need to send the file then. | 11:00.33 |
chrisl | sags: I thought && and || had the same precedence..... but that's why I always parenthesize...... | 11:01.04 |
| sags: no, you're correct, && is higher than || | 11:02.09 |
paulgardiner | I'm 99% certain that if we avoided incremental update then the file we'd produce would be fine. I'm able to run the problem file through mutool clean and produce one that Adobe Reader is happy with. But we don't want to disable incremental update unnecessarily | 11:02.24 |
| We don't seem to be the first to run into this: http://forums.adobe.com/thread/999726 | 11:03.04 |
sags | @chrisl: If "&&" is stronger or same, the expression looks wrong. | 11:03.06 |
| The pattern[j-1] at the end may be executed with j == 0. | 11:03.53 |
| Since kens is not here, I'll include that in the comment on the bug report. | 11:04.17 |
atulagrwl | paulgardiner: The forum Leonard is saying if we use similar xref mode, we should be fine. | 11:04.39 |
chrisl | Yeh, that may be true. It's possible that you can't get there with pattern[j-1] == '\\' and j == 0 ...... I've have to look more closely at the code | 11:05.13 |
paulgardiner | atulagrwl: Right. That's probably it then | 11:05.38 |
atulagrwl | I have created only old xref version of pdf file. let me check if that works fine or not. | 11:06.24 |
sags | @kens: I'll look to the logs in case more explanations, on IRC, are needed. I don't keep the connection to #ghoscript on becasue (1) I hate software (like an IRC client) that lurks in the background and (2) I use the IRC client that is part of the Opera browser, that's intrusive to keep running and anyway won't ring me is someone adresse me. | 11:07.55 |
atulagrwl | paulgardiner: It works fine with a pdf which had old xref schema. One interesting fact thought, highlighting does not work in Preview app of Mac :). Works fine in Adobe Acrobat on Mac (with highlighting) | 11:11.29 |
paulgardiner | Oh okay. That sounds like a separate bug. | 11:12.07 |
| atulagrwl: anyway, thanks for all that. We at least know what needs to be done now. | 11:12.32 |
atulagrwl | Yes, we have pretty much figured out the problem now. | 11:13.05 |
| I am not concerned about how it is displaying in all pdf viewer but wants to make sure we do not broke pdf struct so that pdf file becomes unusable later on. | 11:13.49 |
paulgardiner | atulagrwl: of course. I quite agree | 11:14.25 |
atulagrwl | paulgardiner: How big is this change? Can I help in any fashion? | 11:15.38 |
paulgardiner | atulagrwl: Not sure yet. Thanks. I'll let you know. | 11:23.25 |
atulagrwl | paulgardiner: What is the mechanism for getting started with hacking mupdf to become a contributor? | 11:25.42 |
paulgardiner | Doesn't need to be anything formal. If you have patches that fix problems, we can take them on. | 11:28.03 |
atulagrwl | Okay | 11:29.07 |
zak | Hi people, i have an issue with gs | 11:53.12 |
Guest75971 | can someone please help me? | 11:53.46 |
kens | Not without some details | 11:54.08 |
Guest75971 | Of course, i want to merge 2 pdf's with php | 11:54.31 |
Robin_Watts | Guest75971: On irc, it's best to give details of your problem, otherwise people will just wait for them, or ignore you. | 11:54.42 |
Guest75971 | and i use the shell_exec command but i have this error : **** Unable to open the initial device, quitting. | 11:55.49 |
Robin_Watts | What command are you shell execing? | 11:56.17 |
kens | Guest75971 : Most likely you have the command wrong, probably mis-spelled -sOutputFIle= | 11:56.37 |
Guest75971 | the command i use is : gs -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=$outputName $file1 $file2 | 11:57.01 |
kens | '$' isn't acceptable as a filename | 11:57.23 |
| You've specidied -dBATCH twice | 11:57.57 |
| and -dNOPAUSE | 11:58.13 |
Guest75971 | it's php, $outputName is a variable containing the real filename | 11:58.14 |
kens | Guest75971 : so quote the command line GS sees, not the PHP one | 11:58.30 |
Robin_Watts | kens: Specifying things twice shouldn't hurt. | 11:58.40 |
Guest75971 | Ok, I'll give a try now | 11:58.53 |
kens | Robin_Watts : no it doesn't, but..... sometimes the order of operations matters and if you specify twice, you get the wrong one | 11:59.15 |
Guest75971 | the same error | 12:00.53 |
| $cmd = "gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dQUIET -sOutputFile=".$outputName." ".$file1." ".$file2; | 12:01.07 |
kens | You've quoted a command line with a variable in it again | 12:01.25 |
Robin_Watts | Guest75971: So, as kens said, give us the actual command that gets called. | 12:01.34 |
| print $cmd | 12:01.40 |
Guest75971 | gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dQUIET -sOutputFile=merged.pdf 2004.pdf 2005.pdf | 12:02.18 |
Robin_Watts | Now, if you run that command manually, (NOT from inside php) do you get the same error ? | 12:02.44 |
kens | And the process has write permissions in the current directory ? | 12:02.45 |
| Robin_Watts : I se a lot of people complaining about this sort of error, its usually that the PHP process doesn't have write permissions in the folder, so running it as a user works just fine. | 12:03.24 |
Robin_Watts | kens: Indeed, hence my question. | 12:03.34 |
Guest75971 | how to have the write permission ? | 12:03.42 |
Robin_Watts | Guest75971: Let's verify that that is the issue first. | 12:04.04 |
| Run the command manually. Does it work? | 12:04.13 |
Guest75971 | Yes.. it worked like a charm | 12:04.56 |
Robin_Watts | OK, So presumably the PHP is running as a different user to you. | 12:05.20 |
| and that user may have different permissions about where it can write on your disc. | 12:05.39 |
Guest75971 | can i exec the cmd as root with php? | 12:06.09 |
Robin_Watts | You need to find the directory that php is working in, and ensure that the php user has permission to write there. | 12:06.27 |
| Guest75971: You really don't want to do that. | 12:06.34 |
Guest75971 | i use XAMPP | 12:07.18 |
| so it's in /opt/lampp | 12:07.31 |
Robin_Watts | Guest75971: I would be tempted to add something to your php to do 'pwd' and 'whoami' and to output the results. | 12:08.21 |
kens | chrisl I assigned the filenameforall bug to you but its still closed, feel free to reopen it if you wish. I'm not going to do anything with the escape processing that SaGS is mumbling about. | 12:09.30 |
Guest75971 | I'm sorry, i didn't get you | 12:09.34 |
Robin_Watts | Guest75971: The question is not just where XAMPP is installed. | 12:09.56 |
Guest75971 | but? | 12:10.18 |
Robin_Watts | It's what the current directory, and the current user are while running the php script. | 12:10.18 |
Guest75971 | the current user isn't root | 12:10.51 |
Robin_Watts | So, the best thing to do is to get your script to output what it's current directory is, and what user it thinks it is as it runs. | 12:10.52 |
chrisl | kens: okay, I better reopen it, otherwise I'll likely forget..... the thing about the && and || seemed valid, though | 12:10.59 |
Guest75971 | and the current directory i assume is XAMPP directory? | 12:11.01 |
Robin_Watts | (just temporarily while we get this working) | 12:11.04 |
kens | chrisl yes, I'm just fixing that, though its *very* minor, just some safety first stuff | 12:11.19 |
Robin_Watts | Guest75971: Don't assume that. | 12:11.21 |
Guest75971 | How to do that ? output the directory and the user | 12:11.43 |
Robin_Watts | Guest75971: So, exec "pwd" and exec "whoami" | 12:11.45 |
| pwd gives the current directory. | 12:11.54 |
| whoami gives the current user. | 12:11.59 |
kens | err, on a Linux system, is this Linux ? | 12:12.17 |
| Ah, I guess it is | 12:12.27 |
Guest75971 | "/opt/lampp/htdocs/test " | 12:13.00 |
| "daemon" | 12:13.38 |
| who's daemon ? | 12:14.16 |
Robin_Watts | Right. So simplistically you need to make sure that the daemon user has write permission to /opt/lampp/htdocs/tests | 12:14.16 |
Guest75971 | Does XAMPP creates a user ? | 12:14.48 |
| i don't know who is daemon :d | 12:15.17 |
Robin_Watts | daemon is a user on your system. Either it will have been created by XAMPP or it will be a generic user that's used to run with low permissions for all daemons. | 12:15.18 |
Guest75971 | Okay | 12:15.25 |
Robin_Watts | a daemon is a process that runs in the background (like a server etc). | 12:15.30 |
Guest75971 | Okay, Thanks for clarifying | 12:15.46 |
Robin_Watts | I'm guessing that all your scripts live in /htdocs/tests | 12:15.56 |
| so you might be best off making an /htdocs/tests/tmp directory and using that for your script processing. | 12:16.22 |
| You can then set htdocs/test/tmp to be world writable or something without fear that people will overwrite your scripts etc with clever hackery. | 12:16.49 |
Guest75971 | because ? | 12:17.13 |
| we can't open tmp folders? | 12:17.27 |
atulagrwl | paulgardiner: A difficult questions. Can I have some estimate when the issue can be fixed? Also I want to discuss one more issue. | 12:17.54 |
Robin_Watts | I don't know the details of your scripts, but in general it's poor practice to shit where you eat. | 12:18.11 |
| i.e. keep your carefully constructed code separate from the temporary files that are created during processing. | 12:18.44 |
Guest75971 | Thank you so much | 12:19.21 |
Robin_Watts | no worries. | 12:19.29 |
Guest75971 | :) | 12:19.37 |
paulgardiner | atulagrwl: difficult to be sure, but I'm looking at it now, so may get done this week with luck. What's the other issue? | 12:29.29 |
atulagrwl | paulgardiner: Another issue is when we open password protected file and apply annotation. | 12:30.28 |
paulgardiner | atulagrwl: yes, we may need to disable all interactive features for password protected files, or remove the protection. | 12:32.09 |
atulagrwl | paulgardiner: Can't mupdf password protect the file? | 12:33.00 |
paulgardiner | atulagrwl: to be honest, I don't know... tor7? | 12:33.42 |
tor7 | paulgardiner: we can't save encrypted files, IIRC | 12:34.36 |
t4nk306 | Hello, is it possible to merge pdf files from a different server using ghostscript? (they are not local files) | 12:34.44 |
tor7 | which may be a problem if saving incrementally, paulgardiner? | 12:34.53 |
| t4nk306: use wget or curl to download the files so that they become local files. | 12:35.15 |
atulagrwl | tor7: Can we save encrypted file (without incremental)? | 12:35.54 |
kens | t4nk306 : Ghostscript is not intended for merging PDF files, you would do better to use a tool which is intended for that purpose. | 12:36.02 |
tor7 | Robin_Watts: argh! I hate coordinate spaces... | 12:36.24 |
t4nk306 | kens : like what ? i want to merge pdf with php | 12:36.37 |
kens | t4nk306 : try pdftk | 12:37.19 |
tor7 | opengl normalized device coordinates, projection and modelview matrices, window space, clip space, PDF user and device space, bottom up vs top down bitmaps and texture spaces, and fonts being upside down. ARGH! *head assplodes* | 12:37.34 |
| but ... mupdf opengl device draws text! if somewhat misplaced on the page... | 12:38.12 |
Robin_Watts | tor7: Nice one. | 12:38.41 |
tor7 | Robin_Watts: I had to reimplement a new type of font/glyph cache | 12:39.17 |
| to store the rendered bitmaps in a texture atlas | 12:39.27 |
Robin_Watts | tor7: Did that fit into the 'store' world, or is it a separate thing? | 12:39.47 |
tor7 | Robin_Watts: a separate, opengl only thing | 12:39.58 |
| I've been considering how to do caching of opengl objects | 12:40.11 |
t4nk306 | kens : why is pdftk better than gs? | 12:40.18 |
kens | t4nk306 : pdfwrite does *not* do PDF merging | 12:40.34 |
tor7 | one thought I had was to make an "opengl command list" which has all the vertex buffers and texture image objects stored in a list that I then can execute repeatedly | 12:40.45 |
kens | It cna take two PDF files as input, and produce a brand new PDF file which is visually the same, it does not merge the 2 input files. | 12:40.59 |
tor7 | ... or ... use the fz_path* and fz_image* pointers as keys into a cache where I look up corresponding vertex buffers, nvidia path objects, and texture objects | 12:41.21 |
t4nk306 | i want to create the ouput the merged pdf as quickly as possible, should i use gs or pdftk? | 12:41.49 |
Robin_Watts | When you feed pdf files through gs and into pdfwrite, we take the files completely apart to the lowest level graphics objects. We then reassemble them into a new PDF. All information that is NOT simple graphics objects (like annotations, bookmarks, page structure) is lost. | 12:41.53 |
tor7 | at the moment, I've dropped back to old fashioned opengl 2 using immediate mode and the nvidia path rendering extension. | 12:41.57 |
kens | t4nk306 : I have no idea | 12:41.59 |
Robin_Watts | tor7: ok. That seems sane as a first step at leat. | 12:42.27 |
| least. | 12:42.29 |
kens | t4nk306 : But if you use Ghostscript and pdfwrite, it will not produce a merged PDF, it will produce a file which is visually the same, the content will not refelct the content of the original files. | 12:42.42 |
tor7 | I reuse and recreate the nvidia path object for each fz_path that gets drawn. probably not ideal, considering how much work the extension does behind the scene in the driver for each path specification. | 12:43.07 |
Robin_Watts | tor7: I thought the nvidia path extension kinda had the concept of a "2d command list". | 12:43.19 |
t4nk306 | i understand, the pdf are composed with images so it's not a problem | 12:43.19 |
tor7 | Robin_Watts: one of the patches on tor/master changes our fz_path internal representation to better fit | 12:43.22 |
kens | t4nk306 : Well its up to you | 12:43.42 |
tor7 | Robin_Watts: yeah, but the 2d command list gets compiled in the driver to a set of meshes with parameters and shader constants | 12:43.53 |
| basically drawing triangles with the bezier coefficients compiled in as shader parameters | 12:44.10 |
kens | t4nk306 : from a performance poitn of view, reading processing and writing many bytes of image data seems likely to be slower than copying the compressed data to me though. | 12:44.28 |
tor7 | so it has to decompose the path into a convex hull of sorts, for each of the "segments" to draw | 12:44.34 |
Robin_Watts | tor7: so there is no scope for having our "opengl command list" contain that "compiled" data ? | 12:44.43 |
tor7 | Robin_Watts: my first suggestion was that :) | 12:44.54 |
| basically create a new nvidia path for each fz_path, so we can reuse it without respecifying for subsequent renders | 12:45.24 |
Robin_Watts | right. | 12:45.30 |
t4nk306 | i'll try pdftk, but i'm not sure if the one who is in charge of the server will install it for me :/ | 12:45.30 |
tor7 | if only drawing a page once, it shouldn't matter (apart from the fact that respecifying might cause a pipeline flush) | 12:45.47 |
| (in case the current path is still being processed) | 12:45.57 |
| Robin_Watts: if you're not terribly busy now might be a good time to push all the small commits lying around waiting | 12:49.36 |
Robin_Watts | tor7: I'm still raspberry pi ing. | 12:50.37 |
| 15% of CPU time is spent in fz_paint_pixmap_with_mask | 12:50.51 |
tor7 | Robin_Watts: alright. it can collect some more dust then :) | 12:50.53 |
Robin_Watts | and another 15% in fz_pant_affine_near | 12:51.06 |
tor7 | Robin_Watts: clipping with non-rectilinear paths? | 12:51.19 |
Robin_Watts | tor7: No idea :) | 12:51.29 |
tor7 | I *think* that's where it should get used the most. could also be fill_image_mask | 12:51.51 |
Robin_Watts | lunches. | 12:52.15 |
| I'm pretty much just peepholing. | 12:52.21 |
tor7 | Robin_Watts: fair enough | 12:52.36 |
Robin_Watts | Crumbs. Even after optimising fz_paint_affine_near, it accounts for 48.5% of time when processing J11_acrobat.pdf | 14:54.57 |
tor7 | Robin_Watts: image drawing is slow, what can you say :) | 14:56.59 |
| do we have special cases for rectilinear spans that can just be copied as is after scaling? | 14:57.19 |
Robin_Watts | tor7: No. I just added optimisations for rectilinear cases. | 14:57.38 |
paulgardiner | Robin_Watts: xref stream writing code is up on paul/master. No hurry because I doubt if I will commit until tomorrow morning | 15:57.59 |
Robin_Watts | paulgardiner: OK. | 15:58.11 |
| I have the image plotting stuff down to sub 40% of the CPU time now. | 15:59.12 |
| Just profiling J12 to see if it has different hotspots | 15:59.54 |
paulgardiner | Coo, that is some speedup. | 16:01.37 |
| I seem to be able to highlight the text in atulagrwl's file and load the file into Adobe Reader on the PC, so it does look like xref-stream mixing was the problem | 16:03.49 |
Robin_Watts | paulgardiner: Excellent! | 16:04.03 |
| tor7: ping | 16:36.55 |
| I've just had Christophe typing at me on Skype. He's sent in a bug about ligatures going missing. I've said that it's probably a font-not-being-embedded issue, and he says that it works under Acrobat. I explained that Acrobat can use system fonts to fallback to, so has a greater chance of getting things right. | 16:38.41 |
| He then pointed out that "PDF Viewer" off the Android app store gets it right. | 16:38.53 |
| PDF Viewer is based on ebookdroid, which is based on MuPDF. | 16:39.02 |
| We should hit the ebookdroid people with a GPL violation mallet. | 16:39.17 |
| I said that maybe there are additional fonts in PDF Viewer (as there seems to be a font pack). | 16:39.38 |
| But it would be good to get a definitive answer for him. And I don't do fonts :) | 16:39.54 |
| mvrhel: ping! | 17:02.46 |
| paulgardiner: if (0 && pdf_is_name(type) && ...) | 17:11.53 |
paulgardiner | Robin_Watts: oh damn. Forgot about that. Yes needs sorting. | 17:13.04 |
kens | Robin_Watts : ping | 17:30.56 |
Robin_Watts | kens: pong | 17:31.05 |
kens | Did we remove teh svg output device from Ghostscript ? | 17:31.15 |
Robin_Watts | paulgardiner: You drop 'w' then use it later. That's a bit nasty. | 17:31.20 |
| kens: I don't remember, I don't think so. | 17:31.29 |
kens | Thought not, thanks. | 17:31.36 |
Robin_Watts | no, it's still in my build. | 17:31.56 |
| It is deprecated though. | 17:32.03 |
kens | Yes, but I can tell the SO user that its present in the Git repository | 17:32.16 |
Robin_Watts | ok. | 17:33.09 |
paulgardiner | Robin_Watts: I've been using that paradigm a lot since the _drop versions of functions were added. It is safe. In other places I've added a comment though | 17:34.25 |
Robin_Watts | yeah. | 17:34.38 |
| Ok, the rest of the commit looks good. | 17:34.52 |
| Should we ever be setting has_xref_streams to 0? | 17:35.07 |
paulgardiner | Great ta. I'll sort out that "0 &&" I level in | 17:35.15 |
Robin_Watts | Like when we finish a non-incremental write? | 17:35.28 |
paulgardiner | Robin_Watts: I believe the doc struct is created with a calloc call | 17:35.38 |
| Oh I see. | 17:35.53 |
| Yes probably. I'll look at that too | 17:36.09 |
Robin_Watts | ok. | 17:36.15 |
kens | Got to go, goodnight all | 18:30.02 |
Robin_Watts | tor7: I've reviewed and pushed all your patches except for the path change one. Want to think about that for a while. | 18:59.38 |
| I've rebased and updated all my patches, and they are on robin/master. All are good to go now, I think, except for the last 2 (your path one, and my banding one). | 19:00.11 |
mvrhel_laptop | Robin_Watts: pong. sorry I was not around this morning. busy trying to get a few things wrapped up here before I go away. getting in new flooring in 1/2 the house while gone and I need to make sure everything is ready before I leave | 19:03.54 |
Robin_Watts | mvrhel_laptop: No worries. | 19:04.05 |
tor7 | Robin_Watts: when I wrote the original fz_paint_xxx functions, I arranged it so that the compiler could inline and "specialise" the inlined code by the constants passed (fz_paint_xxx calls fz_paint_xxx_N() with N=constant value that gets folded into the inlined code) | 19:04.07 |
Robin_Watts | tor7: And indeed that happens. | 19:04.20 |
| mvrhel_laptop: Is there any chance you will get to that pcs -> color polarity function before you go? | 19:04.42 |
tor7 | Robin_Watts: I'm a bit brain fried today to look at the optimized functions, but the others are good to go | 19:05.18 |
Robin_Watts | tor7: Thanks. | 19:05.22 |
mvrhel_laptop | I sent you an email. I may be able to get it done. I need to get a few more things done before the trip. it may be that I work on it on the plane if that is ok | 19:05.23 |
tor7 | there are also several commits on sebras/master ready for pushing as well | 19:05.29 |
Robin_Watts | tor7: I have a couple of diffs in a bmpcmp that I want to understand before the optimised ones go in anyway. | 19:05.59 |
| mvrhel_laptop: Fair enough. Thanks. | 19:06.05 |
mvrhel_laptop | Robin_Watts: ^^ | 19:06.08 |
| ok | 19:06.10 |
| I need to head to coffee shop. 11 kids over here now and it is chaos | 19:07.03 |
Robin_Watts | I have my neices and nephew descending tomorrow. | 19:07.25 |
mvrhel_laptop | good luck | 19:07.42 |
Robin_Watts | I need to fit a bolt to my office door. | 19:07.47 |
| or I might just take my dad shooting :) | 19:07.58 |
| mvrhel_laptop: Ah, hi, was just typing on skype to you. | 23:05.36 |
mvrhel_laptop | I was just about to reply | 23:05.52 |
| I just replied to your email | 23:05.57 |
Robin_Watts | I've done a couple of small fixes - am about to rerun timings now. | 23:06.48 |
mvrhel_laptop | miles has me splitting up the data into various tables etc. | 23:06.55 |
| what numbers do you want? | 23:07.01 |
| I am not adding any of your numbers until the end.... | 23:07.12 |
Robin_Watts | I suspect they won't change much, but if you want to wait for new numbers tomorrow, feel free. | 23:07.20 |
| Ah, ok. | 23:07.22 |
| I was just interested in the PLRM timings for gs. | 23:07.35 |
| just to see if mupdf is miles off or not. | 23:07.44 |
mvrhel_laptop | at 600dpi GS was doing 137 ppm | 23:08.30 |
| at 1200 dpi GS was doing 79.4 ppm | 23:08.37 |
| these are at the 16mb buffer size | 23:08.48 |
| that is all I am looking at now, if you just want to concentrate on that value | 23:09.01 |
| due to how the bands got chopped up gs does best at that size one of the files | 23:09.27 |
Robin_Watts | 56seconds for 100 pages, so not quite 137. And 315363 for 100 pages at 1200dpi. So nowhere near 79. | 23:09.48 |
mvrhel_laptop | mupdf seems to really struggle with the high dpi. I suspect there is something you can find there | 23:10.53 |
Robin_Watts | 107 and 19dpi in fact. | 23:10.56 |
| mvrhel_laptop: MuPDFs performance scales largely by the number of pixels we hit, I think. | 23:11.21 |
mvrhel_laptop | ok | 23:11.33 |
Robin_Watts | i.e. double the resolution, 4 times the time. | 23:11.36 |
mvrhel_laptop | right. why does GS avoid that | 23:11.45 |
Robin_Watts | I'm not sure. | 23:11.55 |
| ah. we have a maximum bitmap size for the font cache. | 23:12.36 |
| I wonder if we're hitting that at 1200dpi. | 23:12.45 |
mvrhel_laptop | oh that would do it | 23:13.04 |
Robin_Watts | yeah, we're hitting that at least occasionally. | 23:15.06 |
mvrhel_laptop | ugh something is wrong with this machine. restarting | 23:20.14 |
Robin_Watts | night | 23:20.19 |
mvrhel_laptop | have a good night Robin_Watts | 23:20.29 |
| I will work some on the pcs polarity stuff | 23:20.37 |
Robin_Watts | hope you survive the kids :) | 23:20.41 |
mvrhel_laptop | today/tonight | 23:20.42 |
Robin_Watts | thanks. | 23:20.46 |
mvrhel_laptop | they are all gone now | 23:20.46 |
| except my two | 23:20.52 |
Robin_Watts | The polarity stuff is not massively urgent. | 23:21.00 |
mvrhel_laptop | It is low hanging though | 23:21.15 |
| and a nice diversion | 23:21.23 |
Robin_Watts | it will let me finish off a commit, but it's not a blocker though. | 23:21.34 |
| thanks. | 23:21.38 |
mvrhel_laptop | np | 23:21.41 |
| Forward 1 day (to 2013/08/22)>>> | |