Tests whether we switch back to a hidpi backing store when rasterized content is added to the canvas layer.

 (GraphicsLayer
  (anchor 0.00 0.00)
  (bounds 1008.00 1097.00)
  (device scale 2.00)
  (children 1
    (GraphicsLayer
      (bounds 1008.00 1097.00)
      (contentsOpaque 1)
      (device scale 2.00)
      (children 1
        (GraphicsLayer
          (offsetFromRenderer width=-3 height=-3)
          (position 5.00 49.00)
          (bounds 1003.00 1008.00)
          (opacity 0.50)
          (device scale 2.00)
          (children 1
            (GraphicsLayer
              (offsetFromRenderer width=-3 height=-3)
              (anchor 0.00 0.00)
              (bounds 1006.00 1006.00)
              (drawsContent 1)
              (transform [0.50 0.00 0.00 0.00] [0.00 0.50 0.00 0.00] [0.00 0.00 1.00 0.00] [0.00 0.00 0.00 1.00])
              (device scale 2.00)
            )
          )
        )
      )
    )
  )
)

