Say you've got a purple triangle and a brown one:
![QlO1gqV.png](https://uploads.gamedev.net/applications/core/interface/imageproxy/imageproxy.php)
Red X's are pixel centers, light-blue X's are 2xMSAA sample points.
After running non-MSAA deferred shading, we end up with this lighting buffer:
![EHPXmC2.png](https://uploads.gamedev.net/applications/core/interface/imageproxy/imageproxy.php)
When you render your geometry a 2nd time, this time into the 2xMSAA buffer, the purple triangle will cover these sample locations (left) and the PS will run at these locations (right):
![CFYOugo.png](https://uploads.gamedev.net/applications/core/interface/imageproxy/imageproxy.php)
...but if it's fetching colours from that lighting buffer, the bottom right edge of the purple triangle will receive brown lighting.
And to solve it, you need to search the lighting buffer in the local neighbourhood for a texel that best matches the geometry (either best-fit or a bilateral filter), in which case you'll end up with those edge pixels realizing that the lighting buffer contains invalid data for them, and instead blending valid data that they find in their neigbourhood:
![nJHmbGh.png](https://uploads.gamedev.net/applications/core/interface/imageproxy/imageproxy.php)
And this isn't fool-proof. If you've got sub-pixel geometry, then it's possible for this search to occasionally fail and find no valid data in the lighting buffer! So you should avoid sub-pixel geometry when using this technique.