projects
/
mesa.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
r600g/sb: fix debug dump code in scheduler
[mesa.git]
/
src
/
gallium
/
drivers
/
r600
/
r600_texture.c
diff --git
a/src/gallium/drivers/r600/r600_texture.c
b/src/gallium/drivers/r600/r600_texture.c
index 5ad8c6521bf4c1da23b9dc52a892f06028e58b2e..36cca17eb110ae0be0f6d4fbfcfa951f9f0a9165 100644
(file)
--- a/
src/gallium/drivers/r600/r600_texture.c
+++ b/
src/gallium/drivers/r600/r600_texture.c
@@
-865,24
+865,24
@@
static void *r600_texture_transfer_map(struct pipe_context *ctx,
*
* Only the region being mapped is transfered.
*/
*
* Only the region being mapped is transfered.
*/
- struct pipe_resource *temp;
struct pipe_resource resource;
r600_init_temp_resource_from_box(&resource, texture, box, level, 0);
struct pipe_resource resource;
r600_init_temp_resource_from_box(&resource, texture, box, level, 0);
- temp = ctx->screen->resource_create(ctx->screen, &resource);
- r600_copy_region_with_blit(ctx, temp, 0, 0, 0, 0, texture, level, box);
-
- if (!r600_init_flushed_depth_texture(ctx, temp, &staging_depth)) {
+ if (!r600_init_flushed_depth_texture(ctx, &resource, &staging_depth)) {
R600_ERR("failed to create temporary texture to hold untiled copy\n");
FREE(trans);
return NULL;
}
R600_ERR("failed to create temporary texture to hold untiled copy\n");
FREE(trans);
return NULL;
}
- r600_blit_decompress_depth(ctx, (struct r600_texture*)temp, staging_depth,
-
0, 0, 0, box->depth, 0, 0
);
+ if (usage & PIPE_TRANSFER_READ) {
+
struct pipe_resource *temp = ctx->screen->resource_create(ctx->screen, &resource
);
- pipe_resource_reference((struct pipe_resource**)&temp, NULL);
+ r600_copy_region_with_blit(ctx, temp, 0, 0, 0, 0, texture, level, box);
+ r600_blit_decompress_depth(ctx, (struct r600_texture*)temp, staging_depth,
+ 0, 0, 0, box->depth, 0, 0);
+ pipe_resource_reference((struct pipe_resource**)&temp, NULL);
+ }
}
else {
/* XXX: only readback the rectangle which is being mapped? */
}
else {
/* XXX: only readback the rectangle which is being mapped? */