static bool download_inplace(struct kgem *kgem, struct kgem_bo *bo) { if (!kgem_bo_can_map(kgem, bo)) return false; if (FORCE_INPLACE) return FORCE_INPLACE > 0; return !__kgem_bo_is_busy(kgem, bo) || bo->tiling == I915_TILING_NONE; }
static bool download_inplace(struct kgem *kgem, PixmapPtr p, struct kgem_bo *bo, const BoxRec *box, int nbox) { bool cpu; if (unlikely(kgem->wedged)) return true; cpu = download_inplace__cpu(kgem, p, bo, box, nbox); if (!cpu && !kgem_bo_can_map(kgem, bo)) return false; if (FORCE_INPLACE) return FORCE_INPLACE > 0; if (kgem->can_blt_cpu && kgem->max_cpu_size) return false; return !__kgem_bo_is_busy(kgem, bo) || cpu; }