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
  • ProgramPipelineTest.cpp
Find file
BlameHistoryPermalink
  • Tim Van Patten's avatar
    Vulkan: Link PPO during draw validation · 001c7e8c
    Tim Van Patten authored Sep 21, 2020
    From the OpenGL ES 3.1 spec:
    
    11.1.3.11 Validation
    It is not always possible to determine at link time if a program object
    can execute successfully, given that LinkProgram can not know the state
    of the remainder of the pipeline. Therefore validation is done when the
    first rendering command which triggers shader invocations is issued, to
    determine if the set of active program objects can be executed.
    
    For draws, this CL moves the PPO link operation to ValidateDrawStates()
    to generate PPO link failures within ANGLE's validation layer, so we
    fail any rendering commands during command validation.
    
    For dispatch, PPOs are linked during Context::prepareForDispatch(),
    where the PPO is converted from draw to compute, since that conversion
    requires a re-link. This re-link shouldn't fail due to errors that would
    have been caught during validation, since the compute shader must have
    successfully linked before it can be included in the PPO in the first
    place. We don't re-link when converting back to draw, since it's
    possible there are validation errors (which we want to catch during
    validation of the next rendering command).
    
    Bug: angleproject:5064
    Test: dEQP.GLES31/functional_separate_shader_validation_es31_*
    Test: ContextNoErrorTest31.DrawWithPPO
    Test: ProgramPipelineTest31.VerifyPpoLinkErrorSignalledCorrectly
    Change-Id: Ibb249e893c007a83cc6b813f848a660bfa34ecb0
    Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2422375
    Commit-Queue: Tim Van Patten <timvp@google.com>
    Reviewed-by: 's avatarShahbaz Youssefi <syoussefi@chromium.org>
    Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
    Reviewed-by: 's avatarIan Elliott <ianelliott@google.com>
    001c7e8c
ProgramPipelineTest.cpp 17.6 KB
EditWeb IDE
×

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