Commit 39d571d1 authored by Chris Wilson's avatar Chris Wilson

drm/i915/gem: Take DBG_FORCE_RELOC into account prior to using reloc_gpu

If we set the debug flag to force ourselves not to relocate via the gpu,
do not relocate via the gpu.
Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: default avatarMatthew Auld <matthew.auld@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200406123616.7334-1-chris@chris-wilson.co.uk
parent 30c88a47
...@@ -1301,6 +1301,17 @@ static u32 *reloc_gpu(struct i915_execbuffer *eb, ...@@ -1301,6 +1301,17 @@ static u32 *reloc_gpu(struct i915_execbuffer *eb,
return cmd; return cmd;
} }
static inline bool use_reloc_gpu(struct i915_vma *vma)
{
if (DBG_FORCE_RELOC == FORCE_GPU_RELOC)
return true;
if (DBG_FORCE_RELOC)
return false;
return !dma_resv_test_signaled_rcu(vma->resv, true);
}
static u64 static u64
relocate_entry(struct i915_vma *vma, relocate_entry(struct i915_vma *vma,
const struct drm_i915_gem_relocation_entry *reloc, const struct drm_i915_gem_relocation_entry *reloc,
...@@ -1312,9 +1323,7 @@ relocate_entry(struct i915_vma *vma, ...@@ -1312,9 +1323,7 @@ relocate_entry(struct i915_vma *vma,
bool wide = eb->reloc_cache.use_64bit_reloc; bool wide = eb->reloc_cache.use_64bit_reloc;
void *vaddr; void *vaddr;
if (!eb->reloc_cache.vaddr && if (!eb->reloc_cache.vaddr && use_reloc_gpu(vma)) {
(DBG_FORCE_RELOC == FORCE_GPU_RELOC ||
!dma_resv_test_signaled_rcu(vma->resv, true))) {
const unsigned int gen = eb->reloc_cache.gen; const unsigned int gen = eb->reloc_cache.gen;
unsigned int len; unsigned int len;
u32 *batch; u32 *batch;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment