1. 31 Mar, 2016 1 commit
    • Link in Google Test framework. · 414eb604
      Lei Zhang authored
      The existing test harness is a homemade shell script. All the tests
      and the expected results are written in plain text files. The harness
      just reads in a test, invoke the glslangValidator binary on it, and
      compare the result with the golden file. All tests are kinda
      integration tests.
      
      This patch add Google Test as an external project, which provides a
      new harness for reading shader source files, compile to SPIR-V, and
      then compare with the expected output.
  2. 25 Mar, 2016 1 commit
  3. 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
  4. 22 Mar, 2016 2 commits
  5. 21 Mar, 2016 6 commits
  6. 20 Mar, 2016 3 commits
  7. 18 Mar, 2016 2 commits
  8. 16 Mar, 2016 2 commits
  9. 15 Mar, 2016 2 commits
  10. 11 Mar, 2016 2 commits
  11. 10 Mar, 2016 4 commits
  12. 09 Mar, 2016 2 commits
  13. 08 Mar, 2016 3 commits
  14. 06 Mar, 2016 4 commits
  15. 04 Mar, 2016 3 commits
  16. 03 Mar, 2016 2 commits