Supporting Coprocessor Synchronization

To support video controllers with coprocessors, a display driver can implement the function DrvSynchronize. A device with coprocessors can start a long drawing operation and return to GDI while the operation continues. If the display driver does not do all drawing to the surface, it is possible that a subsequent drawing operation will be handled by GDI. In this case, it is necessary for GDI to wait for the coprocessor to complete its work before drawing on the surface.

DrvSynchronize is called for a surface only if the driver hooks it in a call to EngAssociateSurface. GDI calls it just before drawing directly to the device surface. DrvSynchronize returns when it is safe for GDI to begin drawing.