[Mesa-dev] [PATCH 2/2] r600: Handle failures in compute_memory_pool_finalize

Bruno Jimenez brunojimen at gmail.com
Thu Jun 19 08:12:10 PDT 2014


Hi,

To which failure are you refering? Could you please send me a
test/program that I can try to track this down?

Thanks!
Bruno

On Thu, 2014-06-19 at 10:21 -0400, Jan Vesely wrote:
> Signed-off-by: Jan Vesely <jan.vesely at rutgers.edu>
> CC: Bruno Jimenez <brunojimen at gmail.com>
> ---
> 
> The failure now hits assertion compute_memory_pool.c:408, instead of
> u_inlines.h:275:pipe_buffer_map_range: Assertion `offset < buffer->width0'
> 
>  src/gallium/drivers/r600/evergreen_compute.c | 9 +++++++--
>  1 file changed, 7 insertions(+), 2 deletions(-)
> 
> diff --git a/src/gallium/drivers/r600/evergreen_compute.c b/src/gallium/drivers/r600/evergreen_compute.c
> index a2abf15..bd6e720 100644
> --- a/src/gallium/drivers/r600/evergreen_compute.c
> +++ b/src/gallium/drivers/r600/evergreen_compute.c
> @@ -659,7 +659,10 @@ static void evergreen_set_global_binding(
>  		return;
>  	}
>  
> -	compute_memory_finalize_pending(pool, ctx_);
> +	if (compute_memory_finalize_pending(pool, ctx_) == -1) {
> +		/* XXX: Unset */
> +		return;
> +	}
>  
>  	for (int i = 0; i < n; i++)
>  	{
> @@ -967,7 +970,9 @@ void *r600_compute_global_transfer_map(
>  		"%u (box.x)\n", buffer->chunk->id, box->x);
>  
> 
> -	compute_memory_finalize_pending(pool, ctx_);
> +	if (compute_memory_finalize_pending(pool, ctx_) == -1) {
> +		return NULL;
> +	}
>  
>  	assert(resource->target == PIPE_BUFFER);
>  	assert(resource->bind & PIPE_BIND_GLOBAL);




More information about the mesa-dev mailing list