For some unknow and strange reason, when I use images larger than 3000 pixels, the Draw procedure only draws noise. So I split my image into 3 smaller images and created 3 surfaces. It's still much much faster than using the images list (I can see that difference in DXTimer1.FrameRate).