Skip to content

Commit 7226572

Browse files
tursulindanvet
authored andcommitted
drm/i915: Reserve shadow batch VMA analogue to others
If not pinned VMA can become an eviction target just before it needs to be executed which breaks the internal object lifetime rules. Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=87399 Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
1 parent c9dc0f3 commit 7226572

File tree

1 file changed

+2
-0
lines changed

1 file changed

+2
-0
lines changed

drivers/gpu/drm/i915/i915_gem_execbuffer.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1084,6 +1084,7 @@ i915_gem_execbuffer_parse(struct intel_engine_cs *ring,
10841084
{
10851085
struct drm_i915_private *dev_priv = to_i915(batch_obj->base.dev);
10861086
struct drm_i915_gem_object *shadow_batch_obj;
1087+
bool need_reloc = false;
10871088
int ret;
10881089

10891090
shadow_batch_obj = i915_gem_batch_pool_get(&dev_priv->mm.batch_pool,
@@ -1109,6 +1110,7 @@ i915_gem_execbuffer_parse(struct intel_engine_cs *ring,
11091110
vma->exec_entry = shadow_exec_entry;
11101111
vma->exec_entry->flags = __EXEC_OBJECT_PURGEABLE;
11111112
drm_gem_object_reference(&shadow_batch_obj->base);
1113+
i915_gem_execbuffer_reserve_vma(vma, ring, &need_reloc);
11121114
list_add_tail(&vma->exec_list, &eb->vmas);
11131115

11141116
shadow_batch_obj->base.pending_read_domains =

0 commit comments

Comments
 (0)