IRC Logs

Log of #ghostscript at irc.freenode.net.

Search:
 <<<Back 1 day (to 2013/11/10)2013/11/11 
Robin_Watts hi ray00:43.46 
mvrhel_laptop 6,038,190 vs 19 sounds like something went terribly wrong someplace00:53.17 
Robin_Watts 6,038,190 = number of lookups of a link. 19 = number that the cache couldn't satisfy?00:58.37 
mvrhel_laptop oh ok00:58.54 
Robin_Watts That sounds like the cache is doing rather well.00:58.54 
mvrhel_laptop yes. I misunderstood00:59.01 
Robin_Watts I'm guessing...00:59.01 
mvrhel_laptop that makes a lot more sense00:59.12 
  I was reading that with NRT=1 he was getting 1900:59.31 
Robin_Watts I've been slightly sidetracked by something else. I hope to get to the persistent cache in the next couple of days.00:59.49 
mvrhel_laptop and with NRT Not = 1 he was getting 6,038,19000:59.50 
Robin_Watts bedtime for me.00:59.53 
  mvrhel_laptop: Right. I agree that that's a misreading of it.01:00.09 
  night.01:00.16 
mvrhel_laptop Robin_Watts: ok goodnight. if you get a chance to look at my commit in my repos for mupdf much appreciated01:00.17 
Robin_Watts I will look tomorrow.01:00.27 
mvrhel_laptop yes thanks01:00.34 
Robin_Watts np.01:00.38 
ray_laptop Robin_Watts: (for the logs). Can you build my code an try it on your machine that you had used for previous timings to see if you see similar relative performance. I'm curious to see how much overall gain we've had since the code we got from them, but I can't run their original device.07:36.49 
  Robin_Watts: (FTL): if it is much work, then don't bother.07:37.08 
  Robin_Watts: in an attempt to determine how much persistent ICC cache might save us, I was going to modify the 'process_page' to take a num_copies so that we can process the page multiple times with the same set of threads. It also takes away the setup/teardown but if the ICC cache is a big hit, it might tell us something07:40.03 
  but if you want to just do the persistent cache and time it, fine.07:40.36 
  kens: your response to that (not very reasonable) request to "substitute all fonts" was informative, and I will keep it around to send out on occasion. Most people have *NO IDEA* what is involved in fonts, and this helps explain it a bit.08:47.29 
  kens: you were certainly more helpful than I would have been :-)08:47.51 
  kens: although I doubt the sender will know enough to understand even the surface of your response "IT IS NOT POSSIBLE" is what I would have said :-)08:48.53 
  but maybe since he had read enough about it to discover that there was a Fontmap.gs may prove me wrong.08:50.09 
  I hope this doesn't end up like that other free PITA user we had recently08:50.35 
  I was *seriously* considering killing him from ever being on this channel08:51.23 
  (I probably would have if I could have remembered the commands to do it ;-) )08:51.55 
  time for bed. bbiaw.... 08:52.27 
ray_laptop snores, not so softly...08:52.36 
kens For the logs, sorry Ray I was getting a coffee....08:59.27 
Amnesia are there any mupdf devs as we speak?09:11.03 
kens Amnesia : Bit early, another hour or so would be better09:11.20 
Amnesia if so, how can I prevent my android tablet from dimming out after a while?09:11.21 
  ah ok, ty09:11.26 
kens Amnesia : I'm not an expert, butthat sounds more like an Android thing thatn MuPDF09:11.45 
Amnesia hm, well I guess an app should be able to override the default behaviour right?09:12.10 
kens SOrry, no idea. I'm neither an Android developer nor a MuPDF one09:12.27 
  But if its battery saving related it may not be possible to override09:12.49 
Robin_Watts Amnesia: AIUI there are Android hooks that we could call to defeat the screen saver.09:13.21 
  but to do so would be risky.09:13.34 
kens thinks Robin_Watts is up and about early09:13.50 
Amnesia but then how do you read stuff on it:P?09:13.52 
Robin_Watts Certainly we'd need a configuration option, we couldn't do it by default.09:13.56 
kens Well if this is a screen saver, tehn any action will prevent it kicking in, so read fasterand scroll down :-)09:14.46 
  Or alternatively, change the screen saver settings ?09:14.57 
  And another 7.5 year old bug closed.....09:15.44 
Amnesia Robin_Watts: it it on the roadmap or not?09:16.51 
kens Amnesia : I think its fair to assume its not, since nobody has ever requested such a thing. If you want it considered I would advise opening a bug report and setting it to 'enhancement'09:18.12 
Amnesia hmkay, ty:)09:18.39 
  may I ask what app you use for ebooks/pdfs? 09:18.57 
  (if you've got an android^^)09:19.02 
kens I don't have an android device, my wife has a Nexus tablet, I don't know what she uses though....09:19.22 
  And I use a variety of apps on Windows and Linux to read PDF files09:19.39 
Amnesia hmkay, ty09:19.57 
tor7 paulgardiner: ping.13:45.20 
paulgardiner tor7: hi13:45.45 
tor7 in pdf_load_builtin_font you calculate fontdesc->ascent, but you haven't added the same lines to pdf_load_substitute_font. any specific reason?13:45.59 
paulgardiner I can't remember, but my guess is that I added the minimum I needed for producing freetext annotations. We support only built-in fonts for the pdf device at the moment.13:51.36 
  So no good reason AFAIK :-)13:51.49 
  Strange coincidence I was thinking about that area of code yesterday. We still need to solve the problem of reusing fonts from a pdf document within the pdf device. Otherwise I can't swap my old form-widget appearance-stream creation code (that just hacks strings) over to using the pdf device.13:55.32 
tor7 paulgardiner: I'm also seeing spurious error messages "error: invalid page object" when running through pdfref13.pdf which I think may be related to something you've done :)14:15.03 
  I think the fz_font struct and loading code is in need of a good overhaul soon.14:15.39 
  it's getting rather hairy to keep track of all the details...14:15.51 
paulgardiner I did very little within the font system. It shouldn't be hard to track down the changes.14:16.23 
tor7 my complaint is not related to your stuff, it's just that the complexity has grown over the years and no real architecture has formed around it. organic mess. :(14:17.25 
  and if we're now aiming to use it for more and more stuff, we really ought to think long and hard about what needs to be where14:17.55 
paulgardiner Not an unusual situation to arise IME. Thankfully, MuPDF is one of the few projects that goes back and sorts out that type of thing.14:18.52 
henrys US holiday today14:19.52 
paulgardiner If fz_font were to be overhauled, it would be handy if one could tell that a fz_font came from interpretation of a pdf doc and recreate some of objects from that document - useful for appearance-stream synthesis at least.14:20.23 
  henrys: Okay. Don't worry about us. We'll soldier on relentlessly - fingers to the bone - while you laze about all day. :-)14:26.57 
henrys soldier on is perfect - it's veterans day here .14:28.19 
paulgardiner Oh right. Nice one. :-)14:28.42 
Robin_Watts henrys: Yes, it's remembrance day here.14:37.58 
henrys Robin_Watts: ah but folks usually work… banks open and such?14:41.33 
Robin_Watts yes, it's not a bank holiday.14:41.55 
tor7 paulgardiner: Robin_Watts: a handful of commits on tor/master waiting for review15:15.53 
Robin_Watts tor7: ah, yes, and I must lookat mvrhel's too.15:16.10 
  fz_new_buffer_from_data.15:18.02 
  or fz_new_buffer_with_data ?15:18.10 
  _with_ doesn't seem to pass ownership in. _from_ therefore sounds better to me.15:19.52 
  actually, that's not true.15:20.56 
  fz_open_document_with_stream passes the ownership in.15:21.17 
tor7 Robin_Watts: yeah, we don't have a clear naming there for ownership passing15:25.11 
  btw, don't push the fontconfig one, I want to keep that on a separate branch since I am *not* willing to support that in the mainline distribution15:25.41 
Robin_Watts tor7: In the last one...15:25.47 
  If you make buf = NULL at the top, and fz_var(buf)15:26.33 
  then you can put the fz_warn into the fz_catch15:26.41 
  and the dedicated error handling section can roll into the normal exit.15:27.03 
  neater IMHO.15:27.31 
  Otherwise, all fine.15:27.37 
tor7 I want the warn on all error exits, though. not just in the catch case15:27.46 
Robin_Watts So put the error: in the catch block.15:28.01 
tor7 I could roll the normal into the error and only warn if (!buf(15:28.03 
  Robin_Watts: like in the latest commit on tor/master now?15:30.12 
Robin_Watts mvrhel has a directX printing review on his repo. It looks plausible to me, but I don't have the energy to read it all in detail (and I wouldn't understand it if I did).15:30.52 
  Anyone else want to look before I just nod it through?15:31.05 
tor7 mvrhel triple-spaces after periods in his git commit messages... I find that oddly disturbing :)15:31.23 
Robin_Watts tor7: personally, I'd have done: fz_catch(ctx) { error: fz_warn(); } ...15:32.06 
  but what you have is fine.15:32.26 
tor7 it's hairy enough to remember the scoping rules for try/always/catch without adding gotos and labes into the mix :)15:32.34 
  Robin_Watts: then I shall push all but the fontconfig stuff to master (and the fontconfig on a 'fontconfig' branch)15:33.01 
  if it didn't add such a big mess to the makefile I'd be happier :(15:33.28 
Robin_Watts henrys: Are you about for a quick skype?16:04.41 
kens Its a US holiday16:05.34 
ray_laptop morning, all16:09.31 
kens Morning ray_laptop sorry I missed you in my morning16:09.43 
ray_laptop kens: no problem. It wasn't important, but I did like the clarity of your response :-)16:10.16 
kens Its a complex area, I'msure he won;t understand :-(16:10.36 
Robin_Watts kens: yeah, and he's probably still unpacking.16:11.18 
ray_laptop Scott doesn't tend to filter requests from free users that come over the fence to 'sales' or 'info'16:11.30 
kens henrys is I guess, yes16:11.35 
  ray_laptop : yes, that's why I asked him if it was a sales contact16:11.47 
chrisl kens: It was a lot better than the "are you out of your mind?" response that was my first instinct.....16:11.53 
kens ROFL16:12.02 
  It might have some sense in a tightly cvontrolled workflow, but in that case, use the correct font to start with....16:12.33 
  Nice to hear something from Marti RObin16:13.25 
Robin_Watts kens: yeah. I'd heard from henrys that it had been agreed and was moving, but had no idea how long Marti was going to take about it.16:16.23 
kens Always nice to see something happening.16:16.41 
ray_laptop Robin_Watts: did you see my comment / request about running the timing on your machine so they match up with what you posted on 11/6. Also note that I didn't bother testing 300 dpi modes, although maybe I should have.16:16.50 
henrys yea I'll be here periodically16:16.52 
Robin_Watts ray_laptop: I didn't, sorry.16:17.31 
henrys 1 man month, 3 months - he's working part time16:17.48 
kens So hopefully in time for our next release16:18.11 
ray_laptop Robin_Watts: If you think it's important, I can easily enough run the 300 dpi cases16:18.16 
Robin_Watts ray_laptop: I wouldn't bother.16:18.28 
ray_laptop Robin_Watts: OK.16:18.38 
Robin_Watts I think the main thing is that we've offered relative timings.16:18.40 
  They should now be in the position to do any timings they want.16:18.54 
henrys kens:maybe so16:18.55 
ray_laptop Robin_Watts: yes. hopefully they can do the real timings on a CPU they have16:19.15 
henrys Robin_Watts: on skype16:19.38 
ray_laptop IME, unfortunately, some printer companies have a hodge-podge of systems and aren't always careful in doing benchmarking (not this customer, though, AFAIK)16:20.44 
  I was pleasantly surprised that BGPrint had such an impressive impact on performance. Much better than selective plane skipping :-/16:22.17 
  I have tried to do profiling, but VS 2008 'performance analyzer' leads immediately to a BSOD :-( Very sleepy "Launch" doesn't seem to work, and if I attach to a process, it merrily collects, then gets an error before displaying any results (after I hit "OK" to stop)16:32.15 
Robin_Watts ray_laptop: VS2008's profiler worked for me.16:32.43 
  Sleepy is temperamental, sadly :(16:33.04 
  ray_laptop: So I'm looking into this persistent list of icc_cache's now. Question is where best to free them eventually...16:36.49 
  Devices tend to be page based things, right? opened at the start of a page, closed at the end. I want something that persists across multiple pages.16:39.16 
  I could use the gs_lib_ctx itself, but that would mean using the underlying malloc allocator for the gsicc stuff.16:39.48 
kens Devices persist across pages16:39.51 
  THey are opened when selected, and closed when deselected16:40.06 
  No matter how many pages arrive in between16:40.17 
Robin_Watts kens: Ah.16:40.42 
chrisl They can also be closed and reopened when settings change.....16:40.53 
kens Yes that's true16:41.00 
Robin_Watts So maybe I should be putting the icc_list cache in the device rather than in the lib_ctx.16:41.14 
kens And that (now) properly resets the count of pages too :-)16:41.17 
Robin_Watts As long as that won't discard the cache because of unnecessary openings/closings.16:41.41 
ray_laptop Robin_Watts: sorry.16:41.49 
kens The open/close only occurs in response to setpagedevice16:41.57 
Robin_Watts ray_laptop: No problem.16:42.03 
kens Where we change device or its attributes16:42.07 
ray_laptop Robin_Watts: they also should be freed when the prn_device closes16:42.13 
kens I would think that if we change attributes of the device that would be a potential reason to discard the cache16:42.36 
Robin_Watts ray_laptop: So you think that the device is the right place to hide these ?16:42.43 
ray_laptop Robin_Watts: for BGPrint I had to add a 'wait for last page to finish' to prn_close16:42.53 
  Robin_Watts: for non-clist (not gx_device_printer) classes where there is a renderer that has its own cache, that's where its important, right16:44.27 
  otherwise the clist cache is the same as the parser class and is kept around, right ?16:45.02 
  s/parser class/parser cache/16:45.15 
Robin_Watts ray_laptop: The clist thread buffers are recreated for every page, right ?16:45.34 
ray_laptop Robin_Watts: and if the NumRenderingThreads decreases, we can free ones that we no longer need, and similarly if we increase the NRT16:46.26 
  Robin_Watts: the thread buffers are created once, and freed at the end of the page16:46.59 
Robin_Watts ray_laptop: Initially I am primarily interested in making it work for the numrenderingthreads case, but it should also work for the single threaded case 16:47.54 
ray_laptop Robin_Watts: and everything we are saying for the threads also applies to the BGPrint thread16:48.04 
Robin_Watts hence putting it in the clist device would be bad.16:48.40 
ray_laptop Robin_Watts: but if NRT=0 and BGPrint=false, then the rendering cache will be inherited from the parser (I am checking that, now)16:49.13 
Robin_Watts So either in the prn device, or in the generic device would seem sensible.16:49.13 
  oh, so the cache is already carried across between pages in the NRT=0, BGPrint=false case?16:49.58 
  So then this IS just a clist thing.16:50.04 
ray_laptop Robin_Watts: the icc_cache_cl is peculiar to the clist rendering, yes16:52.41 
Robin_Watts No, I meant the NEW thing I want to add, the persistent list of icc_cache's16:53.15 
  If in the NRT=0 and BGPrint=false cases, the icc_cache is carried over between pages already, there is nothing for me fix there.16:53.52 
  The only place where we need to carry it over is when the clist is being used.16:54.16 
ray_laptop Robin_Watts: the icc_link_cache is a member of the gs_imager_state16:55.14 
Robin_Watts right, and for the num rendering threads case, we have to create a new imaging state out of nowhere, right?16:56.00 
ray_laptop Robin_Watts: in clist playback_band it uses a new 'imager_state' and so it handles it differently (see lines 609..)16:57.07 
Robin_Watts and it gets the icc_link_cache from cdev->icc_cache_cl16:58.34 
ray_laptop Robin_Watts: right, that's how it gets preserved across band, AIUI17:00.11 
Robin_Watts ray_laptop: Absolutely.17:00.25 
ray_laptop sorry for the delays. I'm home and subject to interruptions 17:00.34 
Robin_Watts Suppose I have a prn device. When does that device decide whether or not it's a clist device? On the open?17:00.36 
ray_laptop Robin_Watts: in the gdev_prn_allocate17:00.52 
  and children17:01.01 
Robin_Watts which happens on gdev_prn_open, which happens on the device_open.17:02.02 
  So changing the page size for a device would close and reopen the device.17:02.13 
  But assuming that we have a file that prints lots of pages, all the same size, the clist structure is preserved across all of them.17:02.46 
ray_laptop Robin_Watts: the clist device is set up in gdev_prn_setup_as_command_list17:03.33 
  Robin_Watts: the gdev_prn_maybe_reallocate_memory is used in gdev_prn_put_params to decide if it needs to juggle things based on space_params, width, height, and page_uses_transparency17:07.11 
Robin_Watts put_params can happen on an open device?17:09.03 
ray_laptop Robin_Watts: yes, open, or closed17:09.33 
  Generally it is only on a closed device for all of the initial put_params calls. Then the device generally stays open17:10.29 
  That is critical for something like the pdfwrite device that want to stay open across pages and collect stuff for an entire output file until they finally get closed17:11.53 
Robin_Watts ray_laptop: Ah, true.17:13.17 
  so page size changes can't close a device.17:13.25 
ray_laptop That's why devices changing depth (bit* devices) need to be careful because the gdev_prn_maybe_reallocate_memory doesn't handle everything17:13.27 
  Robin_Watts: gs_putdeviceparams allows a device to close, however. This fn returns 1 if the device closed and needs to be reopened17:17.42 
  Robin_Watts: this is discussed somewhat in doc/drivers.htm#Life_cycle17:20.49 
  Robin_Watts: BTW, the process_page stuff should be documented in doc/drivers.htm -- probably the planar buffer mode should be discussed here as well17:24.29 
  the bane of all progress is documentation ;-)17:24.45 
  Robin_Watts: on another topic, I _did_ manage to get a crude profile with CodeTune (sampling only, no instrumentation mode) and on J6 the impact (NRT=0) of gsicc_get_link_profile is .5%17:29.47 
  Robin_Watts: pms_blueNoiseMask_avg is 0.88%17:30.43 
Robin_Watts ray_laptop: If the SSE routines are so tiny, where the hell is the time going? :)17:31.07 
  bg_print: Is that always a single thread doing the printing ?17:31.38 
ray_laptop Robin_Watts: sorry. pms_blueNoiseMask_avg is 8.9% (typo)17:32.13 
Robin_Watts oh, no, we have a single bgprint thread that might fork multiple rendering threads?17:32.30 
ray_laptop Robin_Watts: with BGPrint, if NRT=0, then it is a thread, but a background thread will fire of NRT threads to render17:33.19 
  Robin_Watts: right. That's why I timed BGPrint with NRT=0 and NRT=317:33.49 
  Robin_Watts: I'm going to re-run the profles, but the results look plausible. For example gx_dc_devn_fill_rectangle (and children) account for 43% of the time (most of that is mem_planar_fill_rectangle_hl_color)17:43.58 
Robin_Watts ray_laptop: Which was was J6? The 20 or 100 page one?17:45.29 
kens Goodnight all17:47.32 
Robin_Watts Right, J6 is the 100 page one.17:49.17 
ray_laptop Robin_Watts: I've run the profile with CodeTune several times, and of the gsicc functions, gsicc_get_link_profile is negligible < 0.3 % -- I do see gsicc_set_device_profile as 5.4% and gsicc_profile_new as 4.2%, but I don't think the persistent cache is going to help much.18:41.16 
  but mem_planar_fill_rectangle_hl_color is 51% of the time18:42.35 
  and gx_image_fill_masked is 30%18:43.39 
mvrhel_laptop Robin_Watts: I know you are in the middle of icc cache stuff, but did you get a chance to review my mupdf commit?18:43.54 
ray_laptop mvrhel_laptop: for the DirectX printing ?18:44.17 
Robin_Watts mvrhel_laptop: Yes.18:45.17 
  It's fine.18:45.19 
  At least, its looks plausible. I don't claim to understand it.18:45.42 
  ray_laptop: Can you try profiling J12 please?18:46.05 
ray_laptop Robin_Watts: ok.18:46.35 
Robin_Watts It was J12 where I saw (or thought I saw) the huge time spent in lcms.18:47.06 
mvrhel_laptop Robin_Watts: ok thanks18:47.15 
ray_laptop Robin_Watts: First trying NRT=0 (profiling is less misleading with that)18:49.24 
Robin_Watts Hmm. I've backed out all my changes, and this thing is still crashing :(18:54.36 
  gswin32c.exe -sDEVICE=psdcmyk -dNumRenderingThreads=3 -o out -r300 -dLastPage=10 -dMaxBitmap=10000 ../Mytests/pdf_reference17.pdf18:54.57 
  great. It's an existing bug :(19:00.29 
ray_laptop Robin_Watts: OK, so on J12 (20 pages) I see 23% (NRT=0) trying NRT=4 next19:02.02 
Robin_Watts ray_laptop: 23% in lcms or 23% in get_link?19:03.01 
ray_laptop Note that image_render_color_DeviceN is 39%19:03.08 
Robin_Watts ray_laptop: That would be the function that calls lcms? So the 39% includes the 23% of lcms ?19:03.46 
ray_laptop Robin_Watts: and gscms_get_link is 20% which indicates cache misses or at least very expensive process.19:04.47 
  I'm going to bp that in a debug build to see how many times it is being called (w/o instrumentation, sampling doesn't tell me)19:05.27 
Robin_Watts OK, so my changes were fine.19:08.10 
  just wasted an hour hunting for a bug that's there anyway. :(19:08.33 
ray_laptop Robin_Watts: which bug # ?19:11.35 
  Robin_Watts: I'm going to re-run that profile, but I only see 19 calls to gscms_get_link -- and that's 20% ???19:13.55 
  those must be *very* expensive profiles to compute19:14.36 
  The next thing down on the profile was cmsCreateMultiprofileTransformTHR19:16.03 
marcosw henrys: who do you suggest I assign the ghostscript windows print queue issue that came in late last week to? 19:16.49 
aksr hi guys, i'm writing a bash function with an *optional* argument (-dLastPage), is there a way to set it be the _last_ page, no matter which page number it is?19:19.12 
Robin_Watts -dLastPage=999999999 ?19:23.07 
  Just guessing, but that might work.19:23.23 
ray_laptop it spends a lot of the time in OptimizeByResampling19:27.47 
  aksr: If you don't put in -dLastPage, it is automatically set to the last page19:28.16 
mvrhel_laptop sigh so microsoft is pretty much forcing one to go to Visual studio 2013 if you want to do windows 8 .1. I cant do any remote debug on the surface with 2012. Robin, I am moving the winRT project to 2013 19:29.01 
Robin_Watts mvrhel_laptop: Sure. That makes sense.19:29.21 
mvrhel_laptop now let me see if I can get things set up for a tab and spaces initialization 19:30.13 
Robin_Watts ray_laptop: What device were you sampling?19:32.18 
ray_laptop the xxxx-aps at -r600 and -dBandHeight=128 19:33.12 
Robin_Watts ray_laptop: I have to run to the station to get Helen in a mo.19:34.36 
  but I've just pushed my commit onto robin/master19:34.52 
aksr ray_laptop: yes, but some variable like "last" or something, would have been good for this19:40.16 
Robin_Watts "-d" means a number.19:40.43 
  so you can't -dLastPage=last19:40.51 
aksr digit?19:41.00 
Robin_Watts We could potentially do -dLastPage=-1 or something.19:41.01 
aksr ..or that, i doesn't matter if it signifies *the* last page19:42.00 
Robin_Watts ray_laptop: Damn. Still looks like OptimiseByResampling is taking 46% here.19:43.17 
ray_laptop aksr: setting it to 1g will suffice (all numbers can have k, m, or g suffix for *1024 *1024*1024 or *1024*1024*1024)19:43.29 
aksr i understand. ;)19:44.05 
Robin_Watts ray_laptop: I gotta run. bbl.19:44.24 
ray_laptop Robin_Watts: talk to you later19:44.56 
aksr ray_laptop, Robin_Watts, thank you19:45.35 
mvrhel_laptop and of course, retargeting to 8.1 has some issues :(20:22.29 
  bbiaw20:24.56 
ray_laptop mvrhel_laptop: MS wants to keep s/w engineers employed trying to guess what will work for portable s/w :-/20:28.46 
  mvrhel: (for the logs) with J12, I'm seeing much of the case of the link profiles that are expensive to generate are cases where the input_profile->hashcode and the output_profile->hashcode are the same. Shouldn't those be recognized and map to an "identity" xform ?21:16.50 
  However, I thought the output profile for the xxxx-aps device would be CMYKB21:20.41 
zeniko Robin_Watts (or FTL): just came to say hi and mention that there are a few minor fixes for review on zeniko/mupdf21:54.51 
  tor7 (or FTL): The fz_load_system_font bits aren't enough for what we'd need for SumatraPDF. Should I look into what further extensions we'd need or are you still working on that API?21:57.46 
  IIRC, we try to load system fonts in pdf_load_builtin_font as well as in pdf_load_substitute_cjk_font and even in pdf_load_system_font for when a collection has been specified (and have a list of system fallback fonts we try in pdf_load_substitute_cjk_font first).21:59.53 
ray_laptop mvrhel_laptop: Did you see my question. With J12 I see it going through the relatively expensive "OptimizeByResampling" with the in and out profile hashcodes the same. Do we need to do this ?22:21.52 
mvrhel_laptop ray_laptop: I did not see your question22:22.15 
ray_laptop or is there a "shortcut" to skip this ?22:22.17 
  i.e. identity xform22:22.30 
ray_laptop doesn't understand what else might affect the link22:22.57 
  this relates to what Robin_Watts is trying to optimize with persistent cache.22:24.06 
mvrhel_laptop ray_laptop: we could add in code to avoid the creation of the link when the profiles are the same, since we end up not doing the transform anyway for this case.22:25.06 
ray_laptop with the J12 file, in gsicc_get_link_profile, when it fails to find it in the cache, there may be a shortcut.22:28.30 
mvrhel_laptop ray_laptop: the link would still be there22:28.49 
ray_laptop circa ln 76922:28.53 
mvrhel_laptop it would just have an identity value set22:29.03 
  and the handle that lcms uses could be bogus22:29.14 
ray_laptop mvrhel_laptop: if it isn't found, it's the first time through, then we need to set a cache slot to the identity link, right ?22:29.44 
mvrhel_laptop ray_laptop: there is no "identity link"22:30.14 
  there could be22:30.26 
  but we would need to rework a few things22:30.55 
ray_laptop why does a profile with the same hashcode need to do OptimizeByResampling (that's what we'd like to avoid)22:31.12 
mvrhel_laptop at the time I started this, it was pointed out to me that due to rendering intents some people like to go through identity profiles22:31.24 
  that is cases where the source and destination profiles are the same22:31.49 
ray_laptop mvrhel_laptop: oh, so the hashcode doesn't take the rendering intent into account ?22:32.08 
mvrhel_laptop I however, effectively avoid doing those transformations, although the transforms are calculated22:32.16 
  ray_laptop yes it does22:32.22 
ray_laptop seems like that would cause false hits in the cache22:32.28 
mvrhel_laptop it takes in all the settings22:32.37 
  if the source and destination profile are the same though, we currently don't transform the colors22:33.37 
  we do end up computing a link though, which if i understand your question, you would like to avoid22:34.02 
ray_laptop mvrhel_laptop: OK, so gsicc_compute_linkhash does check the rendering_params22:34.07 
mvrhel_laptop yes. along with black point compensation and other items22:34.23 
  black preservation22:34.32 
  etc22:34.35 
  anyway, let me review the code a bit this week and I will see if I can avoid creating the profile link for the general case22:35.32 
  when the profiles are the same22:35.40 
ray_laptop mvrhel_laptop: or at least the need to resample22:36.28 
mvrhel_laptop to avoid that, one needs to not have lcms create the link22:36.49 
  which is what I will do22:36.53 
  ray_laptop ^^22:37.02 
ray_laptop mvrhel_laptop: OK. They have lots of optimization checks I see. Thanks for checking this.22:37.45 
mvrhel_laptop ok I am very frustrated with all that broke in the UI with the move to 8.122:53.08 
ray_laptop mvrhel_laptop: sorry to hear that. Reminds me of the old days when working on Windows drivers. Extremely volatile was an understatement. Seems like every windows update jiggled the jello23:08.49 
mvrhel_laptop yes. this is a bit much for a change from 8.0 to 8.1. not to mention the need for 2013 over 2012. I hope they don't do this all again in 201423:09.43 
  I have a very irritating flicker when I zoom now and I don't see why that is happening23:10.09 
ray_laptop Are there free "Express" versions for VS 2013 that are adequate to the task ?23:10.35 
  or do you have to pay for upgrades each time ?23:10.56 
mvrhel_laptop 2012 to 2013 requires $99 upgrade23:11.55 
ray_laptop usually it took about a year of "updates" for a version release of Windoze to become usable23:12.00 
mvrhel_laptop for professional which includes the profiler23:12.03 
  official release for 2013 is wed.23:12.29 
ray_laptop my experience with the VS2008 profiler if *NOT* good. BSOD as soon as starting a session :-(23:12.48 
  so by Nov 2014 is should be workable ;-)23:13.15 
mvrhel_laptop exactly23:14.33 
ray_laptop suspects that C and C++ sucks hind tit inside MS. As long as it works for .NET apps, everybody else is essentially "we'll fix that someday, maybe"23:15.02 
mvrhel_laptop ray_laptop: this is probably true. 23:34.04 
  one more hour of sunlight. days are short now. need to take care of a few things bbiaw23:34.31 
ray_laptop It seems that even though there page says "from $299" for 2013 pro, this must be an average. Upgrades from 2012 Pro ar $99 and the only other option is "full" for $49923:42.39 
  and there is probably (typically) no support if the profiler sucks as badly as my $$$$ 2008 version does.23:43.56 
  Oh, well. Unless someone knows a cheaper way to get it, I'll probably go ahead23:44.40 
 Forward 1 day (to 2013/11/12)>>> 
ghostscript.com
Search: