X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fgallium%2Fauxiliary%2Fpipebuffer%2Fpb_bufmgr_mm.c;h=aa989073324c7337b8f1637e59921d79d2a4b7fc;hb=0a60ebe30c186daf1fbe569e07bfe2e75f765824;hp=6400fc5b0a3b13300ed8aace4585ae0dbbdf1de5;hpb=c5c19919ce627b98d8aab4284da1694573bcccd4;p=mesa.git diff --git a/src/gallium/auxiliary/pipebuffer/pb_bufmgr_mm.c b/src/gallium/auxiliary/pipebuffer/pb_bufmgr_mm.c index 6400fc5b0a3..aa989073324 100644 --- a/src/gallium/auxiliary/pipebuffer/pb_bufmgr_mm.c +++ b/src/gallium/auxiliary/pipebuffer/pb_bufmgr_mm.c @@ -1,6 +1,6 @@ /************************************************************************** * - * Copyright 2006 Tungsten Graphics, Inc., Cedar Park, Texas. + * Copyright 2006 VMware, Inc. * All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a @@ -18,7 +18,7 @@ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. - * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR + * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. @@ -29,13 +29,13 @@ * \file * Buffer manager using the old texture memory manager. * - * \author Jose Fonseca + * \author Jose Fonseca */ #include "pipe/p_defines.h" #include "util/u_debug.h" -#include "pipe/p_thread.h" +#include "os/os_thread.h" #include "util/u_memory.h" #include "util/u_double_list.h" #include "util/u_mm.h" @@ -97,7 +97,7 @@ mm_buffer_destroy(struct pb_buffer *buf) struct mm_buffer *mm_buf = mm_buffer(buf); struct mm_pb_manager *mm = mm_buf->mgr; - assert(!pipe_is_referenced(&mm_buf->base.base.reference)); + assert(!pipe_is_referenced(&mm_buf->base.reference)); pipe_mutex_lock(mm->mutex); u_mmFreeMem(mm_buf->block); @@ -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; } @@ -189,10 +192,10 @@ mm_bufmgr_create_buffer(struct pb_manager *mgr, return NULL; } - pipe_reference_init(&mm_buf->base.base.reference, 1); - mm_buf->base.base.alignment = desc->alignment; - mm_buf->base.base.usage = desc->usage; - mm_buf->base.base.size = size; + pipe_reference_init(&mm_buf->base.reference, 1); + mm_buf->base.alignment = desc->alignment; + mm_buf->base.usage = desc->usage; + mm_buf->base.size = size; mm_buf->base.vtbl = &mm_buffer_vtbl; @@ -268,8 +271,8 @@ mm_bufmgr_create_from_buffer(struct pb_buffer *buffer, mm->buffer = buffer; mm->map = pb_map(mm->buffer, - PIPE_BUFFER_USAGE_CPU_READ | - PIPE_BUFFER_USAGE_CPU_WRITE); + PB_USAGE_CPU_READ | + PB_USAGE_CPU_WRITE, NULL); if(!mm->map) goto failure; @@ -284,8 +287,7 @@ if(mm->heap) u_mmDestroy(mm->heap); if(mm->map) pb_unmap(mm->buffer); - if(mm) - FREE(mm); + FREE(mm); return NULL; }