Comment 15 for bug 761065

Revision history for this message
Felix Engemann (felix-engemann) wrote :

@AceLan Kao

I think I found the i915 patch, which would fix this bug (along with a lot of other documented i915 fixes):

from (http://www.kernel.org/pub/linux/kernel/v2.6/testing/ChangeLog-2.6.39-rc1)

commit 36d527deadf7d0c302e3452dde39465e74a65a08
Author: Chris Wilson <email address hidden>
Date: Sat Mar 19 22:26:49 2011 +0000

    drm/i915: Restore missing command flush before interrupt on BLT ring

    We always skipped flushing the BLT ring if the request flush did not
    include the RENDER domain. However, this neglects that we try to flush
    the COMMAND domain after every batch and before the breadcrumb interrupt
    (to make sure the batch is indeed completed prior to the interrupt
    firing and so insuring CPU coherency). As a result of the missing flush,
    incoherency did indeed creep in, most notable when using lots of command
    buffers and so potentially rewritting an active command buffer (i.e.
    the GPU was still executing from it even though the following interrupt
    had already fired and the request/buffer retired).

    As all ring->flush routines now have the same preconditions, de-duplicate
    and move those checks up into i915_gem_flush_ring().

    Fixes gem_linear_blit.

    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=35284
    Signed-off-by: Chris Wilson <email address hidden>
    Reviewed-by: Daniel Vetter <email address hidden>
    Tested-by: <email address hidden>