intel/blorp: MCS partial resolves are incomplete
We rely on MCS partial resolves to avoid rendering corruption and to implement WA 14013111325 (!8755 (merged)).
Unfortunately, the resolves only handle the case where all the samples equal the clear color, but not the case where only some of the samples match the clear color.
From the HW docs:
Clear Pixel Conditions
The MCS format allows for the encoding of clear value for one or more planes of the multi-sampled surface. A value of all 1's for defined MCS bits indicates that all planes of the multi-sampled surface are clear. For example, a value of 0x3 for 2X MSAA MCS byte means that both planes of the pixel are clear. Likewise a value of 0xff for X4, 0xffffffff for X8 and 0xffffffff_ffffffff for X16 MSAA means that all planes of the pixel are clear.
In the case where not all planes are clear, but at least 2 planes are clear the encoding of the MCS given above is changed. If the MCS value for plane 0 is non-zero, then all planes which are at all 1's are clear and all other planes are referencing the plane indicated by their respective MCS value minus 1. For example, a 4X MSAA MCS value of 01 10 11 11 means that MCS 0 is referencing plane 0, and MCS 1 is referencing plane 1, and MCS 2 and 3 are clear.
Because the alternative encoding requires at least 2 planes be clear, this is only an issue for 4x, 8x, and 16x.