From fdd960a95cca00b19d912a437a2ca3e69fee017e Mon Sep 17 00:00:00 2001 From: Ben Skeggs Date: Mon, 19 Oct 2009 09:04:37 +1000 Subject: nouveau: function to return status of bo being referenced in pushbuf Will be used to implement gallium's is_{texture,buffer}_referenced() callbacks properly. Signed-off-by: Ben Skeggs --- libdrm/nouveau/nouveau_bo.c | 18 ++++++++++++++++++ libdrm/nouveau/nouveau_bo.h | 3 +++ 2 files changed, 21 insertions(+) (limited to 'libdrm') diff --git a/libdrm/nouveau/nouveau_bo.c b/libdrm/nouveau/nouveau_bo.c index 520d5d73..b7e6d867 100644 --- a/libdrm/nouveau/nouveau_bo.c +++ b/libdrm/nouveau/nouveau_bo.c @@ -552,6 +552,24 @@ nouveau_bo_busy(struct nouveau_bo *bo, uint32_t access) return nouveau_bo_wait(bo, (access & NOUVEAU_BO_WR), 1, 1); } +uint32_t +nouveau_bo_pending(struct nouveau_bo *bo) +{ + struct nouveau_bo_priv *nvbo = nouveau_bo(bo); + uint32_t flags; + + if (!nvbo->pending) + return 0; + + flags = 0; + if (nvbo->pending->read_domains) + flags |= NOUVEAU_BO_RD; + if (nvbo->pending->write_domains) + flags |= NOUVEAU_BO_WR; + + return flags; +} + struct drm_nouveau_gem_pushbuf_bo * nouveau_bo_emit_buffer(struct nouveau_channel *chan, struct nouveau_bo *bo) { diff --git a/libdrm/nouveau/nouveau_bo.h b/libdrm/nouveau/nouveau_bo.h index 97ad2d7b..fdad63ef 100644 --- a/libdrm/nouveau/nouveau_bo.h +++ b/libdrm/nouveau/nouveau_bo.h @@ -106,4 +106,7 @@ nouveau_bo_unpin(struct nouveau_bo *); int nouveau_bo_busy(struct nouveau_bo *, uint32_t access); +uint32_t +nouveau_bo_pending(struct nouveau_bo *); + #endif -- cgit v1.2.3