The protocol specification says that opaque / input regions should be considered pending state and should only be actually swapped out when the surface is committed, so it can be set atomically.