search for: nouveau_transfer_staging

Displaying 2 results from an estimated 2 matches for "nouveau_transfer_staging".

2013 Dec 02
2
[PATCH] nouveau: Add lots of comments to the buffer transfer logic
...au_screen(pscreen), buf_obj_current_count, -1); } +/* Set up a staging area for the transfer. This is either done in "regular" + * system memory if the driver supports push_data (nv50+) and the data is + * small enough (and permit_pb == true), or in GART memory. + */ static uint8_t * nouveau_transfer_staging(struct nouveau_context *nv, struct nouveau_transfer *tx, boolean permit_pb) @@ -155,7 +159,10 @@ nouveau_transfer_staging(struct nouveau_context *nv, return tx->map; } -/* Maybe just migrate to GART right away if we actually need to do this. */ +/* Copies data fr...
2016 Jun 05
0
[RFC PATCH] nouveau: add locking
...nsfer *tx = MALLOC_STRUCT(nouveau_transfer); uint8_t *map; @@ -426,15 +427,20 @@ nouveau_buffer_transfer_map(struct pipe_context *pipe, align_free(buf->data); buf->data = NULL; } + pipe_mutex_lock(screen->push_mutex); nouveau_transfer_staging(nv, tx, false); + pipe_mutex_unlock(screen->push_mutex); nouveau_transfer_read(nv, tx); } else { /* The buffer is currently idle. Create a staging area for writes, * and make sure that the cached data is up-to-date. */ if...