From dd53232667db0d4ea77adb322463340ca5507bc9 Mon Sep 17 00:00:00 2001 From: Faith Ekstrand Date: Thu, 9 Oct 2025 21:53:59 -0400 Subject: [PATCH] nouveau/winsys: Add a NOUVEAU_WS_BO_COHERENT flag Part-of: --- src/nouveau/winsys/nouveau_bo.c | 5 +++++ src/nouveau/winsys/nouveau_bo.h | 1 + 2 files changed, 6 insertions(+) diff --git a/src/nouveau/winsys/nouveau_bo.c b/src/nouveau/winsys/nouveau_bo.c index 22791e6e1d1..aa3318cf33d 100644 --- a/src/nouveau/winsys/nouveau_bo.c +++ b/src/nouveau/winsys/nouveau_bo.c @@ -114,6 +114,9 @@ nouveau_ws_bo_new_tiled_locked(struct nouveau_ws_device *dev, if (flags & NOUVEAU_WS_BO_NO_SHARE) req.info.domain |= NOUVEAU_GEM_DOMAIN_NO_SHARE; + if (flags & NOUVEAU_WS_BO_COHERENT) + req.info.domain |= NOUVEAU_GEM_DOMAIN_COHERENT; + req.info.tile_flags = (uint32_t)pte_kind << 8; req.info.tile_mode = tile_mode; @@ -195,6 +198,8 @@ nouveau_ws_bo_from_dma_buf_locked(struct nouveau_ws_device *dev, int fd) flags |= NOUVEAU_WS_BO_VRAM; if (info.domain & NOUVEAU_GEM_DOMAIN_GART) flags |= NOUVEAU_WS_BO_GART; + if (info.domain & NOUVEAU_GEM_DOMAIN_COHERENT) + flags |= NOUVEAU_WS_BO_COHERENT; if (info.map_handle) flags |= NOUVEAU_WS_BO_MAP; diff --git a/src/nouveau/winsys/nouveau_bo.h b/src/nouveau/winsys/nouveau_bo.h index 38e44f82529..d5d7de349e3 100644 --- a/src/nouveau/winsys/nouveau_bo.h +++ b/src/nouveau/winsys/nouveau_bo.h @@ -24,6 +24,7 @@ enum nouveau_ws_bo_flags { NOUVEAU_WS_BO_GART = 1 << 1, NOUVEAU_WS_BO_MAP = 1 << 2, NOUVEAU_WS_BO_NO_SHARE = 1 << 3, + NOUVEAU_WS_BO_COHERENT = 1 << 4, }; enum nouveau_ws_bo_map_flags {