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
  • ProgramLinkedResources.cpp
Find file
BlameHistoryPermalink
  • Jiawei Shao's avatar
    ES31: Refactor link mismatch error log · 881b7bfa
    Jiawei Shao authored Dec 25, 2017
    This patch intends to refactor the structure of logging link mismatch
    errors to meet the new GLES 3.1 program link requirements and support
    linking program with geometry shader.
    
    This patch is mainly focusing on the following 4 issues:
    1. There are totally 14 places that log the link mismatch errors
       in almost same format.
    2. A temporary string is created (STRUCT_NAME.FIELD_NAME) before
       checking a field of a block, which is of no use if link succeeds.
    3. LinkValidateVariablesBase needs to know "shaderTypes" if we support
       geometry shader based on current structure. Since uniforms are
       checked in the range of the whole program, it is unnecessary to
       know in which shader a uniform is defined if link succeeds.
    4. GLES 3.1 regards varyings with same location but different names
       as matched, so it isn't enough to log errors only by one name.
    
    This patch can solve all these issues by the following 3 changes:
    1. Replace "infoLog" and "variableNames" by "mismatchedFieldName" (the
       complete field name if the mismatch occurs on a field of a struct
       or block).
    2. Use enum LinkMismatchError as the return value of all linkValidate*
       functions to reflect the detail of the link mismatch error.
    3. Log all the link mismatch errors by InfoLog::logLinkMismatch where
       we can get shader types instead of passing them into linkValidate*
       functions.
    
    BUG=angleproject:1941, angleproject:2144
    TEST=angle_end2end_tests
    Change-Id: I3ed876d61f812cc7a45a6a3c5fec0b4a88b9cc2c
    Reviewed-on: https://chromium-review.googlesource.com/844215
    Commit-Queue: Jamie Madill <jmadill@chromium.org>
    Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
    Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org>
    881b7bfa
ProgramLinkedResources.cpp 41.1 KB
EditWeb IDE
×

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