OSDN Git Service

i965: Giant pile of flushing to track down SNB bringup issues.
authorEric Anholt <eric@anholt.net>
Fri, 29 Jan 2010 18:42:17 +0000 (10:42 -0800)
committerEric Anholt <eric@anholt.net>
Thu, 25 Feb 2010 18:53:07 +0000 (10:53 -0800)
This should go away before we push the code.

src/mesa/drivers/dri/i965/gen6_cc.c
src/mesa/drivers/dri/i965/gen6_clip_state.c
src/mesa/drivers/dri/i965/gen6_gs_state.c
src/mesa/drivers/dri/i965/gen6_urb.c
src/mesa/drivers/dri/i965/gen6_vs_state.c

index b1b6dc7..ba1e3ab 100644 (file)
@@ -273,6 +273,8 @@ static void upload_cc_state_pointers(struct brw_context *brw)
    OUT_RELOC(brw->cc.blend_state_bo, I915_GEM_DOMAIN_INSTRUCTION, 0, 1);
    OUT_RELOC(brw->cc.depth_stencil_state_bo, I915_GEM_DOMAIN_INSTRUCTION, 0, 1);
    ADVANCE_BATCH();
+
+   intel_batchbuffer_emit_mi_flush(intel->batch);
 }
 
 
index f34e5f3..5ddfa9a 100644 (file)
@@ -64,6 +64,8 @@ upload_clip_state(struct brw_context *brw)
             provoking);
    OUT_BATCH(0);
    ADVANCE_BATCH();
+
+   intel_batchbuffer_emit_mi_flush(intel->batch);
 }
 
 const struct brw_tracked_state gen6_clip_state = {
index 31da0dc..47702f7 100644 (file)
@@ -74,6 +74,8 @@ upload_gs_state(struct brw_context *brw)
    OUT_BATCH(0);
    OUT_BATCH(0);
    ADVANCE_BATCH();
+
+   intel_batchbuffer_emit_mi_flush(intel->batch);
 }
 
 const struct brw_tracked_state gen6_gs_state = {
index dea0aa7..55f7ac7 100644 (file)
@@ -68,6 +68,8 @@ upload_urb(struct brw_context *brw)
    OUT_BATCH(((brw->urb.vs_size - 1) << GEN6_URB_GS_SIZE_SHIFT) |
             ((brw->urb.nr_gs_entries) << GEN6_URB_GS_SIZE_SHIFT));
    ADVANCE_BATCH();
+
+   intel_batchbuffer_emit_mi_flush(intel->batch);
 }
 
 const struct brw_tracked_state gen6_urb = {
index 0202871..ba00e4e 100644 (file)
@@ -59,6 +59,8 @@ upload_vs_state(struct brw_context *brw)
             GEN6_VS_STATISTICS_ENABLE);
    ADVANCE_BATCH();
 
+   intel_batchbuffer_emit_mi_flush(intel->batch);
+
    if (vp->use_const_buffer || nr_params == 0) {
       /* Disable the push constant buffers. */
       BEGIN_BATCH(5);
@@ -102,6 +104,8 @@ upload_vs_state(struct brw_context *brw)
 
       drm_intel_bo_unreference(constant_bo);
    }
+
+   intel_batchbuffer_emit_mi_flush(intel->batch);
 }
 
 const struct brw_tracked_state gen6_vs_state = {