isl: Fix assertion failure for npot pixel formats
authorChad Versace <chad.versace@intel.com>
Thu, 31 Dec 2015 00:26:10 +0000 (16:26 -0800)
committerChad Versace <chad.versace@intel.com>
Thu, 31 Dec 2015 00:28:19 +0000 (16:28 -0800)
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.

src/isl/isl.c

index 75f65001a1eb76cb4faab1d135133fe635ac2b3b..2bf15017e2fc57ecb506c8966c2440c7e0e462ba 100644 (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;