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
  • compiler
  • translator
  • blocklayout.cpp
Find file
BlameHistoryPermalink
  • Olli Etuaho's avatar
    Fix handling matrix qualifiers on block members · 3de2703d
    Olli Etuaho authored Nov 30, 2017
    Individual block member row_major/column_major layout qualifiers may
    override the qualifiers set on the block. During parsing, this was
    already being handled correctly, so that the qualifier is resolved for
    each block member and recorded for each TField / InterfaceBlockField.
    
    Now we always write the qualifiers on a per-member granularity to the
    output GLSL shaders, so that the native driver gets the correct
    per-member qualifiers. This replaces earlier behavior where the matrix
    qualifiers were only written per-block.
    
    Also only use qualifiers from individual members in block layout.
    
    Since the block-level qualifier information is no longer used after
    parsing, it is no longer kept in the AST. A dummy value is still set
    to the InterfaceBlock structs exposed through the ShaderVars
    interface, since that has existing usage in Chromium that needs to be
    removed before the field can be removed.
    
    Some AMD OpenGL drivers don't seem to handle matrix layout qualifiers
    correctly, so most of the added tests need to be skipped for AMD GL.
    On NVIDIA and Intel the tests pass.
    
    BUG=angleproject:2271
    TEST=angle_unittests, angle_end2end_tests,
         dEQP-GLES31.functional.program_interface_query.uniform.matrix*
    
    Change-Id: I1baa7a633bc2da548743c2190cb72db491b5227a
    Reviewed-on: https://chromium-review.googlesource.com/800174Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
    Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org>
    Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
    3de2703d
blocklayout.cpp 10.1 KB
EditWeb IDE
×

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