title: Poor performance when downscaling surfaces
body: <p>I am using PyCairo to write a chess game, each piece is a 512x512 <code>ImageSurface</code>. The pieces need to scale up and down. When the scale (x or y) is less than 1.0, the app is painfully slow, with only 32 pieces. When scale is equal to or greater than 1.0, it is blisteringly fast.</p>
  
  <p>I have tried <code>canvas.set_antialias(cairo.ANTIALIAS_NONE)</code>, with no good results. I have tried both <code>cr.set_scale()</code> and <code>surface.set_device_scale()</code> with the same poor performance. Is there any way to scale down faster, with possibly lower quality, which is acceptable?</p>
  
  <p>I thought of recreating surfaces every time the chess board is resized, and use a scale of 1.0 in that case. However it will choke as the user resizes the window.</p>