Module: Mesa
Branch: master
Commit: f4f39fa5d9692b60a555cec8d4537f05cc93c9ac
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=f4f39fa5d9692b60a555cec8d4537f05cc93c9ac

Author: Charmaine Lee <[email protected]>
Date:   Thu Aug  9 16:22:52 2018 -0700

winsys/drm: Fix assert when try to accumulate an invalid fd

This patch makes sure there is a valid fd before merging it
to the context's fd in vmw_svga_winsys_fence_server_sync().

This fixes the assert running webot.
No regression running kmscube.

Reviewed-by: Sinclair Yeh <[email protected]>

---

 src/gallium/winsys/svga/drm/vmw_screen_svga.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/gallium/winsys/svga/drm/vmw_screen_svga.c 
b/src/gallium/winsys/svga/drm/vmw_screen_svga.c
index 7c80642b37..27a8b07016 100644
--- a/src/gallium/winsys/svga/drm/vmw_screen_svga.c
+++ b/src/gallium/winsys/svga/drm/vmw_screen_svga.c
@@ -158,8 +158,13 @@ vmw_svga_winsys_fence_server_sync(struct 
svga_winsys_screen *sws,
                                   int32_t *context_fd,
                                   struct pipe_fence_handle *fence)
 {
-   return sync_accumulate("vmwgfx", context_fd,
-                          sws->fence_get_fd(sws, fence, FALSE));
+   int32_t fd = sws->fence_get_fd(sws, fence, FALSE);
+
+   /* If we don't have fd, we don't need to merge fd into the context's fd. */
+   if (fd == -1)
+      return 0;
+
+   return sync_accumulate("vmwgfx", context_fd, fd);
 }
 
 

_______________________________________________
mesa-commit mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to