intel: Remove the fence count contributions when clearing relocs
As we clear the relocs from the bo, we also need to clear the contribution of the reloc_target_bo from the fence count. Otherwise they are leaked and prevent any further relocations being added to the bo.main
parent
1dbd873700
commit
fdda97007b
|
@ -1733,9 +1733,10 @@ drm_intel_gem_bo_clear_relocs(drm_intel_bo *bo, int start)
|
|||
assert(bo_gem->reloc_count >= start);
|
||||
/* Unreference the cleared target buffers */
|
||||
for (i = start; i < bo_gem->reloc_count; i++) {
|
||||
if (bo_gem->reloc_target_info[i].bo != bo) {
|
||||
drm_intel_gem_bo_unreference_locked_timed(bo_gem->
|
||||
reloc_target_info[i].bo,
|
||||
drm_intel_bo_gem *target_bo_gem = (drm_intel_bo_gem *) bo_gem->reloc_target_info[i].bo;
|
||||
if (&target_bo_gem->bo != bo) {
|
||||
bo_gem->reloc_tree_fences -= target_bo_gem->reloc_tree_fences;
|
||||
drm_intel_gem_bo_unreference_locked_timed(&target_bo_gem->bo,
|
||||
time.tv_sec);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue