The image backed by the client buffer which will change on the next frame, however the screenshot plugin uses both executor thread and EDT thread to paint the full screenshot, and so it requires the image will not change. Note the gpu plugin already returns a new image because it has to pull it out of the GL.