radeonsi: fix EXPLICIT_FLUSH for flush offsets > 0

Cc: 18.3 19.0 <mesa-stable@lists.freedesktop.org>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
This commit is contained in:
Marek Olšák 2019-02-01 17:10:46 -05:00
parent 4522f01d4e
commit 61c678d4bc
1 changed files with 5 additions and 2 deletions

View File

@ -525,10 +525,13 @@ static void si_buffer_do_flush_region(struct pipe_context *ctx,
struct si_resource *buf = si_resource(transfer->resource);
if (stransfer->staging) {
unsigned src_offset = stransfer->offset +
transfer->box.x % SI_MAP_BUFFER_ALIGNMENT +
(box->x - transfer->box.x);
/* Copy the staging buffer into the original one. */
si_copy_buffer((struct si_context*)ctx, transfer->resource,
&stransfer->staging->b.b, box->x,
stransfer->offset + box->x % SI_MAP_BUFFER_ALIGNMENT,
&stransfer->staging->b.b, box->x, src_offset,
box->width);
}