• Eric Anholt's avatar
    drm/i915: Don't let a device flush to prepare buffers clear new write_domains. · efbeed96
    Eric Anholt authored
    The problem was that object_set_to_gpu_domain would set the new write_domains
    that are getting set by this batchbuffer, then the accumulated flushes required
    for all the objects in preparation for this batchbuffer were posted, and the
    brand new write domain would get cleared by the flush being posted.  Instead,
    hang on to the new (or old if we're not changing it) value and set it after
    the flush is queued.
    
    Results from this noticably included conformance test failures from reads
    shortly after writes (where the new write domain had been lost and thus not
    flushed and waited on), but is a suspected cause of hangs in some apps when
    a write domain is lost on a buffer that gets reused for instruction or
    commmand state.
    Signed-off-by: default avatarEric Anholt <eric@anholt.net>
    Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
    efbeed96
i915_gem.c 93.3 KB