On Thu, 5 Apr 2001 23:55:57 +0200, Georg Acher <acher@xxxxxxxxx> said: >Hi, I just looked into bumpmap.c and tried to figure out if it can >profit from blocking and played a bit with the code. It seems that >there is some major (performance) problem with the >gimp_pixel_rgn_get/set_row-calls in Gimp 1.2.1. >The original bumpmap took for my 1400*1400 image about 30s, when I >commented out one of the gimp_pixel_rgn_get/set_row() that access the >source or the destination image, the whole stuff took only about >2.4s, while the calculations were still done! >I experimented a bit, and found out, that apparently the "switch" >between get and set seems to be the problem. I changed the code to >get 32 rows, calculate them and the write the 32 back. It took only >3s overall, the resulting image is the same as with the 30s boiling >time. I suspect this is because the libgimp tile cache is too small. Libgimp allows a plugin to ask libgimp to cache a small (or not so small, if it wants to burn memory) number of tiles in its own process space so as to avoid fetches over the wire. There's a call to gimp_tile_cache_ntiles in bumpmap.c but it may simply not be large enough, or there may be a problem with the tile caching code in libgimp. Another thing to look at in my copious spare time. :) Kelly