[Gimp-developer] Layers and possible space for performance improvement in GIMP

2009-08-12 Thread SHIRAKAWA Akira
Hello,

A few days ago I was trying out Adobe Photoshop CS4 under my OS, Windows 
   7 RC 64 bit, and although I prefer using GIMP even though it lacks 
some very useful features, I was surprised at one thing in particular: 
its speed when many layers are used (20-25+, and on very complex works I 
often use even more). On Photoshop CS4 layers refresh almost instantly, 
new ones are created with about the same speed, and there are generally 
no graphic slowdowns on complex works.

At some point I tried to save my work done under Photoshop and import it 
in GIMP. I discovered that all layers were cropped to their maximum 
extents (empty borders taken out). I thought that this could be one of 
the main reasons why Photoshop is faster when many layers are used: 
since unused borders are taken out, there's less to redraw to the screen 
each time or to check out for transparency. I'm not sure though if this 
is done by GIMP during the import process or in a transparent way (when 
a new layer is created it's assumed that it will cover the whole canvas) 
automatically in Photoshop, though.

To verify my claim I tried to make a similarly complex, multilayered 
work natively under GIMP 2.6.6 (canvas size A4, 300 dpi, about 3500x2500 
pixels) until at some point I reached about 25 different layers. Of 
course the program was still usable, but some slowdown was evident 
especially when toggling layer visibility (operation which took a while 
to complete). I then applied my so-called Photoshop optimization by 
autocropping all layers (Menu LayerAutocrop), and working speed went up 
noticeably, though not dramatically (note that I'm using an Intel Core 2 
Duo 3.16 Ghz E8500 processor with 4 GB RAM).

What I wonder is if GIMP could someday get advantage dynamically, 
automatically and in a transparent manner to the user of autocropping 
extra borders from layers (without manual intervention) in order improve 
performance when large canvases and many layers (the normality in 
creative works, not so much when only retouching photos) are used.

For example, the user would create a 3500x2500 pixels new layer, but if 
he drew only in a small 100x200 pixels area, then the program would 
internally save and process only that area, while still allowing the 
user to draw outside of it (the layer extents would be automatically and 
transparently increased).

What do you think about this proposition?

-- 
SHIRAKAWA Akira
___
Gimp-developer mailing list
Gimp-developer@lists.XCF.Berkeley.EDU
https://lists.XCF.Berkeley.EDU/mailman/listinfo/gimp-developer


Re: [Gimp-developer] Layers and possible space for performance improvement in GIMP

2009-08-12 Thread Michael Schumacher
 Von: SHIRAKAWA Akira shirakawa.ak...@gmail.com

 What I wonder is if GIMP could someday get advantage dynamically, 
 automatically and in a transparent manner to the user of autocropping 
 extra borders from layers (without manual intervention) in order improve 
 performance when large canvases and many layers (the normality in 
 creative works, not so much when only retouching photos) are used.

There's a long discussion about this in 
http://bugzilla.gnome.org/show_bug.cgi?id=93639

I'm not sure how much of this will change within a GEGL tree, so parts of this 
discussion could already be obsolete.


Michael
-- 
GRATIS für alle GMX-Mitglieder: Die maxdome Movie-FLAT!
Jetzt freischalten unter http://portal.gmx.net/de/go/maxdome01
___
Gimp-developer mailing list
Gimp-developer@lists.XCF.Berkeley.EDU
https://lists.XCF.Berkeley.EDU/mailman/listinfo/gimp-developer


Re: [Gimp-developer] Layers and possible space for performance improvement in GIMP

2009-08-12 Thread SHIRAKAWA Akira
Michael Schumacher wrote:

 There's a long discussion about this in 
 http://bugzilla.gnome.org/show_bug.cgi?id=93639
 I'm not sure how much of this will change within a GEGL tree, so parts of 
 this discussion could already be obsolete.

Ah, thanks for linking that discussion.
So this was already being discussed many years ago.

My opinion is that when layer groups will be implemented (from what I 
understand, they will be soon as it's a very requested feature), layer 
usage will be going up since it will be easier to manage them, and a 
better, more efficient way to internally manage layer boundaries will be 
needed in order to keep good performance.

I understand that layer boundaries are needed for many uses. I think too 
that they shouldn't go away completely, but they could be still retained 
if some sort of transparent effective layer boundary auto-growing 
feature is ever implemented into GIMP.
Layer boundaries could simply be the internal auto-growing limits of the 
layer. Also, the whole auto-growing process wouldn't affect export 
functions or scripts which rely on boundaries, only on-screen drawing 
performance, as long as unused borders are transparent.

-- 
SHIRAKAWA Akira
___
Gimp-developer mailing list
Gimp-developer@lists.XCF.Berkeley.EDU
https://lists.XCF.Berkeley.EDU/mailman/listinfo/gimp-developer


Re: [Gimp-developer] Layers and possible space for performance improvement in GIMP

2009-08-12 Thread Sven Neumann
Hi,

On Wed, 2009-08-12 at 18:04 +0200, SHIRAKAWA Akira wrote:
 (note that I'm using an Intel Core 2 
 Duo 3.16 Ghz E8500 processor with 4 GB RAM).

How is your tile-cache size configured? If it is still at the default
value of 1GB, then you are not making best use of your hardware and its
not surprising that GIMP becomes slow with large images and many layers.

Please do also check the image memory size (in the Image Properties
dialog) for your example image.

 What I wonder is if GIMP could someday get advantage dynamically, 
 automatically and in a transparent manner to the user of autocropping 
 extra borders from layers (without manual intervention) in order improve 
 performance when large canvases and many layers (the normality in 
 creative works, not so much when only retouching photos) are used.
 
 For example, the user would create a 3500x2500 pixels new layer, but if 
 he drew only in a small 100x200 pixels area, then the program would 
 internally save and process only that area, while still allowing the 
 user to draw outside of it (the layer extents would be automatically and 
 transparently increased).
 
 What do you think about this proposition?

Sure, that is on the roadmap with GEGL. Empty tiles don't need to be
represented in memory. They can be represented by special empty tiles
that have a color property but no pixel data.


Sven


___
Gimp-developer mailing list
Gimp-developer@lists.XCF.Berkeley.EDU
https://lists.XCF.Berkeley.EDU/mailman/listinfo/gimp-developer