From eedf3fa2f08eb774a36109c2fbda7207bf83fbe9 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Tue, 4 Mar 2008 12:16:51 -0800 Subject: [PATCH] Don't shortcut the info syscall for drmBOBusy on nonshareable objects. This broke the results when you're trying to check if a buffer you dispatched some time ago is done being rendered from. --- libdrm/xf86drm.c | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/libdrm/xf86drm.c b/libdrm/xf86drm.c index e3550de7..fb8f1c66 100644 --- a/libdrm/xf86drm.c +++ b/libdrm/xf86drm.c @@ -2799,23 +2799,18 @@ int drmBOWaitIdle(int fd, drmBO *buf, unsigned hint) } return 0; } - + int drmBOBusy(int fd, drmBO *buf, int *busy) { - if (!(buf->flags & DRM_BO_FLAG_SHAREABLE) && - !(buf->replyFlags & DRM_BO_REP_BUSY)) { - *busy = 0; - return 0; - } - else { - int ret = drmBOInfo(fd, buf); - if (ret) - return ret; - *busy = (buf->replyFlags & DRM_BO_REP_BUSY); - return 0; - } + int ret = drmBOInfo(fd, buf); + + if (ret) + return ret; + + *busy = (buf->replyFlags & DRM_BO_REP_BUSY); + return 0; } - + int drmMMInit(int fd, unsigned long pOffset, unsigned long pSize, unsigned memType) {