[Mesa-dev] [PATCH 0/7] i965/blorp: Improvements to the blorp engine for Gen7.

Anuj Phogat anuj.phogat at gmail.com
Thu Jul 19 18:17:14 PDT 2012

On Thu, Jul 12, 2012 at 10:43 AM, Paul Berry <stereotype441 at gmail.com> wrote:
> This patch series makes three improvements to the blorp engine (which
> does MSAA resolves and other blits) for Gen7:
> Patches 1-3 fix downsampling of integer format framebuffers on Gen7,
> by using the "AVG" instruction to average the samples, rather than
> adding the samples and performing a division.  This is necessary to
> avoid overflow with 32-bit integer buffers.  In the process, we
> rearrange the order of adds/averages to reduce the accumulation of
> numerical errors (patch 2).
> Patch 4 adds an optimization to the MSAA resolve when using Gen7's CMS
> MSAA layout: when the MCS buffer indicates that all samples
> corresponding to a given pixel contain the same color value, we don't
> have to load all the samples and average them; we just load the first
> sample and use its value.
> Patches 5-7 make blorp take advantage of the 3D pipeline's ability to
> decode the IMS MSAA layout when reading from depth and stencil
> textures.  Previously blorp would emit extra shader instructions to
> account for the IMS MSAA layout.  This change should make blits from
> multisampled depth and stencil buffers more efficient.
> [PATCH 1/7] i965: Add support for AVG instruction.
> [PATCH 2/7] i965/blorp: Modify manual_blend() to avoid unnecessary loss of precision.
> [PATCH 3/7] i965/blorp: Fix integer downsampling on Gen7.
> [PATCH 4/7] i965/blorp: Optimize manual_blend() for compressed multisampled surfaces.
> [PATCH 5/7] i965/blorp: Configure SURFACE_STATE correctly for IMS surfaces.
> [PATCH 6/7] i965/blorp: Loosen assertions in compute_msaa_layout_for_pipeline.
> [PATCH 7/7] i965/blorp: Use IMS layout when texturing from depth/stencil surfaces.

Paul, Most of the code in these patches was unfamiliar to me. I
reviewed these patches
by referring to ivybridge PRM and assume that you have already tested
them on a ivybridge
system. I couldn't test because i don't have one.

More information about the mesa-dev mailing list