[Mesa-dev] [PATCH] intel/isl: Add support for blitter restrictions

Chris Wilson chris at chris-wilson.co.uk
Fri Jul 21 19:27:55 UTC 2017


Quoting Jason Ekstrand (2017-07-21 20:11:27)
> +   if (surf_info->usage & ISL_SURF_USAGE_BLIT_BIT) {
> +      /* According to the Ivy Bridge PRM, Vol1 Part4, section 1.2.1.2
> +       * (Graphics Data Size Limitations):
> +       *
> +       *    The BLT engine is capable of transferring very large quantities of
> +       *    graphics data. Any graphics data read from and written to the
> +       *    destination is permitted to represent a number of pixels that
> +       *    occupies up to 65,536 scan lines and up to 32,768 bytes per scan
> +       *    line at the destination. The maximum number of pixels that may be
> +       *    represented per scan line’s worth of graphics data depends on the
> +       *    color depth.
> +       *
> +       * The blitter's pitch is a signed 16-bit integer, but measured in bytes
> +       * for linear surfaces and DWords for tiled surfaces.  So the maximum
> +       * pitch is 32k linear and 128k tiled.
> +       */
> +      const uint32_t blt_pitch =
> +         tile_info->tiling == ISL_TILING_LINEAR ? row_pitch : row_pitch / 4;
> +      if (blt_pitch > 32768)
> +         return false;

Ben will probably remember better since he did the same limits for GL,
but isn't the field for pitch in XY_SRC_COPY a s16 (as it allows
negative pitches)? So that test should be >= 32768.
-Chris


More information about the mesa-dev mailing list