1. 25 Mar, 2016 1 commit
  2. 24 Mar, 2016 1 commit
    • Support specialization composite constants · 0840838d
      qining authored
      Fix issue #163, support creation and reference of composite type
      specialization constants.
      
      e.g.:
      ```
      layout(constant_id = 200) const float myfloat = 1.25;
      layout(constant_id = 201) const int myint = 14;
      struct structtype {
        float f;
        int i;
      };
      const structtype outer_struct_var = {myfloat, myint};
      void main(){}
      ```
      generated code (use glslangValidator):
      ```
      // Module Version 10000
      // Generated by (magic number): 80001
      // Id's are bound by 12
      
                                    Capability Shader
                     1:             ExtInstImport  "GLSL.std.450"
                                    MemoryModel Logical GLSL450
                                    EntryPoint Vertex 4  "main"
                                    Source GLSL 450
                                    Name 4  "main"
                                    Name 10  "structtype"
                                    MemberName 10(structtype) 0  "f"
                                    MemberName 10(structtype) 1  "i"
                                    Decorate 7 SpecId 200
                                    Decorate 9 SpecId 201
                     2:             TypeVoid
                     3:             TypeFunction 2
                     6:             TypeFloat 32
                     7:    6(float) SpecConstant 1067450368
                     8:             TypeInt 32 1
                     9:      8(int) SpecConstant 14
        10(structtype):             TypeStruct 6(float) 8(int)
                    11:10(structtype) SpecConstantComposite 7 9
               4(main):           2 Function None 3
                     5:             Label
                                    Return
                                    FunctionEnd
      ```
      
      Rname two function names to match their functionalities.
      1) Rename `GlslangToSpvTraverser::createSpvSpecConstant()` to
      `createSpvConstant()`;
      2) Rename `GlslangToSpvTraverser::createSpvConstant()` to
      `createSpvConstantFromConstUnionArray()`
      
      Add function `GlslangToSpvTraverser::createSpvConstantFromSubTree()` to
      handle constant creation from sub trees (e.g.: specialization constants).
      
      Related PR: #208
  3. 22 Mar, 2016 2 commits
  4. 21 Mar, 2016 6 commits
  5. 20 Mar, 2016 3 commits
  6. 18 Mar, 2016 2 commits
  7. 16 Mar, 2016 2 commits
  8. 15 Mar, 2016 2 commits
  9. 11 Mar, 2016 2 commits
  10. 10 Mar, 2016 4 commits
  11. 09 Mar, 2016 2 commits
  12. 08 Mar, 2016 3 commits
  13. 06 Mar, 2016 4 commits
  14. 04 Mar, 2016 3 commits
  15. 03 Mar, 2016 2 commits
  16. 01 Mar, 2016 1 commit