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

Paul Berry stereotype441 at gmail.com
Fri Jul 20 08:16:48 PDT 2012


On 19 July 2012 18:17, Anuj Phogat <anuj.phogat at gmail.com> wrote:

> 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.
>

No problem, Anuj.  Thanks for the review.  I have tested these patches on
Ivy Bridge (and the ones that follow) and they pass all MSAA piglit tests.
 Mostly I was looking for a second pair of eyes to double-check my reading
of the PRM and make sure I hadn't made any stupid blunders in the code :)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20120720/0c1be613/attachment.html>


More information about the mesa-dev mailing list