[Mesa-dev] [PATCH 11/11] Radeonsi: Use dma_copy when possible for si_blit.

Axel Davy axel.davy at ens.fr
Wed May 28 05:13:18 PDT 2014


On 28/05/2014 04:40, Michel Dänzer wrote :
> On 28.05.2014 09:55, Axel Davy wrote:
>> This improves GLX DRI3 Gpu offloading significantly on cpu
>> bound benchmarks particularly.
>> No performance impact for DRI2 Gpu offloading.
>>
>> Signed-off-by: Axel Davy <axel.davy at ens.fr>
>> ---
>>   src/gallium/drivers/radeonsi/si_blit.c | 15 +++++++++++++++
>>   1 file changed, 15 insertions(+)
>>
>> diff --git a/src/gallium/drivers/radeonsi/si_blit.c b/src/gallium/drivers/radeonsi/si_blit.c
>> index 6bc89ab..0e327b5 100644
>> --- a/src/gallium/drivers/radeonsi/si_blit.c
>> +++ b/src/gallium/drivers/radeonsi/si_blit.c
>> @@ -712,6 +712,21 @@ static void si_blit(struct pipe_context *ctx,
>>   		return;
>>   	}
>>   
>> +	if (info->src.box.width ==  info->dst.box.width &&
> You need to check info->src.box.height == info->dst.box.height as well.
Oh I missed that. Thanks for pointing out
>
>
>> +	    info->src.format == info->dst.format &&
>> +	    info->src.box.width >=0 &&
> Missing space between operator and operand.
>
>
>> +	    info->src.resource->nr_samples == 0 &&
>> +	    info->dst.resource->nr_samples == 0 &&
>> +	    info->src.box.depth == 1 &&
>> +	    info->dst.box.depth == 1 &&
>> +	    info->mask == PIPE_MASK_RGBA) {
>> +		sctx->b.dma_copy(ctx, info->dst.resource, info->dst.level,
>> +				 info->dst.box.x, info->dst.box.y,
>> +				 info->dst.box.z, info->src.resource,
>> +				 info->src.level, &(info->src.box));
>> +		return;
>> +	}
> Even with that fixed, this change breaks a number of scissor related
> piglit tests because it ignores info->scissor{_enable,}. You need to
> either fall back or factor in info->scissor if info->scissor_enable is on.
>
> Might be safer to fall back for info->render_condition_enable as well.
>
>
Thanks, I'll take a look at it.

Axel Davy


More information about the mesa-dev mailing list