diff options
author | Marek Olšák <[email protected]> | 2013-02-07 04:29:42 +0100 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2013-02-07 17:43:19 +0100 |
commit | 74a17a764dc2ad20d9d6f56afee963b23b597132 (patch) | |
tree | 8d4583fa871184a49463c9acfa8d4af47514427f | |
parent | 681707abf2121e9d02c6fd13e312fd103f26949c (diff) |
r300g: put textures with usage=staging in GTT and make them linear
-rw-r--r-- | src/gallium/drivers/r300/r300_texture.c | 3 | ||||
-rw-r--r-- | src/gallium/drivers/r300/r300_texture_desc.c | 4 |
2 files changed, 6 insertions, 1 deletions
diff --git a/src/gallium/drivers/r300/r300_texture.c b/src/gallium/drivers/r300/r300_texture.c index e4cb967e9f3..d9657306c88 100644 --- a/src/gallium/drivers/r300/r300_texture.c +++ b/src/gallium/drivers/r300/r300_texture.c @@ -998,7 +998,8 @@ r300_texture_create_object(struct r300_screen *rscreen, tex->tex.microtile = microtile; tex->tex.macrotile[0] = macrotile; tex->tex.stride_in_bytes_override = stride_in_bytes_override; - tex->domain = base->flags & R300_RESOURCE_FLAG_TRANSFER ? RADEON_DOMAIN_GTT : + tex->domain = (base->flags & R300_RESOURCE_FLAG_TRANSFER || + base->usage == PIPE_USAGE_STAGING) ? RADEON_DOMAIN_GTT : base->nr_samples > 1 ? RADEON_DOMAIN_VRAM : RADEON_DOMAIN_VRAM | RADEON_DOMAIN_GTT; tex->buf = buffer; diff --git a/src/gallium/drivers/r300/r300_texture_desc.c b/src/gallium/drivers/r300/r300_texture_desc.c index eb31f82f9d6..df24e44b209 100644 --- a/src/gallium/drivers/r300/r300_texture_desc.c +++ b/src/gallium/drivers/r300/r300_texture_desc.c @@ -477,6 +477,10 @@ static void r300_setup_tiling(struct r300_screen *screen, tex->tex.microtile = RADEON_LAYOUT_LINEAR; tex->tex.macrotile[0] = RADEON_LAYOUT_LINEAR; + if (tex->b.b.usage == PIPE_USAGE_STAGING) { + return; + } + if (!util_format_is_plain(format)) { return; } |