radeonsi: Use dma_copy when possible for si_blit.
This improves GLX DRI3 GPU offloading significantly on CPU bound benchmarks particularly. No performance impact for DRI2 GPU offloading. v2: Add missing tests Signed-off-by: Axel Davy <axel.davy@ens.fr> Reviewed-by: Marek Olšák<marek.olsak@amd.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
parent
9320c8fea9
commit
5d5c20920e
|
@ -730,6 +730,25 @@ static void si_blit(struct pipe_context *ctx,
|
|||
return;
|
||||
}
|
||||
|
||||
if (info->src.box.width == info->dst.box.width &&
|
||||
info->src.box.height == info->dst.box.height &&
|
||||
info->src.format == info->dst.format &&
|
||||
info->src.box.width > 0 &&
|
||||
info->src.box.height > 0 &&
|
||||
info->src.resource->nr_samples <= 1 &&
|
||||
info->dst.resource->nr_samples <= 1 &&
|
||||
info->src.box.depth == info->dst.box.depth &&
|
||||
info->mask == PIPE_MASK_RGBA &&
|
||||
!info->scissor_enable &&
|
||||
(!info->render_condition_enable ||
|
||||
!sctx->b.current_render_cond)) {
|
||||
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;
|
||||
}
|
||||
|
||||
assert(util_blitter_is_blit_supported(sctx->blitter, info));
|
||||
|
||||
/* The driver doesn't decompress resources automatically while
|
||||
|
|
Loading…
Reference in New Issue