From: Eric Anholt Date: Tue, 4 Mar 2008 20:16:51 +0000 (-0800) Subject: Don't shortcut the info syscall for drmBOBusy on nonshareable objects. X-Git-Tag: libdrm-2.3.1~128 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=eedf3fa2f08eb774a36109c2fbda7207bf83fbe9;p=platform%2Fupstream%2Flibdrm.git 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. --- diff --git a/libdrm/xf86drm.c b/libdrm/xf86drm.c index e3550de..fb8f1c6 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) {