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
  • ContextVk.cpp
Find file
BlameHistoryPermalink
  • Shahbaz Youssefi's avatar
    Vulkan: Defer clears even if following command is scissored · 2d964a47
    Shahbaz Youssefi authored Oct 30, 2020
    Take the following scenario:
    
      1. glClear
      2. glScissor(half of framebuffer)
      3. glDrawArrays
    
    The clear in step 1 is deferred.  When FramebufferVk::syncState is
    called in step 3, the deferred clear was applied using
    vkCmdClearColorImage because the draw call is scissored.  This causes
    loadOp=LOAD to be used after the clear because the render pass is
    started too small (the same size as the scissor).
    
    This change makes scissored operations also take advantage of
    loadOp=LOAD with deferred clears.  A number of changes are made to this
    effect:
    
    - FramebufferVk::syncState no longer limits collecting deferred clears
      to no-scissor.
    - FramebufferVk::startNewRenderPass automatically expands the render
      area to full size if it's clearing any attachment.
    - A number of bugs are fixed where FramebufferVk::flushDeferredClears is
      called with the scissor area.  Instead, flushDeferredClears now
      unconditionally uses the complete render area.  Note that these bugs
      didn't have symptoms as "scissor" and "deferred clears" were mutually
      exclusive.
    
    Bug: angleproject:4988
    Change-Id: I24fc3d88bf9c8998869b36c863692d0f0acce994
    Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2511371Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
    Reviewed-by: 's avatarTim Van Patten <timvp@google.com>
    Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
    2d964a47
ContextVk.cpp 212 KB
EditWeb IDE
×

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