diff options
author | Russell King <rmk@arm.linux.org.uk> | 2015-12-08 14:25:16 +0000 |
---|---|---|
committer | Russell King <rmk@arm.linux.org.uk> | 2015-12-08 14:25:43 +0000 |
commit | 82ea3195d9297b387d74454b26c0bc1a50d9870a (patch) | |
tree | 2273cb6591b5ee90f4f9208212405026ecf0d364 | |
parent | 0a88716af901c5e4137dfa89e50ece12e1e5ae28 (diff) |
etnaviv: add support for non-blocking fence queries
Add the missing piece of "adapt to changed fence/gem wait DRM UAPI" to
allow us to test for fence completion without hitting the slower kernel
paths.
Signed-off-by: Russell King <rmk@arm.linux.org.uk>
-rw-r--r-- | etnaviv/etnadrm.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/etnaviv/etnadrm.c b/etnaviv/etnadrm.c index a49e08e..21d6593 100644 --- a/etnaviv/etnadrm.c +++ b/etnaviv/etnadrm.c @@ -300,6 +300,8 @@ int viv_fence_finish(struct viv_conn *conn, uint32_t fence, uint32_t timeout) memset(&req, 0, sizeof(req.r20151126)); req.r20151126.pipe = to_etna_viv_conn(conn)->etnadrm_pipe; req.r20151126.fence = fence; + if (timeout == 0) + req.r20151126.flags |= ETNA_WAIT_NONBLOCK; etnadrm_convert_timeout(&req.r20151126.timeout, timeout); ret = drmCommandWrite(conn->fd, DRM_ETNAVIV_WAIT_FENCE, &req.r20151126, sizeof(req.r20151126)); @@ -344,6 +346,8 @@ static int etna_bo_gem_wait(struct etna_bo *bo, uint32_t timeout) memset(&req, 0, sizeof(req.r20151126)); req.r20151126.pipe = to_etna_viv_conn(conn)->etnadrm_pipe; req.r20151126.handle = bo->handle; + if (timeout == 0) + req.r20151126.flags |= ETNA_WAIT_NONBLOCK; etnadrm_convert_timeout(&req.r20151126.timeout, timeout); return drmCommandWrite(conn->fd, DRM_ETNAVIV_GEM_WAIT, &req.r20151126, sizeof(req.r20151126)); |