r600g: simplify the conditionals determining array mode
This commit is contained in:
parent
7f29824fd5
commit
98a87a594b
|
@ -464,35 +464,26 @@ r600_texture_create_object(struct pipe_screen *screen,
|
||||||
return rtex;
|
return rtex;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DEBUG_GET_ONCE_BOOL_OPTION(tiling_enabled, "R600_TILING", FALSE);
|
||||||
|
|
||||||
struct pipe_resource *r600_texture_create(struct pipe_screen *screen,
|
struct pipe_resource *r600_texture_create(struct pipe_screen *screen,
|
||||||
const struct pipe_resource *templ)
|
const struct pipe_resource *templ)
|
||||||
{
|
{
|
||||||
|
struct radeon *radeon = ((struct r600_screen*)screen)->radeon;
|
||||||
unsigned array_mode = 0;
|
unsigned array_mode = 0;
|
||||||
static int force_tiling = -1;
|
|
||||||
|
|
||||||
/* Would like some magic "get_bool_option_once" routine.
|
|
||||||
*/
|
|
||||||
if (force_tiling == -1) {
|
|
||||||
#if 0
|
|
||||||
/* reenable when 2D tiling is fixed better */
|
|
||||||
struct r600_screen *rscreen = (struct r600_screen *)screen;
|
|
||||||
if (r600_get_minor_version(rscreen->radeon) >= 9)
|
|
||||||
force_tiling = debug_get_bool_option("R600_TILING", TRUE);
|
|
||||||
#endif
|
|
||||||
force_tiling = debug_get_bool_option("R600_TILING", FALSE);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (force_tiling && permit_hardware_blit(screen, templ)) {
|
|
||||||
if (!(templ->flags & R600_RESOURCE_FLAG_TRANSFER) &&
|
if (!(templ->flags & R600_RESOURCE_FLAG_TRANSFER) &&
|
||||||
!(templ->bind & PIPE_BIND_SCANOUT)) {
|
!(templ->bind & PIPE_BIND_SCANOUT)) {
|
||||||
|
if (util_format_is_compressed(templ->format)) {
|
||||||
|
array_mode = V_038000_ARRAY_1D_TILED_THIN1;
|
||||||
|
}
|
||||||
|
else if (debug_get_option_tiling_enabled() &&
|
||||||
|
r600_get_minor_version(radeon) >= 9 &&
|
||||||
|
permit_hardware_blit(screen, templ)) {
|
||||||
array_mode = V_038000_ARRAY_2D_TILED_THIN1;
|
array_mode = V_038000_ARRAY_2D_TILED_THIN1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(templ->flags & R600_RESOURCE_FLAG_TRANSFER) &&
|
|
||||||
util_format_is_compressed(templ->format))
|
|
||||||
array_mode = V_038000_ARRAY_1D_TILED_THIN1;
|
|
||||||
|
|
||||||
return (struct pipe_resource *)r600_texture_create_object(screen, templ, array_mode,
|
return (struct pipe_resource *)r600_texture_create_object(screen, templ, array_mode,
|
||||||
0, 0, NULL, TRUE);
|
0, 0, NULL, TRUE);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue