r600g: use LINEAR_ALIGNED tiling for staging textures, reorder the code
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
fe2ef4b810
commit
ac4f61b232
|
@ -494,10 +494,18 @@ struct pipe_resource *r600_texture_create(struct pipe_screen *screen,
|
||||||
{
|
{
|
||||||
struct r600_screen *rscreen = (struct r600_screen*)screen;
|
struct r600_screen *rscreen = (struct r600_screen*)screen;
|
||||||
struct radeon_surface surface;
|
struct radeon_surface surface;
|
||||||
unsigned array_mode = 0;
|
const struct util_format_description *desc = util_format_description(templ->format);
|
||||||
|
unsigned array_mode;
|
||||||
int r;
|
int r;
|
||||||
|
|
||||||
if (!(templ->flags & R600_RESOURCE_FLAG_TRANSFER)) {
|
/* Default tiling mode for staging textures. */
|
||||||
|
array_mode = V_038000_ARRAY_LINEAR_ALIGNED;
|
||||||
|
|
||||||
|
/* Tiling doesn't work with the 422 (SUBSAMPLED) formats. That's not an issue,
|
||||||
|
* because 422 formats are used for videos, which prefer linear buffers
|
||||||
|
* for fast uploads anyway. */
|
||||||
|
if (!(templ->flags & R600_RESOURCE_FLAG_TRANSFER) &&
|
||||||
|
desc->layout != UTIL_FORMAT_LAYOUT_SUBSAMPLED) {
|
||||||
if (!(templ->bind & PIPE_BIND_SCANOUT) &&
|
if (!(templ->bind & PIPE_BIND_SCANOUT) &&
|
||||||
templ->usage != PIPE_USAGE_STAGING &&
|
templ->usage != PIPE_USAGE_STAGING &&
|
||||||
templ->usage != PIPE_USAGE_STREAM) {
|
templ->usage != PIPE_USAGE_STREAM) {
|
||||||
|
@ -507,10 +515,6 @@ struct pipe_resource *r600_texture_create(struct pipe_screen *screen,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* XXX tiling is broken for the 422 formats */
|
|
||||||
if (util_format_description(templ->format)->layout == UTIL_FORMAT_LAYOUT_SUBSAMPLED)
|
|
||||||
array_mode = V_038000_ARRAY_LINEAR_ALIGNED;
|
|
||||||
|
|
||||||
r = r600_init_surface(rscreen, &surface, templ, array_mode,
|
r = r600_init_surface(rscreen, &surface, templ, array_mode,
|
||||||
templ->flags & R600_RESOURCE_FLAG_FLUSHED_DEPTH);
|
templ->flags & R600_RESOURCE_FLAG_FLUSHED_DEPTH);
|
||||||
if (r) {
|
if (r) {
|
||||||
|
|
Loading…
Reference in New Issue