IRC Logs

Log of #ghostscript at irc.freenode.net.

Search:
 <<<Back 1 day (to 2012/03/11)2012/03/12 
kens Robin_Watts : can you ping me when you come online please, not urgent.08:56.54 
Robin_Watts kens: ping.09:22.08 
kens Morning Robin09:22.19 
Robin_Watts Morning.09:22.25 
kens Was trying to use Memento on Saturday09:22.28 
  THe Ctrl-Alt-Q quickwatch doesn't set a breakpoitn that works for me.09:22.45 
  So I set a break manually09:22.53 
  give me one second09:22.59 
Robin_Watts Ctrl-Alt-Q never sets a breakpoint.09:23.12 
  You need to set a breakpoint on Memento_breakpoint.09:23.25 
kens Oh, then I misunderstood09:23.25 
  Ah....09:23.30 
  I found setting a breakpoitn on globals_sequence == globals.breakAt worked OK, if I set the ignore count to be the same as the 'num'.09:24.14 
  Does that work too ?09:24.19 
  I ask because it semed to give unexpected results09:24.33 
Robin_Watts kens: The code will call Memento_breakpoint in that case, yes.09:24.42 
kens Which I haven't checked yet, but was going to09:24.42 
  Robin_Watts : so I'm manually doing the same thing :-)09:24.56 
  OK that's fine then, thanks09:25.12 
Robin_Watts Memento_breakpoint will be called in cases other than the one your breakpoint would be called in too.09:25.20 
  (like corruption being detected etc)09:25.31 
kens Hmmm, I guess right now I'm only interested in the memory allocation09:25.41 
Robin_Watts (and just after a list of leaked blocks is printed out)09:26.05 
kens THe oddness is that some allocations weren't being done in the pdfwrite code, but in the PCL interpreter09:26.07 
  SO I need to check if the PCL interpreter leaks too.09:26.24 
  When not going to pdfwrite09:26.34 
Robin_Watts Could be.09:26.41 
  Or it could be things that the PCL interpreter allocates and then passes to pdfwrite?09:26.58 
kens Well its possible pdfwrite is preventing a free as well09:27.00 
  In the case I recall it was a path09:27.12 
  Which pdfwrite should copy I think.09:27.20 
  well, enumerate actually09:27.31 
Robin_Watts copy by refcount?09:27.36 
kens Bad terminology, it should walk the path emitting appropriate move/line/curve/close commands into a recording buffer09:28.09 
  So the path 'shouldn't be touched at all in terms of ref countrs or anything09:28.31 
  But there could be a bug of course :-)09:28.40 
  Anyway, you've answered my real question, thanks09:28.58 
Robin_Watts np.09:29.25 
kens Morning Paul09:32.34 
paulgardiner Hi kens09:32.44 
Robin_Watts Morning09:42.02 
paulgardiner Hi Robin09:50.03 
Robin_Watts tries to remember what I was doing last week... I have a horrible feeling I'm going to regret it when I remember.10:59.11 
cipri hi. any mupdf devs online? :-)11:30.21 
sebras cipri: one and a half...11:32.59 
  cipri: what do you want to know?11:33.43 
cipri :-) I would like to ask if you consider changing your makefile, so that also shared libs are created and not just static ones.11:34.28 
Robin_Watts cipri: Submit a patch, and we'll consider it.11:34.52 
cipri Robin_Watts: and one more quesiton. When do you think the next version will be released (somebody told me that "soon", but didnt now more exactly)11:37.00 
sebras cipri: what app are you developing?11:37.10 
cipri http://haikuware.com/directory/view-details/productivity/utilities/documentviewer-v024-dev11:37.26 
sebras cipri: the intent is to have it out by the end of march.11:37.31 
  cipri: ah, haiku! I didn't recognize your alias.11:38.45 
cipri :-)11:39.03 
  i think mupdf will be integrated into haiku at a later point, that's why i asked about shared libs11:41.22 
  it seems that mupdf on haiku pretty well. It feels smoother and faster than sumpatrapdf and mupdf on windows.11:46.32 
sebras cipri: I'm happy to hear that. :)11:46.47 
cipri thank you for the answer. bye :-)11:56.19 
Robin_Watts cipri: before you go...11:56.31 
cipri yes?11:56.37 
Robin_Watts If you want any shared lib makefile changes in, it would be really good to get them to us within the next day or so.11:56.55 
  The ultimate arbiter for such things is tor, and he's not here, but we're trying to finalise stuff asap.11:57.26 
cipri i was asking in fact myself, why you dont build your mupdf viewer on shared libs, why static? is there a certain reason?12:00.09 
  ok, i try to take a look at the makefile, and if i have a patch, i come back :-)12:03.34 
  bye, and have a good day :-)12:04.13 
Robin_Watts I suspect, simplicity and portability.12:04.18 
  We want our makefile to work on every platform possible, and (I suspect) that shared libs are less portable than static ones.12:04.49 
  Too slow.12:04.55 
sebras Robin_Watts: no, the motivation has more to do with versioning and compatibility I believe.12:15.49 
  or the lack there of..12:16.05 
Robin_Watts Well, we can introduce an api level component into the shared lib name.12:16.47 
  mupdf-1_0.1_0.so12:17.15 
  Morning tor8: see logs.12:27.15 
tor8 morning Robin_Watts12:27.31 
  in principle I'm opposed to shared libraries, but everyone and his mother seems to be asking for one12:27.52 
  with the 1.0 api being stabilized, and the separation between public/private interfaces I'm less worried (but still worried) about the ABI stability12:28.23 
  the whole "shared libraries let you upgrade all your binaries at once by upgrading the library" idea has been proven false on so many occasions... but I shan't rant about it anymore today12:29.26 
  cipri: makefile portability and maintenance is another big reason, every platform has their own unique snowflake way of building shared libraries12:31.00 
Robin_Watts I share your disquiet.12:31.02 
tor8 ah, missed him it seems12:31.32 
paulgardiner morning tor812:32.23 
tor8 Robin_Watts: if we do go with shared libraries, I want a version sanity check (followed by abort) so that the version of the headers used to compile the binary match the version of the linked against library12:32.43 
  preferably in fz_new_context12:32.58 
Robin_Watts tor8: Seems fair.12:33.01 
  And that seems the perfect place for it.12:33.08 
tor8 hi paul12:33.20 
Robin_Watts tor8, sebras: Did either of you work on header-split over the weekend?12:39.37 
  fz_convert_pixmap has the args the wrong way round IMHO.12:41.18 
  C's convention is (dst, src)12:41.32 
tor8 Robin_Watts: that's an oversight, we should be following c's convention12:51.46 
Robin_Watts Shall I change the code ?12:51.58 
tor8 but oh boy that'll cause grief if you catch people using it unaware :)12:52.08 
  please do12:52.10 
Robin_Watts will do.12:52.14 
  The text device...12:55.18 
  We have a to make an fz_text_span to pass to the device... and that 'updates' it to maybe be a list of them ?12:55.44 
tor8 Robin_Watts: finished the new one friday, just need to rebase and push to master12:56.12 
Robin_Watts Ah. I won't scribble docs for that then.12:56.28 
tor8 the new one has a 'text page' and 'text (style) sheet' that are passed to the device12:56.44 
  the text page is a list of blocks, which is a list of lines, which is a list of spans, which is a list of chars with a given style from the style sheet12:57.14 
Robin_Watts OK.12:57.30 
  That sounds nicer.12:57.35 
tor8 I still need to update the iOS and android code to use it12:58.27 
  oh, and I see sebras has a couple of bugfixes in his repo we should merge in12:58.58 
Robin_Watts I've just pushed my latest header-split13:03.30 
  tor8: Do you want me to handle taking on sebras stuff?13:09.13 
  (not much to handle :) )13:09.23 
tor8 yeah. I think we can switch to the header-split branch soon as well13:10.26 
  I wonder if it's easier to rebase sebras fixes or the header-split branch13:10.57 
Robin_Watts I think they are all independent.13:11.18 
  Let me take on sebras stuff.13:11.33 
  Then I'll merge master to header-split13:11.43 
  Yeah, the merge went through automatically.13:17.17 
  Ah, but sebras' stuff has problems under MSVC...13:18.19 
sebras Robin_Watts: feel free to pick up my patches.13:18.19 
  Robin_Watts: I believe that they are trivial they've just lingered in on my branch for some time.13:18.39 
  and no, I didn not have a look at your updated split-header branch.13:19.06 
Robin_Watts sebras: The main thing is that you haven't worked on it - I was worried about merge headaches.13:19.37 
sebras ah, no.13:19.45 
  I only rebase towards origin/master if others want my patches they need to rebase themselves. :)13:20.36 
Robin_Watts Stupid MSVC has problems with isnan13:25.53 
  but a bit if #ifdeffery has solved that.13:26.04 
sebras Robin_Watts: oh? how come?13:26.19 
Robin_Watts #ifdef _MSC_VER13:26.34 
  #define isnan(x) _isnan(x)13:26.36 
  #endif13:26.37 
  isnan is C99.13:26.39 
sebras oh.13:26.41 
  stupid indeed.13:27.01 
Robin_Watts tor8, sebras: I'm going to grab some lunch.13:37.08 
  I've pushed sebras patches onto master and merged into header-split.13:37.31 
  The results of all that are in my repo on casper.13:37.44 
  Speak before I get back from lunch or I'll push it to the main repo :)13:37.58 
  chrisl: Nice idea about PSEUDO_RASTERISATION14:12.00 
  do you want to mail them about it?14:12.06 
chrisl Robin_Watts: thanks (and for copying to tech, I *really* thought I had!). I was kind of hoping you'd try it with the problem file(s) you'd been fighting with before passing into them - do you have a way of getting timings from the sim?14:14.11 
Robin_Watts Not trivially. And they wouldn't match the embedded thing anyway.14:15.00 
  Certainly any timings I got out would be no more definitive than the ones you have.14:15.41 
chrisl Okay, let me make the changes in their code base, and double check it doesn't cause havoc in there - I *would* like to hear from Ray on the subject, though.......14:16.00 
Robin_Watts When you mail them, I'd be at pains to say that while we believe it's safe etc, they should be careful to thoroughly test it and that the burden of QA falls on them.14:17.45 
chrisl Sure, yeh. Do we cluster test @ 600dpi?14:18.39 
Robin_Watts We do.14:19.13 
  but with this new fangled freetype thing, it shouldn't matter.14:19.29 
  (AIUI, PR is only applied during chars, not during line art)14:19.50 
  or do we? Maybe we top out at 300dpi.14:20.13 
chrisl Yes. I thinking I could disable FT, and do two pushes one normal and one with PSEUDO_RASTERISATION disabled.......14:21.00 
  Oh, maybe we only do PCL @ 600?14:21.45 
  I suppose even with only PCL, it would still be a valid test.......14:22.39 
tor8 Robin_Watts: fz_render_ft_glyph checks the aa level14:28.46 
Robin_Watts Does it? Damn. I checked that.14:29.07 
  (Well, I grepped for places accessing ->aa14:29.19 
  )14:29.22 
  Then I'm confused as to why it doesn't work.14:34.03 
  Oh, it only checks 0 or not.14:34.46 
  tor8: OK, we have a decision to make then.14:41.46 
  Either we need to update the glyphcache to store what level of AA was used to render a glyph with that glyph... or we need to have separate glyph caches per thread.14:42.28 
  or we need to make the AA context truly global.14:42.43 
  At the moment, the level of AA is not checked before we check the glyph cache - so we could match a previous rendering of a glyph that was done at a different AA level than we want.14:44.12 
  I really don't think we should have separate glyphcaches per thread.14:45.48 
  So I'm leaning towards either having a global AA setting, or updating the cached information with the AA level.14:46.32 
  fz_convert_color appears to have it's args the wrong way around too.14:47.30 
tor8 Robin_Watts: we could make a context recreate its glyph cache when the aa level changes?14:57.25 
Robin_Watts That would work as long as people set the required aa level, then clone the contexts for multi-band rendering.14:58.36 
  but if they clone, then set, the bands would end up using different glyphcaches.14:59.07 
  which would be bad.14:59.10 
  And if they recreate, we end up with 2 (potentially large) glyphcaches kicking about.14:59.30 
  I'm much more tempted to just add the aa level to the glyph record in the glyphcache.14:59.55 
  I'll have a go at that in a mo.15:00.17 
tor8 or set the aa level in the glyph cache, and if it changes there just evict the lot?15:00.23 
Robin_Watts tor8: I share the glyphcahe between contexts.15:00.44 
tor8 hopefully nobody will render both aa and non-aa at the same time in different contexts?15:01.09 
Robin_Watts thumbnail/non-thumbnail?15:01.19 
  printing/screen ?15:01.25 
tor8 hmm, okay then15:02.12 
Robin_Watts What are your thoughts on fz_convert_color ?15:04.20 
henrys Robin_Watts, chrisl:I didn't understand the performance email - these performance problems being reported use non resident fonts and not the ufst?15:13.23 
Robin_Watts henrys: These are the mails from Customer 532 regarding WWTTM1CT15:13.58 
  They are using AFS internally.15:14.16 
chrisl henrys: my understanding is that the jobs in question have embedded fonts, which still use the AFS code.15:15.23 
henrys oh okay I didn't know that.15:16.01 
  chrisl:great catch.15:16.34 
  I think it's a really good idea to suggest.15:16.46 
chrisl I was surprised at the difference on my (totally non-real world) test job, to be honest15:17.21 
  Robin_Watts, henrys: if you've any interest in seeing the effect, I've just bmpcmp'ed the difference between with PSEUDO_RASTERISATION and without @ 600dpi........15:20.11 
Robin_Watts http://www.theverge.com/2012/3/12/2863553/a-bit-of-heat <- So, forgetting stuff warms my head?15:22.31 
chrisl Robin_Watts: how will you know if you can't remember how cold your head was to start with?15:24.08 
tor8 Robin_Watts: dst, src as usual (re convert color)15:24.16 
Robin_Watts tor8: Cool. Have made that change too.15:24.30 
  http://ghostscript.com/~regression/chrisl/compare40.html Number 251 Page 2.15:25.48 
  The image of the satellite.15:25.59 
  That's the worst one I've spotted.15:26.30 
  and the houses in the following one.15:26.51 
  but, TBH, those are stupid fonts.15:27.02 
henrys what's bugging the crap out of me is I thought I did this already for pcl at high res. Now I see what I did if (gs_currentdevice(pxli->pgs)->HWResolution[0] >= 300) gs_setgridfittt(pxs->font_dir, 0);15:30.16 
  15:30.16 
chrisl Robin_Watts: that (the satellite) is the biggest difference I've seen as well - but I'm actually thinking with PR is better.........15:30.18 
Robin_Watts I'd expect with to be better.15:30.48 
  just not by much.15:30.54 
chrisl Doh, I meant without PR15:31.00 
Robin_Watts The bmpcmp is candidate, reference, diff.15:31.39 
  presumably candidate = no PR ?15:31.47 
chrisl Yeh, the satellite and house, I prefer the candidate rendering15:32.04 
Robin_Watts really?15:32.16 
  with the house, you lose lines on the chimney.15:32.24 
  (Make sure your mouse pointer is not in the image :) )15:33.12 
chrisl I know, it just looks more "right" to me15:33.53 
  On the reference, the lines look too heavy to me15:34.26 
henrys chrisl:so when we run this in the latest code we get ft rendering right?15:35.28 
  our code that is.15:35.34 
chrisl henrys: no, these are all PCL files15:35.42 
henrys I mean the customer's test.15:35.57 
  with cid fonts.15:36.05 
chrisl I don't think the customer's tests are using CID fonts, are they?15:36.27 
  Robin_Watts: ^^15:36.38 
henrys or embedded fonts.15:36.40 
Robin_Watts embedded fonts.15:37.04 
  In 9.0x, we'll be using freetype in the case that the customer is complaining about.15:37.29 
chrisl Yes, with embedded fonts we'll almost always use Freetype (there is a bug that causes a *few* CID font to still use the AFS code......)15:37.40 
Robin_Watts hence chrisl is 'faking' the test by looking at PCL files.15:37.56 
henrys so another case for upgrade which they should be reminded of.15:38.19 
  Robin_Watts:right got it.15:38.59 
chrisl henrys: Given that we found FT and AFS performance to be quite similar, I doubt that's going to be a big convincer.......15:39.28 
Robin_Watts In their '2 bit' mode, they'd get AA for free with freetype, right ?15:40.24 
chrisl No15:40.38 
  Robin_Watts: a clear regression http://ghostscript.com/~regression/chrisl/compare46.html seventh row down15:40.48 
kens There's an open enhancement for tha15:40.50 
Robin_Watts Oh, no, cos gs still doesn't call freetype in AA mode.15:41.01 
henrys chrisl:so you are saying if they fix this then upgrade we'll have a performance regression with this same test file?15:41.10 
chrisl henrys: possibly, I don't know, I'd have to check it15:41.34 
  Robin_Watts: gs currently has no way to handle a glyph pixmap 15:42.14 
Robin_Watts doesn't see how you get to performance regression from here.15:42.19 
  chrisl: That looks like a genuine regression, yes. (Functionality, not performance)15:42.50 
henrys that's a pcl->pdf test why is it rasterizing at all.15:44.11 
  ?15:44.12 
chrisl How would you check the conversion without rendering it?15:44.52 
Robin_Watts henrys: The cluster and bmpcmp both pcl -> pdf then rasterise the produced pdf to test it.15:45.14 
henrys Robin_Watts:ah of course.15:45.23 
chrisl It saves lots of false positives when the *structure* of the PDF output changes.......15:45.52 
henrys Robin_Watts:if AFS == FT now chrisl speeds up WWTTM1CT by turning off PSEUDO then AFS is faster the FT so upon upgrade to FT the customer will test this file and report a regression. Was that your question?15:48.40 
Robin_Watts I follow.15:48.56 
chrisl Robin_Watts: the problem file from cust 532, where can I get it?15:49.11 
Robin_Watts I believe chrisl's assertion that 'FT == AFS' is true in general, rather than being true in this particular case.15:49.44 
  So given that we haven't had massive lists of people complaining about FT being slower since 9.0, we probably don't have to worry in general.15:50.30 
  chrisl: It's on their ftp site.15:50.42 
  Or I can get it to you. Hold on a tick...15:50.52 
chrisl If you don't mind - I seem to get into fights with their ftp site, for some reason15:51.27 
Robin_Watts OK. In my home dir on casper, there are 2 WWTT files. Those are the 2 in question.15:52.17 
chrisl Got them, cheers.15:52.55 
Robin_Watts no problem.15:53.16 
chrisl Hmm, interesting, using -dNOCACHE, 600dpi, using Freetype renders WWTTM1CT.pdf in 30.9 seconds, whilst the AFS (with PSEUDO_RASTERISATION) takes 47.5 seconds15:56.42 
Robin_Watts and without PR ?15:57.03 
chrisl Need to rebuild - this is a debug build, btw15:57.17 
  Without PR, the AFS code does it in 27.4 seconds15:58.23 
Robin_Watts 27.4 is close enough to 30.9 that we don't need to worry.16:03.19 
kens tI think so too16:03.25 
henrys great news.16:03.45 
chrisl With the cache enabled, I can't get a meaningful difference between the AFS code w/o PR, and the Freetype code - there's more noise than speed difference16:03.46 
ray_laptop morning, all16:05.04 
henrys hi ray_laptop16:05.21 
chrisl good morning ray_laptop 16:05.28 
ray_laptop chrisl: I saw your email and replied to you (and Robin_Watts). Unfortunately I already thought of that, so that is already in force16:05.35 
chrisl Oh, oh well :-(16:06.11 
ray_laptop unless you see something in the latest profiles that shows the fill_adjust -1 code is still happening16:06.16 
  I've mostly been focused on the Alphard issue16:06.45 
chrisl It seem to still be in force for type 42 fonts.16:06.54 
ray_laptop chrisl: Oh, really -- which module is that (I'll check the source I have from them)16:07.42 
chrisl But these are type 1 fonts :-(16:07.42 
  ray_laptop: psi/zchar42.c16:07.53 
henrys ray_laptop:this does raise a more general issue, is there a class of files that perform poorly on the target vs. say files that have good performance relative to 5th gen?16:08.10 
ray_laptop chrisl: thanks. My change was in gxtype1.c16:10.21 
henrys chrisl:I'd be tempted to turn that off for pcl but I guess the switch over to freetype will be soon enough, well if 532 ever leaves you alone.16:10.29 
chrisl henrys: yes, *if*.....16:10.53 
Robin_Watts tor8, sebras: I've finished running through fitz.h, moving stuff into fitz-internal.h as much as I can, documenting functions/types etc.16:11.52 
ray_laptop henrys: the only file they've told us need improvment relative to 5th gen are these WWTT files -- and only at 1200 dpi. All text16:11.56 
Robin_Watts I've hidden (most of) fz_buffer.16:12.07 
  Still remaining to do = links/link_dests and text stuff.16:12.49 
ray_laptop henrys: it's been confusing because they send us test timings on a 750MHz engine, but then turn around and say it is too slow when they use a 500MHz engine16:12.53 
Robin_Watts And they change the versions of the files whenever they feel like it.16:13.26 
  And their profiler shows the wrong function names in some cases.16:13.39 
  And spuriously adds 2 seconds to random functions.16:13.49 
  But other than that, they are absolutely spot on.16:14.01 
ray_laptop Robin_Watts: oh, you mean between the "original" and a 6 page or 10 page subset (the original has 50 pages)16:14.06 
Robin_Watts ray_laptop: Yes.16:14.13 
henrys it's interesting the text stuff because that isn't where we usually fall down. I would expect to see the usual complaints about images. I hope these aren't the only performance tests they are using.16:14.21 
ray_laptop Robin_Watts: I also see sporadic "delays" on the Alphard target -- that's what I pushed back to Eric about last night16:15.01 
henrys paulgardiner:would a meeting tomorrow be reasonable or do you need more time?16:16.17 
  I was thinking after the tech meeting 9:30 PDT?16:16.53 
Robin_Watts I think Tuesday nights are bad for paulgardiner 16:17.10 
chrisl ray_laptop, Robin_Watts: there is also some *hideous* code in base/gxhintn1.c which saves me about 1 second running uncached when I disable it - not much, but.....16:18.12 
ray_laptop a simple diagonal stroke page (repeated 20 times) varied from .012 seconds up to 1.2 seconds, and the time to output the page ranged from 0.16 seconds to over 3 seconds-- I'm inclined to think that everything over the shortest time is their fault16:18.52 
paulgardiner henrys,Robin_Watts: Tuesday's aren't ideal if the meeting was likely to go past 1/2 hour, but otherwise fine.16:19.28 
henrys paulgardiner:wednesday is fine too.16:19.46 
  I'm around each morning (your late afternoon/early evening) and it makes no difference to me.16:20.38 
chrisl ray_laptop: would it be worth (or have you already) suggesting they make the GS task a higher priority?16:20.40 
ray_laptop so using the minimum times, gs _should_ be able process the 20 pages in < 6 seconds instead of the 30 they see16:20.58 
Robin_Watts I worry that they have some weird driver for their hardware device that's soaking up interrupts in the background.16:21.22 
  (Like a PIO data transfer task or something)16:21.31 
  and so when that goes off, we lose 2 seconds before we carry on.16:22.13 
ray_laptop chrisl: generally task priority is given to driving the engine (which is mostly things like starting DMA and is short), but given some of the code I've seen, I wouldn't be surprised if some "task" is polling in a wait loop rather than using a semaphore and task blocking16:22.36 
  that's why I insisted on them collecting the CPU time for the gs task. Of course if the culprit doing the wait loop is one of the functions they have us call ...16:24.21 
paulgardiner Oh ok... probably Wed would be better most weeks, but could we make it Tues this week? Would be good to get other's input early in the week. 16:24.23 
henrys paulgardiner:okay we'll start at 9:30 promptly.16:24.57 
  tuesday.16:25.01 
ray_laptop 9:30 which TZ ?16:25.08 
Robin_Watts (That's 5:30pm UK time)16:25.17 
ray_laptop Robin_Watts: OK.16:25.25 
henrys PDT see above.16:25.25 
paulgardiner henrys: ok great16:25.27 
chrisl ray_laptop: I'd expect the process driving the engine to be given "real time" priority, but there might still be some room to increase our priority and reduce the occasions when other "normal" processes can interrupt us.16:25.47 
ray_laptop chrisl: it's hard to imagine that they have that much other processing to do. 16:26.18 
Robin_Watts 'normal' processes interrupting us wouldn't take 2 second chunks.16:27.14 
  I can't believe they are just using the realtime clock - so it's either going to be a profiler bug (seems like an odd one) or there must be something taking time at a higher priority level (like an interrupt).16:28.01 
ray_laptop from what I've been led to believe their ASIC does the rendering using their graphics orders, color correction, and halftoning16:28.08 
  Robin_Watts: the PPA times I have don't use the profiler. It's just calls to collect the high resolution clock time and store it in a buffer that gets dumped occassionally16:29.16 
Robin_Watts It's the kind of stupid thing where they might be getting an interrupt to tell them to pass data to the ASIC, setting up a DMA to do the transfer, and then polling stupidly until the the DMA completes.16:29.30 
  ray_laptop: Right, but in the profiles I'm seeing, I'm seeing these 2 second lumps too.16:29.47 
chrisl So, it sounds to me like the ball *should* be back in their court........16:30.34 
ray_laptop well, it's definitely in their court to collect the task CPU time16:31.20 
  does windows collect the CPU time for a thread somehow ?16:32.10 
Robin_Watts ray_laptop: Yes.16:32.26 
  GetThreadTimes is the magic function on windows, I think.16:32.37 
  I've done profiling based on that before.16:33.14 
ray_laptop ahh, I found http://stackoverflow.com/questions/1393006/how-to-get-the-cpu-usage-per-thread-on-windows-win3216:33.35 
henrys Maybe reaching but It would be interesting to see if the profile anomalies show up in a profile of their PCL interpreter.16:35.01 
ray_laptop I'm going to collect that for the simulator for the 'simple' pages and for the andy*** file and see what the percentages are16:35.42 
henrys bbiaw16:36.17 
ray_laptop chrisl: thanks for pointing out that zchar42 for fill_adjust = -1. I had grepped the base/* but missed the psi directory16:42.00 
chrisl ray_laptop: np - shame it doesn't help for the (current) problem files.........16:43.45 
ray_laptop chrisl: right.16:44.04 
  on the 'andy' test file (Alphard problem) the debug build is about half the speed of the release build (600 dpi clist bandheight=128 pgmraw going to /dev/null)16:56.46 
Robin_Watts tor8: You here?17:14.06 
tor8 Robin_Watts: yes.17:14.17 
Robin_Watts Shall I push header-split to master? Or do you want to check it first?17:14.43 
  It passes sane. (Don't know if I said that earlier)17:15.20 
tor8 push to master, I've given it an overview17:15.52 
Robin_Watts I've added the AA level to the glyphcache key.17:16.01 
tor8 I have the text branch rebased on top of it17:16.03 
ray_laptop header split -- sounds like a migraine17:16.09 
Robin_Watts And I've just added -w and -h (and -f) to mudraw.17:16.18 
tor8 and I'm working on a renaming cleanup pass, that I'd like some input on17:16.28 
Robin_Watts ok.17:16.36 
tor8 http://ghostscript.com/~tor/stuff/renames.txt17:17.01 
  basically try to sort out our use of accessors and usage of the words get, lookup, find17:17.42 
ray_laptop my system is running WAY S...L...O...W -- going away for a reboot to see if that helps.17:20.07 
Robin_Watts save->write, debug->print, cool.17:20.13 
  Removing 'get', ok. It means we'll no longer match set/get in those cases, but that's OK if we are consistent elsewhere.17:20.44 
tor8 I think the postscript convention is useful there (see "currentmatrix" vs "setcurrentmatrix" and friends)17:21.13 
  the other option is adding in "get" everywhere to turn the functions into complete verb-noun phrases, but that's a lot of extra words everywhere17:21.49 
Robin_Watts OK, so the first question... pdf_lookup_{v,h}tmx17:21.51 
  why lookup there?17:22.02 
tor8 that's sort of what I wanted your input on.17:22.19 
Robin_Watts does that bump a refcount on the thing we find or something?17:22.21 
  I think saying things like fz_bitmap_width makes perfect sense.17:22.43 
tor8 we have pdf_lookup_cmap to look up stuff in encodings17:22.44 
  pdf_lookup_hmtx looks up the horizontal metrics for a glyph in the metric table17:23.15 
Robin_Watts but if we ever look something up, and the act of looking something up takes a reference to something, we should have a verb there.17:23.26 
  because fz_bitmap_width means "the width OF the bitmap"17:23.40 
tor8 lookup is the verb...?17:23.55 
Robin_Watts Yes, I'm not disagreeing with anything I've seen so far.17:24.15 
tor8 pdf_lookup_font_hmtx?17:24.22 
  oh. I see that fz_hash_table follows your preferred naming order :) must've been the old code I originally took the implementation from17:25.23 
  do we want to use find or lookup for when we are looking for things in containers?17:26.12 
  hash tables, the store, glyph cache, etc17:26.21 
Robin_Watts lookup implies we lookup something and get the things reference to it.17:26.46 
  find implies we lookup something and get our own reference to it.17:26.58 
  Maybe that's somewhat hopeful on my part :)17:27.09 
tor8 I doubt there's any real distinction to it now17:27.23 
Robin_Watts I'm saying we could pick verbs such that there would be such a distinction.17:27.44 
tor8 yes. unless we decide to make them all use the same verb and behave the same with regards to references17:28.10 
Robin_Watts when we find things in the glyphcache/store, the act of finding takes a reference.17:28.12 
  Well, the htmx things aren't refcounted objects.17:28.39 
tor8 for sanity's sake I have a list of standard words that imply taking ownership of a reference: new, load, and keep so far.17:29.01 
Robin_Watts yes.17:29.19 
  I'd like us to elect a verb to mean the same for a lookup/find operation.17:29.36 
tor8 if we want a similar word for looking up and taking a reference in one call (such as getting from the store) then we could, yeah, what you said :)17:29.45 
  take?17:30.12 
  a bit too similar to keep that17:30.20 
Robin_Watts To me, find implies that at the end of the operation, I *have* something.17:30.31 
tor8 right. makes sense.17:30.43 
Robin_Watts and lookup implies that my finger is pointing to something in a table.17:30.46 
  So I'd vote for find/lookup.17:31.06 
tor8 okay, so lets reserve find for lookups that give you the reference17:31.09 
kens heading off, night all17:31.10 
tor8 and lookup for the others17:31.12 
Robin_Watts cool.17:31.18 
tor8 be they reference counted or borrowed references17:31.20 
Robin_Watts yes.17:31.26 
tor8 be they *not* reference counted that is17:31.30 
Robin_Watts yeah.17:31.38 
tor8 so looking up values in something should use lookup17:31.46 
Robin_Watts Yes. I think it means your current list is spot on.17:32.01 
tor8 and peeking at hands off things as well17:32.05 
  pdf_find_page_number would become lookup then17:32.25 
  as would fz_find_blendmode17:32.52 
  correct?17:32.55 
  but find_device_colorspace would remain17:33.12 
Robin_Watts Yes.17:33.42 
  Although the difference for things that return ints is moot :)17:34.12 
tor8 still, I'd like to make it crystal clear that "finders" always take a reference17:35.03 
Robin_Watts Hard for me to argue against clarity :)17:35.21 
tor8 so, pdf_find_builtin_font I guess should become lookup too, or do you have any other suggestions?17:35.43 
Robin_Watts Does finding a builtin font not get you a reference ?17:36.09 
  oh, no, it points to a static buffer.17:36.47 
  so lookup, yes.17:36.53 
  I'm gonna have to run to pickup Helen in a mo.17:37.19 
tor8 and I'm heading for dinner17:37.26 
Robin_Watts Well, I've unleashed header-split on the world.17:38.30 
tor8 um, origin/master doesn't compile17:39.24 
  conflicting types for fz_render_ft_glyph17:39.37 
  Robin_Watts: ^17:39.41 
Robin_Watts oh ass.17:39.44 
  what did I break?17:39.47 
  I see it.17:40.22 
  Force pushed a fix.17:41.18 
  back in a bit.17:42.23 
marcosw Robin_Watts: you around?18:43.09 
tkamppeter I have discovered a problem of the PostScript generated with pdf2ps of GS 9.05 not printing on Kyocera printers but the PostScript og 9.04 prints.19:01.06 
Robin_Watts marcosw: back.19:01.54 
marcosw Scott suggests that there might be a staff meeting in Texas in November. We need to lobby Miles to have it just after November 18th (scheduled date of the US GP in Austin).19:02.59 
Robin_Watts ooh, nice.19:03.34 
  I'd mentioned the possibility of doing a meeting in Texas to coincide with that to scott 2 meetings ago.19:04.13 
henrys marcosw:I'll need to dig out my bubba teeth.19:13.41 
marcosw Robin_Watts: do you realize 12 out the 20 F1 races this year are held outside of europe? This is compared to 10 last year (I'm include Turkey in europe, even though the track is on the asian side of Istanbul).19:14.12 
Robin_Watts marcosw: Indeed.19:18.18 
  and with valencia/barcelona set to alternate in future years, it's moving away from europe.19:18.46 
henrys marcosw:a message to support from rubicon looks like it should go to Scott and Miles for a support contract. I suspect they are using gs legally but the page is german thought you could give it a once over, then see if it's worth bugging scott and miles about.19:22.49 
  rubicon.se19:23.03 
  rubicon.eu19:23.11 
  sorry19:23.12 
marcosw I didn't see any email from rubicon.eu. There is a bug that they entered, is that what you mean?19:24.36 
henrys oh right the bug is assigned to support19:25.19 
marcosw they have an english language page: http://www.rubicon.eu/web/en/19:26.36 
  seems to be identical to the german one.19:26.44 
Robin_Watts Gah. Using a git bare repo is hurting my head.19:26.58 
  I've git fetched, and I now have master 2 commits behind origin/master19:27.18 
henrys marcosw:Oh thanks then I'll handle it.19:27.21 
Robin_Watts How can I update my master to origin/master? tor8?19:27.33 
marcosw henrys: at least some of their products are open source, but I haven't figured out if they are GPL or something else.19:28.55 
  Lesser GPL <http://www.rubicon.eu/web/en/products/re-motion/>19:32.06 
tor8 Robin_Watts: git push?19:32.39 
  that is, git push to your bare repo19:32.49 
  that's the normal use case at least19:32.57 
Robin_Watts tor8: Pushing to my bare repo works fine.19:33.01 
  But I want to PULL from the main casper repo into my casper repo.19:33.18 
tor8 I usually do that by pulling to a repo on my workstation and pushing back to my user repo on casper19:33.54 
Robin_Watts I've got to assume it's possible to do without resorting to pushing from the other end.19:34.02 
tor8 yes, but I think you need to do a lower level plumbing command19:34.22 
henrys marcosw:I doubt there is anything there but I gave the info to scott anyway.19:34.23 
tor8 to update the refs19:34.25 
  since a bare repo doesn't have HEAD19:34.37 
Robin_Watts Hmm. When I had a non bare repo here, I always went origin -> casper -> {mac, windows, linux}19:34.40 
  I even tried:19:34.58 
  git update-ref res/heads/master refs/remotes/origin/master19:35.05 
  but that doesn't seem to do anything.19:35.12 
tor8 yeah, update-ref is a bit tricky. I think it's happiest with sha1 sums19:35.55 
Robin_Watts Right. git update-refs did it with an SHA.19:37.03 
  Can we please update git on casper?19:37.12 
tor8 Robin_Watts: git reset --soft should work on a bare repo19:37.16 
Robin_Watts It might be nice for us to make all our fz_print_ functions take a FILE *.19:44.32 
  Currently the text ones go to a FILE * but others go to stdout.19:44.53 
  Could I suggest that we move 'next' to be the first element of fz_text_style_s ?19:46.13 
  If we are going to publish the struct, and we intend to let the struct grow in future (see the /* etc */ comment) then presumably we should have the 'next' field in a place that won't move ?19:47.13 
  (In general, it's better for APIs to not publish structures, but to publish interfaces to get the information, but...)19:47.38 
  Why don't text+sheets follow the same len/cap/pointer structure as the other ones?19:50.18 
  fz_test_sheet_s, sorry.19:50.32 
  marcosw: Hmm. All the karmic stuff seems to be lost from the repos. How old is karmic koala?19:53.18 
marcosw 10/200919:53.45 
Robin_Watts And it was supported until April 2011.19:53.59 
  So we are now running an unsupported version on Casper.19:54.10 
mvrhel Robin_Watts: when you have a second, I would like you to walk me through a function19:54.15 
marcosw right, it's not one of the LTS distributens.19:54.18 
  ^tens^tions19:54.26 
Robin_Watts marcosw: Is there a cunning ec2 way of upgrading easily ?19:54.37 
  (Can we clone to a new instance, and try to update that?)19:55.20 
marcosw not as far as I can tell. at one point I was considering updating to 10.04, which is LTS, but chickened out.19:55.24 
Robin_Watts http://alestic.com/2010/04/upgrading-servers-to-ubuntu-1004-lucid-on-amazon-ec219:56.26 
  If you are running an EBS boot Karmic instance, then it is possible to upgrade in place, but it’s also fine to simply start new instances.19:56.34 
  mvrhel: Sure. Go for it.19:57.19 
marcosw I assume you'd like me to go ahead and update casper?19:57.30 
mvrhel so I am up to mem_planar_get_bits_rectangle19:57.38 
Robin_Watts I for one would think it would be worthwhile, but I'd like a consensus, so that when it breaks I don't get blamed :)19:57.59 
  We should bring it up at the meeting tomorrow.19:58.05 
mvrhel which is getting called by clist_get_bits_rectangle after the 9 bands of data have been drawn for a particular line19:58.22 
Robin_Watts Right.19:58.38 
marcosw I'll read more about it, so that I can suggest how much effort it would be and what the risks are...19:58.39 
Robin_Watts marcosw: Fab.19:58.47 
mvrhel what I want, is for this function not to do any conversion to chunky19:58.49 
Robin_Watts OK.19:58.55 
mvrhel which is what it is currently doing for my case19:58.57 
  with 72 bits per pixel.....19:59.05 
Robin_Watts OK. So let me look at clist_get_bits_rectangle.19:59.20 
mvrhel I suspect I have an issue with the options set up19:59.27 
Robin_Watts Yeah, the options passed in can say "give me the data in such and such a format"20:00.00 
mvrhel right. so if I want the actually planar data back at my tiffsep device what do I need to set up?20:00.25 
Robin_Watts You can ask for a particular plane, or you can ask for all the planes at once. If memory serves there is a planar or chunky bit.20:00.36 
  What is calling clist_get_bits_rectangle ?20:00.47 
mvrhel gx_default_get_bits20:00.57 
  hold on let me give you the whole stack20:01.08 
  from tiffsep20:01.13 
  so in tiff set we are calling gdev_prn_get_bits -> gx_default_get_bits -> cliset_get_bits_rect_mt -> clist_get_bits_rectangle->mem_planar_get_bits_rectangle20:02.09 
  s/clistet/clist/20:02.35 
  are the options getting set in gx_default_get_bits?20:03.36 
Robin_Watts The get_bits device interface function doesn't have the options in.20:03.51 
mvrhel I wonder if my tiff_sep device needs its own get_bits to set this20:04.09 
Robin_Watts What should happen, I think, is that tiffsep should request the data in planar format.20:04.11 
  So you'd call gdev_prn_get_bits_rectangle with the appropriate flags.20:04.52 
mvrhel ok. I will figure out how to get it there. If I want the data planar (and all of it) what do I need to set for an option?20:06.37 
Robin_Watts (sorry, was called away)20:06.49 
  back now.20:06.54 
mvrhel I am looking at the options in mem_planar_get_bits_rectangle20:07.32 
Robin_Watts Hmm. I can't see a gdev_prn_get_bits_rectangle.20:07.39 
mvrhel there is not one20:07.48 
  the call from gdev_prn_get_bits calls the default one, which is what the tiffsep is set up for20:08.25 
  this is where the options are set20:08.29 
  I think I need to have the tiff sep device have its own20:08.40 
Robin_Watts gdev_prn_get_bits calls get_bits20:08.47 
mvrhel so that it can set the proper options20:08.48 
  to call get_bits_rect (which is the clist proc)20:09.06 
Robin_Watts No, you can do that direct in tiffsep20:09.08 
mvrhel oh call get_bits_rectangle you mean directly20:09.38 
  with the proper options20:09.43 
Robin_Watts yes.20:09.52 
mvrhel gotcha20:10.02 
Robin_Watts At the moment tiffsep calls the convenience function gdev_prn_get_bits, and that calls dev->get_bits, then it does some stuff to fiddle with the ends of the lines.20:10.17 
mvrhel ok. so given that I fix that, what do I need to set option wise to get the planar data20:10.36 
  for the line20:10.48 
Robin_Watts You could implement gdev_prn_get_bits_rectangle (that does exactly the same as gdev_prn_get_bits, but takes an options thing, and calls dev->get_bits_rectangle rather than dev->get_bits.20:11.32 
  So let me find the options.20:11.38 
mvrhel oh yes20:12.00 
Robin_Watts Look in gxbitfmt.h20:12.21 
  The #defines there are the bits in the bytes.20:12.47 
  So, what value is tiffsep currently passing ?20:13.00 
mvrhel the options defined in the default proc20:13.14 
  PACKING_CHUNKY20:13.28 
Robin_Watts (do you have a number to hand?)20:13.29 
mvrhel a number to hand?20:13.42 
Robin_Watts Yeah, if you've got it in the debugger you might have options = 0x1234520:14.02 
mvrhel ah20:14.08 
  yes20:14.21 
  1171001120:14.27 
  hex20:14.32 
Robin_Watts OK, so it's asking for native representation, no alpha, chunky, 20:15.35 
  copy,pointer, standard alignment, no offset, standard raster20:16.03 
  You have a choice. You could ask for a plane at a time, or you could ask for all the planes at once.20:16.47 
mvrhel all the planes at once20:17.12 
Robin_Watts Then GB_PACKING_PLANAR rather than GB_PACKING_CHUNKY20:17.30 
mvrhel ok that is what I was thinking20:17.48 
Robin_Watts At the moment it's saying that it will accept either a copy from the clients buffer, or it will accept pointers to the clients data.20:18.22 
  sorry, mistyped. let me try that again.20:18.37 
  At the moment the options say that the caller (the client) will be happy if the device proc either copies into the clients buffer, or it will accept pointers to the devices data.20:19.32 
mvrhel how do you know what you will get?20:19.48 
Robin_Watts If memory serves, what happens here is that one of the things you pass into get_bits_rectangle is a list of pointers.20:20.03 
mvrhel yes20:20.14 
Robin_Watts You set those up to point at your buffer, call the function, and either the device copies the data out, or it rewrites the pointers to point direct to the devices data.20:20.41 
  So if you then read from those pointers, either way you get the right data.20:20.57 
  Does that make sense ?20:21.02 
mvrhel ah ok. that is clever20:21.10 
Robin_Watts It's very clever. It's also TOO clever.20:21.23 
  The code in get_bits_rectangle is scary stuff.20:22.25 
  Best approached by prodding it with a sharp stick until it starts to work and then running away.20:22.43 
mvrhel ok. thanks. I think I have enough information to push a bit further. so fare I have made it through the clist list. this get bits stuff is confusing. after I get this done, then it should be rather easy to create the sep and composite outputs20:23.13 
Robin_Watts Cool.20:23.23 
mvrhel then I need to see what happens with transparency, shadings and patterns....20:23.31 
Robin_Watts Right. there is a limit here...20:24.19 
  params20:24.40 
  gxgetbit.h20:25.23 
  line 4220:25.30 
  We are limited to 32 pointers.20:25.52 
  Hence that's a hard limit on the number of planes you can get back requesting them all at once.20:26.12 
  If you look in doc/Drivers.htm it gives you the get_bits_rectangle call that's equivalent to a get_bits call - that may be a useful place to start.20:27.24 
mvrhel Robin_Watts: ok thanks.20:35.17 
  have to step out for a bit20:35.24 
sebras Robin_Watts: touch ~robin/repos/mupdf.git/git-daemon-export-ok please. :)23:22.53 
 Forward 1 day (to 2012/03/13)>>> 
ghostscript.com
Search: