EXA: Wait for sync before we set up new state in our static state buffers.

This commit is contained in:
Eric Anholt 2007-01-04 14:12:45 -08:00
parent 5857b4a169
commit fa383289ac
1 changed files with 13 additions and 0 deletions

View File

@ -404,6 +404,9 @@ I965EXAPrepareComposite(int op, PicturePtr pSrcPicture,
binding_table_entries = 2; /* default no mask */
/* Wait for sync before we start setting up our new state */
i830WaitSync(pScrn);
/* Set up our layout of state in framebuffer. First the general state: */
next_offset = 0;
vs_offset = ALIGN(next_offset, 64);
@ -1024,6 +1027,11 @@ I965EXAComposite(PixmapPtr pDst, int srcX, int srcY, int maskX, int maskY,
"dstX %d, dstY %d\n", srcX, srcY, srcXend, srcYend,
maskX, maskY, maskXend, maskYend, dstX, dstY);
/* Wait for any existing composite rectangles to land before we overwrite
* the VB with the next one.
*/
i830WaitSync(pScrn);
i = 0;
/* rect (x2,y2) */
vb[i++] = (float)(srcXend) / pI830->scale_units[0][0];
@ -1088,4 +1096,9 @@ I965EXAComposite(PixmapPtr pDst, int srcX, int srcY, int maskX, int maskY,
OUT_RING(0); /* Immediate data high DW */
ADVANCE_LP_RING();
}
/* Mark sync so we can wait for it before setting up the VB on the next
* rectangle.
*/
i830MarkSync(pScrn);
}