intel/isl: Allow valign2 for texture-only Y-tiled surfaces on gen7

The restriction that Y-tiled surfaces must have valign == 4 only aplies to
render targets but we were applying it universally.  This causes problems
if ISL_FORMAT_R32G32B32_FLOAT is used because it requires valign == 2; this
should be okay because you can't render to that format.

Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Chad Versace <chadversary@chromium.org>
This commit is contained in:
Jason Ekstrand 2016-09-09 08:57:14 -07:00
parent 54db5afd2c
commit 883086500b
1 changed files with 2 additions and 1 deletions

View File

@ -354,7 +354,8 @@ gen7_choose_valign_el(const struct isl_device *dev,
*/
if (isl_surf_usage_is_depth(info->usage) ||
info->samples > 1 ||
tiling == ISL_TILING_Y0) {
((info->usage & ISL_SURF_USAGE_RENDER_TARGET_BIT) &&
tiling == ISL_TILING_Y0)) {
require_valign4 = true;
}