intel: Add a batch flush between front-buffer downsample and X protocol.
[mesa.git] / src / mesa / drivers / dri / i965 / intel_buffers.c
index 4608471d8193ec26071ff3c85dc63475ccb8984c..2a4c9ca1a4fe63b0da9cd5f92d68d66b959ea702 100644 (file)
 
 /**
  * Check if we're about to draw into the front color buffer.
- * If so, set the intel->front_buffer_dirty field to true.
+ * If so, set the brw->front_buffer_dirty field to true.
  */
 void
-intel_check_front_buffer_rendering(struct intel_context *intel)
+intel_check_front_buffer_rendering(struct brw_context *brw)
 {
-   const struct gl_framebuffer *fb = intel->ctx.DrawBuffer;
+   struct gl_context *ctx = &brw->ctx;
+   const struct gl_framebuffer *fb = ctx->DrawBuffer;
    if (_mesa_is_winsys_fbo(fb)) {
       /* drawing to window system buffer */
       if (fb->_NumColorDrawBuffers > 0) {
          if (fb->_ColorDrawBufferIndexes[0] == BUFFER_FRONT_LEFT) {
-           intel->front_buffer_dirty = true;
+           brw->front_buffer_dirty = true;
         }
       }
    }
@@ -56,19 +57,18 @@ static void
 intelDrawBuffer(struct gl_context * ctx, GLenum mode)
 {
    if (ctx->DrawBuffer && _mesa_is_winsys_fbo(ctx->DrawBuffer)) {
-      struct intel_context *const intel = intel_context(ctx);
-      const bool was_front_buffer_rendering =
-       intel->is_front_buffer_rendering;
+      struct brw_context *const brw = brw_context(ctx);
+      const bool was_front_buffer_rendering = brw->is_front_buffer_rendering;
 
-      intel->is_front_buffer_rendering = (mode == GL_FRONT_LEFT)
+      brw->is_front_buffer_rendering = (mode == GL_FRONT_LEFT)
        || (mode == GL_FRONT) || (mode == GL_FRONT_AND_BACK);
 
       /* If we weren't front-buffer rendering before but we are now,
        * invalidate our DRI drawable so we'll ask for new buffers
        * (including the fake front) before we start rendering again.
        */
-      if (!was_front_buffer_rendering && intel->is_front_buffer_rendering)
-        dri2InvalidateDrawable(intel->driContext->driDrawablePriv);
+      if (!was_front_buffer_rendering && brw->is_front_buffer_rendering)
+        dri2InvalidateDrawable(brw->driContext->driDrawablePriv);
    }
 }
 
@@ -77,19 +77,17 @@ static void
 intelReadBuffer(struct gl_context * ctx, GLenum mode)
 {
    if (ctx->DrawBuffer && _mesa_is_winsys_fbo(ctx->DrawBuffer)) {
-      struct intel_context *const intel = intel_context(ctx);
-      const bool was_front_buffer_reading =
-       intel->is_front_buffer_reading;
+      struct brw_context *const brw = brw_context(ctx);
+      const bool was_front_buffer_reading = brw->is_front_buffer_reading;
 
-      intel->is_front_buffer_reading = (mode == GL_FRONT_LEFT)
-       || (mode == GL_FRONT);
+      brw->is_front_buffer_reading = mode == GL_FRONT_LEFT || mode == GL_FRONT;
 
       /* If we weren't front-buffer reading before but we are now,
        * invalidate our DRI drawable so we'll ask for new buffers
        * (including the fake front) before we start reading again.
        */
-      if (!was_front_buffer_reading && intel->is_front_buffer_reading)
-        dri2InvalidateDrawable(intel->driContext->driReadablePriv);
+      if (!was_front_buffer_reading && brw->is_front_buffer_reading)
+        dri2InvalidateDrawable(brw->driContext->driReadablePriv);
    }
 }