[Mesa-dev] [PATCH 00/15] i965/gen7: Begin implementing MSAA.

Ian Romanick idr at freedesktop.org
Tue May 22 10:54:27 PDT 2012

On 05/11/2012 11:03 AM, Paul Berry wrote:
> This patch series provides preliminary support for MSAA (multisample
> antialiasing) in i965/gen7. It depends on my previous MSAA patch
> series "[PATCH v2 0/5] i965/gen6: Begin implementing MSAA."
> The patches can be grouped into 3 sets:
> Patch 01 fixes a small bug in the Gen6 MSAA implementation: when
> allocating an MSAA surface, we weren't accounting for the fact that
> the pattern in which MSAA samples are interleaved repeats for every
> 2x2 block of pixels.  As a result, if the surface width or height was
> an odd number, the data in the last row or column of pixels would be
> corrupted.
> Patches 02-15 make the necessary modifications to allow the blorp
> engine to work on Gen7.  First (patches 02-05) we add the ability to
> dispatch the WM program in MSDISPMODE_PERSAMPLE mode (one dispatch per
> sample rather than one dispatch per pixel), which reduces the amount
> of coordinate swizzling the WM program needs to do.  Then (patches
> 06-07) we make adjustments to the rendering pipeline configuration
> when running blorp programs on Gen7.  Then (patch 08) we add support
> for the Gen7 texel fetch messages (which differ from those in Gen6),
> and finally in patch 09 we enable the blorp engine on Gen7.
> Patches 10-15 adapt the MSAA code to work on Gen7, which lays out MSAA
> color buffers differently from Gen6.  First (patch 10) we add the
> necessary defines to allow the rendering pipeline to be configured
> properly.  Then (patches 11-12), we modify the surface allocation and
> rendering pipeline setup code to account for the new layout.  Then
> (patches 13-14) we make the necessary modifications to the blorp
> engine to support MSAA on Gen7.  Finally (patch 15) we enable MSAA on
> Gen7.
> As with Gen6, MSAA support is still preliminary; however since the
> driver *claims* to support GL 3.0 (and MSAA is a required part of GL
> 3.0), I think it is reasonable to turn it on now and address the
> remaining limitations as future "bug fix" patches.  The work left to
> do is the same as for Gen6, with one additional item: 8x MSAA is not
> yet implemented for Gen7 hardware.
> [PATCH 01/15] i965/msaa: Expand odd-sized MSAA surfaces to account for interleaving pattern.
> [PATCH 02/15] i965/blorp: Generalize sampling code in preparation for Gen7
> [PATCH 03/15] i965/blorp: Emit sample index in SAMPLE_LD message when necessary
> [PATCH 04/15] i965/blorp: Use MSDISPMODE_PERSAMPLE rendering when necessary
> [PATCH 05/15] i965/blorp: Factor gen6_blorp_emit_batch_head into separate functions.
> [PATCH 06/15] i965/blorp: Allocate space for push constants on Gen7.
> [PATCH 07/15] i965/blorp: Use 16 pixel dispatch on Gen7 when there is a WM program.
> [PATCH 08/15] i965/blorp: Implement proper texel fetch messages for Gen7.
> [PATCH 09/15] i965/blorp: Enable blorp blits on Gen7.
> [PATCH 10/15] i965/msaa: Add defines for Gen7.
> [PATCH 11/15] i965/msaa: Properly handle sliced layout for Gen7.
> [PATCH 12/15] i965/msaa: Validate Gen7 surface state constraints.
> [PATCH 13/15] i965/msaa: Modify blorp code to account for Gen7 MSAA layouts.
> [PATCH 14/15] i965/msaa: Implement manual blending operation for Gen7.
> [PATCH 15/15] i965/msaa: Enable 4x MSAA on Gen7.

1, 3, 4, 6 (aside from the minor nit), 7, 8, 9, 10, and 15 are all

Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

I had a vaguely substantive comment about 11, and the others are outside 
my area of expertise.

More information about the mesa-dev mailing list