diff options
author | Thomas Hellstrom <[email protected]> | 2019-10-03 12:26:39 +0200 |
---|---|---|
committer | Thomas Hellstrom <[email protected]> | 2019-10-24 15:08:43 +0200 |
commit | 00db976905b7fcd615ccee0c13dcbf9dfe29f5ec (patch) | |
tree | 45f4715cdbb882f71916f8b65881ad21a62b8ae8 | |
parent | 3168b8defaf5b33faa1b9f53bbddae40474568c5 (diff) |
svga: Fix banded DMA upload unmap
Even with banded DMA uploads, st->hwbuf is always non-NULL, but when we've
allocated a software buffer to hold the full upload, unmapping of the
hardware buffer has already been done before
svga_texture_transfer_unmap_dma(), and the code was performing an unmap of
an already mapped buffer.
Fix this by testing for software buffer not present.
Fixes: a9c4a861d5d ("svga: refactor svga_texture_transfer_map/unmap functions")
Signed-off-by: Thomas Hellstrom <[email protected]>
Reviewed-by: Brian Paul <[email protected]>
Reviewed-by: Charmaine Lee <[email protected]>
Reviewed-by: Roland Scheidegger <[email protected]>
-rw-r--r-- | src/gallium/drivers/svga/svga_resource_texture.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/gallium/drivers/svga/svga_resource_texture.c b/src/gallium/drivers/svga/svga_resource_texture.c index b04542d711a..f1d16563efb 100644 --- a/src/gallium/drivers/svga/svga_resource_texture.c +++ b/src/gallium/drivers/svga/svga_resource_texture.c @@ -758,7 +758,7 @@ svga_texture_transfer_unmap_dma(struct svga_context *svga, { struct svga_winsys_screen *sws = svga_screen(svga->pipe.screen)->sws; - if (st->hwbuf) + if (!st->swbuf) sws->buffer_unmap(sws, st->hwbuf); if (st->base.usage & PIPE_TRANSFER_WRITE) { |