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
  • libANGLE
  • renderer
  • vulkan
  • UtilsVk.cpp
Find file
BlameHistoryPermalink
  • Shahbaz Youssefi's avatar
    Vulkan: optimize image memory barriers · 7dafe3eb
    Shahbaz Youssefi authored Jan 28, 2019
    Each image was tracking its current layout, but not the pipeline stage
    it was used.  Additionally, the barrier access masks were inferred from
    the layout.  This incurred two inefficiencies:
    
    - The src pipeline stage mask often included all stages, causing
      unnecessarily heavy barriers.
    - The access masks included all possible accesses by a layout, which in
      some cases was overkill, like VK_ACCESS_MEMORY_WRITE_BIT for
      VK_IMAGE_LAYOUT_GENERAL (which will eventually used for compute shader
      output).
    
    This change instead creates an enum where each element represents the
    layout, the stage and access masks when transitioning into the layout
    and the stage and access masks when transitioning out of that layout.
    The image will instead track a value of this enum (instead of
    VkImageLayout), which allows it to create the layout transition barriers
    as tight as possible, since it includes all the necessary information.
    
    Bug: angleproject:2999
    Change-Id: I91535ce06d10530a6fc217ad3b94b7e288521e25
    Reviewed-on: https://chromium-review.googlesource.com/c/1440074
    Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
    Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
    7dafe3eb
UtilsVk.cpp 31.2 KB
EditWeb IDE
×

Replace UtilsVk.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.