isl: Fix assertion failure for npot pixel formats

When aligning to isl_format_layout::bs (which is the number of bytes in
the pixel), use isl_align_npot() instead of isl_align(), because
isl_align() works only for power-of-2 alignment.

Fixes assertion in
dEQP-VK.pipeline.image.view_type.1d.format.r16g16b16_sfloat.size.512x1.
This commit is contained in:
Chad Versace 2015-12-30 16:26:10 -08:00
parent 07b4f17aaf
commit 96d1baa88d

View file

@ -813,9 +813,9 @@ isl_calc_row_pitch(const struct isl_device *dev,
*/
if (info->usage & ISL_SURF_USAGE_RENDER_TARGET_BIT) {
if (isl_format_is_yuv(info->format)) {
row_pitch = isl_align(row_pitch, fmtl->bs);
row_pitch = isl_align_npot(row_pitch, fmtl->bs);
} else {
row_pitch = isl_align(row_pitch, 2 * fmtl->bs);
row_pitch = isl_align_npot(row_pitch, 2 * fmtl->bs);
}
}
break;