From 1536b7e9a8d56852947279154aa0240df433f3d9 Mon Sep 17 00:00:00 2001 From: "Juan A. Suarez Romero" Date: Wed, 28 Aug 2024 16:55:29 +0200 Subject: [PATCH] v3d/v3dv: build simulator references conditionally Instead of checking on run time if simulator is available or not, do it at build time. Reviewed-by: Jose Maria Casanova Crespo Signed-off-by: Juan A. Suarez Romero Part-of: --- src/broadcom/vulkan/v3dv_private.h | 9 +++++---- src/gallium/drivers/v3d/v3d_bufmgr.c | 7 +++++-- src/gallium/drivers/v3d/v3d_context.h | 9 +++++---- src/gallium/drivers/v3d/v3d_resource.c | 5 +++-- 4 files changed, 18 insertions(+), 12 deletions(-) diff --git a/src/broadcom/vulkan/v3dv_private.h b/src/broadcom/vulkan/v3dv_private.h index a02ca4c2968..2b8239ca936 100644 --- a/src/broadcom/vulkan/v3dv_private.h +++ b/src/broadcom/vulkan/v3dv_private.h @@ -2564,10 +2564,11 @@ VK_DEFINE_NONDISP_HANDLE_CASTS(v3dv_sampler, base, VkSampler, static inline int v3dv_ioctl(int fd, unsigned long request, void *arg) { - if (USE_V3D_SIMULATOR) - return v3d_simulator_ioctl(fd, request, arg); - else - return drmIoctl(fd, request, arg); +#if USE_V3D_SIMULATOR + return v3d_simulator_ioctl(fd, request, arg); +#else + return drmIoctl(fd, request, arg); +#endif } /* Flags OOM conditions in command buffer state. diff --git a/src/gallium/drivers/v3d/v3d_bufmgr.c b/src/gallium/drivers/v3d/v3d_bufmgr.c index 23fbcf48456..ba955dc199f 100644 --- a/src/gallium/drivers/v3d/v3d_bufmgr.c +++ b/src/gallium/drivers/v3d/v3d_bufmgr.c @@ -201,10 +201,13 @@ v3d_bo_free(struct v3d_bo *bo) struct v3d_screen *screen = bo->screen; if (bo->map) { - if (USE_V3D_SIMULATOR && bo->name && +#if USE_V3D_SIMULATOR + if (bo->name && strcmp(bo->name, "winsys") == 0) { free(bo->map); - } else { + } else +#endif + { munmap(bo->map, bo->size); VG(VALGRIND_FREELIKE_BLOCK(bo->map, 0)); } diff --git a/src/gallium/drivers/v3d/v3d_context.h b/src/gallium/drivers/v3d/v3d_context.h index 63fb0ffefbb..67949614c0a 100644 --- a/src/gallium/drivers/v3d/v3d_context.h +++ b/src/gallium/drivers/v3d/v3d_context.h @@ -745,10 +745,11 @@ void v3d_query_init(struct pipe_context *pctx); static inline int v3d_ioctl(int fd, unsigned long request, void *arg) { - if (USE_V3D_SIMULATOR) - return v3d_simulator_ioctl(fd, request, arg); - else - return drmIoctl(fd, request, arg); +#if USE_V3D_SIMULATOR + return v3d_simulator_ioctl(fd, request, arg); +#else + return drmIoctl(fd, request, arg); +#endif } static inline bool diff --git a/src/gallium/drivers/v3d/v3d_resource.c b/src/gallium/drivers/v3d/v3d_resource.c index d582164ad53..c680962ac16 100644 --- a/src/gallium/drivers/v3d/v3d_resource.c +++ b/src/gallium/drivers/v3d/v3d_resource.c @@ -812,9 +812,10 @@ v3d_resource_create_with_modifiers(struct pipe_screen *pscreen, /* Scanout BOs for simulator need to be linear for interaction with * i965. */ - if (USE_V3D_SIMULATOR && - tmpl->bind & (PIPE_BIND_SHARED | PIPE_BIND_SCANOUT)) +#if USE_V3D_SIMULATOR + if (tmpl->bind & PIPE_BIND_SHARED) should_tile = false; +#endif /* If using the old-school SCANOUT flag, we don't know what the screen * might support other than linear. Just force linear.