From: Lucas Fryzek Date: Thu, 2 Mar 2023 19:47:02 +0000 (-0500) Subject: zink: Add support for `get_screen_fd` X-Git-Tag: upstream/23.3.3~10669 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=29a7bc61728a390a1a259a75a0b3b656611ece4a;p=platform%2Fupstream%2Fmesa.git zink: Add support for `get_screen_fd` Reviewed-by: Mike Blumenkrantz Part-of: --- diff --git a/src/gallium/drivers/zink/zink_screen.c b/src/gallium/drivers/zink/zink_screen.c index 3e6c32d..a752862 100644 --- a/src/gallium/drivers/zink/zink_screen.c +++ b/src/gallium/drivers/zink/zink_screen.c @@ -72,6 +72,10 @@ bool zink_tracing = false; #include "MoltenVK/vk_mvk_moltenvk.h" #endif +#ifdef HAVE_LIBDRM +#include +#endif + static const struct debug_named_value zink_debug_options[] = { { "nir", ZINK_DEBUG_NIR, "Dump NIR during program compile" }, @@ -961,9 +965,15 @@ zink_get_param(struct pipe_screen *pscreen, enum pipe_cap param) return MIN2(screen->info.props.limits.maxVertexOutputComponents / 4 / 2, 16); case PIPE_CAP_DMABUF: +#if defined(HAVE_LIBDRM) && (DETECT_OS_LINUX || DETECT_OS_BSD) return screen->info.have_KHR_external_memory_fd && screen->info.have_EXT_external_memory_dma_buf && - screen->info.have_EXT_queue_family_foreign; + screen->info.have_EXT_queue_family_foreign + ? DRM_PRIME_CAP_IMPORT | DRM_PRIME_CAP_EXPORT + : 0; +#else + return 0; +#endif case PIPE_CAP_DEPTH_BOUNDS_TEST: return screen->info.feats.features.depthBounds; @@ -2669,6 +2679,14 @@ init_layouts(struct zink_screen *screen) return !!screen->gfx_push_constant_layout; } +static int +zink_screen_get_fd(struct pipe_screen *pscreen) +{ + struct zink_screen *screen = zink_screen(pscreen); + + return screen->drm_fd; +} + static struct zink_screen * zink_internal_create_screen(const struct pipe_screen_config *config) {