lima: use 0 to poll if BO is busy in lima_bo_wait()
authorVasily Khoruzhick <anarsoul@gmail.com>
Sun, 8 Sep 2019 02:30:39 +0000 (19:30 -0700)
committerVasily Khoruzhick <anarsoul@gmail.com>
Mon, 23 Sep 2019 02:20:59 +0000 (19:20 -0700)
os_time_get_absolute_timeout(0) returns current time, while kernel
driver expects 0 as value to poll BO status and return immediately.
Fix it by setting abs_timeout to 0 if timeout_ns is 0

Reviewed-by: Qiang Yu <yuq825@gmail.com>
Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
src/gallium/drivers/lima/lima_bo.c

index bd1f6cf8c8c9cb3d58e48fd9db218de01b8457dc..b082d32afd8317080e1b440d90ef728da58d3f72 100644 (file)
@@ -326,7 +326,13 @@ struct lima_bo *lima_bo_import(struct lima_screen *screen,
 
 bool lima_bo_wait(struct lima_bo *bo, uint32_t op, uint64_t timeout_ns)
 {
-   int64_t abs_timeout = os_time_get_absolute_timeout(timeout_ns);
+   int64_t abs_timeout;
+
+   if (timeout_ns == 0)
+      abs_timeout = 0;
+   else
+      abs_timeout = os_time_get_absolute_timeout(timeout_ns);
+
    if (abs_timeout == OS_TIMEOUT_INFINITE)
       abs_timeout = INT64_MAX;