OSDN Git Service

Renderpass multisampling resolve
authorAlexis Hetu <sugoi@google.com>
Wed, 20 Mar 2019 18:37:16 +0000 (14:37 -0400)
committerAlexis Hétu <sugoi@google.com>
Tue, 26 Mar 2019 11:36:12 +0000 (11:36 +0000)
commit54ec759a7405b99eb31bc31fca65e14a4093f9fc
treeb4bc8eaa3e64654e9356ba39aafc5536921efefb
parentfb6639fb7a41cca88e014d83ee84390ea7ffc6d5
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>
src/Device/Blitter.cpp
src/Device/Blitter.hpp
src/Vulkan/VkCommandBuffer.cpp
src/Vulkan/VkFramebuffer.cpp
src/Vulkan/VkFramebuffer.hpp
src/Vulkan/VkImage.cpp
src/Vulkan/VkImage.hpp
src/Vulkan/VkImageView.cpp
src/Vulkan/VkImageView.hpp