[Mesa-dev] [PATCH 2/3] r600g/compute: Use the GFX ring for compute

Christian König deathsimple at vodafone.de
Sun Apr 28 02:45:20 PDT 2013


Am 26.04.2013 19:21, schrieb Tom Stellard:
> From: Tom Stellard <thomas.stellard at amd.com>
>
> Only Cayman has a separate compute ring, but it has some hw bugs, so to
> be safe we will stick with the GFX.

The other two patches look good, but this one is a NAK.

The fact that the Cayman compute rings are buggy should be handled in 
the kernel. Currently they shouldn't be used anyway cause the kernel 
doesn't activate them. On the other hand I've wrote a workaround to 
activate them safely month ago while hacking on the multiring support.

Christian.

> ---
>   src/gallium/drivers/r600/evergreen_compute.c | 4 +++-
>   1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/src/gallium/drivers/r600/evergreen_compute.c b/src/gallium/drivers/r600/evergreen_compute.c
> index 8f19dfc..f784bdb 100644
> --- a/src/gallium/drivers/r600/evergreen_compute.c
> +++ b/src/gallium/drivers/r600/evergreen_compute.c
> @@ -421,7 +421,9 @@ static void compute_emit_cs(struct r600_context *ctx, const uint *block_layout,
>   	}
>   #endif
>   
> -	flush_flags = RADEON_FLUSH_ASYNC | RADEON_FLUSH_COMPUTE;
> +	/* We are not using the compute ring on Cayman, because it has some
> +	 * hw bugs related to shader dispatch. */
> +	flush_flags = RADEON_FLUSH_ASYNC;
>   	if (ctx->keep_tiling_flags) {
>   		flush_flags |= RADEON_FLUSH_KEEP_TILING_FLAGS;
>   	}



More information about the mesa-dev mailing list