From fdd9b31fc14ab595b04e37a33684fb674658bfc3 Mon Sep 17 00:00:00 2001 From: Ilia Mirkin Date: Sat, 30 May 2020 02:47:42 -0400 Subject: [PATCH] nouveau: allow invalidating coherent/persistent buffer backings This is needed to support the core's usage of coherent buffers for glVertex-style input. The reason why this was disallowed is that any mappings will be invalidated. Let the state tracker worry about that, and just reallocate when we're told. Signed-off-by: Ilia Mirkin Reviewed-by: Karol Herbst Cc: mesa-stable@lists.freedesktop.org Part-of: (cherry picked from commit 6e1c47b98df384b46ff41ffbf9689a93c78c040d) --- .pick_status.json | 2 +- src/gallium/drivers/nouveau/nouveau_buffer.c | 5 ----- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index 5a8872fde78..7d76ae6b51a 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -3235,7 +3235,7 @@ "description": "nouveau: allow invalidating coherent/persistent buffer backings", "nominated": true, "nomination_type": 0, - "resolution": 0, + "resolution": 1, "master_sha": null, "because_sha": null }, diff --git a/src/gallium/drivers/nouveau/nouveau_buffer.c b/src/gallium/drivers/nouveau/nouveau_buffer.c index 42f68fa9bdf..abb4105099a 100644 --- a/src/gallium/drivers/nouveau/nouveau_buffer.c +++ b/src/gallium/drivers/nouveau/nouveau_buffer.c @@ -850,11 +850,6 @@ nouveau_buffer_invalidate(struct pipe_context *pipe, if (unlikely(buf->base.bind & PIPE_BIND_SHARED)) return; - /* We can't touch persistent/coherent buffers */ - if (buf->base.flags & (PIPE_RESOURCE_FLAG_MAP_PERSISTENT | - PIPE_RESOURCE_FLAG_MAP_COHERENT)) - return; - /* If the buffer is sub-allocated and not currently being written, just * wipe the valid buffer range. Otherwise we have to create fresh * storage. (We don't keep track of fences for non-sub-allocated BO's.)