[Mesa-dev] [PATCH 1/3] radeon/video: always use the reusable buffer pool

Christian König deathsimple at vodafone.de
Sat Apr 23 13:09:19 UTC 2016


Am 23.04.2016 um 06:01 schrieb Nicolai Hähnle:
> From: Nicolai Hähnle <nicolai.haehnle at amd.com>
>
> A semantic error was introduced in a past refactoring that caused the bind
> parameter to be passed into the use_reusable_pool parameter of buffer_create.
> Since this clearly makes no sense, and there is no clear reason why the
> cache _shouldn't_ be used, just use the cache always.
>
> Cc: Christian König <christian.koenig at amd.com>

Nice catch. Patch is Reviewed-by: Christian König <christian.koenig at amd.com>

Christian.

> ---
>   src/gallium/drivers/r600/r600_uvd.c       | 2 +-
>   src/gallium/drivers/radeon/radeon_video.c | 4 ++--
>   src/gallium/drivers/radeon/radeon_video.h | 2 +-
>   src/gallium/drivers/radeonsi/si_uvd.c     | 2 +-
>   4 files changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/src/gallium/drivers/r600/r600_uvd.c b/src/gallium/drivers/r600/r600_uvd.c
> index 0c92834..628ba2a 100644
> --- a/src/gallium/drivers/r600/r600_uvd.c
> +++ b/src/gallium/drivers/r600/r600_uvd.c
> @@ -115,7 +115,7 @@ struct pipe_video_buffer *r600_video_buffer_create(struct pipe_context *pipe,
>   		surfaces[i] = &resources[i]->surface;
>   	}
>   
> -	rvid_join_surfaces(ctx->b.ws, templ.bind, pbs, surfaces);
> +	rvid_join_surfaces(ctx->b.ws, pbs, surfaces);
>   
>   	for (i = 0; i < VL_NUM_COMPONENTS; ++i) {
>   		if (!resources[i])
> diff --git a/src/gallium/drivers/radeon/radeon_video.c b/src/gallium/drivers/radeon/radeon_video.c
> index 24b0eed..8dd32ea 100644
> --- a/src/gallium/drivers/radeon/radeon_video.c
> +++ b/src/gallium/drivers/radeon/radeon_video.c
> @@ -130,7 +130,7 @@ void rvid_clear_buffer(struct pipe_context *context, struct rvid_buffer* buffer)
>    * join surfaces into the same buffer with identical tiling params
>    * sumup their sizes and replace the backend buffers with a single bo
>    */
> -void rvid_join_surfaces(struct radeon_winsys* ws, unsigned bind,
> +void rvid_join_surfaces(struct radeon_winsys* ws,
>   			struct pb_buffer** buffers[VL_NUM_COMPONENTS],
>   			struct radeon_surf *surfaces[VL_NUM_COMPONENTS])
>   {
> @@ -185,7 +185,7 @@ void rvid_join_surfaces(struct radeon_winsys* ws, unsigned bind,
>   	/* TODO: 2D tiling workaround */
>   	alignment *= 2;
>   
> -	pb = ws->buffer_create(ws, size, alignment, bind, RADEON_DOMAIN_VRAM, 0);
> +	pb = ws->buffer_create(ws, size, alignment, TRUE, RADEON_DOMAIN_VRAM, 0);
>   	if (!pb)
>   		return;
>   
> diff --git a/src/gallium/drivers/radeon/radeon_video.h b/src/gallium/drivers/radeon/radeon_video.h
> index c9ee67f..39305b4 100644
> --- a/src/gallium/drivers/radeon/radeon_video.h
> +++ b/src/gallium/drivers/radeon/radeon_video.h
> @@ -66,7 +66,7 @@ void rvid_clear_buffer(struct pipe_context *context, struct rvid_buffer* buffer)
>   
>   /* join surfaces into the same buffer with identical tiling params
>      sumup their sizes and replace the backend buffers with a single bo */
> -void rvid_join_surfaces(struct radeon_winsys* ws, unsigned bind,
> +void rvid_join_surfaces(struct radeon_winsys* ws,
>                           struct pb_buffer** buffers[VL_NUM_COMPONENTS],
>                           struct radeon_surf *surfaces[VL_NUM_COMPONENTS]);
>   
> diff --git a/src/gallium/drivers/radeonsi/si_uvd.c b/src/gallium/drivers/radeonsi/si_uvd.c
> index 95bfecd..8c3e5fd 100644
> --- a/src/gallium/drivers/radeonsi/si_uvd.c
> +++ b/src/gallium/drivers/radeonsi/si_uvd.c
> @@ -97,7 +97,7 @@ struct pipe_video_buffer *si_video_buffer_create(struct pipe_context *pipe,
>   		pbs[i] = &resources[i]->resource.buf;
>   	}
>   
> -	rvid_join_surfaces(ctx->b.ws, templ.bind, pbs, surfaces);
> +	rvid_join_surfaces(ctx->b.ws, pbs, surfaces);
>   
>   	for (i = 0; i < VL_NUM_COMPONENTS; ++i) {
>   		if (!resources[i])



More information about the mesa-dev mailing list