diff options
5 files changed, 14 insertions, 5 deletions
diff --git a/src/gallium/auxiliary/pipebuffer/pb_buffer_malloc.c b/src/gallium/auxiliary/pipebuffer/pb_buffer_malloc.c index b706f429be5..c2322eed19b 100644 --- a/src/gallium/auxiliary/pipebuffer/pb_buffer_malloc.c +++ b/src/gallium/auxiliary/pipebuffer/pb_buffer_malloc.c @@ -70,7 +70,8 @@ malloc_buffer_destroy(struct pb_buffer *buf) static void * malloc_buffer_map(struct pb_buffer *buf, - unsigned flags) + unsigned flags, + void *flush_ctx) { return malloc_buffer(buf)->data; } diff --git a/src/gallium/auxiliary/pipebuffer/pb_bufmgr_debug.c b/src/gallium/auxiliary/pipebuffer/pb_bufmgr_debug.c index 4a01c7371bf..7604e75af8d 100644 --- a/src/gallium/auxiliary/pipebuffer/pb_bufmgr_debug.c +++ b/src/gallium/auxiliary/pipebuffer/pb_bufmgr_debug.c @@ -158,7 +158,7 @@ pb_debug_buffer_fill(struct pb_debug_buffer *buf) { uint8_t *map; - map = pb_map(buf->buffer, PB_USAGE_CPU_WRITE); + map = pb_map(buf->buffer, PB_USAGE_CPU_WRITE, NULL); assert(map); if(map) { fill_random_pattern(map, buf->underflow_size); diff --git a/src/gallium/auxiliary/pipebuffer/pb_bufmgr_mm.c b/src/gallium/auxiliary/pipebuffer/pb_bufmgr_mm.c index f35b4ce0601..88da786216a 100644 --- a/src/gallium/auxiliary/pipebuffer/pb_bufmgr_mm.c +++ b/src/gallium/auxiliary/pipebuffer/pb_bufmgr_mm.c @@ -108,11 +108,14 @@ mm_buffer_destroy(struct pb_buffer *buf) static void * mm_buffer_map(struct pb_buffer *buf, - unsigned flags) + unsigned flags, + void *flush_ctx) { struct mm_buffer *mm_buf = mm_buffer(buf); struct mm_pb_manager *mm = mm_buf->mgr; + /* XXX: it will be necessary to remap here to propagate flush_ctx */ + return (unsigned char *) mm->map + mm_buf->block->ofs; } diff --git a/src/gallium/auxiliary/pipebuffer/pb_bufmgr_pool.c b/src/gallium/auxiliary/pipebuffer/pb_bufmgr_pool.c index 4f46cfc9e32..2f7c7389ff4 100644 --- a/src/gallium/auxiliary/pipebuffer/pb_bufmgr_pool.c +++ b/src/gallium/auxiliary/pipebuffer/pb_bufmgr_pool.c @@ -118,12 +118,14 @@ pool_buffer_destroy(struct pb_buffer *buf) static void * -pool_buffer_map(struct pb_buffer *buf, unsigned flags) +pool_buffer_map(struct pb_buffer *buf, unsigned flags, void *flush_ctx) { struct pool_buffer *pool_buf = pool_buffer(buf); struct pool_pb_manager *pool = pool_buf->mgr; void *map; + /* XXX: it will be necessary to remap here to propagate flush_ctx */ + pipe_mutex_lock(pool->mutex); map = (unsigned char *) pool->map + pool_buf->start; pipe_mutex_unlock(pool->mutex); diff --git a/src/gallium/auxiliary/pipebuffer/pb_bufmgr_slab.c b/src/gallium/auxiliary/pipebuffer/pb_bufmgr_slab.c index 275eb76bf52..176f9aa38aa 100644 --- a/src/gallium/auxiliary/pipebuffer/pb_bufmgr_slab.c +++ b/src/gallium/auxiliary/pipebuffer/pb_bufmgr_slab.c @@ -227,10 +227,13 @@ pb_slab_buffer_destroy(struct pb_buffer *_buf) static void * pb_slab_buffer_map(struct pb_buffer *_buf, - unsigned flags) + unsigned flags, + void *flush_ctx) { struct pb_slab_buffer *buf = pb_slab_buffer(_buf); + /* XXX: it will be necessary to remap here to propagate flush_ctx */ + ++buf->mapCount; return (void *) ((uint8_t *) buf->slab->virtual + buf->start); } |