summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIlia Mirkin <imirkin@alum.mit.edu>2020-05-30 02:47:42 -0400
committerDylan Baker <dylan.c.baker@intel.com>2020-06-01 13:52:20 -0700
commite5257b88f428b6eae5501dcc98d2f91a18ed9556 (patch)
tree3200fba62c627cc7fb06e917c0c40b58e62b0b6e
parentf27e8fc0b3f5b0becf05991253af0ed131708e5d (diff)
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 <imirkin@alum.mit.edu> Reviewed-by: Karol Herbst <kherbst@redhat.com> Cc: mesa-stable@lists.freedesktop.org Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5276> (cherry picked from commit 6e1c47b98df384b46ff41ffbf9689a93c78c040d)
-rw-r--r--.pick_status.json2
-rw-r--r--src/gallium/drivers/nouveau/nouveau_buffer.c5
2 files changed, 1 insertions, 6 deletions
diff --git a/.pick_status.json b/.pick_status.json
index ef71127380a..df57c13a527 100644
--- a/.pick_status.json
+++ b/.pick_status.json
@@ -319,7 +319,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.)