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
  • MultithreadingTest.cpp
Find file
BlameHistoryPermalink
  • Jamie Madill's avatar
    Revert "Vulkan: Make DescriptorPoolHelper a Resource" · 9e3eec54
    Jamie Madill authored Oct 25, 2020
    This reverts commit 5dcd29a6.
    
    Reason for revert: Breaking the ANGLE -> Chromium roller:
    
    https://chromium-review.googlesource.com/c/chromium/src/+/2496281
    
    Original change's description:
    > Vulkan: Make DescriptorPoolHelper a Resource
    >
    > Descriptor pools need to live as long as the descriptor sets that are
    > allocated from them. Using Serials while building a command to judge a
    > pool's lifetime is prone to errors, since a command's Serial value
    > isn't known until the command is submitted, leading to deleting pools
    > too early relative to when the descriptor set is actually used.
    >
    > This CL updates DescriptorPoolHelper to inherit from Resource, so the
    > descriptor pools can be retain()'ed. This allows the Resource's counter
    > to indicate that a pool is in use until the command's Serial is known
    > and can be recorded to indicate when the command completes. This
    > prevents descriptor pools from being destroyed before the command
    > completes (while the descriptor sets are still in use), or even before
    > the command has been submitted. Destroying a descriptor pool resets all
    > of the descriptors that were allocated from it, which can trigger a
    > variety of VVL errors depending on when it's erroneously performed.
    >
    > This CL also adds the necessary retain() calls for the descriptor pools.
    > In particular, the pools need to be retained each time a cached
    > descriptor set that was allocated from it is re-used. This is relatively
    > simple with the current design, since we always clear the descriptor set
    > caches whenever a new pool is allocated, so the descriptor pool binding
    > is always accurate.
    >
    > Bug: angleproject:5030
    > Test: MultithreadingTest::MultiContextDrawSmallDescriptorPools()
    > Change-Id: I5fdeeb46159448dfd679d7169e423048348be5ab
    > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2437609
    > Commit-Queue: Tim Van Patten <timvp@google.com>
    > Reviewed-by: Jamie Madill <jmadill@chromium.org>
    > Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
    
    TBR=courtneygo@google.com,timvp@google.com,jmadill@chromium.org
    
    # Not skipping CQ checks because original CL landed > 1 day ago.
    
    Bug: angleproject:5030
    Change-Id: I0fd6d9a0e1b0989b22368ef98652281288699deb
    Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2497222
    Commit-Queue: Jamie Madill <jmadill@chromium.org>
    Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
    9e3eec54
MultithreadingTest.cpp 12.9 KB
EditWeb IDE
×

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