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
  • FramebufferImpl.h
Find file
BlameHistoryPermalink
  • Jamie Madill's avatar
    Vulkan: Handle dirty RTs with state messages. · 6722009e
    Jamie Madill authored May 20, 2019
    Prior to this CL we were handling dirty state change notifications by
    flushing the RT Images just prior to use or just after they were
    changed. This could lead to a few redundant checks in several places.
    It also meant we needed an owner pointer from the RT to the parent
    Image. This pointer would be null for Surfaces and Renderbuffers.
    
    This cleans up the image flushing logic to be handled by dirty bit
    notifications. When an app updates an attached Texture with TexSubImage
    or related calls it will send a notification to the Framebuffer. The
    Framebuffer then sets a dirty contents bit that is handled in the
    implementation. In Vulkan this means flushing the dirty bits.
    
    Requires adding a flag to the FramebufferImpl class to determine if we
    need to syncState before we checkStatus. Adding the option allows us to
    only call syncState for the GL back-end. Not calling syncState allows
    the robust resource init operation to happen *before* we syncState.
    Which in turn allows FramebuffeVk to initialize the VkImages in one go.
    
    Added new regression tests for Texture updates. This might not cover
    all cases. I found it was very hard to trigger some of the resource
    update staging in TextureVk.
    
    Bug: angleproject:3427
    Change-Id: Idfa177436ba7fcb9d398f2b67922e085f778f82a
    Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1601552
    Commit-Queue: Jamie Madill <jmadill@chromium.org>
    Reviewed-by: 's avatarShahbaz Youssefi <syoussefi@chromium.org>
    6722009e
FramebufferImpl.h 4.47 KB
EditWeb IDE
×

Replace FramebufferImpl.h

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.