[Mesa-dev] [RFC PATCH 12/12] i965/blorp: Add temporary work-around due to b607d57630daa7d92a84c41abfd45cacbe63f3d2

Abdiel Janulgue abdiel.janulgue at linux.intel.com
Mon Jul 8 06:17:03 PDT 2013


Address GPU hung due to skipping selection of 3D pipeline in blorp when RS
is switched on. I've yet to figure out the reason for this.

Signed-off-by: Abdiel Janulgue <abdiel.janulgue at linux.intel.com>
---
 src/mesa/drivers/dri/i965/gen6_blorp.cpp |   11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/src/mesa/drivers/dri/i965/gen6_blorp.cpp b/src/mesa/drivers/dri/i965/gen6_blorp.cpp
index a88148e..a67bdf5 100644
--- a/src/mesa/drivers/dri/i965/gen6_blorp.cpp
+++ b/src/mesa/drivers/dri/i965/gen6_blorp.cpp
@@ -50,11 +50,22 @@ gen6_blorp_emit_batch_head(struct brw_context *brw,
                            const brw_blorp_params *params)
 {
    struct gl_context *ctx = &brw->intel.ctx;
+   struct intel_context *intel = &brw->intel;
 
    /* To ensure that the batch contains only the resolve, flush the batch
     * before beginning and after finishing emitting the resolve packets.
     */
    intel_flush(ctx);
+
+   /* When we have resource streamer enabled. GPU hungs if 3D pipe
+      is not selected even if invariant state is initially selected
+      3D pipe already.*/
+   if (intel->is_haswell) {
+      /* Select the 3D pipeline (as opposed to media) */
+      BEGIN_BATCH(1);
+      OUT_BATCH(brw->CMD_PIPELINE_SELECT << 16 | 0);
+      ADVANCE_BATCH();
+   }
 }
 
 
-- 
1.7.9.5



More information about the mesa-dev mailing list