Having thrown around a few ideas for how to do PSR and FBC write tracking on the frontbuffer, including the creation of a new SCANOUT domain, the implementation that I've settled on is to detect writes to either the GTT domain (hmm, a CPU write flush should also set the fb as dirty) and then a deferred SCANOUT flush. The deferred flush then resets the write domain and kicks the GTT mapping so that any further dumb writes (i.e. dumb kms buffers or fbcon) cause a new frontbuffer invalidation. This patch series also introduces framebuffer parameters (which maybe should be properties) to allow userspace to opt out of the dumb mechanism and elect to call dirtyfb itself when it requires the scanout to be flushed. I've been playing around with GFDT on SNB and IVB as a means for prototyping the delayed updates and framebuffer parameters. -Chris