do you mean :-
drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, ImageObserver observer) ?
I havn’t ever needed to use that.
However, the symptoms you state do fit the possibility that your 2 rectangles are different dimensions from 1 another.
This would result in your image drawing being scaled.
As scaling isn’t currently HW accelerated, this would force the JVM to use the software rendering loops.
Using BufferedImages, it would simply be slow, because of no HW acceleration.
Using VolatileImages it would be very very very slow, as each image would have to be read back from vram, scaled, and then blitted to the destination Image (which is probably back in vram)
So yes, using that drawImage is probably the cause of your problems.
p.s.
There is a flag to enable HW accelerated scaling.
something.something.ddscale=true I believe.