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
  • ProgramExecutable.cpp
Find file
BlameHistoryPermalink
  • Tim Van Patten's avatar
    Validate PPO sampler uniforms · 323c5f24
    Tim Van Patten authored Mar 29, 2021
    "Command & Conquer: Rivals" uses PPOs and was hitting the following
    assert:
    
        angle::Result ContextVk::updateActiveTextures(const gl::Context *context)
        {
        ...
            for (size_t textureUnit : activeTextures)
            {
                gl::Texture *texture        = textures[textureUnit];
                gl::TextureType textureType = textureTypes[textureUnit];
                ASSERT(textureType != gl::TextureType::InvalidEnum);
    
    This is the same assert that is generated by the test
    ProgramPipelineTest31.DifferentTextureTypes which is currently being
    skipped since it's known to fail.
    
    This CL refactors sampler validation into the ProgramExecutable to allow
    PPOs to take advantage of the shared code and behave correctly, since
    the necessary data is already copied into the PPO's ProgramExecutable
    via ProgramExecutable::updateActiveSamplers(). This also takes advantage
    of the subject/observer pattern that's already established between
    programs and PPOs to ensure only the PPOs that the program is a part of
    are updated when a program's sampler uniforms are updated.
    
    Bug: angleproject:3570
    Bug: b/182409935
    Test: ProgramPipelineTest31.DifferentTextureTypes
    Change-Id: I3d34efd66dc85e7ff23a8422cb14d5f90a5f7085
    Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2792862
    Commit-Queue: Tim Van Patten <timvp@google.com>
    Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
    Reviewed-by: 's avatarShahbaz Youssefi <syoussefi@chromium.org>
    Reviewed-by: 's avatarCody Northrop <cnorthrop@google.com>
    323c5f24
ProgramExecutable.cpp 42.4 KB
EditWeb IDE
×

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