On Thu, 5 Apr 2001 23:55:57 +0200, Georg Acher <[EMAIL PROTECTED]> 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
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
Another thing to look at in my copious spare time. :)
Gimp-developer mailing list