diff options
Diffstat (limited to 'drivers/gpu/drm/i915/i915_gem_execbuffer.c')
-rw-r--r-- | drivers/gpu/drm/i915/i915_gem_execbuffer.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/i915_gem_execbuffer.c index 22b4cb775576..09187286d346 100644 --- a/drivers/gpu/drm/i915/i915_gem_execbuffer.c +++ b/drivers/gpu/drm/i915/i915_gem_execbuffer.c | |||
@@ -693,9 +693,14 @@ static int eb_reserve(struct i915_execbuffer *eb) | |||
693 | eb_unreserve_vma(vma, &eb->flags[i]); | 693 | eb_unreserve_vma(vma, &eb->flags[i]); |
694 | 694 | ||
695 | if (flags & EXEC_OBJECT_PINNED) | 695 | if (flags & EXEC_OBJECT_PINNED) |
696 | /* Pinned must have their slot */ | ||
696 | list_add(&vma->exec_link, &eb->unbound); | 697 | list_add(&vma->exec_link, &eb->unbound); |
697 | else if (flags & __EXEC_OBJECT_NEEDS_MAP) | 698 | else if (flags & __EXEC_OBJECT_NEEDS_MAP) |
699 | /* Map require the lowest 256MiB (aperture) */ | ||
698 | list_add_tail(&vma->exec_link, &eb->unbound); | 700 | list_add_tail(&vma->exec_link, &eb->unbound); |
701 | else if (!(flags & EXEC_OBJECT_SUPPORTS_48B_ADDRESS)) | ||
702 | /* Prioritise 4GiB region for restricted bo */ | ||
703 | list_add(&vma->exec_link, &last); | ||
699 | else | 704 | else |
700 | list_add_tail(&vma->exec_link, &last); | 705 | list_add_tail(&vma->exec_link, &last); |
701 | } | 706 | } |
@@ -743,7 +748,7 @@ static int eb_select_context(struct i915_execbuffer *eb) | |||
743 | } | 748 | } |
744 | 749 | ||
745 | eb->context_flags = 0; | 750 | eb->context_flags = 0; |
746 | if (ctx->flags & CONTEXT_NO_ZEROMAP) | 751 | if (test_bit(UCONTEXT_NO_ZEROMAP, &ctx->user_flags)) |
747 | eb->context_flags |= __EXEC_OBJECT_NEEDS_BIAS; | 752 | eb->context_flags |= __EXEC_OBJECT_NEEDS_BIAS; |
748 | 753 | ||
749 | return 0; | 754 | return 0; |