[Mesa-dev] [PATCH 1/3] gallium/radeon: add a return value to cs_flush
Christian König
deathsimple at vodafone.de
Wed Jul 13 19:02:16 UTC 2016
Am 13.07.2016 um 20:24 schrieb Marek Olšák:
> From: Marek Olšák <marek.olsak at amd.com>
Reviewed-by: Christian König <christian.koenig at amd.com> for the whole
series.
>
> Required by our UVD code.
> ---
> src/gallium/drivers/radeon/radeon_winsys.h | 8 +++++---
> src/gallium/winsys/amdgpu/drm/amdgpu_cs.c | 7 ++++---
> src/gallium/winsys/radeon/drm/radeon_drm_cs.c | 7 ++++---
> 3 files changed, 13 insertions(+), 9 deletions(-)
>
> diff --git a/src/gallium/drivers/radeon/radeon_winsys.h b/src/gallium/drivers/radeon/radeon_winsys.h
> index 090cafc..a9c9b9e 100644
> --- a/src/gallium/drivers/radeon/radeon_winsys.h
> +++ b/src/gallium/drivers/radeon/radeon_winsys.h
> @@ -733,10 +733,12 @@ struct radeon_winsys {
> * \param flags, RADEON_FLUSH_ASYNC or 0.
> * \param fence Pointer to a fence. If non-NULL, a fence is inserted
> * after the CS and is returned through this parameter.
> + * \return Negative POSIX error code or 0 for success.
> + * Asynchronous submissions never return an error.
> */
> - void (*cs_flush)(struct radeon_winsys_cs *cs,
> - unsigned flags,
> - struct pipe_fence_handle **fence);
> + int (*cs_flush)(struct radeon_winsys_cs *cs,
> + unsigned flags,
> + struct pipe_fence_handle **fence);
>
> /**
> * Return true if a buffer is referenced by a command stream.
> diff --git a/src/gallium/winsys/amdgpu/drm/amdgpu_cs.c b/src/gallium/winsys/amdgpu/drm/amdgpu_cs.c
> index 1302f29..1094c3f 100644
> --- a/src/gallium/winsys/amdgpu/drm/amdgpu_cs.c
> +++ b/src/gallium/winsys/amdgpu/drm/amdgpu_cs.c
> @@ -968,9 +968,9 @@ void amdgpu_cs_sync_flush(struct radeon_winsys_cs *rcs)
>
> DEBUG_GET_ONCE_BOOL_OPTION(noop, "RADEON_NOOP", false)
>
> -static void amdgpu_cs_flush(struct radeon_winsys_cs *rcs,
> - unsigned flags,
> - struct pipe_fence_handle **fence)
> +static int amdgpu_cs_flush(struct radeon_winsys_cs *rcs,
> + unsigned flags,
> + struct pipe_fence_handle **fence)
> {
> struct amdgpu_cs *cs = amdgpu_cs(rcs);
> struct amdgpu_winsys *ws = cs->ctx->ws;
> @@ -1069,6 +1069,7 @@ static void amdgpu_cs_flush(struct radeon_winsys_cs *rcs,
> amdgpu_get_new_ib(&ws->base, cs, IB_CONST_PREAMBLE);
>
> ws->num_cs_flushes++;
> + return 0;
> }
>
> static void amdgpu_cs_destroy(struct radeon_winsys_cs *rcs)
> diff --git a/src/gallium/winsys/radeon/drm/radeon_drm_cs.c b/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
> index ed34a2c..767c263 100644
> --- a/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
> +++ b/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
> @@ -471,9 +471,9 @@ void radeon_drm_cs_sync_flush(struct radeon_winsys_cs *rcs)
>
> DEBUG_GET_ONCE_BOOL_OPTION(noop, "RADEON_NOOP", false)
>
> -static void radeon_drm_cs_flush(struct radeon_winsys_cs *rcs,
> - unsigned flags,
> - struct pipe_fence_handle **fence)
> +static int radeon_drm_cs_flush(struct radeon_winsys_cs *rcs,
> + unsigned flags,
> + struct pipe_fence_handle **fence)
> {
> struct radeon_drm_cs *cs = radeon_drm_cs(rcs);
> struct radeon_cs_context *tmp;
> @@ -602,6 +602,7 @@ static void radeon_drm_cs_flush(struct radeon_winsys_cs *rcs,
> cs->base.current.cdw = 0;
>
> cs->ws->num_cs_flushes++;
> + return 0;
> }
>
> static void radeon_drm_cs_destroy(struct radeon_winsys_cs *rcs)
More information about the mesa-dev
mailing list