1. 15 May, 2020 2 commits
    • Reserve unused std140 uniform block in reflection, and fix uniform block matrix layout (#2041) · 24dcbd1b
      Roy.li authored
      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.
    • Bump version. · c6874320
      John Kessenich authored
  2. 14 May, 2020 1 commit
    • Move to newer version of SPIRV-Tools · 08a05bc2
      Jaebaek Seo authored
      * Update tests according to spirv-opt update
      
      We refactored function inlining pass of spirv-opt and it results in
      different numbering of result ids in SPIR-V code. This commit updates
      test cases to avoid a test failure according to the spirv-opt update.
      
      * Update known good
  3. 12 May, 2020 2 commits
  4. 11 May, 2020 3 commits
  5. 01 May, 2020 8 commits
  6. 30 Apr, 2020 2 commits
  7. 29 Apr, 2020 1 commit
  8. 28 Apr, 2020 2 commits
  9. 27 Apr, 2020 2 commits
  10. 24 Apr, 2020 2 commits
  11. 23 Apr, 2020 1 commit
  12. 22 Apr, 2020 1 commit
  13. 21 Apr, 2020 1 commit
  14. 20 Apr, 2020 1 commit
  15. 17 Apr, 2020 1 commit
  16. 14 Apr, 2020 1 commit
    • Support multiple swizzled out operands (#2175) · 4d2298bf
      Cody Northrop authored
      Swizzled out operands were added in bbbd9a2a. This was sufficient
      for most tests, but we ran into problems with umulExtended and
      imulExtended, which have two.
      
      This CL converts the tracking values to vectors so multiple operands
      can be supported.
      
      Test: KHR-GLES31.core.shader_bitfield_operation.*
      Test: ctest
  17. 13 Apr, 2020 1 commit
  18. 10 Apr, 2020 1 commit
  19. 09 Apr, 2020 1 commit
  20. 07 Apr, 2020 1 commit
  21. 03 Apr, 2020 1 commit
  22. 02 Apr, 2020 1 commit
    • Shader interface matching rework to fix #2136 (#2156) · 0b66fa3b
      Malcolm Bechard authored
      * rework how shader interface block naming rules are handled
      
      * Fixes 2136
      
      According to the spec, shader interfaces (uniform blocks, buffer
      blocks, input blocks, output blocks) all should be matched up via
      their block names across all compilation units, not instance names.
      Also, all block names can be re-used between all 4 interface types
      without conflict. This change makes it so all of these blocks are
      matched and remapped using block name and not by instance name.
      Additional the rule that matched uniform and buffer blocks must
      either be anonymous or named (but not nessearily the same name) is
      now imposed.
      
      * add warning if instance names differ between matched shader interfaces
      
      * Add test cases from #2137 which is now fixed as well.
      
      * replace some tab characters with spaces
      
      * buffer blocks and uniform blocks now share the same block namespace
  23. 01 Apr, 2020 1 commit
  24. 31 Mar, 2020 2 commits