We have to do fallback when the 'Clipped Drawing Rectangle X/Y Max' exceed the hardware's limit no matter the drawing rectangle offset changed or not.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=46665 NOTE: This is a candidate for stable release branches. Signed-off-by: Yuanhan Liu <yuanhan....@linux.intel.com> --- src/mesa/drivers/dri/i915/i915_vtbl.c | 7 +++---- 1 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/mesa/drivers/dri/i915/i915_vtbl.c b/src/mesa/drivers/dri/i915/i915_vtbl.c index 11e8a35..e78dbc8 100644 --- a/src/mesa/drivers/dri/i915/i915_vtbl.c +++ b/src/mesa/drivers/dri/i915/i915_vtbl.c @@ -665,12 +665,11 @@ i915_set_draw_region(struct intel_context *intel, draw_offset = (draw_y << 16) | draw_x; + FALLBACK(intel, I915_FALLBACK_DRAW_OFFSET, + (ctx->DrawBuffer->Width + draw_x > 2048) || + (ctx->DrawBuffer->Height + draw_y > 2048)); /* When changing drawing rectangle offset, an MI_FLUSH is first required. */ if (draw_offset != i915->last_draw_offset) { - FALLBACK(intel, I915_FALLBACK_DRAW_OFFSET, - (ctx->DrawBuffer->Width + draw_x > 2048) || - (ctx->DrawBuffer->Height + draw_y > 2048)); - state->Buffer[I915_DESTREG_DRAWRECT0] = MI_FLUSH | INHIBIT_FLUSH_RENDER_CACHE; i915->last_draw_offset = draw_offset; } else -- 1.7.7 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev