Displaying 2 results from an estimated 2 matches for "pipe_transfer_read_write".
2013 Dec 02
2
[PATCH] nouveau: Add lots of comments to the buffer transfer logic
...eturn map;
+ /* If the GPU is currently reading/writing this buffer, we shouldn't
+ * interfere with its progress. So instead we either wait for the GPU to
+ * complete its operation, or set up a staging area to perform our work in.
+ */
if (nouveau_buffer_busy(buf, usage & PIPE_TRANSFER_READ_WRITE)) {
if (unlikely(usage & PIPE_TRANSFER_DISCARD_WHOLE_RESOURCE)) {
/* Discarding was not possible, must sync because
@@ -403,6 +460,8 @@ nouveau_buffer_transfer_map(struct pipe_context *pipe,
nouveau_buffer_sync(buf, usage & PIPE_TRANSFER_READ_WRITE);
} else...
2016 Jun 05
0
[RFC PATCH] nouveau: add locking
...e,
if (unlikely(usage & PIPE_TRANSFER_DISCARD_WHOLE_RESOURCE)) {
/* Discarding was not possible, must sync because
* subsequent transfers might use UNSYNCHRONIZED. */
+ pipe_mutex_lock(screen->push_mutex);
nouveau_buffer_sync(nv, buf, usage & PIPE_TRANSFER_READ_WRITE);
+ pipe_mutex_unlock(screen->push_mutex);
} else
if (usage & PIPE_TRANSFER_DISCARD_RANGE) {
/* The whole range is being discarded, so it doesn't matter what was
@@ -488,10 +496,13 @@ nouveau_buffer_transfer_map(struct pipe_context *pipe,
map = t...