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
  • MipmapTest.cpp
Find file
BlameHistoryPermalink
  • Shahbaz Youssefi's avatar
    Vulkan: Better handling of texture level redefinition · 000a79f1
    Shahbaz Youssefi authored Jun 04, 2020
    If a texture level is being redefined, there are two scenarios to
    consider:
    
    1. The level is outside the base/max level, for which the image was
      allocated.
    2. The level is within the base/max level, but it's being redefined to a
      different size or format.
    
    In the former case, we simply don't need to release the image.
    
    The latter case itself has two possibilities:
    
    2.1. There is only one level in the image.
    2.2. There are multiple levels in the image.
    
    In case 2.1, the whole image is being redefined (as it has only a single
    level), so the image can (and should) be released.  Prior to this
    change, this behavior was adopted for all cases.  This change retains
    this behavior for this case only.
    
    In case 2.2, the texture is becoming incomplete.  However, the image
    shouldn't yet be released because another one of its mips may be bound
    to a framebuffer.  In such cases as glCopyTexImage2D(), that framebuffer
    may in fact be the source of the copy operation (which would be
    destroyed if the image is released).  If the base/max level of the
    texture doesn't change, redefining the level and making the texture
    incomplete doesn't make the framebuffer incomplete; this is achieved at
    the same time by not releasing the image.
    
    This change ensures that updates to the redefined level are staged in
    cases 1 and 2.2.
    
    Bug: angleproject:4274
    Change-Id: I3fac3203c2fbbc16e8e4a35b1334b767120b2dcf
    Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2230853
    Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
    Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
    000a79f1
MipmapTest.cpp 51.9 KB
EditWeb IDE
×

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