sna: Allow snooped buffers to be retained (and reused) between batches

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This commit is contained in:
Chris Wilson 2012-11-10 12:34:52 +00:00
parent f5d79b202d
commit 0c4a2bcc3d
1 changed files with 2 additions and 4 deletions

View File

@ -2023,10 +2023,9 @@ static void kgem_finish_buffers(struct kgem *kgem)
used = ALIGN(bo->used + PAGE_SIZE-1, PAGE_SIZE);
if (!DBG_NO_UPLOAD_ACTIVE &&
used + PAGE_SIZE <= bytes(&bo->base) &&
(kgem->has_llc || !IS_CPU_MAP(bo->base.map))) {
(kgem->has_llc || !IS_CPU_MAP(bo->base.map) || bo->base.snoop)) {
DBG(("%s: retaining upload buffer (%d/%d)\n",
__FUNCTION__, bo->used, bytes(&bo->base)));
assert(!bo->base.snoop);
bo->used = used;
list_move(&bo->base.list,
&kgem->active_buffers);
@ -4663,8 +4662,7 @@ struct kgem_bo *kgem_create_buffer(struct kgem *kgem,
assert(bo->base.io);
assert(bo->base.refcnt >= 1);
assert(bo->mmapped);
assert(!bo->base.snoop);
assert(!IS_CPU_MAP(bo->base.map) || kgem->has_llc);
assert(!IS_CPU_MAP(bo->base.map) || kgem->has_llc || bo->base.snoop);
if ((bo->write & ~flags) & KGEM_BUFFER_INPLACE) {
DBG(("%s: skip write %x buffer, need %x\n",