xf86-video-intel: 2 commits - src/i915_render.c src/i915_video.c

Eric Anholt anholt at kemper.freedesktop.org
Sat Jan 17 16:30:07 PST 2009


 src/i915_render.c |    2 +-
 src/i915_video.c  |   11 +++++++----
 2 files changed, 8 insertions(+), 5 deletions(-)

New commits:
commit d89de6d60a86105a198d904821853e6ed7de3305
Author: Eric Anholt <eric at anholt.net>
Date:   Fri Jan 16 16:59:17 2009 -0800

    Protect i915 textured video against batchbuffer wrapping.

diff --git a/src/i915_video.c b/src/i915_video.c
index 7761a45..b903b5e 100644
--- a/src/i915_video.c
+++ b/src/i915_video.c
@@ -49,8 +49,9 @@ I915DisplayVideoTextured(ScrnInfoPtr pScrn, I830PortPrivPtr pPriv, int id,
 {
    I830Ptr pI830 = I830PTR(pScrn);
    uint32_t format, ms3, s5;
-   BoxPtr pbox;
-   int nbox, dxo, dyo, pix_xoff, pix_yoff;
+   BoxPtr pbox = REGION_RECTS(dstRegion);
+   int nbox = REGION_NUM_RECTS(dstRegion);
+   int dxo, dyo, pix_xoff, pix_yoff;
    Bool planar;
 
 #if 0
@@ -72,6 +73,8 @@ I915DisplayVideoTextured(ScrnInfoPtr pScrn, I830PortPrivPtr pPriv, int id,
       return;
    }
 
+   intel_batch_start_atomic(pScrn, 200 + 20 * nbox);
+
    IntelEmitInvarientState(pScrn);
    *pI830->last_3d = LAST_3D_VIDEO;
 
@@ -362,8 +365,6 @@ I915DisplayVideoTextured(ScrnInfoPtr pScrn, I830PortPrivPtr pPriv, int id,
    dxo = dstRegion->extents.x1;
    dyo = dstRegion->extents.y1;
 
-   pbox = REGION_RECTS(dstRegion);
-   nbox = REGION_NUM_RECTS(dstRegion);
    while (nbox--)
    {
       int box_x1 = pbox->x1;
@@ -412,6 +413,8 @@ I915DisplayVideoTextured(ScrnInfoPtr pScrn, I830PortPrivPtr pPriv, int id,
       ADVANCE_BATCH();
    }
 
+   intel_batch_end_atomic(pScrn);
+
    i830MarkSync(pScrn);
 }
 
commit 15780c53f5717936ea10ac87aff8a881c172f1dc
Author: Eric Anholt <eric at anholt.net>
Date:   Sat Jan 17 16:23:38 2009 -0800

    Fix i915 batch_start_atomic counting.

diff --git a/src/i915_render.c b/src/i915_render.c
index 8a2bc63..5dd97e6 100644
--- a/src/i915_render.c
+++ b/src/i915_render.c
@@ -542,7 +542,7 @@ i915_composite(PixmapPtr pDst, int srcX, int srcY, int maskX, int maskY,
     ScrnInfoPtr pScrn = xf86Screens[pDst->drawable.pScreen->myNum];
     I830Ptr pI830 = I830PTR(pScrn);
 
-    intel_batch_start_atomic(pScrn, 100);
+    intel_batch_start_atomic(pScrn, 150);
 
     if (pI830->i915_render_state.needs_emit)
 	i915_emit_composite_setup(pScrn);


More information about the xorg-commit mailing list