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. _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev