• Daniel Vetter's avatar
    drm/i915: Allow userspace to hint that the relocations were known · ed5982e6
    Daniel Vetter authored
    Userspace is able to hint to the kernel that its command stream and
    auxiliary state buffers already hold the correct presumed addresses and
    so the relocation process may be skipped if the kernel does not need to
    move any buffers in preparation for the execbuffer. Thus for the common
    case where the allotment of buffers is static between batches, we can
    avoid the overhead of individually checking the relocation entries.
    
    Note that this requires userspace to supply the domain tracking and
    requests for workarounds itself that would otherwise be computed based
    upon the relocation entries.
    
    Using copywinwin10 as an example that is dependent upon emitting a lot
    of relocations (2 per operation), we see improvements of:
    
    c2d/gm45: 618000.0/sec to 632000.0/sec.
    i3-330m: 748000.0/sec to 830000.0/sec.
    
    (measured relative to a baseline with neither optimisations applied).
    Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
    Reviewed-by: default avatarImre Deak <imre.deak@intel.com>
    [danvet: Fixup merge conflict in userspace header due to different
    baseline trees.]
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    ed5982e6
i915_gem_execbuffer.c 31.2 KB