Skip to content

  • Projects
  • Groups
  • Snippets
  • Help
  • This project
    • Loading...
  • Sign in / Register
G
glslang
  • 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
  • glslang
  • Repository

Switch branch/tag
  • glslang
  • Test
  • baseResults
  • 300block.frag.out
Find file
BlameHistoryPermalink
  • Roy.li's avatar
    Reserve unused std140 uniform block in reflection, and fix uniform block matrix layout (#2041) · 24dcbd1b
    Roy.li authored May 15, 2020
    According to the spec glsl4.60.7:
    4.4.5. Uniform and Shader Storage Block Layout Qualifiers:
    "The packed qualifier overrides only std140, std430, and shared; other qualifiers are inherited.
    When packed is used, no shareable layout is guaranteed. The compiler and linker can optimize
    memory use based on what variables actively get used and on other criteria. Offsets must be
    queried, as there is no other way of guaranteeing where (and which) variables reside within the
    block"
    
    we should reserve std140 block and shared block in reflection.
    
    According to the spec glsl4.60.7:
    4.4.5. Uniform and Shader Storage Block Layout Qualifiers:
    "The row_major and column_major qualifiers only affect the layout of matrices, including all
    matrices contained in structures and arrays they are applied to, to all depths of nesting. These
    qualifiers can be applied to other types, but will have no effect."
    
    We need ensure all matrix block member been effect.
    
    Support EShMsgKeepUncalled in reflection
    
    EShMsgKeepUncalled  is a link message for link program.
    We need only one option to control uncalled function optimization.
    If we set EShMsgKeepUncalled as false in link time, linker won't be keep the uncall function sequence in AST,  and if we set EShMsgKeepUncalled as true in link time, linker will keep all uncalled function sequence in AST.
    So, in reflecte time, we just only travers all function sequence. It make EShMsgKeepUncalled  only work at linker, and can effect reflection.
    
    Recursively layout packing to "block member"
    
    layout packing isn't set recursively, it causes TReflection::getOffsets doesn't work correctly.
    24dcbd1b
300block.frag.out 14.1 KB
EditWeb IDE
×

Replace 300block.frag.out

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.