On Thursday 30 January 2014, Marek Olšák wrote:
> From: Marek Olšák <marek.ol...@amd.com>
> 
> ---
>  src/gallium/auxiliary/util/u_upload_mgr.c | 10 ++++------
>  1 file changed, 4 insertions(+), 6 deletions(-)
> 
> diff --git a/src/gallium/auxiliary/util/u_upload_mgr.c 
> b/src/gallium/auxiliary/util/u_upload_mgr.c
> index ccaab27..80ad5c3 100644
> --- a/src/gallium/auxiliary/util/u_upload_mgr.c
> +++ b/src/gallium/auxiliary/util/u_upload_mgr.c
> @@ -50,7 +50,6 @@ struct u_upload_mgr {
>     struct pipe_resource *buffer;   /* Upload buffer. */
>     struct pipe_transfer *transfer; /* Transfer object for the upload buffer. 
> */
>     uint8_t *map;    /* Pointer to the mapped upload buffer. */
> -   unsigned size;   /* Actual size of the upload buffer. */
>     unsigned offset; /* Aligned offset to the upload buffer, pointing
>                       * at the first unused byte. */
>  };
> @@ -120,7 +119,6 @@ static void u_upload_release_buffer(struct u_upload_mgr 
> *upload)
>     /* Unmap and unreference the upload buffer. */
>     upload_unmap_internal(upload, TRUE);
>     pipe_resource_reference( &upload->buffer, NULL );
> -   upload->size = 0;
>  }
>  
>  
> @@ -173,12 +171,10 @@ u_upload_alloc_buffer( struct u_upload_mgr *upload,
>                                         &upload->transfer);
>     if (upload->map == NULL) {
>        upload->transfer = NULL;
> -      upload->size = 0;
>        pipe_resource_reference(&upload->buffer, NULL);
>        return PIPE_ERROR_OUT_OF_MEMORY;
>     }
>  
> -   upload->size = size;
>     upload->offset = 0;
>     return PIPE_OK;
>  }
> @@ -203,7 +199,8 @@ enum pipe_error u_upload_alloc( struct u_upload_mgr 
> *upload,
>  
>     /* Make sure we have enough space in the upload buffer
>      * for the sub-allocation. */
> -   if (MAX2(upload->offset, alloc_offset) + alloc_size > upload->size) {
> +   if (!upload->buffer ||
> +       MAX2(upload->offset, alloc_offset) + alloc_size > 
> upload->buffer->width0) {
>        enum pipe_error ret = u_upload_alloc_buffer(upload,
>                                                    alloc_offset + alloc_size);
>        if (ret != PIPE_OK)
> @@ -214,7 +211,8 @@ enum pipe_error u_upload_alloc( struct u_upload_mgr 
> *upload,
>  
>     if (!upload->map) {
>        upload->map = pipe_buffer_map_range(upload->pipe, upload->buffer,
> -                                       offset, upload->size - offset,
> +                                          offset,
> +                                          upload->buffer->width0 - offset,
>                                            upload->map_flags,
>                                         &upload->transfer);
>        if (!upload->map) {
> 

Reviewed-by: Fredrik Höglund <fred...@kde.org>


_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to