intel: Make LOCK_HARDWARE recursive to avoid hand-rolling recursiveness.
[mesa.git] / src / mesa / drivers / dri / i915 / intel_tris.c
index c4708dc7abc556dec184de58c422f367a052cc01..a905455342d0f256959d8c43d99579d991cab389 100644 (file)
@@ -89,10 +89,9 @@ intel_flush_inline_primitive(struct intel_context *intel)
 
 static void intel_start_inline(struct intel_context *intel, uint32_t prim)
 {
-   BATCH_LOCALS;
    uint32_t batch_flags = LOOP_CLIPRECTS;
+   BATCH_LOCALS;
 
-   intel_wait_flips(intel);
    intel->vtbl.emit_state(intel);
 
    intel->no_batch_wrap = GL_TRUE;
@@ -202,10 +201,10 @@ uint32_t *intel_get_prim_space(struct intel_context *intel, unsigned int count)
 /** Dispatches the accumulated primitive to the batchbuffer. */
 void intel_flush_prim(struct intel_context *intel)
 {
-   BATCH_LOCALS;
    dri_bo *aper_array[2];
    dri_bo *vb_bo;
    unsigned int offset, count;
+   BATCH_LOCALS;
 
    /* Must be called after an intel_start_prim. */
    assert(intel->prim.primitive != ~0);
@@ -214,8 +213,7 @@ void intel_flush_prim(struct intel_context *intel)
       return;
 
    /* Clear the current prims out of the context state so that a batch flush
-    * flush triggered by wait_flips or emit_state doesn't loop back to
-    * flush_prim again.
+    * flush triggered by emit_state doesn't loop back to flush_prim again.
     */
    vb_bo = intel->prim.vb_bo;
    dri_bo_reference(vb_bo);
@@ -227,8 +225,6 @@ void intel_flush_prim(struct intel_context *intel)
       intel->prim.start_offset = ALIGN(intel->prim.start_offset, 128);
    intel->prim.flush = NULL;
 
-   intel_wait_flips(intel);
-
    intel->vtbl.emit_state(intel);
 
    aper_array[0] = intel->batch->buf;
@@ -993,7 +989,7 @@ intelChooseRenderState(GLcontext * ctx)
             intel->draw_tri = intel_fallback_tri;
 
          if (flags & DD_TRI_SMOOTH) {
-           if (intel->strict_conformance)
+           if (intel->conformance_mode > 0)
               intel->draw_tri = intel_fallback_tri;
         }
 
@@ -1005,7 +1001,7 @@ intelChooseRenderState(GLcontext * ctx)
         }
 
         if (flags & DD_POINT_SMOOTH) {
-           if (intel->strict_conformance)
+           if (intel->conformance_mode > 0)
               intel->draw_point = intel_fallback_point;
         }
 
@@ -1259,11 +1255,9 @@ intel_meta_draw_poly(struct intel_context *intel,
 {
    union fi *vb;
    GLint i;
-   GLboolean was_locked = intel->locked;
    unsigned int saved_vertex_size = intel->vertex_size;
 
-   if (!was_locked)
-       LOCK_HARDWARE(intel);
+   LOCK_HARDWARE(intel);
 
    intel->vertex_size = 6;
 
@@ -1287,8 +1281,7 @@ intel_meta_draw_poly(struct intel_context *intel,
 
    intel->vertex_size = saved_vertex_size;
 
-   if (!was_locked)
-       UNLOCK_HARDWARE(intel);
+   UNLOCK_HARDWARE(intel);
 }
 
 static void