Skip to content

  • Projects
  • Groups
  • Snippets
  • Help
  • This project
    • Loading...
  • Sign in / Register
A
angle
  • Project
    • Overview
    • Details
    • Activity
    • Cycle Analytics
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Charts
  • Issues 0
    • Issues 0
    • List
    • Board
    • Labels
    • Milestones
  • Merge Requests 0
    • Merge Requests 0
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
    • Charts
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Charts
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • Chen Yisong
  • angle
  • Repository

Switch branch/tag
  • angle
  • src
  • tests
  • gl_tests
  • FramebufferTest.cpp
Find file
BlameHistoryPermalink
  • Tim Van Patten's avatar
    Vulkan: Optimize MSAA using subpass resolve attachments · dff47d5f
    Tim Van Patten authored Jul 14, 2020
    If a user is performing a blit to resolve a multisample color buffer
    into a single attachment, ANGLE can use subpass resolve attachments to
    resolve directly into the destination buffer as part of the render pass.
    This allows the data to remain in tiler memory and reduce the extra
    bandwidth required to write the multisampled data back to perform the
    copy.
    
    This work also requires restoring/reopening a render pass if it has been
    finished already, assuming the finished render pass was started and for
    the framebuffer that is the source for the blit command. Other objects
    that were created when the render pass was started need to be updated as
    well, such as the source FramebufferVk's resolve attachment, the
    CommandBufferHelper's vk::Framebuffer and vk::RenderPassDesc, etc.
    
    While this is better than performing vkCmdResolveImage(), there is still
    another major part of optimizing MSAA using resolve attachments not
    implemented here: discarding the multisampled image rather than writing
    it to GMEM, which requires the user to invalidate the read FBO after the
    blit.
    
    This CL was verified with AGI to make sure there are no explicit blits
    to resolve the multiple sampled image.
    
    Bug: b/159903491
    Test: FramebufferTest_ES31.*Blit*
    Test: VulkanPerformanceCounterTest_ES31.MultisampleResolveWithBlit
    Change-Id: I320a26088d8f614a295e7feec275d71310391806
    Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2298663
    Commit-Queue: Tim Van Patten <timvp@google.com>
    Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
    Reviewed-by: 's avatarShahbaz Youssefi <syoussefi@chromium.org>
    Reviewed-by: 's avatarCharlie Lao <cclao@google.com>
    dff47d5f
FramebufferTest.cpp 77.5 KB
EditWeb IDE
×

Replace FramebufferTest.cpp

Attach a file by drag & drop or click to upload


Cancel
A new branch will be created in your fork and a new merge request will be started.