• Ben Widawsky's avatar
    drm/i915: Support 64b relocations · d9ceb957
    Ben Widawsky authored
    All the rest of the code to enable this is in my branch. Without my
    branch, hitting > 32b offsets is impossible. The code has always
    "supported" 64b, but it's never actually been run of tested. This change
    doesn't actually fix anything. [1] I am not sure why X won't work yet. I
    do not get hangs or obvious errors.
    
    There are 3 fixes grouped together here. First is to remove the
    hardcoded 0 for the upper dword of the relocation. The next fix is to
    use a 64b value for target_offset. The final fix is to not directly
    apply target_offset to reloc->delta. reloc->delta is part of ABI, and so
    we cannot change it. As it stands, 32b is enough to represent everything
    we're interested in representing anyway. The main problem is, we cannot
    add greater than 32b values to it directly.
    
    [1] Almost all of intel-gpu-tools is not yet ready to test 64b
    relocations. There are a few places that expect 32b values for offsets
    and these all won't work.
    
    Cc: Rafael Barbalho <rafael.barbalho@intel.com>
    Cc: Chris Wilson <chris@chris-wilson.co.uk>
    Signed-off-by: default avatarBen Widawsky <ben@bwidawsk.net>
    Reviewed-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    d9ceb957
i915_gem_execbuffer.c 39.3 KB