From d17681d538ce86a3f8d6d1c7407df3ceb2bcc499 Mon Sep 17 00:00:00 2001 From: Francisco Jerez Date: Sat, 20 Nov 2010 14:32:45 +0100 Subject: nouveau: Add implicit pushbuf flush before gpuobj destruction. It makes sure that GPU object destruction is executed in order with respect to the previous FIFO commands. Signed-off-by: Francisco Jerez Acked-by: Ben Skeggs --- nouveau/nouveau_grobj.c | 2 ++ nouveau/nouveau_notifier.c | 2 ++ 2 files changed, 4 insertions(+) diff --git a/nouveau/nouveau_grobj.c b/nouveau/nouveau_grobj.c index 2b6e53a5..df2ffb91 100644 --- a/nouveau/nouveau_grobj.c +++ b/nouveau/nouveau_grobj.c @@ -99,6 +99,8 @@ nouveau_grobj_free(struct nouveau_grobj **grobj) if (nvgrobj->base.grclass) { struct drm_nouveau_gpuobj_free f; + FIRE_RING(&chan->base); + f.channel = chan->drm.channel; f.handle = nvgrobj->base.handle; drmCommandWrite(nvdev->fd, DRM_NOUVEAU_GPUOBJ_FREE, diff --git a/nouveau/nouveau_notifier.c b/nouveau/nouveau_notifier.c index f8cfd8b9..513fa635 100644 --- a/nouveau/nouveau_notifier.c +++ b/nouveau/nouveau_notifier.c @@ -80,6 +80,8 @@ nouveau_notifier_free(struct nouveau_notifier **notifier) nvchan = nouveau_channel(nvnotify->base.channel); nvdev = nouveau_device(nvchan->base.device); + FIRE_RING(&nvchan->base); + f.channel = nvchan->drm.channel; f.handle = nvnotify->base.handle; drmCommandWrite(nvdev->fd, DRM_NOUVEAU_GPUOBJ_FREE, &f, sizeof(f)); -- cgit v1.2.3