Module: Mesa Branch: main Commit: 9ec9289385e873e0c970fb6f7fe95ef9c9b4425a URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=9ec9289385e873e0c970fb6f7fe95ef9c9b4425a
Author: Mike Blumenkrantz <[email protected]> Date: Thu Sep 9 20:46:07 2021 -0400 zink: add dmabuf fd handling just gotta get it out of the underlying graphics layer Reviewed-by: Dave Airlie <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11967> --- src/gallium/drivers/zink/zink_resource.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/zink/zink_resource.c b/src/gallium/drivers/zink/zink_resource.c index 824132318d3..460f946c5c0 100644 --- a/src/gallium/drivers/zink/zink_resource.c +++ b/src/gallium/drivers/zink/zink_resource.c @@ -50,6 +50,7 @@ #endif #ifdef ZINK_USE_DMABUF +#include <xf86drm.h> #include "drm-uapi/drm_fourcc.h" #else /* these won't actually be used */ @@ -906,7 +907,10 @@ zink_resource_get_handle(struct pipe_screen *pscreen, fd_info.sType = VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR; //TODO: remove for wsi fd_info.memory = zink_bo_get_mem(obj->bo); - fd_info.handleType = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT; + if (whandle->type == WINSYS_HANDLE_TYPE_FD) + fd_info.handleType = VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT; + else + fd_info.handleType = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT; VkResult result = VKSCR(GetMemoryFdKHR)(screen->dev, &fd_info, &fd); if (result != VK_SUCCESS) return false;
