Renderpass multisampling resolve
According to the Vulkan spec:
"If pResolveAttachments is not NULL, each of its elements
corresponds to a color attachment (the element in
pColorAttachments at the same index), and a multisample
resolve operation is defined for each attachment. At the
end of each subpass, multisample resolve operations read
the subpass’s color attachments, and resolve the samples
for each pixel to the same pixel location in the
corresponding resolve attachments, unless the resolve
attachment index is VK_ATTACHMENT_UNUSED."
Note: This cl adds support for multisampling, but
requires syncing before performing the resolve
operation. The intent is for the next cl to move
the resolve to Renderer::finishRendering(), in
order to avoid having to sync when it's not
necessary.
Bug b/
119620965
Change-Id: Id4fae41347e354b822d089fb5b6d4e36592c146b
Tests: dEQP-VK.pipeline.multisample.raster_samples.*
Tests: dEQP-VK.pipeline.multisample.raster_samples_consistency.*
Tests: dEQP-VK.pipeline.multisample.sample_mask.*
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27650
Tested-by: Alexis Hétu <sugoi@google.com>
Presubmit-Ready: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Reviewed-by: Chris Forbes <chrisforbes@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>