From: Marek Olšák Date: Thu, 7 Feb 2013 03:29:42 +0000 (+0100) Subject: r300g: put textures with usage=staging in GTT and make them linear X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=74a17a764dc2ad20d9d6f56afee963b23b597132;p=mesa.git r300g: put textures with usage=staging in GTT and make them linear --- 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; }