Broken Rasters

When accessing a graphics device through DCI a client needs to be aware of the characteristics of the surface which it has created. The DCI provider designates that it has virtualized its device memory using DVA.386 by setting the DCI capabilities flag to include DCI_1632_ACCESS. In this case, a client must use the provided selector in an assembly routine to access the surface. Some display modes can result in broken rasters that is, a device must switch device memory banks in the middle of a scan line. In order for DVA.386 to function properly in this situation, the client must perform only DWORD align writes to these types of surfaces.

If the surface is of type DCI_PRIMARY, the client can ensure DWORD alignment by moving its window to four pixel boundaries. If this is not possible, or if the surface is of any other type, the client must write only align WORDs and DWORDs. This is accomplished by writing DWORDs only when the destination offset is an even multiple of four and writing WORDs only when the destination offset is an even multiple of two. All other writes must only be one byte in length.