if we want to make better use of the existing atomic structure  we need to remove target line interrupt and it is isr  however  we cannot prevent target line interrupt and it is isr  even we support all the functions which have already mentioned by bibby  the behavior of cmdq is more like cpu rather than shadow register  if we use shadow register  we just need to change register set in vblank  but  if we use cmdq  we still need to make sure cmdq can process all it is tasks in vblank  although cmdq is faster than cpu to access register  cmdq still has it is limitation  in other words  we cannot insert too many tasks into cmdq  if cmdq cannot process all it is tasks in vblank  we will see garbage line on screen  in chromebook  mouse cursor will generate too many tasks to cmdq  if we want to reduce mouse cursor tasks  we still need target line interrupt and isr to drop useless mouse cursor events  since last cursor event before vsync can replace previous mouse events  therefore  we think current solution is a better choice and it is also suitable for upstream 