summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCharmaine Lee <[email protected]>2016-09-29 16:41:21 -0700
committerBrian Paul <[email protected]>2016-11-03 14:29:22 -0600
commit4750c4e5439f5c2689051ac072003cc3a2ff5c1b (patch)
treeffbd0d35266e5e3ae80695c589e94ca7c4e20692
parent03e1b7cacdf3b595262e50679a83544549c61b3d (diff)
svga: set rendered_to flag with texture uploaded using TransferFromBuffer command
This patch sets the rendered_to flag for the texture subresource that is uploaded using the TransferFromBuffer command. This is to ensure that the subresource will be read back or invalidated before it will be directly mapped to. This makes sure that the content of the GB surface will not be accidentally overwritten by the device at suspend/resume time. Reviewed-by: Brian Paul <[email protected]>
-rw-r--r--src/gallium/drivers/svga/svga_resource_texture.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/gallium/drivers/svga/svga_resource_texture.c b/src/gallium/drivers/svga/svga_resource_texture.c
index fc5c3741b54..5792961ae28 100644
--- a/src/gallium/drivers/svga/svga_resource_texture.c
+++ b/src/gallium/drivers/svga/svga_resource_texture.c
@@ -1427,6 +1427,7 @@ svga_texture_transfer_unmap_upload(struct svga_context *svga,
struct svga_winsys_surface *srcsurf;
struct svga_winsys_surface *dstsurf;
struct pipe_resource *texture = st->base.resource;
+ struct svga_texture *tex = svga_texture(texture);
enum pipe_error ret;
unsigned subResource;
unsigned numMipLevels;
@@ -1468,6 +1469,9 @@ svga_texture_transfer_unmap_upload(struct svga_context *svga,
assert(ret == PIPE_OK);
}
offset += st->base.layer_stride;
+
+ /* Set rendered-to flag */
+ svga_set_texture_rendered_to(tex, layer, st->base.level);
}
pipe_resource_reference(&st->upload.buf, NULL);