broadcom/vc4: Scissor blits performed using the rendering engine.
Without this, a BlitFramebuffer would mark the whole framebuffer as being changed (so we emit loads/stores of all of it) rather than just the modified subset.
This commit is contained in:
@@ -195,6 +195,15 @@ vc4_render_blit(struct pipe_context *ctx, struct pipe_blit_info *info)
|
||||
return false;
|
||||
}
|
||||
|
||||
/* Enable the scissor, so we get a minimal set of tiles rendered. */
|
||||
if (!info->scissor_enable) {
|
||||
info->scissor_enable = true;
|
||||
info->scissor.minx = info->dst.box.x;
|
||||
info->scissor.miny = info->dst.box.y;
|
||||
info->scissor.maxx = info->dst.box.x + info->dst.box.width;
|
||||
info->scissor.maxy = info->dst.box.y + info->dst.box.height;
|
||||
}
|
||||
|
||||
vc4_blitter_save(vc4);
|
||||
util_blitter_blit(vc4->blitter, info);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user