Merge pull request #473 from steve-lunarg/remapper-tests
SPV Remapper: add remapper test framework
This commit is contained in:
		
						commit
						f00c245a5f
					
				@ -98,7 +98,7 @@ options.  See REMAPPING AND OPTIMIZATION OPTIONS.
 | 
			
		||||
On error, the function supplied to registerErrorHandler() will be invoked.
 | 
			
		||||
This can be a standard C/C++ function, a lambda function, or a functor.
 | 
			
		||||
The default handler simply calls exit(5); The error handler is a static
 | 
			
		||||
members, so need only be set up once, not once per spirvbin_t instance.
 | 
			
		||||
member, so need only be set up once, not once per spirvbin_t instance.
 | 
			
		||||
 | 
			
		||||
Log messages are supplied to registerLogHandler().  By default, log
 | 
			
		||||
messages are eaten silently.  The log handler is also a static member.
 | 
			
		||||
 | 
			
		||||
@ -3,21 +3,27 @@ set(SOURCES
 | 
			
		||||
    InReadableOrder.cpp
 | 
			
		||||
    Logger.cpp
 | 
			
		||||
    SpvBuilder.cpp
 | 
			
		||||
    SPVRemapper.cpp
 | 
			
		||||
    doc.cpp
 | 
			
		||||
    disassemble.cpp)
 | 
			
		||||
 | 
			
		||||
set(SPVREMAP_SOURCES
 | 
			
		||||
    SPVRemapper.cpp
 | 
			
		||||
    doc.cpp)
 | 
			
		||||
 | 
			
		||||
set(HEADERS
 | 
			
		||||
    spirv.hpp
 | 
			
		||||
    GLSL.std.450.h
 | 
			
		||||
    GlslangToSpv.h
 | 
			
		||||
    Logger.h
 | 
			
		||||
    SpvBuilder.h
 | 
			
		||||
    SPVRemapper.h
 | 
			
		||||
    spvIR.h
 | 
			
		||||
    doc.h
 | 
			
		||||
    disassemble.h)
 | 
			
		||||
 | 
			
		||||
set(SPVREMAP_HEADERS
 | 
			
		||||
    SPVRemapper.h
 | 
			
		||||
    doc.h)
 | 
			
		||||
 | 
			
		||||
if(ENABLE_AMD_EXTENSIONS)
 | 
			
		||||
    set(HEADERS
 | 
			
		||||
        GLSL.ext.AMD.h)
 | 
			
		||||
@ -26,9 +32,13 @@ endif(ENABLE_AMD_EXTENSIONS)
 | 
			
		||||
add_library(SPIRV STATIC ${SOURCES} ${HEADERS})
 | 
			
		||||
set_property(TARGET SPIRV PROPERTY FOLDER glslang)
 | 
			
		||||
 | 
			
		||||
add_library(SPVRemapper STATIC ${SPVREMAP_SOURCES} ${SPVREMAP_HEADERS})
 | 
			
		||||
set_property(TARGET SPVRemapper PROPERTY FOLDER glslang)
 | 
			
		||||
 | 
			
		||||
if(WIN32)
 | 
			
		||||
    source_group("Source" FILES ${SOURCES} ${HEADERS})
 | 
			
		||||
    source_group("Source" FILES ${SPVREMAP_SOURCES} ${SPVREMAP_HEADERS})
 | 
			
		||||
endif(WIN32)
 | 
			
		||||
 | 
			
		||||
install(TARGETS SPIRV
 | 
			
		||||
install(TARGETS SPIRV SPVRemapper
 | 
			
		||||
        ARCHIVE DESTINATION lib)
 | 
			
		||||
 | 
			
		||||
@ -82,7 +82,7 @@ class spirvbin_t : public spirvbin_base_t
 | 
			
		||||
public:
 | 
			
		||||
    spirvbin_t(int /*verbose = 0*/) { }
 | 
			
		||||
 | 
			
		||||
    void remap(std::vector<unsigned int>& /*spv*/, unsigned int /*opts = 0*/)
 | 
			
		||||
    void remap(std::vector<std::uint32_t>& /*spv*/, unsigned int /*opts = 0*/)
 | 
			
		||||
    {
 | 
			
		||||
        printf("Tool not compiled for C++11, which is required for SPIR-V remapping.\n");
 | 
			
		||||
        exit(5);
 | 
			
		||||
 | 
			
		||||
@ -217,10 +217,12 @@ void SpirvStream::outputIndent()
 | 
			
		||||
 | 
			
		||||
void SpirvStream::formatId(Id id, std::stringstream& idStream)
 | 
			
		||||
{
 | 
			
		||||
    if (id != 0) {
 | 
			
		||||
        // On instructions with no IDs, this is called with "0", which does not
 | 
			
		||||
        // have to be within ID bounds on null shaders.
 | 
			
		||||
        if (id >= bound)
 | 
			
		||||
            Kill(out, "Bad <id>");
 | 
			
		||||
 | 
			
		||||
    if (id != 0) {
 | 
			
		||||
        idStream << id;
 | 
			
		||||
        if (idDescriptor[id].size() > 0)
 | 
			
		||||
            idStream << "(" << idDescriptor[id] << ")";
 | 
			
		||||
@ -334,7 +336,7 @@ void SpirvStream::disassembleInstruction(Id resultId, Id /*typeId*/, Op opCode,
 | 
			
		||||
        idDescriptor[resultId] = (const char*)(&stream[word]);
 | 
			
		||||
    }
 | 
			
		||||
    else {
 | 
			
		||||
        if (idDescriptor[resultId].size() == 0) {
 | 
			
		||||
        if (resultId != 0 && idDescriptor[resultId].size() == 0) {
 | 
			
		||||
            switch (opCode) {
 | 
			
		||||
            case OpTypeInt:
 | 
			
		||||
                idDescriptor[resultId] = "int";
 | 
			
		||||
 | 
			
		||||
@ -24,6 +24,7 @@ set(LIBRARIES
 | 
			
		||||
    OSDependent
 | 
			
		||||
    HLSL
 | 
			
		||||
    SPIRV
 | 
			
		||||
    SPVRemapper
 | 
			
		||||
    glslang-default-resource-limits)
 | 
			
		||||
 | 
			
		||||
if(WIN32)
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										40
									
								
								Test/baseResults/remap.basic.dcefunc.frag.out
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								Test/baseResults/remap.basic.dcefunc.frag.out
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,40 @@
 | 
			
		||||
remap.basic.dcefunc.frag
 | 
			
		||||
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Linked fragment stage:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// Module Version 10000
 | 
			
		||||
// Generated by (magic number): 80001
 | 
			
		||||
// Id's are bound by 19
 | 
			
		||||
 | 
			
		||||
                              Capability Shader
 | 
			
		||||
               1:             ExtInstImport  "GLSL.std.450"
 | 
			
		||||
                              MemoryModel Logical GLSL450
 | 
			
		||||
                              EntryPoint Fragment 4  "main" 14 16
 | 
			
		||||
                              ExecutionMode 4 OriginUpperLeft
 | 
			
		||||
                              Source GLSL 450
 | 
			
		||||
                              Name 4  "main"
 | 
			
		||||
                              Name 9  "dead_fn("
 | 
			
		||||
                              Name 14  "outf4"
 | 
			
		||||
                              Name 16  "inf"
 | 
			
		||||
               2:             TypeVoid
 | 
			
		||||
               3:             TypeFunction 2
 | 
			
		||||
               6:             TypeFloat 32
 | 
			
		||||
               7:             TypeVector 6(float) 3
 | 
			
		||||
               8:             TypeFunction 7(fvec3)
 | 
			
		||||
              10:    6(float) Constant 0
 | 
			
		||||
              11:    7(fvec3) ConstantComposite 10 10 10
 | 
			
		||||
              12:             TypeVector 6(float) 4
 | 
			
		||||
              13:             TypePointer Output 12(fvec4)
 | 
			
		||||
       14(outf4):     13(ptr) Variable Output
 | 
			
		||||
              15:             TypePointer Input 6(float)
 | 
			
		||||
         16(inf):     15(ptr) Variable Input
 | 
			
		||||
         4(main):           2 Function None 3
 | 
			
		||||
               5:             Label
 | 
			
		||||
              17:    6(float) Load 16(inf)
 | 
			
		||||
              18:   12(fvec4) CompositeConstruct 17 17 17 17
 | 
			
		||||
                              Store 14(outf4) 18
 | 
			
		||||
                              Return
 | 
			
		||||
                              FunctionEnd
 | 
			
		||||
							
								
								
									
										12
									
								
								Test/baseResults/remap.basic.dcevartype.frag.out
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								Test/baseResults/remap.basic.dcevartype.frag.out
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,12 @@
 | 
			
		||||
remap.basic.dcevartype.frag
 | 
			
		||||
ERROR: #version: ES shaders for Vulkan SPIR-V require version 310 or higher
 | 
			
		||||
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
 | 
			
		||||
ERROR: 1 compilation errors.  No code generated.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Linked fragment stage:
 | 
			
		||||
 | 
			
		||||
ERROR: Linking fragment stage: Missing entry point: Each stage requires one "void main()" entry point
 | 
			
		||||
 | 
			
		||||
SPIR-V is not generated for failed compile or link
 | 
			
		||||
							
								
								
									
										31
									
								
								Test/baseResults/remap.basic.everything.frag.out
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								Test/baseResults/remap.basic.everything.frag.out
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,31 @@
 | 
			
		||||
remap.basic.everything.frag
 | 
			
		||||
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Linked fragment stage:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// Module Version 10000
 | 
			
		||||
// Generated by (magic number): 80001
 | 
			
		||||
// Id's are bound by 24969
 | 
			
		||||
 | 
			
		||||
                              Capability Shader
 | 
			
		||||
               1:             ExtInstImport  "GLSL.std.450"
 | 
			
		||||
                              MemoryModel Logical GLSL450
 | 
			
		||||
                              EntryPoint Fragment 5663  "main" 4539 3773
 | 
			
		||||
                              ExecutionMode 5663 OriginUpperLeft
 | 
			
		||||
               8:             TypeVoid
 | 
			
		||||
            1282:             TypeFunction 8
 | 
			
		||||
              13:             TypeFloat 32
 | 
			
		||||
              29:             TypeVector 13(float) 4
 | 
			
		||||
             666:             TypePointer Output 29(fvec4)
 | 
			
		||||
            4539:    666(ptr) Variable Output
 | 
			
		||||
             650:             TypePointer Input 13(float)
 | 
			
		||||
            3773:    650(ptr) Variable Input
 | 
			
		||||
            5663:           8 Function None 1282
 | 
			
		||||
           24968:             Label
 | 
			
		||||
           17486:   13(float) Load 3773
 | 
			
		||||
           17691:   29(fvec4) CompositeConstruct 17486 17486 17486 17486
 | 
			
		||||
                              Store 4539 17691
 | 
			
		||||
                              Return
 | 
			
		||||
                              FunctionEnd
 | 
			
		||||
							
								
								
									
										44
									
								
								Test/baseResults/remap.basic.none.frag.out
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								Test/baseResults/remap.basic.none.frag.out
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,44 @@
 | 
			
		||||
remap.basic.none.frag
 | 
			
		||||
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Linked fragment stage:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// Module Version 10000
 | 
			
		||||
// Generated by (magic number): 80001
 | 
			
		||||
// Id's are bound by 20
 | 
			
		||||
 | 
			
		||||
                              Capability Shader
 | 
			
		||||
               1:             ExtInstImport  "GLSL.std.450"
 | 
			
		||||
                              MemoryModel Logical GLSL450
 | 
			
		||||
                              EntryPoint Fragment 4  "main" 15 17
 | 
			
		||||
                              ExecutionMode 4 OriginUpperLeft
 | 
			
		||||
                              Source GLSL 450
 | 
			
		||||
                              Name 4  "main"
 | 
			
		||||
                              Name 9  "dead_fn("
 | 
			
		||||
                              Name 15  "outf4"
 | 
			
		||||
                              Name 17  "inf"
 | 
			
		||||
               2:             TypeVoid
 | 
			
		||||
               3:             TypeFunction 2
 | 
			
		||||
               6:             TypeFloat 32
 | 
			
		||||
               7:             TypeVector 6(float) 3
 | 
			
		||||
               8:             TypeFunction 7(fvec3)
 | 
			
		||||
              11:    6(float) Constant 0
 | 
			
		||||
              12:    7(fvec3) ConstantComposite 11 11 11
 | 
			
		||||
              13:             TypeVector 6(float) 4
 | 
			
		||||
              14:             TypePointer Output 13(fvec4)
 | 
			
		||||
       15(outf4):     14(ptr) Variable Output
 | 
			
		||||
              16:             TypePointer Input 6(float)
 | 
			
		||||
         17(inf):     16(ptr) Variable Input
 | 
			
		||||
         4(main):           2 Function None 3
 | 
			
		||||
               5:             Label
 | 
			
		||||
              18:    6(float) Load 17(inf)
 | 
			
		||||
              19:   13(fvec4) CompositeConstruct 18 18 18 18
 | 
			
		||||
                              Store 15(outf4) 19
 | 
			
		||||
                              Return
 | 
			
		||||
                              FunctionEnd
 | 
			
		||||
     9(dead_fn():    7(fvec3) Function None 8
 | 
			
		||||
              10:             Label
 | 
			
		||||
                              ReturnValue 12
 | 
			
		||||
                              FunctionEnd
 | 
			
		||||
							
								
								
									
										39
									
								
								Test/baseResults/remap.basic.strip.frag.out
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								Test/baseResults/remap.basic.strip.frag.out
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,39 @@
 | 
			
		||||
remap.basic.strip.frag
 | 
			
		||||
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Linked fragment stage:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// Module Version 10000
 | 
			
		||||
// Generated by (magic number): 80001
 | 
			
		||||
// Id's are bound by 20
 | 
			
		||||
 | 
			
		||||
                              Capability Shader
 | 
			
		||||
               1:             ExtInstImport  "GLSL.std.450"
 | 
			
		||||
                              MemoryModel Logical GLSL450
 | 
			
		||||
                              EntryPoint Fragment 4  "main" 15 17
 | 
			
		||||
                              ExecutionMode 4 OriginUpperLeft
 | 
			
		||||
               2:             TypeVoid
 | 
			
		||||
               3:             TypeFunction 2
 | 
			
		||||
               6:             TypeFloat 32
 | 
			
		||||
               7:             TypeVector 6(float) 3
 | 
			
		||||
               8:             TypeFunction 7(fvec3)
 | 
			
		||||
              11:    6(float) Constant 0
 | 
			
		||||
              12:    7(fvec3) ConstantComposite 11 11 11
 | 
			
		||||
              13:             TypeVector 6(float) 4
 | 
			
		||||
              14:             TypePointer Output 13(fvec4)
 | 
			
		||||
              15:     14(ptr) Variable Output
 | 
			
		||||
              16:             TypePointer Input 6(float)
 | 
			
		||||
              17:     16(ptr) Variable Input
 | 
			
		||||
               4:           2 Function None 3
 | 
			
		||||
               5:             Label
 | 
			
		||||
              18:    6(float) Load 17
 | 
			
		||||
              19:   13(fvec4) CompositeConstruct 18 18 18 18
 | 
			
		||||
                              Store 15 19
 | 
			
		||||
                              Return
 | 
			
		||||
                              FunctionEnd
 | 
			
		||||
               9:    7(fvec3) Function None 8
 | 
			
		||||
              10:             Label
 | 
			
		||||
                              ReturnValue 12
 | 
			
		||||
                              FunctionEnd
 | 
			
		||||
							
								
								
									
										213
									
								
								Test/baseResults/remap.hlsl.sample.basic.everything.frag.out
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										213
									
								
								Test/baseResults/remap.hlsl.sample.basic.everything.frag.out
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,213 @@
 | 
			
		||||
remap.hlsl.sample.basic.everything.frag
 | 
			
		||||
WARNING: 0:4: 'immediate sampler state' : unimplemented 
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Linked fragment stage:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// Module Version 10000
 | 
			
		||||
// Generated by (magic number): 80001
 | 
			
		||||
// Id's are bound by 24916
 | 
			
		||||
 | 
			
		||||
                              Capability Shader
 | 
			
		||||
                              Capability Sampled1D
 | 
			
		||||
               1:             ExtInstImport  "GLSL.std.450"
 | 
			
		||||
                              MemoryModel Logical GLSL450
 | 
			
		||||
                              EntryPoint Fragment 5663  "main"
 | 
			
		||||
                              ExecutionMode 5663 OriginUpperLeft
 | 
			
		||||
                              Decorate 4727 DescriptorSet 0
 | 
			
		||||
                              Decorate 4727 Binding 0
 | 
			
		||||
                              Decorate 3305 DescriptorSet 0
 | 
			
		||||
                              Decorate 3305 Binding 0
 | 
			
		||||
                              Decorate 4743 DescriptorSet 0
 | 
			
		||||
                              Decorate 4807 DescriptorSet 0
 | 
			
		||||
                              Decorate 5042 DescriptorSet 0
 | 
			
		||||
                              Decorate 5058 DescriptorSet 0
 | 
			
		||||
                              Decorate 5122 DescriptorSet 0
 | 
			
		||||
                              Decorate 3967 DescriptorSet 0
 | 
			
		||||
                              Decorate 3983 DescriptorSet 0
 | 
			
		||||
                              Decorate 4047 DescriptorSet 0
 | 
			
		||||
                              Decorate 3789 DescriptorSet 0
 | 
			
		||||
                              Decorate 3805 DescriptorSet 0
 | 
			
		||||
                              Decorate 3869 DescriptorSet 0
 | 
			
		||||
                              MemberDecorate 1032 1 BuiltIn FragDepth
 | 
			
		||||
               8:             TypeVoid
 | 
			
		||||
            1282:             TypeFunction 8
 | 
			
		||||
              12:             TypeInt 32 1
 | 
			
		||||
            1335:             TypeStruct 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) 12(int)
 | 
			
		||||
            1972:             TypePointer Function 1335(struct)
 | 
			
		||||
            2574:     12(int) Constant 1
 | 
			
		||||
             649:             TypePointer Function 12(int)
 | 
			
		||||
            2577:     12(int) Constant 2
 | 
			
		||||
            2580:     12(int) Constant 3
 | 
			
		||||
            2583:     12(int) Constant 4
 | 
			
		||||
            2586:     12(int) Constant 5
 | 
			
		||||
            2589:     12(int) Constant 6
 | 
			
		||||
            2571:     12(int) Constant 0
 | 
			
		||||
            2592:     12(int) Constant 7
 | 
			
		||||
            2595:     12(int) Constant 8
 | 
			
		||||
            2598:     12(int) Constant 9
 | 
			
		||||
            2601:     12(int) Constant 10
 | 
			
		||||
            2604:     12(int) Constant 11
 | 
			
		||||
              13:             TypeFloat 32
 | 
			
		||||
              29:             TypeVector 13(float) 4
 | 
			
		||||
             666:             TypePointer Function 29(fvec4)
 | 
			
		||||
             149:             TypeImage 13(float) 1D sampled format:Unknown
 | 
			
		||||
             786:             TypePointer UniformConstant 149
 | 
			
		||||
            4727:    786(ptr) Variable UniformConstant
 | 
			
		||||
             508:             TypeSampler
 | 
			
		||||
            1145:             TypePointer UniformConstant 508
 | 
			
		||||
            3305:   1145(ptr) Variable UniformConstant
 | 
			
		||||
             510:             TypeSampledImage 149
 | 
			
		||||
            2935:   13(float) Constant 1036831949
 | 
			
		||||
              26:             TypeVector 12(int) 4
 | 
			
		||||
             148:             TypeImage 12(int) 1D sampled format:Unknown
 | 
			
		||||
             785:             TypePointer UniformConstant 148
 | 
			
		||||
            4743:    785(ptr) Variable UniformConstant
 | 
			
		||||
             511:             TypeSampledImage 148
 | 
			
		||||
            2821:   13(float) Constant 1045220557
 | 
			
		||||
              11:             TypeInt 32 0
 | 
			
		||||
              23:             TypeVector 11(int) 4
 | 
			
		||||
             147:             TypeImage 11(int) 1D sampled format:Unknown
 | 
			
		||||
             784:             TypePointer UniformConstant 147
 | 
			
		||||
            4807:    784(ptr) Variable UniformConstant
 | 
			
		||||
             512:             TypeSampledImage 147
 | 
			
		||||
            2151:   13(float) Constant 1050253722
 | 
			
		||||
             150:             TypeImage 13(float) 2D sampled format:Unknown
 | 
			
		||||
             787:             TypePointer UniformConstant 150
 | 
			
		||||
            5042:    787(ptr) Variable UniformConstant
 | 
			
		||||
             513:             TypeSampledImage 150
 | 
			
		||||
              19:             TypeVector 13(float) 2
 | 
			
		||||
            1825:   19(fvec2) ConstantComposite 2935 2821
 | 
			
		||||
             151:             TypeImage 12(int) 2D sampled format:Unknown
 | 
			
		||||
             788:             TypePointer UniformConstant 151
 | 
			
		||||
            5058:    788(ptr) Variable UniformConstant
 | 
			
		||||
             514:             TypeSampledImage 151
 | 
			
		||||
            2707:   13(float) Constant 1053609165
 | 
			
		||||
            2028:   19(fvec2) ConstantComposite 2151 2707
 | 
			
		||||
             152:             TypeImage 11(int) 2D sampled format:Unknown
 | 
			
		||||
             789:             TypePointer UniformConstant 152
 | 
			
		||||
            5122:    789(ptr) Variable UniformConstant
 | 
			
		||||
             515:             TypeSampledImage 152
 | 
			
		||||
             252:   13(float) Constant 1056964608
 | 
			
		||||
            2037:   13(float) Constant 1058642330
 | 
			
		||||
            2684:   19(fvec2) ConstantComposite 252 2037
 | 
			
		||||
             153:             TypeImage 13(float) 3D sampled format:Unknown
 | 
			
		||||
             790:             TypePointer UniformConstant 153
 | 
			
		||||
            3967:    790(ptr) Variable UniformConstant
 | 
			
		||||
             516:             TypeSampledImage 153
 | 
			
		||||
              24:             TypeVector 13(float) 3
 | 
			
		||||
            1660:   24(fvec3) ConstantComposite 2935 2821 2151
 | 
			
		||||
             154:             TypeImage 12(int) 3D sampled format:Unknown
 | 
			
		||||
             791:             TypePointer UniformConstant 154
 | 
			
		||||
            3983:    791(ptr) Variable UniformConstant
 | 
			
		||||
             517:             TypeSampledImage 154
 | 
			
		||||
            2174:   24(fvec3) ConstantComposite 2707 252 2037
 | 
			
		||||
             155:             TypeImage 11(int) 3D sampled format:Unknown
 | 
			
		||||
             792:             TypePointer UniformConstant 155
 | 
			
		||||
            4047:    792(ptr) Variable UniformConstant
 | 
			
		||||
             518:             TypeSampledImage 155
 | 
			
		||||
             808:   13(float) Constant 1060320051
 | 
			
		||||
            2593:   13(float) Constant 1061997773
 | 
			
		||||
            1364:   13(float) Constant 1063675494
 | 
			
		||||
            2476:   24(fvec3) ConstantComposite 808 2593 1364
 | 
			
		||||
             156:             TypeImage 13(float) Cube sampled format:Unknown
 | 
			
		||||
             793:             TypePointer UniformConstant 156
 | 
			
		||||
            3789:    793(ptr) Variable UniformConstant
 | 
			
		||||
             519:             TypeSampledImage 156
 | 
			
		||||
             157:             TypeImage 12(int) Cube sampled format:Unknown
 | 
			
		||||
             794:             TypePointer UniformConstant 157
 | 
			
		||||
            3805:    794(ptr) Variable UniformConstant
 | 
			
		||||
             520:             TypeSampledImage 157
 | 
			
		||||
             158:             TypeImage 11(int) Cube sampled format:Unknown
 | 
			
		||||
             795:             TypePointer UniformConstant 158
 | 
			
		||||
            3869:    795(ptr) Variable UniformConstant
 | 
			
		||||
             521:             TypeSampledImage 158
 | 
			
		||||
            1032:             TypeStruct 29(fvec4) 13(float)
 | 
			
		||||
            1669:             TypePointer Function 1032(struct)
 | 
			
		||||
             138:   13(float) Constant 1065353216
 | 
			
		||||
            1284:   29(fvec4) ConstantComposite 138 138 138 138
 | 
			
		||||
             650:             TypePointer Function 13(float)
 | 
			
		||||
            5663:           8 Function None 1282
 | 
			
		||||
           24915:             Label
 | 
			
		||||
            5830:   1972(ptr) Variable Function
 | 
			
		||||
            5072:   1669(ptr) Variable Function
 | 
			
		||||
           22097:    649(ptr) AccessChain 5830 2574
 | 
			
		||||
                              Store 22097 2574
 | 
			
		||||
           19732:    649(ptr) AccessChain 5830 2577
 | 
			
		||||
                              Store 19732 2574
 | 
			
		||||
           19733:    649(ptr) AccessChain 5830 2580
 | 
			
		||||
                              Store 19733 2574
 | 
			
		||||
           19734:    649(ptr) AccessChain 5830 2583
 | 
			
		||||
                              Store 19734 2574
 | 
			
		||||
           19735:    649(ptr) AccessChain 5830 2586
 | 
			
		||||
                              Store 19735 2574
 | 
			
		||||
           19736:    649(ptr) AccessChain 5830 2589
 | 
			
		||||
                              Store 19736 2574
 | 
			
		||||
           19737:    649(ptr) AccessChain 5830 2571
 | 
			
		||||
                              Store 19737 2574
 | 
			
		||||
           19738:    649(ptr) AccessChain 5830 2592
 | 
			
		||||
                              Store 19738 2574
 | 
			
		||||
           19739:    649(ptr) AccessChain 5830 2595
 | 
			
		||||
                              Store 19739 2574
 | 
			
		||||
           19740:    649(ptr) AccessChain 5830 2598
 | 
			
		||||
                              Store 19740 2574
 | 
			
		||||
           19741:    649(ptr) AccessChain 5830 2601
 | 
			
		||||
                              Store 19741 2574
 | 
			
		||||
           19656:    649(ptr) AccessChain 5830 2604
 | 
			
		||||
                              Store 19656 2574
 | 
			
		||||
           14934:         149 Load 4727
 | 
			
		||||
           11686:         508 Load 3305
 | 
			
		||||
           11940:         510 SampledImage 14934 11686
 | 
			
		||||
            7877:   29(fvec4) ImageSampleImplicitLod 11940 2935
 | 
			
		||||
           15360:         148 Load 4743
 | 
			
		||||
           15706:         508 Load 3305
 | 
			
		||||
           11941:         511 SampledImage 15360 15706
 | 
			
		||||
            7878:   26(ivec4) ImageSampleImplicitLod 11941 2821
 | 
			
		||||
           15361:         147 Load 4807
 | 
			
		||||
           15707:         508 Load 3305
 | 
			
		||||
           11942:         512 SampledImage 15361 15707
 | 
			
		||||
            7879:   23(ivec4) ImageSampleImplicitLod 11942 2151
 | 
			
		||||
           15362:         150 Load 5042
 | 
			
		||||
           15708:         508 Load 3305
 | 
			
		||||
           11943:         513 SampledImage 15362 15708
 | 
			
		||||
            7880:   29(fvec4) ImageSampleImplicitLod 11943 1825
 | 
			
		||||
           15363:         151 Load 5058
 | 
			
		||||
           15709:         508 Load 3305
 | 
			
		||||
           11944:         514 SampledImage 15363 15709
 | 
			
		||||
            7881:   26(ivec4) ImageSampleImplicitLod 11944 2028
 | 
			
		||||
           15364:         152 Load 5122
 | 
			
		||||
           15710:         508 Load 3305
 | 
			
		||||
           11945:         515 SampledImage 15364 15710
 | 
			
		||||
            7882:   23(ivec4) ImageSampleImplicitLod 11945 2684
 | 
			
		||||
           15365:         153 Load 3967
 | 
			
		||||
           15711:         508 Load 3305
 | 
			
		||||
           11946:         516 SampledImage 15365 15711
 | 
			
		||||
            7883:   29(fvec4) ImageSampleImplicitLod 11946 1660
 | 
			
		||||
           15366:         154 Load 3983
 | 
			
		||||
           15712:         508 Load 3305
 | 
			
		||||
           11947:         517 SampledImage 15366 15712
 | 
			
		||||
            7884:   26(ivec4) ImageSampleImplicitLod 11947 2174
 | 
			
		||||
           15367:         155 Load 4047
 | 
			
		||||
           15713:         508 Load 3305
 | 
			
		||||
           11948:         518 SampledImage 15367 15713
 | 
			
		||||
            7885:   23(ivec4) ImageSampleImplicitLod 11948 2476
 | 
			
		||||
           15368:         156 Load 3789
 | 
			
		||||
           15714:         508 Load 3305
 | 
			
		||||
           11949:         519 SampledImage 15368 15714
 | 
			
		||||
            7886:   29(fvec4) ImageSampleImplicitLod 11949 1660
 | 
			
		||||
           15369:         157 Load 3805
 | 
			
		||||
           15715:         508 Load 3305
 | 
			
		||||
           11950:         520 SampledImage 15369 15715
 | 
			
		||||
            7887:   26(ivec4) ImageSampleImplicitLod 11950 2174
 | 
			
		||||
           15370:         158 Load 3869
 | 
			
		||||
           15716:         508 Load 3305
 | 
			
		||||
           12016:         521 SampledImage 15370 15716
 | 
			
		||||
            7204:   23(ivec4) ImageSampleImplicitLod 12016 2476
 | 
			
		||||
           20158:    666(ptr) AccessChain 5072 2571
 | 
			
		||||
                              Store 20158 1284
 | 
			
		||||
           19657:    650(ptr) AccessChain 5072 2574
 | 
			
		||||
                              Store 19657 138
 | 
			
		||||
           21536:1032(struct) Load 5072
 | 
			
		||||
                              ReturnValue 21536
 | 
			
		||||
                              FunctionEnd
 | 
			
		||||
							
								
								
									
										293
									
								
								Test/baseResults/remap.hlsl.sample.basic.none.frag.out
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										293
									
								
								Test/baseResults/remap.hlsl.sample.basic.none.frag.out
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,293 @@
 | 
			
		||||
remap.hlsl.sample.basic.none.frag
 | 
			
		||||
WARNING: 0:4: 'immediate sampler state' : unimplemented 
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Linked fragment stage:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// Module Version 10000
 | 
			
		||||
// Generated by (magic number): 80001
 | 
			
		||||
// Id's are bound by 183
 | 
			
		||||
 | 
			
		||||
                              Capability Shader
 | 
			
		||||
                              Capability Sampled1D
 | 
			
		||||
               1:             ExtInstImport  "GLSL.std.450"
 | 
			
		||||
                              MemoryModel Logical GLSL450
 | 
			
		||||
                              EntryPoint Fragment 4  "main"
 | 
			
		||||
                              ExecutionMode 4 OriginUpperLeft
 | 
			
		||||
                              Name 4  "main"
 | 
			
		||||
                              Name 7  "MemberTest"
 | 
			
		||||
                              MemberName 7(MemberTest) 0  "Sample"
 | 
			
		||||
                              MemberName 7(MemberTest) 1  "CalculateLevelOfDetail"
 | 
			
		||||
                              MemberName 7(MemberTest) 2  "CalculateLevelOfDetailUnclamped"
 | 
			
		||||
                              MemberName 7(MemberTest) 3  "Gather"
 | 
			
		||||
                              MemberName 7(MemberTest) 4  "GetDimensions"
 | 
			
		||||
                              MemberName 7(MemberTest) 5  "GetSamplePosition"
 | 
			
		||||
                              MemberName 7(MemberTest) 6  "Load"
 | 
			
		||||
                              MemberName 7(MemberTest) 7  "SampleBias"
 | 
			
		||||
                              MemberName 7(MemberTest) 8  "SampleCmp"
 | 
			
		||||
                              MemberName 7(MemberTest) 9  "SampleCmpLevelZero"
 | 
			
		||||
                              MemberName 7(MemberTest) 10  "SampleGrad"
 | 
			
		||||
                              MemberName 7(MemberTest) 11  "SampleLevel"
 | 
			
		||||
                              Name 9  "mtest"
 | 
			
		||||
                              Name 38  "txval10"
 | 
			
		||||
                              Name 41  "g_tTex1df4"
 | 
			
		||||
                              Name 45  "g_sSamp"
 | 
			
		||||
                              Name 53  "txval11"
 | 
			
		||||
                              Name 56  "g_tTex1di4"
 | 
			
		||||
                              Name 66  "txval12"
 | 
			
		||||
                              Name 69  "g_tTex1du4"
 | 
			
		||||
                              Name 76  "txval20"
 | 
			
		||||
                              Name 79  "g_tTex2df4"
 | 
			
		||||
                              Name 87  "txval21"
 | 
			
		||||
                              Name 90  "g_tTex2di4"
 | 
			
		||||
                              Name 98  "txval22"
 | 
			
		||||
                              Name 101  "g_tTex2du4"
 | 
			
		||||
                              Name 110  "txval30"
 | 
			
		||||
                              Name 113  "g_tTex3df4"
 | 
			
		||||
                              Name 121  "txval31"
 | 
			
		||||
                              Name 124  "g_tTex3di4"
 | 
			
		||||
                              Name 131  "txval32"
 | 
			
		||||
                              Name 134  "g_tTex3du4"
 | 
			
		||||
                              Name 144  "txval40"
 | 
			
		||||
                              Name 147  "g_tTexcdf4"
 | 
			
		||||
                              Name 153  "txval41"
 | 
			
		||||
                              Name 156  "g_tTexcdi4"
 | 
			
		||||
                              Name 162  "txval42"
 | 
			
		||||
                              Name 165  "g_tTexcdu4"
 | 
			
		||||
                              Name 171  "PS_OUTPUT"
 | 
			
		||||
                              MemberName 171(PS_OUTPUT) 0  "Color"
 | 
			
		||||
                              MemberName 171(PS_OUTPUT) 1  "Depth"
 | 
			
		||||
                              Name 173  "psout"
 | 
			
		||||
                              Name 180  "g_sSamp2d"
 | 
			
		||||
                              Name 181  "g_sSamp2D_b"
 | 
			
		||||
                              Name 182  "g_tTex1df4a"
 | 
			
		||||
                              Decorate 41(g_tTex1df4) DescriptorSet 0
 | 
			
		||||
                              Decorate 41(g_tTex1df4) Binding 0
 | 
			
		||||
                              Decorate 45(g_sSamp) DescriptorSet 0
 | 
			
		||||
                              Decorate 45(g_sSamp) Binding 0
 | 
			
		||||
                              Decorate 56(g_tTex1di4) DescriptorSet 0
 | 
			
		||||
                              Decorate 69(g_tTex1du4) DescriptorSet 0
 | 
			
		||||
                              Decorate 79(g_tTex2df4) DescriptorSet 0
 | 
			
		||||
                              Decorate 90(g_tTex2di4) DescriptorSet 0
 | 
			
		||||
                              Decorate 101(g_tTex2du4) DescriptorSet 0
 | 
			
		||||
                              Decorate 113(g_tTex3df4) DescriptorSet 0
 | 
			
		||||
                              Decorate 124(g_tTex3di4) DescriptorSet 0
 | 
			
		||||
                              Decorate 134(g_tTex3du4) DescriptorSet 0
 | 
			
		||||
                              Decorate 147(g_tTexcdf4) DescriptorSet 0
 | 
			
		||||
                              Decorate 156(g_tTexcdi4) DescriptorSet 0
 | 
			
		||||
                              Decorate 165(g_tTexcdu4) DescriptorSet 0
 | 
			
		||||
                              MemberDecorate 171(PS_OUTPUT) 1 BuiltIn FragDepth
 | 
			
		||||
                              Decorate 180(g_sSamp2d) DescriptorSet 0
 | 
			
		||||
                              Decorate 181(g_sSamp2D_b) DescriptorSet 0
 | 
			
		||||
                              Decorate 182(g_tTex1df4a) DescriptorSet 0
 | 
			
		||||
                              Decorate 182(g_tTex1df4a) Binding 1
 | 
			
		||||
               2:             TypeVoid
 | 
			
		||||
               3:             TypeFunction 2
 | 
			
		||||
               6:             TypeInt 32 1
 | 
			
		||||
   7(MemberTest):             TypeStruct 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) 6(int)
 | 
			
		||||
               8:             TypePointer Function 7(MemberTest)
 | 
			
		||||
              10:      6(int) Constant 1
 | 
			
		||||
              11:             TypePointer Function 6(int)
 | 
			
		||||
              13:      6(int) Constant 2
 | 
			
		||||
              15:      6(int) Constant 3
 | 
			
		||||
              17:      6(int) Constant 4
 | 
			
		||||
              19:      6(int) Constant 5
 | 
			
		||||
              21:      6(int) Constant 6
 | 
			
		||||
              23:      6(int) Constant 0
 | 
			
		||||
              25:      6(int) Constant 7
 | 
			
		||||
              27:      6(int) Constant 8
 | 
			
		||||
              29:      6(int) Constant 9
 | 
			
		||||
              31:      6(int) Constant 10
 | 
			
		||||
              33:      6(int) Constant 11
 | 
			
		||||
              35:             TypeFloat 32
 | 
			
		||||
              36:             TypeVector 35(float) 4
 | 
			
		||||
              37:             TypePointer Function 36(fvec4)
 | 
			
		||||
              39:             TypeImage 35(float) 1D sampled format:Unknown
 | 
			
		||||
              40:             TypePointer UniformConstant 39
 | 
			
		||||
  41(g_tTex1df4):     40(ptr) Variable UniformConstant
 | 
			
		||||
              43:             TypeSampler
 | 
			
		||||
              44:             TypePointer UniformConstant 43
 | 
			
		||||
     45(g_sSamp):     44(ptr) Variable UniformConstant
 | 
			
		||||
              47:             TypeSampledImage 39
 | 
			
		||||
              49:   35(float) Constant 1036831949
 | 
			
		||||
              51:             TypeVector 6(int) 4
 | 
			
		||||
              52:             TypePointer Function 51(ivec4)
 | 
			
		||||
              54:             TypeImage 6(int) 1D sampled format:Unknown
 | 
			
		||||
              55:             TypePointer UniformConstant 54
 | 
			
		||||
  56(g_tTex1di4):     55(ptr) Variable UniformConstant
 | 
			
		||||
              59:             TypeSampledImage 54
 | 
			
		||||
              61:   35(float) Constant 1045220557
 | 
			
		||||
              63:             TypeInt 32 0
 | 
			
		||||
              64:             TypeVector 63(int) 4
 | 
			
		||||
              65:             TypePointer Function 64(ivec4)
 | 
			
		||||
              67:             TypeImage 63(int) 1D sampled format:Unknown
 | 
			
		||||
              68:             TypePointer UniformConstant 67
 | 
			
		||||
  69(g_tTex1du4):     68(ptr) Variable UniformConstant
 | 
			
		||||
              72:             TypeSampledImage 67
 | 
			
		||||
              74:   35(float) Constant 1050253722
 | 
			
		||||
              77:             TypeImage 35(float) 2D sampled format:Unknown
 | 
			
		||||
              78:             TypePointer UniformConstant 77
 | 
			
		||||
  79(g_tTex2df4):     78(ptr) Variable UniformConstant
 | 
			
		||||
              82:             TypeSampledImage 77
 | 
			
		||||
              84:             TypeVector 35(float) 2
 | 
			
		||||
              85:   84(fvec2) ConstantComposite 49 61
 | 
			
		||||
              88:             TypeImage 6(int) 2D sampled format:Unknown
 | 
			
		||||
              89:             TypePointer UniformConstant 88
 | 
			
		||||
  90(g_tTex2di4):     89(ptr) Variable UniformConstant
 | 
			
		||||
              93:             TypeSampledImage 88
 | 
			
		||||
              95:   35(float) Constant 1053609165
 | 
			
		||||
              96:   84(fvec2) ConstantComposite 74 95
 | 
			
		||||
              99:             TypeImage 63(int) 2D sampled format:Unknown
 | 
			
		||||
             100:             TypePointer UniformConstant 99
 | 
			
		||||
 101(g_tTex2du4):    100(ptr) Variable UniformConstant
 | 
			
		||||
             104:             TypeSampledImage 99
 | 
			
		||||
             106:   35(float) Constant 1056964608
 | 
			
		||||
             107:   35(float) Constant 1058642330
 | 
			
		||||
             108:   84(fvec2) ConstantComposite 106 107
 | 
			
		||||
             111:             TypeImage 35(float) 3D sampled format:Unknown
 | 
			
		||||
             112:             TypePointer UniformConstant 111
 | 
			
		||||
 113(g_tTex3df4):    112(ptr) Variable UniformConstant
 | 
			
		||||
             116:             TypeSampledImage 111
 | 
			
		||||
             118:             TypeVector 35(float) 3
 | 
			
		||||
             119:  118(fvec3) ConstantComposite 49 61 74
 | 
			
		||||
             122:             TypeImage 6(int) 3D sampled format:Unknown
 | 
			
		||||
             123:             TypePointer UniformConstant 122
 | 
			
		||||
 124(g_tTex3di4):    123(ptr) Variable UniformConstant
 | 
			
		||||
             127:             TypeSampledImage 122
 | 
			
		||||
             129:  118(fvec3) ConstantComposite 95 106 107
 | 
			
		||||
             132:             TypeImage 63(int) 3D sampled format:Unknown
 | 
			
		||||
             133:             TypePointer UniformConstant 132
 | 
			
		||||
 134(g_tTex3du4):    133(ptr) Variable UniformConstant
 | 
			
		||||
             137:             TypeSampledImage 132
 | 
			
		||||
             139:   35(float) Constant 1060320051
 | 
			
		||||
             140:   35(float) Constant 1061997773
 | 
			
		||||
             141:   35(float) Constant 1063675494
 | 
			
		||||
             142:  118(fvec3) ConstantComposite 139 140 141
 | 
			
		||||
             145:             TypeImage 35(float) Cube sampled format:Unknown
 | 
			
		||||
             146:             TypePointer UniformConstant 145
 | 
			
		||||
 147(g_tTexcdf4):    146(ptr) Variable UniformConstant
 | 
			
		||||
             150:             TypeSampledImage 145
 | 
			
		||||
             154:             TypeImage 6(int) Cube sampled format:Unknown
 | 
			
		||||
             155:             TypePointer UniformConstant 154
 | 
			
		||||
 156(g_tTexcdi4):    155(ptr) Variable UniformConstant
 | 
			
		||||
             159:             TypeSampledImage 154
 | 
			
		||||
             163:             TypeImage 63(int) Cube sampled format:Unknown
 | 
			
		||||
             164:             TypePointer UniformConstant 163
 | 
			
		||||
 165(g_tTexcdu4):    164(ptr) Variable UniformConstant
 | 
			
		||||
             168:             TypeSampledImage 163
 | 
			
		||||
  171(PS_OUTPUT):             TypeStruct 36(fvec4) 35(float)
 | 
			
		||||
             172:             TypePointer Function 171(PS_OUTPUT)
 | 
			
		||||
             174:   35(float) Constant 1065353216
 | 
			
		||||
             175:   36(fvec4) ConstantComposite 174 174 174 174
 | 
			
		||||
             177:             TypePointer Function 35(float)
 | 
			
		||||
  180(g_sSamp2d):     44(ptr) Variable UniformConstant
 | 
			
		||||
181(g_sSamp2D_b):     44(ptr) Variable UniformConstant
 | 
			
		||||
182(g_tTex1df4a):     40(ptr) Variable UniformConstant
 | 
			
		||||
         4(main):           2 Function None 3
 | 
			
		||||
               5:             Label
 | 
			
		||||
        9(mtest):      8(ptr) Variable Function
 | 
			
		||||
     38(txval10):     37(ptr) Variable Function
 | 
			
		||||
     53(txval11):     52(ptr) Variable Function
 | 
			
		||||
     66(txval12):     65(ptr) Variable Function
 | 
			
		||||
     76(txval20):     37(ptr) Variable Function
 | 
			
		||||
     87(txval21):     52(ptr) Variable Function
 | 
			
		||||
     98(txval22):     65(ptr) Variable Function
 | 
			
		||||
    110(txval30):     37(ptr) Variable Function
 | 
			
		||||
    121(txval31):     52(ptr) Variable Function
 | 
			
		||||
    131(txval32):     65(ptr) Variable Function
 | 
			
		||||
    144(txval40):     37(ptr) Variable Function
 | 
			
		||||
    153(txval41):     52(ptr) Variable Function
 | 
			
		||||
    162(txval42):     65(ptr) Variable Function
 | 
			
		||||
      173(psout):    172(ptr) Variable Function
 | 
			
		||||
              12:     11(ptr) AccessChain 9(mtest) 10
 | 
			
		||||
                              Store 12 10
 | 
			
		||||
              14:     11(ptr) AccessChain 9(mtest) 13
 | 
			
		||||
                              Store 14 10
 | 
			
		||||
              16:     11(ptr) AccessChain 9(mtest) 15
 | 
			
		||||
                              Store 16 10
 | 
			
		||||
              18:     11(ptr) AccessChain 9(mtest) 17
 | 
			
		||||
                              Store 18 10
 | 
			
		||||
              20:     11(ptr) AccessChain 9(mtest) 19
 | 
			
		||||
                              Store 20 10
 | 
			
		||||
              22:     11(ptr) AccessChain 9(mtest) 21
 | 
			
		||||
                              Store 22 10
 | 
			
		||||
              24:     11(ptr) AccessChain 9(mtest) 23
 | 
			
		||||
                              Store 24 10
 | 
			
		||||
              26:     11(ptr) AccessChain 9(mtest) 25
 | 
			
		||||
                              Store 26 10
 | 
			
		||||
              28:     11(ptr) AccessChain 9(mtest) 27
 | 
			
		||||
                              Store 28 10
 | 
			
		||||
              30:     11(ptr) AccessChain 9(mtest) 29
 | 
			
		||||
                              Store 30 10
 | 
			
		||||
              32:     11(ptr) AccessChain 9(mtest) 31
 | 
			
		||||
                              Store 32 10
 | 
			
		||||
              34:     11(ptr) AccessChain 9(mtest) 33
 | 
			
		||||
                              Store 34 10
 | 
			
		||||
              42:          39 Load 41(g_tTex1df4)
 | 
			
		||||
              46:          43 Load 45(g_sSamp)
 | 
			
		||||
              48:          47 SampledImage 42 46
 | 
			
		||||
              50:   36(fvec4) ImageSampleImplicitLod 48 49
 | 
			
		||||
                              Store 38(txval10) 50
 | 
			
		||||
              57:          54 Load 56(g_tTex1di4)
 | 
			
		||||
              58:          43 Load 45(g_sSamp)
 | 
			
		||||
              60:          59 SampledImage 57 58
 | 
			
		||||
              62:   51(ivec4) ImageSampleImplicitLod 60 61
 | 
			
		||||
                              Store 53(txval11) 62
 | 
			
		||||
              70:          67 Load 69(g_tTex1du4)
 | 
			
		||||
              71:          43 Load 45(g_sSamp)
 | 
			
		||||
              73:          72 SampledImage 70 71
 | 
			
		||||
              75:   64(ivec4) ImageSampleImplicitLod 73 74
 | 
			
		||||
                              Store 66(txval12) 75
 | 
			
		||||
              80:          77 Load 79(g_tTex2df4)
 | 
			
		||||
              81:          43 Load 45(g_sSamp)
 | 
			
		||||
              83:          82 SampledImage 80 81
 | 
			
		||||
              86:   36(fvec4) ImageSampleImplicitLod 83 85
 | 
			
		||||
                              Store 76(txval20) 86
 | 
			
		||||
              91:          88 Load 90(g_tTex2di4)
 | 
			
		||||
              92:          43 Load 45(g_sSamp)
 | 
			
		||||
              94:          93 SampledImage 91 92
 | 
			
		||||
              97:   51(ivec4) ImageSampleImplicitLod 94 96
 | 
			
		||||
                              Store 87(txval21) 97
 | 
			
		||||
             102:          99 Load 101(g_tTex2du4)
 | 
			
		||||
             103:          43 Load 45(g_sSamp)
 | 
			
		||||
             105:         104 SampledImage 102 103
 | 
			
		||||
             109:   64(ivec4) ImageSampleImplicitLod 105 108
 | 
			
		||||
                              Store 98(txval22) 109
 | 
			
		||||
             114:         111 Load 113(g_tTex3df4)
 | 
			
		||||
             115:          43 Load 45(g_sSamp)
 | 
			
		||||
             117:         116 SampledImage 114 115
 | 
			
		||||
             120:   36(fvec4) ImageSampleImplicitLod 117 119
 | 
			
		||||
                              Store 110(txval30) 120
 | 
			
		||||
             125:         122 Load 124(g_tTex3di4)
 | 
			
		||||
             126:          43 Load 45(g_sSamp)
 | 
			
		||||
             128:         127 SampledImage 125 126
 | 
			
		||||
             130:   51(ivec4) ImageSampleImplicitLod 128 129
 | 
			
		||||
                              Store 121(txval31) 130
 | 
			
		||||
             135:         132 Load 134(g_tTex3du4)
 | 
			
		||||
             136:          43 Load 45(g_sSamp)
 | 
			
		||||
             138:         137 SampledImage 135 136
 | 
			
		||||
             143:   64(ivec4) ImageSampleImplicitLod 138 142
 | 
			
		||||
                              Store 131(txval32) 143
 | 
			
		||||
             148:         145 Load 147(g_tTexcdf4)
 | 
			
		||||
             149:          43 Load 45(g_sSamp)
 | 
			
		||||
             151:         150 SampledImage 148 149
 | 
			
		||||
             152:   36(fvec4) ImageSampleImplicitLod 151 119
 | 
			
		||||
                              Store 144(txval40) 152
 | 
			
		||||
             157:         154 Load 156(g_tTexcdi4)
 | 
			
		||||
             158:          43 Load 45(g_sSamp)
 | 
			
		||||
             160:         159 SampledImage 157 158
 | 
			
		||||
             161:   51(ivec4) ImageSampleImplicitLod 160 129
 | 
			
		||||
                              Store 153(txval41) 161
 | 
			
		||||
             166:         163 Load 165(g_tTexcdu4)
 | 
			
		||||
             167:          43 Load 45(g_sSamp)
 | 
			
		||||
             169:         168 SampledImage 166 167
 | 
			
		||||
             170:   64(ivec4) ImageSampleImplicitLod 169 142
 | 
			
		||||
                              Store 162(txval42) 170
 | 
			
		||||
             176:     37(ptr) AccessChain 173(psout) 23
 | 
			
		||||
                              Store 176 175
 | 
			
		||||
             178:    177(ptr) AccessChain 173(psout) 10
 | 
			
		||||
                              Store 178 174
 | 
			
		||||
             179:171(PS_OUTPUT) Load 173(psout)
 | 
			
		||||
                              ReturnValue 179
 | 
			
		||||
                              FunctionEnd
 | 
			
		||||
							
								
								
									
										246
									
								
								Test/baseResults/remap.hlsl.sample.basic.strip.frag.out
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										246
									
								
								Test/baseResults/remap.hlsl.sample.basic.strip.frag.out
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,246 @@
 | 
			
		||||
remap.hlsl.sample.basic.strip.frag
 | 
			
		||||
WARNING: 0:4: 'immediate sampler state' : unimplemented 
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Linked fragment stage:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// Module Version 10000
 | 
			
		||||
// Generated by (magic number): 80001
 | 
			
		||||
// Id's are bound by 183
 | 
			
		||||
 | 
			
		||||
                              Capability Shader
 | 
			
		||||
                              Capability Sampled1D
 | 
			
		||||
               1:             ExtInstImport  "GLSL.std.450"
 | 
			
		||||
                              MemoryModel Logical GLSL450
 | 
			
		||||
                              EntryPoint Fragment 4  "main"
 | 
			
		||||
                              ExecutionMode 4 OriginUpperLeft
 | 
			
		||||
                              Decorate 41 DescriptorSet 0
 | 
			
		||||
                              Decorate 41 Binding 0
 | 
			
		||||
                              Decorate 45 DescriptorSet 0
 | 
			
		||||
                              Decorate 45 Binding 0
 | 
			
		||||
                              Decorate 56 DescriptorSet 0
 | 
			
		||||
                              Decorate 69 DescriptorSet 0
 | 
			
		||||
                              Decorate 79 DescriptorSet 0
 | 
			
		||||
                              Decorate 90 DescriptorSet 0
 | 
			
		||||
                              Decorate 101 DescriptorSet 0
 | 
			
		||||
                              Decorate 113 DescriptorSet 0
 | 
			
		||||
                              Decorate 124 DescriptorSet 0
 | 
			
		||||
                              Decorate 134 DescriptorSet 0
 | 
			
		||||
                              Decorate 147 DescriptorSet 0
 | 
			
		||||
                              Decorate 156 DescriptorSet 0
 | 
			
		||||
                              Decorate 165 DescriptorSet 0
 | 
			
		||||
                              MemberDecorate 171 1 BuiltIn FragDepth
 | 
			
		||||
                              Decorate 180 DescriptorSet 0
 | 
			
		||||
                              Decorate 181 DescriptorSet 0
 | 
			
		||||
                              Decorate 182 DescriptorSet 0
 | 
			
		||||
                              Decorate 182 Binding 1
 | 
			
		||||
               2:             TypeVoid
 | 
			
		||||
               3:             TypeFunction 2
 | 
			
		||||
               6:             TypeInt 32 1
 | 
			
		||||
               7:             TypeStruct 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) 6(int)
 | 
			
		||||
               8:             TypePointer Function 7(struct)
 | 
			
		||||
              10:      6(int) Constant 1
 | 
			
		||||
              11:             TypePointer Function 6(int)
 | 
			
		||||
              13:      6(int) Constant 2
 | 
			
		||||
              15:      6(int) Constant 3
 | 
			
		||||
              17:      6(int) Constant 4
 | 
			
		||||
              19:      6(int) Constant 5
 | 
			
		||||
              21:      6(int) Constant 6
 | 
			
		||||
              23:      6(int) Constant 0
 | 
			
		||||
              25:      6(int) Constant 7
 | 
			
		||||
              27:      6(int) Constant 8
 | 
			
		||||
              29:      6(int) Constant 9
 | 
			
		||||
              31:      6(int) Constant 10
 | 
			
		||||
              33:      6(int) Constant 11
 | 
			
		||||
              35:             TypeFloat 32
 | 
			
		||||
              36:             TypeVector 35(float) 4
 | 
			
		||||
              37:             TypePointer Function 36(fvec4)
 | 
			
		||||
              39:             TypeImage 35(float) 1D sampled format:Unknown
 | 
			
		||||
              40:             TypePointer UniformConstant 39
 | 
			
		||||
              41:     40(ptr) Variable UniformConstant
 | 
			
		||||
              43:             TypeSampler
 | 
			
		||||
              44:             TypePointer UniformConstant 43
 | 
			
		||||
              45:     44(ptr) Variable UniformConstant
 | 
			
		||||
              47:             TypeSampledImage 39
 | 
			
		||||
              49:   35(float) Constant 1036831949
 | 
			
		||||
              51:             TypeVector 6(int) 4
 | 
			
		||||
              52:             TypePointer Function 51(ivec4)
 | 
			
		||||
              54:             TypeImage 6(int) 1D sampled format:Unknown
 | 
			
		||||
              55:             TypePointer UniformConstant 54
 | 
			
		||||
              56:     55(ptr) Variable UniformConstant
 | 
			
		||||
              59:             TypeSampledImage 54
 | 
			
		||||
              61:   35(float) Constant 1045220557
 | 
			
		||||
              63:             TypeInt 32 0
 | 
			
		||||
              64:             TypeVector 63(int) 4
 | 
			
		||||
              65:             TypePointer Function 64(ivec4)
 | 
			
		||||
              67:             TypeImage 63(int) 1D sampled format:Unknown
 | 
			
		||||
              68:             TypePointer UniformConstant 67
 | 
			
		||||
              69:     68(ptr) Variable UniformConstant
 | 
			
		||||
              72:             TypeSampledImage 67
 | 
			
		||||
              74:   35(float) Constant 1050253722
 | 
			
		||||
              77:             TypeImage 35(float) 2D sampled format:Unknown
 | 
			
		||||
              78:             TypePointer UniformConstant 77
 | 
			
		||||
              79:     78(ptr) Variable UniformConstant
 | 
			
		||||
              82:             TypeSampledImage 77
 | 
			
		||||
              84:             TypeVector 35(float) 2
 | 
			
		||||
              85:   84(fvec2) ConstantComposite 49 61
 | 
			
		||||
              88:             TypeImage 6(int) 2D sampled format:Unknown
 | 
			
		||||
              89:             TypePointer UniformConstant 88
 | 
			
		||||
              90:     89(ptr) Variable UniformConstant
 | 
			
		||||
              93:             TypeSampledImage 88
 | 
			
		||||
              95:   35(float) Constant 1053609165
 | 
			
		||||
              96:   84(fvec2) ConstantComposite 74 95
 | 
			
		||||
              99:             TypeImage 63(int) 2D sampled format:Unknown
 | 
			
		||||
             100:             TypePointer UniformConstant 99
 | 
			
		||||
             101:    100(ptr) Variable UniformConstant
 | 
			
		||||
             104:             TypeSampledImage 99
 | 
			
		||||
             106:   35(float) Constant 1056964608
 | 
			
		||||
             107:   35(float) Constant 1058642330
 | 
			
		||||
             108:   84(fvec2) ConstantComposite 106 107
 | 
			
		||||
             111:             TypeImage 35(float) 3D sampled format:Unknown
 | 
			
		||||
             112:             TypePointer UniformConstant 111
 | 
			
		||||
             113:    112(ptr) Variable UniformConstant
 | 
			
		||||
             116:             TypeSampledImage 111
 | 
			
		||||
             118:             TypeVector 35(float) 3
 | 
			
		||||
             119:  118(fvec3) ConstantComposite 49 61 74
 | 
			
		||||
             122:             TypeImage 6(int) 3D sampled format:Unknown
 | 
			
		||||
             123:             TypePointer UniformConstant 122
 | 
			
		||||
             124:    123(ptr) Variable UniformConstant
 | 
			
		||||
             127:             TypeSampledImage 122
 | 
			
		||||
             129:  118(fvec3) ConstantComposite 95 106 107
 | 
			
		||||
             132:             TypeImage 63(int) 3D sampled format:Unknown
 | 
			
		||||
             133:             TypePointer UniformConstant 132
 | 
			
		||||
             134:    133(ptr) Variable UniformConstant
 | 
			
		||||
             137:             TypeSampledImage 132
 | 
			
		||||
             139:   35(float) Constant 1060320051
 | 
			
		||||
             140:   35(float) Constant 1061997773
 | 
			
		||||
             141:   35(float) Constant 1063675494
 | 
			
		||||
             142:  118(fvec3) ConstantComposite 139 140 141
 | 
			
		||||
             145:             TypeImage 35(float) Cube sampled format:Unknown
 | 
			
		||||
             146:             TypePointer UniformConstant 145
 | 
			
		||||
             147:    146(ptr) Variable UniformConstant
 | 
			
		||||
             150:             TypeSampledImage 145
 | 
			
		||||
             154:             TypeImage 6(int) Cube sampled format:Unknown
 | 
			
		||||
             155:             TypePointer UniformConstant 154
 | 
			
		||||
             156:    155(ptr) Variable UniformConstant
 | 
			
		||||
             159:             TypeSampledImage 154
 | 
			
		||||
             163:             TypeImage 63(int) Cube sampled format:Unknown
 | 
			
		||||
             164:             TypePointer UniformConstant 163
 | 
			
		||||
             165:    164(ptr) Variable UniformConstant
 | 
			
		||||
             168:             TypeSampledImage 163
 | 
			
		||||
             171:             TypeStruct 36(fvec4) 35(float)
 | 
			
		||||
             172:             TypePointer Function 171(struct)
 | 
			
		||||
             174:   35(float) Constant 1065353216
 | 
			
		||||
             175:   36(fvec4) ConstantComposite 174 174 174 174
 | 
			
		||||
             177:             TypePointer Function 35(float)
 | 
			
		||||
             180:     44(ptr) Variable UniformConstant
 | 
			
		||||
             181:     44(ptr) Variable UniformConstant
 | 
			
		||||
             182:     40(ptr) Variable UniformConstant
 | 
			
		||||
               4:           2 Function None 3
 | 
			
		||||
               5:             Label
 | 
			
		||||
               9:      8(ptr) Variable Function
 | 
			
		||||
              38:     37(ptr) Variable Function
 | 
			
		||||
              53:     52(ptr) Variable Function
 | 
			
		||||
              66:     65(ptr) Variable Function
 | 
			
		||||
              76:     37(ptr) Variable Function
 | 
			
		||||
              87:     52(ptr) Variable Function
 | 
			
		||||
              98:     65(ptr) Variable Function
 | 
			
		||||
             110:     37(ptr) Variable Function
 | 
			
		||||
             121:     52(ptr) Variable Function
 | 
			
		||||
             131:     65(ptr) Variable Function
 | 
			
		||||
             144:     37(ptr) Variable Function
 | 
			
		||||
             153:     52(ptr) Variable Function
 | 
			
		||||
             162:     65(ptr) Variable Function
 | 
			
		||||
             173:    172(ptr) Variable Function
 | 
			
		||||
              12:     11(ptr) AccessChain 9 10
 | 
			
		||||
                              Store 12 10
 | 
			
		||||
              14:     11(ptr) AccessChain 9 13
 | 
			
		||||
                              Store 14 10
 | 
			
		||||
              16:     11(ptr) AccessChain 9 15
 | 
			
		||||
                              Store 16 10
 | 
			
		||||
              18:     11(ptr) AccessChain 9 17
 | 
			
		||||
                              Store 18 10
 | 
			
		||||
              20:     11(ptr) AccessChain 9 19
 | 
			
		||||
                              Store 20 10
 | 
			
		||||
              22:     11(ptr) AccessChain 9 21
 | 
			
		||||
                              Store 22 10
 | 
			
		||||
              24:     11(ptr) AccessChain 9 23
 | 
			
		||||
                              Store 24 10
 | 
			
		||||
              26:     11(ptr) AccessChain 9 25
 | 
			
		||||
                              Store 26 10
 | 
			
		||||
              28:     11(ptr) AccessChain 9 27
 | 
			
		||||
                              Store 28 10
 | 
			
		||||
              30:     11(ptr) AccessChain 9 29
 | 
			
		||||
                              Store 30 10
 | 
			
		||||
              32:     11(ptr) AccessChain 9 31
 | 
			
		||||
                              Store 32 10
 | 
			
		||||
              34:     11(ptr) AccessChain 9 33
 | 
			
		||||
                              Store 34 10
 | 
			
		||||
              42:          39 Load 41
 | 
			
		||||
              46:          43 Load 45
 | 
			
		||||
              48:          47 SampledImage 42 46
 | 
			
		||||
              50:   36(fvec4) ImageSampleImplicitLod 48 49
 | 
			
		||||
                              Store 38 50
 | 
			
		||||
              57:          54 Load 56
 | 
			
		||||
              58:          43 Load 45
 | 
			
		||||
              60:          59 SampledImage 57 58
 | 
			
		||||
              62:   51(ivec4) ImageSampleImplicitLod 60 61
 | 
			
		||||
                              Store 53 62
 | 
			
		||||
              70:          67 Load 69
 | 
			
		||||
              71:          43 Load 45
 | 
			
		||||
              73:          72 SampledImage 70 71
 | 
			
		||||
              75:   64(ivec4) ImageSampleImplicitLod 73 74
 | 
			
		||||
                              Store 66 75
 | 
			
		||||
              80:          77 Load 79
 | 
			
		||||
              81:          43 Load 45
 | 
			
		||||
              83:          82 SampledImage 80 81
 | 
			
		||||
              86:   36(fvec4) ImageSampleImplicitLod 83 85
 | 
			
		||||
                              Store 76 86
 | 
			
		||||
              91:          88 Load 90
 | 
			
		||||
              92:          43 Load 45
 | 
			
		||||
              94:          93 SampledImage 91 92
 | 
			
		||||
              97:   51(ivec4) ImageSampleImplicitLod 94 96
 | 
			
		||||
                              Store 87 97
 | 
			
		||||
             102:          99 Load 101
 | 
			
		||||
             103:          43 Load 45
 | 
			
		||||
             105:         104 SampledImage 102 103
 | 
			
		||||
             109:   64(ivec4) ImageSampleImplicitLod 105 108
 | 
			
		||||
                              Store 98 109
 | 
			
		||||
             114:         111 Load 113
 | 
			
		||||
             115:          43 Load 45
 | 
			
		||||
             117:         116 SampledImage 114 115
 | 
			
		||||
             120:   36(fvec4) ImageSampleImplicitLod 117 119
 | 
			
		||||
                              Store 110 120
 | 
			
		||||
             125:         122 Load 124
 | 
			
		||||
             126:          43 Load 45
 | 
			
		||||
             128:         127 SampledImage 125 126
 | 
			
		||||
             130:   51(ivec4) ImageSampleImplicitLod 128 129
 | 
			
		||||
                              Store 121 130
 | 
			
		||||
             135:         132 Load 134
 | 
			
		||||
             136:          43 Load 45
 | 
			
		||||
             138:         137 SampledImage 135 136
 | 
			
		||||
             143:   64(ivec4) ImageSampleImplicitLod 138 142
 | 
			
		||||
                              Store 131 143
 | 
			
		||||
             148:         145 Load 147
 | 
			
		||||
             149:          43 Load 45
 | 
			
		||||
             151:         150 SampledImage 148 149
 | 
			
		||||
             152:   36(fvec4) ImageSampleImplicitLod 151 119
 | 
			
		||||
                              Store 144 152
 | 
			
		||||
             157:         154 Load 156
 | 
			
		||||
             158:          43 Load 45
 | 
			
		||||
             160:         159 SampledImage 157 158
 | 
			
		||||
             161:   51(ivec4) ImageSampleImplicitLod 160 129
 | 
			
		||||
                              Store 153 161
 | 
			
		||||
             166:         163 Load 165
 | 
			
		||||
             167:          43 Load 45
 | 
			
		||||
             169:         168 SampledImage 166 167
 | 
			
		||||
             170:   64(ivec4) ImageSampleImplicitLod 169 142
 | 
			
		||||
                              Store 162 170
 | 
			
		||||
             176:     37(ptr) AccessChain 173 23
 | 
			
		||||
                              Store 176 175
 | 
			
		||||
             178:    177(ptr) AccessChain 173 10
 | 
			
		||||
                              Store 178 174
 | 
			
		||||
             179: 171(struct) Load 173
 | 
			
		||||
                              ReturnValue 179
 | 
			
		||||
                              FunctionEnd
 | 
			
		||||
@ -0,0 +1,23 @@
 | 
			
		||||
remap.hlsl.templatetypes.everything.frag
 | 
			
		||||
 | 
			
		||||
Linked fragment stage:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// Module Version 10000
 | 
			
		||||
// Generated by (magic number): 80001
 | 
			
		||||
// Id's are bound by 16123
 | 
			
		||||
 | 
			
		||||
                              Capability Shader
 | 
			
		||||
                              Capability Float64
 | 
			
		||||
               1:             ExtInstImport  "GLSL.std.450"
 | 
			
		||||
                              MemoryModel Logical GLSL450
 | 
			
		||||
                              EntryPoint Fragment 5663  "main"
 | 
			
		||||
                              ExecutionMode 5663 OriginUpperLeft
 | 
			
		||||
               8:             TypeVoid
 | 
			
		||||
            1282:             TypeFunction 8
 | 
			
		||||
              13:             TypeFloat 32
 | 
			
		||||
            2572:   13(float) Constant 0
 | 
			
		||||
            5663:           8 Function None 1282
 | 
			
		||||
           16122:             Label
 | 
			
		||||
                              ReturnValue 2572
 | 
			
		||||
                              FunctionEnd
 | 
			
		||||
							
								
								
									
										216
									
								
								Test/baseResults/remap.hlsl.templatetypes.none.frag.out
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										216
									
								
								Test/baseResults/remap.hlsl.templatetypes.none.frag.out
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,216 @@
 | 
			
		||||
remap.hlsl.templatetypes.none.frag
 | 
			
		||||
 | 
			
		||||
Linked fragment stage:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// Module Version 10000
 | 
			
		||||
// Generated by (magic number): 80001
 | 
			
		||||
// Id's are bound by 144
 | 
			
		||||
 | 
			
		||||
                              Capability Shader
 | 
			
		||||
                              Capability Float64
 | 
			
		||||
               1:             ExtInstImport  "GLSL.std.450"
 | 
			
		||||
                              MemoryModel Logical GLSL450
 | 
			
		||||
                              EntryPoint Fragment 4  "main"
 | 
			
		||||
                              ExecutionMode 4 OriginUpperLeft
 | 
			
		||||
                              Name 4  "main"
 | 
			
		||||
                              Name 9  "r00"
 | 
			
		||||
                              Name 15  "r01"
 | 
			
		||||
                              Name 20  "r12"
 | 
			
		||||
                              Name 24  "r13"
 | 
			
		||||
                              Name 27  "r14"
 | 
			
		||||
                              Name 30  "r15"
 | 
			
		||||
                              Name 34  "r16"
 | 
			
		||||
                              Name 38  "r20"
 | 
			
		||||
                              Name 43  "r21"
 | 
			
		||||
                              Name 48  "r22"
 | 
			
		||||
                              Name 52  "r23"
 | 
			
		||||
                              Name 57  "r24"
 | 
			
		||||
                              Name 62  "r30"
 | 
			
		||||
                              Name 66  "r31"
 | 
			
		||||
                              Name 71  "r32"
 | 
			
		||||
                              Name 75  "r33"
 | 
			
		||||
                              Name 80  "r34"
 | 
			
		||||
                              Name 85  "r40"
 | 
			
		||||
                              Name 89  "r41"
 | 
			
		||||
                              Name 92  "r42"
 | 
			
		||||
                              Name 95  "r43"
 | 
			
		||||
                              Name 100  "r44"
 | 
			
		||||
                              Name 105  "r50"
 | 
			
		||||
                              Name 122  "r51"
 | 
			
		||||
                              Name 125  "r61"
 | 
			
		||||
                              Name 131  "r62"
 | 
			
		||||
                              Name 136  "r65"
 | 
			
		||||
                              Name 141  "r66"
 | 
			
		||||
               2:             TypeVoid
 | 
			
		||||
               3:             TypeFunction 2
 | 
			
		||||
               6:             TypeFloat 32
 | 
			
		||||
               7:             TypeVector 6(float) 4
 | 
			
		||||
               8:             TypePointer Function 7(fvec4)
 | 
			
		||||
              10:    6(float) Constant 1065353216
 | 
			
		||||
              11:    6(float) Constant 1073741824
 | 
			
		||||
              12:    6(float) Constant 1077936128
 | 
			
		||||
              13:    6(float) Constant 1082130432
 | 
			
		||||
              14:    7(fvec4) ConstantComposite 10 11 12 13
 | 
			
		||||
              16:    6(float) Constant 1084227584
 | 
			
		||||
              17:    7(fvec4) ConstantComposite 11 12 13 16
 | 
			
		||||
              18:             TypeBool
 | 
			
		||||
              19:             TypePointer Function 18(bool)
 | 
			
		||||
              21:    18(bool) ConstantFalse
 | 
			
		||||
              22:             TypeInt 32 1
 | 
			
		||||
              23:             TypePointer Function 22(int)
 | 
			
		||||
              25:     22(int) Constant 1
 | 
			
		||||
              26:             TypePointer Function 6(float)
 | 
			
		||||
              28:             TypeFloat 64
 | 
			
		||||
              29:             TypePointer Function 28(float)
 | 
			
		||||
              31:   28(float) Constant 0 1072693248
 | 
			
		||||
              32:             TypeInt 32 0
 | 
			
		||||
              33:             TypePointer Function 32(int)
 | 
			
		||||
              35:     32(int) Constant 1
 | 
			
		||||
              36:             TypeVector 18(bool) 2
 | 
			
		||||
              37:             TypePointer Function 36(bvec2)
 | 
			
		||||
              39:    18(bool) ConstantTrue
 | 
			
		||||
              40:   36(bvec2) ConstantComposite 21 39
 | 
			
		||||
              41:             TypeVector 22(int) 2
 | 
			
		||||
              42:             TypePointer Function 41(ivec2)
 | 
			
		||||
              44:     22(int) Constant 2
 | 
			
		||||
              45:   41(ivec2) ConstantComposite 25 44
 | 
			
		||||
              46:             TypeVector 6(float) 2
 | 
			
		||||
              47:             TypePointer Function 46(fvec2)
 | 
			
		||||
              49:   46(fvec2) ConstantComposite 10 11
 | 
			
		||||
              50:             TypeVector 28(float) 2
 | 
			
		||||
              51:             TypePointer Function 50(fvec2)
 | 
			
		||||
              53:   28(float) Constant 0 1073741824
 | 
			
		||||
              54:   50(fvec2) ConstantComposite 31 53
 | 
			
		||||
              55:             TypeVector 32(int) 2
 | 
			
		||||
              56:             TypePointer Function 55(ivec2)
 | 
			
		||||
              58:     32(int) Constant 2
 | 
			
		||||
              59:   55(ivec2) ConstantComposite 35 58
 | 
			
		||||
              60:             TypeVector 18(bool) 3
 | 
			
		||||
              61:             TypePointer Function 60(bvec3)
 | 
			
		||||
              63:   60(bvec3) ConstantComposite 21 39 39
 | 
			
		||||
              64:             TypeVector 22(int) 3
 | 
			
		||||
              65:             TypePointer Function 64(ivec3)
 | 
			
		||||
              67:     22(int) Constant 3
 | 
			
		||||
              68:   64(ivec3) ConstantComposite 25 44 67
 | 
			
		||||
              69:             TypeVector 6(float) 3
 | 
			
		||||
              70:             TypePointer Function 69(fvec3)
 | 
			
		||||
              72:   69(fvec3) ConstantComposite 10 11 12
 | 
			
		||||
              73:             TypeVector 28(float) 3
 | 
			
		||||
              74:             TypePointer Function 73(fvec3)
 | 
			
		||||
              76:   28(float) Constant 0 1074266112
 | 
			
		||||
              77:   73(fvec3) ConstantComposite 31 53 76
 | 
			
		||||
              78:             TypeVector 32(int) 3
 | 
			
		||||
              79:             TypePointer Function 78(ivec3)
 | 
			
		||||
              81:     32(int) Constant 3
 | 
			
		||||
              82:   78(ivec3) ConstantComposite 35 58 81
 | 
			
		||||
              83:             TypeVector 18(bool) 4
 | 
			
		||||
              84:             TypePointer Function 83(bvec4)
 | 
			
		||||
              86:   83(bvec4) ConstantComposite 21 39 39 21
 | 
			
		||||
              87:             TypeVector 22(int) 4
 | 
			
		||||
              88:             TypePointer Function 87(ivec4)
 | 
			
		||||
              90:     22(int) Constant 4
 | 
			
		||||
              91:   87(ivec4) ConstantComposite 25 44 67 90
 | 
			
		||||
              93:             TypeVector 28(float) 4
 | 
			
		||||
              94:             TypePointer Function 93(fvec4)
 | 
			
		||||
              96:   28(float) Constant 0 1074790400
 | 
			
		||||
              97:   93(fvec4) ConstantComposite 31 53 76 96
 | 
			
		||||
              98:             TypeVector 32(int) 4
 | 
			
		||||
              99:             TypePointer Function 98(ivec4)
 | 
			
		||||
             101:     32(int) Constant 4
 | 
			
		||||
             102:   98(ivec4) ConstantComposite 35 58 81 101
 | 
			
		||||
             103:             TypeMatrix 7(fvec4) 4
 | 
			
		||||
             104:             TypePointer Function 103
 | 
			
		||||
             106:    6(float) Constant 0
 | 
			
		||||
             107:    7(fvec4) ConstantComposite 106 10 11 12
 | 
			
		||||
             108:    6(float) Constant 1086324736
 | 
			
		||||
             109:    6(float) Constant 1088421888
 | 
			
		||||
             110:    7(fvec4) ConstantComposite 13 16 108 109
 | 
			
		||||
             111:    6(float) Constant 1090519040
 | 
			
		||||
             112:    6(float) Constant 1091567616
 | 
			
		||||
             113:    6(float) Constant 1092616192
 | 
			
		||||
             114:    6(float) Constant 1093664768
 | 
			
		||||
             115:    7(fvec4) ConstantComposite 111 112 113 114
 | 
			
		||||
             116:    6(float) Constant 1094713344
 | 
			
		||||
             117:    6(float) Constant 1095761920
 | 
			
		||||
             118:    6(float) Constant 1096810496
 | 
			
		||||
             119:    6(float) Constant 1097859072
 | 
			
		||||
             120:    7(fvec4) ConstantComposite 116 117 118 119
 | 
			
		||||
             121:         103 ConstantComposite 107 110 115 120
 | 
			
		||||
             123:             TypeMatrix 46(fvec2) 3
 | 
			
		||||
             124:             TypePointer Function 123
 | 
			
		||||
             126:   46(fvec2) ConstantComposite 12 13
 | 
			
		||||
             127:   46(fvec2) ConstantComposite 16 108
 | 
			
		||||
             128:         123 ConstantComposite 49 126 127
 | 
			
		||||
             129:             TypeMatrix 69(fvec3) 2
 | 
			
		||||
             130:             TypePointer Function 129
 | 
			
		||||
             132:   69(fvec3) ConstantComposite 13 16 108
 | 
			
		||||
             133:         129 ConstantComposite 72 132
 | 
			
		||||
             134:             TypeMatrix 7(fvec4) 2
 | 
			
		||||
             135:             TypePointer Function 134
 | 
			
		||||
             137:    7(fvec4) ConstantComposite 16 108 109 111
 | 
			
		||||
             138:         134 ConstantComposite 14 137
 | 
			
		||||
             139:             TypeMatrix 7(fvec4) 3
 | 
			
		||||
             140:             TypePointer Function 139
 | 
			
		||||
             142:    7(fvec4) ConstantComposite 112 113 114 116
 | 
			
		||||
             143:         139 ConstantComposite 14 137 142
 | 
			
		||||
         4(main):           2 Function None 3
 | 
			
		||||
               5:             Label
 | 
			
		||||
          9(r00):      8(ptr) Variable Function
 | 
			
		||||
         15(r01):      8(ptr) Variable Function
 | 
			
		||||
         20(r12):     19(ptr) Variable Function
 | 
			
		||||
         24(r13):     23(ptr) Variable Function
 | 
			
		||||
         27(r14):     26(ptr) Variable Function
 | 
			
		||||
         30(r15):     29(ptr) Variable Function
 | 
			
		||||
         34(r16):     33(ptr) Variable Function
 | 
			
		||||
         38(r20):     37(ptr) Variable Function
 | 
			
		||||
         43(r21):     42(ptr) Variable Function
 | 
			
		||||
         48(r22):     47(ptr) Variable Function
 | 
			
		||||
         52(r23):     51(ptr) Variable Function
 | 
			
		||||
         57(r24):     56(ptr) Variable Function
 | 
			
		||||
         62(r30):     61(ptr) Variable Function
 | 
			
		||||
         66(r31):     65(ptr) Variable Function
 | 
			
		||||
         71(r32):     70(ptr) Variable Function
 | 
			
		||||
         75(r33):     74(ptr) Variable Function
 | 
			
		||||
         80(r34):     79(ptr) Variable Function
 | 
			
		||||
         85(r40):     84(ptr) Variable Function
 | 
			
		||||
         89(r41):     88(ptr) Variable Function
 | 
			
		||||
         92(r42):      8(ptr) Variable Function
 | 
			
		||||
         95(r43):     94(ptr) Variable Function
 | 
			
		||||
        100(r44):     99(ptr) Variable Function
 | 
			
		||||
        105(r50):    104(ptr) Variable Function
 | 
			
		||||
        122(r51):    104(ptr) Variable Function
 | 
			
		||||
        125(r61):    124(ptr) Variable Function
 | 
			
		||||
        131(r62):    130(ptr) Variable Function
 | 
			
		||||
        136(r65):    135(ptr) Variable Function
 | 
			
		||||
        141(r66):    140(ptr) Variable Function
 | 
			
		||||
                              Store 9(r00) 14
 | 
			
		||||
                              Store 15(r01) 17
 | 
			
		||||
                              Store 20(r12) 21
 | 
			
		||||
                              Store 24(r13) 25
 | 
			
		||||
                              Store 27(r14) 10
 | 
			
		||||
                              Store 30(r15) 31
 | 
			
		||||
                              Store 34(r16) 35
 | 
			
		||||
                              Store 38(r20) 40
 | 
			
		||||
                              Store 43(r21) 45
 | 
			
		||||
                              Store 48(r22) 49
 | 
			
		||||
                              Store 52(r23) 54
 | 
			
		||||
                              Store 57(r24) 59
 | 
			
		||||
                              Store 62(r30) 63
 | 
			
		||||
                              Store 66(r31) 68
 | 
			
		||||
                              Store 71(r32) 72
 | 
			
		||||
                              Store 75(r33) 77
 | 
			
		||||
                              Store 80(r34) 82
 | 
			
		||||
                              Store 85(r40) 86
 | 
			
		||||
                              Store 89(r41) 91
 | 
			
		||||
                              Store 92(r42) 14
 | 
			
		||||
                              Store 95(r43) 97
 | 
			
		||||
                              Store 100(r44) 102
 | 
			
		||||
                              Store 105(r50) 121
 | 
			
		||||
                              Store 122(r51) 121
 | 
			
		||||
                              Store 125(r61) 128
 | 
			
		||||
                              Store 131(r62) 133
 | 
			
		||||
                              Store 136(r65) 138
 | 
			
		||||
                              Store 141(r66) 143
 | 
			
		||||
                              ReturnValue 106
 | 
			
		||||
                              FunctionEnd
 | 
			
		||||
							
								
								
									
										47
									
								
								Test/baseResults/remap.if.everything.frag.out
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								Test/baseResults/remap.if.everything.frag.out
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,47 @@
 | 
			
		||||
remap.if.everything.frag
 | 
			
		||||
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Linked fragment stage:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// Module Version 10000
 | 
			
		||||
// Generated by (magic number): 80001
 | 
			
		||||
// Id's are bound by 22855
 | 
			
		||||
 | 
			
		||||
                              Capability Shader
 | 
			
		||||
               1:             ExtInstImport  "GLSL.std.450"
 | 
			
		||||
                              MemoryModel Logical GLSL450
 | 
			
		||||
                              EntryPoint Fragment 5663  "main" 3773 4539
 | 
			
		||||
                              ExecutionMode 5663 OriginUpperLeft
 | 
			
		||||
               8:             TypeVoid
 | 
			
		||||
            1282:             TypeFunction 8
 | 
			
		||||
              13:             TypeFloat 32
 | 
			
		||||
             650:             TypePointer Input 13(float)
 | 
			
		||||
            3773:    650(ptr) Variable Input
 | 
			
		||||
              24:   13(float) Constant 1073741824
 | 
			
		||||
               9:             TypeBool
 | 
			
		||||
              29:             TypeVector 13(float) 4
 | 
			
		||||
             666:             TypePointer Output 29(fvec4)
 | 
			
		||||
            4539:    666(ptr) Variable Output
 | 
			
		||||
             947:   13(float) Constant 3204448256
 | 
			
		||||
            5663:           8 Function None 1282
 | 
			
		||||
            7911:             Label
 | 
			
		||||
           21734:   13(float) Load 3773
 | 
			
		||||
           13508:     9(bool) FOrdGreaterThan 21734 24
 | 
			
		||||
                              SelectionMerge 19578 None
 | 
			
		||||
                              BranchConditional 13508 13182 10142
 | 
			
		||||
           13182:               Label
 | 
			
		||||
            9496:   13(float)   Load 3773
 | 
			
		||||
           17615:   29(fvec4)   CompositeConstruct 9496 9496 9496 9496
 | 
			
		||||
                                Store 4539 17615
 | 
			
		||||
                                Branch 19578
 | 
			
		||||
           10142:               Label
 | 
			
		||||
           22854:   13(float)   Load 3773
 | 
			
		||||
            9982:   13(float)   FAdd 22854 947
 | 
			
		||||
           12421:   29(fvec4)   CompositeConstruct 9982 9982 9982 9982
 | 
			
		||||
                                Store 4539 12421
 | 
			
		||||
                                Branch 19578
 | 
			
		||||
           19578:             Label
 | 
			
		||||
                              Return
 | 
			
		||||
                              FunctionEnd
 | 
			
		||||
							
								
								
									
										51
									
								
								Test/baseResults/remap.if.none.frag.out
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								Test/baseResults/remap.if.none.frag.out
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,51 @@
 | 
			
		||||
remap.if.none.frag
 | 
			
		||||
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Linked fragment stage:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// Module Version 10000
 | 
			
		||||
// Generated by (magic number): 80001
 | 
			
		||||
// Id's are bound by 25
 | 
			
		||||
 | 
			
		||||
                              Capability Shader
 | 
			
		||||
               1:             ExtInstImport  "GLSL.std.450"
 | 
			
		||||
                              MemoryModel Logical GLSL450
 | 
			
		||||
                              EntryPoint Fragment 4  "main" 8 17
 | 
			
		||||
                              ExecutionMode 4 OriginUpperLeft
 | 
			
		||||
                              Source GLSL 450
 | 
			
		||||
                              Name 4  "main"
 | 
			
		||||
                              Name 8  "inf"
 | 
			
		||||
                              Name 17  "outf4"
 | 
			
		||||
               2:             TypeVoid
 | 
			
		||||
               3:             TypeFunction 2
 | 
			
		||||
               6:             TypeFloat 32
 | 
			
		||||
               7:             TypePointer Input 6(float)
 | 
			
		||||
          8(inf):      7(ptr) Variable Input
 | 
			
		||||
              10:    6(float) Constant 1073741824
 | 
			
		||||
              11:             TypeBool
 | 
			
		||||
              15:             TypeVector 6(float) 4
 | 
			
		||||
              16:             TypePointer Output 15(fvec4)
 | 
			
		||||
       17(outf4):     16(ptr) Variable Output
 | 
			
		||||
              22:    6(float) Constant 3204448256
 | 
			
		||||
         4(main):           2 Function None 3
 | 
			
		||||
               5:             Label
 | 
			
		||||
               9:    6(float) Load 8(inf)
 | 
			
		||||
              12:    11(bool) FOrdGreaterThan 9 10
 | 
			
		||||
                              SelectionMerge 14 None
 | 
			
		||||
                              BranchConditional 12 13 20
 | 
			
		||||
              13:               Label
 | 
			
		||||
              18:    6(float)   Load 8(inf)
 | 
			
		||||
              19:   15(fvec4)   CompositeConstruct 18 18 18 18
 | 
			
		||||
                                Store 17(outf4) 19
 | 
			
		||||
                                Branch 14
 | 
			
		||||
              20:               Label
 | 
			
		||||
              21:    6(float)   Load 8(inf)
 | 
			
		||||
              23:    6(float)   FAdd 21 22
 | 
			
		||||
              24:   15(fvec4)   CompositeConstruct 23 23 23 23
 | 
			
		||||
                                Store 17(outf4) 24
 | 
			
		||||
                                Branch 14
 | 
			
		||||
              14:             Label
 | 
			
		||||
                              Return
 | 
			
		||||
                              FunctionEnd
 | 
			
		||||
							
								
								
									
										7
									
								
								Test/baseResults/remap.literal64.everything.spv.out
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								Test/baseResults/remap.literal64.everything.spv.out
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,7 @@
 | 
			
		||||
remap.literal64.everything.spv
 | 
			
		||||
// Module Version 10100
 | 
			
		||||
// Generated by (magic number): 70000
 | 
			
		||||
// Id's are bound by 0
 | 
			
		||||
 | 
			
		||||
                              Capability Shader
 | 
			
		||||
                              MemoryModel Logical GLSL450
 | 
			
		||||
							
								
								
									
										25
									
								
								Test/baseResults/remap.literal64.none.spv.out
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								Test/baseResults/remap.literal64.none.spv.out
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,25 @@
 | 
			
		||||
remap.literal64.none.spv
 | 
			
		||||
// Module Version 10100
 | 
			
		||||
// Generated by (magic number): 70000
 | 
			
		||||
// Id's are bound by 10
 | 
			
		||||
 | 
			
		||||
                              Capability Shader
 | 
			
		||||
                              MemoryModel Logical GLSL450
 | 
			
		||||
               1:             TypeVoid
 | 
			
		||||
               2:             TypeInt 64 1
 | 
			
		||||
               3:             TypeFunction 1
 | 
			
		||||
               4:      2(int) Constant 0 0
 | 
			
		||||
               5:           1 Function None 3
 | 
			
		||||
               6:             Label
 | 
			
		||||
                              SelectionMerge 7 None
 | 
			
		||||
                              Switch 4 7 
 | 
			
		||||
                                     case 0: 0
 | 
			
		||||
                                     case 8: 1
 | 
			
		||||
                                     case 0: 9
 | 
			
		||||
               8:               Label
 | 
			
		||||
                                Branch 7
 | 
			
		||||
               9:               Label
 | 
			
		||||
                                Branch 7
 | 
			
		||||
               7:             Label
 | 
			
		||||
                              Return
 | 
			
		||||
                              FunctionEnd
 | 
			
		||||
							
								
								
									
										121
									
								
								Test/baseResults/remap.similar_1a.everything.frag.out
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										121
									
								
								Test/baseResults/remap.similar_1a.everything.frag.out
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,121 @@
 | 
			
		||||
remap.similar_1a.everything.frag
 | 
			
		||||
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Linked fragment stage:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// Module Version 10000
 | 
			
		||||
// Generated by (magic number): 80001
 | 
			
		||||
// Id's are bound by 24916
 | 
			
		||||
 | 
			
		||||
                              Capability Shader
 | 
			
		||||
               1:             ExtInstImport  "GLSL.std.450"
 | 
			
		||||
                              MemoryModel Logical GLSL450
 | 
			
		||||
                              EntryPoint Fragment 5663  "main" 4201 4539 3773
 | 
			
		||||
                              ExecutionMode 5663 OriginUpperLeft
 | 
			
		||||
                              Decorate 4201 Flat
 | 
			
		||||
               8:             TypeVoid
 | 
			
		||||
            1282:             TypeFunction 8
 | 
			
		||||
              12:             TypeInt 32 1
 | 
			
		||||
             649:             TypePointer Function 12(int)
 | 
			
		||||
              13:             TypeFloat 32
 | 
			
		||||
             204:             TypeFunction 13(float) 649(ptr)
 | 
			
		||||
             650:             TypePointer Function 13(float)
 | 
			
		||||
            2572:   13(float) Constant 0
 | 
			
		||||
            2571:     12(int) Constant 0
 | 
			
		||||
               9:             TypeBool
 | 
			
		||||
             252:   13(float) Constant 1056964608
 | 
			
		||||
            2574:     12(int) Constant 1
 | 
			
		||||
            2577:     12(int) Constant 2
 | 
			
		||||
              26:             TypeVector 12(int) 4
 | 
			
		||||
             663:             TypePointer Input 26(ivec4)
 | 
			
		||||
            4201:    663(ptr) Variable Input
 | 
			
		||||
              11:             TypeInt 32 0
 | 
			
		||||
            2573:     11(int) Constant 1
 | 
			
		||||
             651:             TypePointer Input 12(int)
 | 
			
		||||
            2576:     11(int) Constant 2
 | 
			
		||||
            2570:     11(int) Constant 0
 | 
			
		||||
              29:             TypeVector 13(float) 4
 | 
			
		||||
             666:             TypePointer Output 29(fvec4)
 | 
			
		||||
            4539:    666(ptr) Variable Output
 | 
			
		||||
             652:             TypePointer Input 13(float)
 | 
			
		||||
            3773:    652(ptr) Variable Input
 | 
			
		||||
            5663:           8 Function None 1282
 | 
			
		||||
           24915:             Label
 | 
			
		||||
           18415:    649(ptr) Variable Function
 | 
			
		||||
            5786:    649(ptr) Variable Function
 | 
			
		||||
            8366:   13(float) Load 3773
 | 
			
		||||
            8654:     12(int) ConvertFToS 8366
 | 
			
		||||
                              Store 18415 8654
 | 
			
		||||
           17256:   13(float) FunctionCall 3782 18415
 | 
			
		||||
           14512:   13(float) Load 3773
 | 
			
		||||
            7041:     12(int) ConvertFToS 14512
 | 
			
		||||
                              Store 5786 7041
 | 
			
		||||
           23993:   13(float) FunctionCall 3836 5786
 | 
			
		||||
            9180:   13(float) FAdd 17256 23993
 | 
			
		||||
           15728:   29(fvec4) CompositeConstruct 9180 9180 9180 9180
 | 
			
		||||
                              Store 4539 15728
 | 
			
		||||
                              Return
 | 
			
		||||
                              FunctionEnd
 | 
			
		||||
            3782:   13(float) Function None 204
 | 
			
		||||
            6931:    649(ptr) FunctionParameter
 | 
			
		||||
           12220:             Label
 | 
			
		||||
            4292:    650(ptr) Variable Function
 | 
			
		||||
            4298:    649(ptr) Variable Function
 | 
			
		||||
                              Store 4292 2572
 | 
			
		||||
                              Store 4298 2571
 | 
			
		||||
                              Branch 14924
 | 
			
		||||
           14924:             Label
 | 
			
		||||
                              LoopMerge 8882 6488 None
 | 
			
		||||
                              Branch 11857
 | 
			
		||||
           11857:             Label
 | 
			
		||||
           13755:     12(int) Load 4298
 | 
			
		||||
           22731:     12(int) Load 6931
 | 
			
		||||
           20007:     9(bool) SLessThan 13755 22731
 | 
			
		||||
                              BranchConditional 20007 24750 8882
 | 
			
		||||
           24750:               Label
 | 
			
		||||
           22912:   13(float)   Load 4292
 | 
			
		||||
           19471:   13(float)   FAdd 22912 252
 | 
			
		||||
                                Store 4292 19471
 | 
			
		||||
                                Branch 6488
 | 
			
		||||
            6488:               Label
 | 
			
		||||
           19050:     12(int)   Load 4298
 | 
			
		||||
            8593:     12(int)   IAdd 19050 2574
 | 
			
		||||
                                Store 4298 8593
 | 
			
		||||
                                Branch 14924
 | 
			
		||||
            8882:             Label
 | 
			
		||||
           11601:   13(float) Load 4292
 | 
			
		||||
                              ReturnValue 11601
 | 
			
		||||
                              FunctionEnd
 | 
			
		||||
            3836:   13(float) Function None 204
 | 
			
		||||
            4408:    649(ptr) FunctionParameter
 | 
			
		||||
           12143:             Label
 | 
			
		||||
           22102:    649(ptr) Variable Function
 | 
			
		||||
           24151:     12(int) Load 4408
 | 
			
		||||
           13868:     9(bool) SGreaterThan 24151 2577
 | 
			
		||||
                              SelectionMerge 22309 None
 | 
			
		||||
                              BranchConditional 13868 9492 17416
 | 
			
		||||
            9492:               Label
 | 
			
		||||
           15624:     12(int)   Load 4408
 | 
			
		||||
                                Store 22102 15624
 | 
			
		||||
           17278:   13(float)   FunctionCall 3782 22102
 | 
			
		||||
                                ReturnValue 17278
 | 
			
		||||
           17416:               Label
 | 
			
		||||
           19506:     12(int)   Load 4408
 | 
			
		||||
           22773:     12(int)   IMul 19506 2577
 | 
			
		||||
           13472:    651(ptr)   AccessChain 4201 2573
 | 
			
		||||
           15280:     12(int)   Load 13472
 | 
			
		||||
           18079:    651(ptr)   AccessChain 4201 2576
 | 
			
		||||
           15199:     12(int)   Load 18079
 | 
			
		||||
            9343:     12(int)   IMul 15280 15199
 | 
			
		||||
           11462:     12(int)   IAdd 22773 9343
 | 
			
		||||
           11885:    651(ptr)   AccessChain 4201 2570
 | 
			
		||||
           21176:     12(int)   Load 11885
 | 
			
		||||
           10505:     12(int)   IAdd 11462 21176
 | 
			
		||||
           14626:   13(float)   ConvertSToF 10505
 | 
			
		||||
                                ReturnValue 14626
 | 
			
		||||
           22309:             Label
 | 
			
		||||
            6429:   13(float) Undef
 | 
			
		||||
                              ReturnValue 6429
 | 
			
		||||
                              FunctionEnd
 | 
			
		||||
							
								
								
									
										135
									
								
								Test/baseResults/remap.similar_1a.none.frag.out
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										135
									
								
								Test/baseResults/remap.similar_1a.none.frag.out
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,135 @@
 | 
			
		||||
remap.similar_1a.none.frag
 | 
			
		||||
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Linked fragment stage:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// Module Version 10000
 | 
			
		||||
// Generated by (magic number): 80001
 | 
			
		||||
// Id's are bound by 82
 | 
			
		||||
 | 
			
		||||
                              Capability Shader
 | 
			
		||||
               1:             ExtInstImport  "GLSL.std.450"
 | 
			
		||||
                              MemoryModel Logical GLSL450
 | 
			
		||||
                              EntryPoint Fragment 4  "main" 50 69 71
 | 
			
		||||
                              ExecutionMode 4 OriginUpperLeft
 | 
			
		||||
                              Source GLSL 450
 | 
			
		||||
                              Name 4  "main"
 | 
			
		||||
                              Name 11  "Test1(i1;"
 | 
			
		||||
                              Name 10  "bound"
 | 
			
		||||
                              Name 14  "Test2(i1;"
 | 
			
		||||
                              Name 13  "bound"
 | 
			
		||||
                              Name 17  "r"
 | 
			
		||||
                              Name 19  "x"
 | 
			
		||||
                              Name 42  "param"
 | 
			
		||||
                              Name 50  "ini4"
 | 
			
		||||
                              Name 69  "outf4"
 | 
			
		||||
                              Name 71  "inf"
 | 
			
		||||
                              Name 74  "param"
 | 
			
		||||
                              Name 78  "param"
 | 
			
		||||
                              Decorate 50(ini4) Flat
 | 
			
		||||
               2:             TypeVoid
 | 
			
		||||
               3:             TypeFunction 2
 | 
			
		||||
               6:             TypeInt 32 1
 | 
			
		||||
               7:             TypePointer Function 6(int)
 | 
			
		||||
               8:             TypeFloat 32
 | 
			
		||||
               9:             TypeFunction 8(float) 7(ptr)
 | 
			
		||||
              16:             TypePointer Function 8(float)
 | 
			
		||||
              18:    8(float) Constant 0
 | 
			
		||||
              20:      6(int) Constant 0
 | 
			
		||||
              28:             TypeBool
 | 
			
		||||
              30:    8(float) Constant 1056964608
 | 
			
		||||
              34:      6(int) Constant 1
 | 
			
		||||
              38:      6(int) Constant 2
 | 
			
		||||
              48:             TypeVector 6(int) 4
 | 
			
		||||
              49:             TypePointer Input 48(ivec4)
 | 
			
		||||
        50(ini4):     49(ptr) Variable Input
 | 
			
		||||
              51:             TypeInt 32 0
 | 
			
		||||
              52:     51(int) Constant 1
 | 
			
		||||
              53:             TypePointer Input 6(int)
 | 
			
		||||
              56:     51(int) Constant 2
 | 
			
		||||
              61:     51(int) Constant 0
 | 
			
		||||
              67:             TypeVector 8(float) 4
 | 
			
		||||
              68:             TypePointer Output 67(fvec4)
 | 
			
		||||
       69(outf4):     68(ptr) Variable Output
 | 
			
		||||
              70:             TypePointer Input 8(float)
 | 
			
		||||
         71(inf):     70(ptr) Variable Input
 | 
			
		||||
         4(main):           2 Function None 3
 | 
			
		||||
               5:             Label
 | 
			
		||||
       74(param):      7(ptr) Variable Function
 | 
			
		||||
       78(param):      7(ptr) Variable Function
 | 
			
		||||
              72:    8(float) Load 71(inf)
 | 
			
		||||
              73:      6(int) ConvertFToS 72
 | 
			
		||||
                              Store 74(param) 73
 | 
			
		||||
              75:    8(float) FunctionCall 11(Test1(i1;) 74(param)
 | 
			
		||||
              76:    8(float) Load 71(inf)
 | 
			
		||||
              77:      6(int) ConvertFToS 76
 | 
			
		||||
                              Store 78(param) 77
 | 
			
		||||
              79:    8(float) FunctionCall 14(Test2(i1;) 78(param)
 | 
			
		||||
              80:    8(float) FAdd 75 79
 | 
			
		||||
              81:   67(fvec4) CompositeConstruct 80 80 80 80
 | 
			
		||||
                              Store 69(outf4) 81
 | 
			
		||||
                              Return
 | 
			
		||||
                              FunctionEnd
 | 
			
		||||
   11(Test1(i1;):    8(float) Function None 9
 | 
			
		||||
       10(bound):      7(ptr) FunctionParameter
 | 
			
		||||
              12:             Label
 | 
			
		||||
           17(r):     16(ptr) Variable Function
 | 
			
		||||
           19(x):      7(ptr) Variable Function
 | 
			
		||||
                              Store 17(r) 18
 | 
			
		||||
                              Store 19(x) 20
 | 
			
		||||
                              Branch 21
 | 
			
		||||
              21:             Label
 | 
			
		||||
                              LoopMerge 23 24 None
 | 
			
		||||
                              Branch 25
 | 
			
		||||
              25:             Label
 | 
			
		||||
              26:      6(int) Load 19(x)
 | 
			
		||||
              27:      6(int) Load 10(bound)
 | 
			
		||||
              29:    28(bool) SLessThan 26 27
 | 
			
		||||
                              BranchConditional 29 22 23
 | 
			
		||||
              22:               Label
 | 
			
		||||
              31:    8(float)   Load 17(r)
 | 
			
		||||
              32:    8(float)   FAdd 31 30
 | 
			
		||||
                                Store 17(r) 32
 | 
			
		||||
                                Branch 24
 | 
			
		||||
              24:               Label
 | 
			
		||||
              33:      6(int)   Load 19(x)
 | 
			
		||||
              35:      6(int)   IAdd 33 34
 | 
			
		||||
                                Store 19(x) 35
 | 
			
		||||
                                Branch 21
 | 
			
		||||
              23:             Label
 | 
			
		||||
              36:    8(float) Load 17(r)
 | 
			
		||||
                              ReturnValue 36
 | 
			
		||||
                              FunctionEnd
 | 
			
		||||
   14(Test2(i1;):    8(float) Function None 9
 | 
			
		||||
       13(bound):      7(ptr) FunctionParameter
 | 
			
		||||
              15:             Label
 | 
			
		||||
       42(param):      7(ptr) Variable Function
 | 
			
		||||
              37:      6(int) Load 13(bound)
 | 
			
		||||
              39:    28(bool) SGreaterThan 37 38
 | 
			
		||||
                              SelectionMerge 41 None
 | 
			
		||||
                              BranchConditional 39 40 45
 | 
			
		||||
              40:               Label
 | 
			
		||||
              43:      6(int)   Load 13(bound)
 | 
			
		||||
                                Store 42(param) 43
 | 
			
		||||
              44:    8(float)   FunctionCall 11(Test1(i1;) 42(param)
 | 
			
		||||
                                ReturnValue 44
 | 
			
		||||
              45:               Label
 | 
			
		||||
              46:      6(int)   Load 13(bound)
 | 
			
		||||
              47:      6(int)   IMul 46 38
 | 
			
		||||
              54:     53(ptr)   AccessChain 50(ini4) 52
 | 
			
		||||
              55:      6(int)   Load 54
 | 
			
		||||
              57:     53(ptr)   AccessChain 50(ini4) 56
 | 
			
		||||
              58:      6(int)   Load 57
 | 
			
		||||
              59:      6(int)   IMul 55 58
 | 
			
		||||
              60:      6(int)   IAdd 47 59
 | 
			
		||||
              62:     53(ptr)   AccessChain 50(ini4) 61
 | 
			
		||||
              63:      6(int)   Load 62
 | 
			
		||||
              64:      6(int)   IAdd 60 63
 | 
			
		||||
              65:    8(float)   ConvertSToF 64
 | 
			
		||||
                                ReturnValue 65
 | 
			
		||||
              41:             Label
 | 
			
		||||
              66:    8(float) Undef
 | 
			
		||||
                              ReturnValue 66
 | 
			
		||||
                              FunctionEnd
 | 
			
		||||
							
								
								
									
										127
									
								
								Test/baseResults/remap.similar_1b.everything.frag.out
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										127
									
								
								Test/baseResults/remap.similar_1b.everything.frag.out
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,127 @@
 | 
			
		||||
remap.similar_1b.everything.frag
 | 
			
		||||
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Linked fragment stage:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// Module Version 10000
 | 
			
		||||
// Generated by (magic number): 80001
 | 
			
		||||
// Id's are bound by 24916
 | 
			
		||||
 | 
			
		||||
                              Capability Shader
 | 
			
		||||
               1:             ExtInstImport  "GLSL.std.450"
 | 
			
		||||
                              MemoryModel Logical GLSL450
 | 
			
		||||
                              EntryPoint Fragment 5663  "main" 4201 4539 3773
 | 
			
		||||
                              ExecutionMode 5663 OriginUpperLeft
 | 
			
		||||
                              Decorate 4201 Flat
 | 
			
		||||
               8:             TypeVoid
 | 
			
		||||
            1282:             TypeFunction 8
 | 
			
		||||
              12:             TypeInt 32 1
 | 
			
		||||
             649:             TypePointer Function 12(int)
 | 
			
		||||
              13:             TypeFloat 32
 | 
			
		||||
             204:             TypeFunction 13(float) 649(ptr)
 | 
			
		||||
             650:             TypePointer Function 13(float)
 | 
			
		||||
            2572:   13(float) Constant 0
 | 
			
		||||
            2571:     12(int) Constant 0
 | 
			
		||||
               9:             TypeBool
 | 
			
		||||
             252:   13(float) Constant 1056964608
 | 
			
		||||
            2574:     12(int) Constant 1
 | 
			
		||||
            2821:   13(float) Constant 1045220557
 | 
			
		||||
            2577:     12(int) Constant 2
 | 
			
		||||
            2583:     12(int) Constant 4
 | 
			
		||||
              26:             TypeVector 12(int) 4
 | 
			
		||||
             663:             TypePointer Input 26(ivec4)
 | 
			
		||||
            4201:    663(ptr) Variable Input
 | 
			
		||||
              11:             TypeInt 32 0
 | 
			
		||||
            2573:     11(int) Constant 1
 | 
			
		||||
             651:             TypePointer Input 12(int)
 | 
			
		||||
            2576:     11(int) Constant 2
 | 
			
		||||
            2570:     11(int) Constant 0
 | 
			
		||||
              29:             TypeVector 13(float) 4
 | 
			
		||||
             666:             TypePointer Output 29(fvec4)
 | 
			
		||||
            4539:    666(ptr) Variable Output
 | 
			
		||||
             652:             TypePointer Input 13(float)
 | 
			
		||||
            3773:    652(ptr) Variable Input
 | 
			
		||||
            5663:           8 Function None 1282
 | 
			
		||||
           24915:             Label
 | 
			
		||||
           18415:    649(ptr) Variable Function
 | 
			
		||||
            5786:    649(ptr) Variable Function
 | 
			
		||||
            8366:   13(float) Load 3773
 | 
			
		||||
            8654:     12(int) ConvertFToS 8366
 | 
			
		||||
                              Store 18415 8654
 | 
			
		||||
           17256:   13(float) FunctionCall 3782 18415
 | 
			
		||||
           14512:   13(float) Load 3773
 | 
			
		||||
            7041:     12(int) ConvertFToS 14512
 | 
			
		||||
                              Store 5786 7041
 | 
			
		||||
           23993:   13(float) FunctionCall 3836 5786
 | 
			
		||||
            9180:   13(float) FAdd 17256 23993
 | 
			
		||||
           15728:   29(fvec4) CompositeConstruct 9180 9180 9180 9180
 | 
			
		||||
                              Store 4539 15728
 | 
			
		||||
                              Return
 | 
			
		||||
                              FunctionEnd
 | 
			
		||||
            3782:   13(float) Function None 204
 | 
			
		||||
            6931:    649(ptr) FunctionParameter
 | 
			
		||||
           12220:             Label
 | 
			
		||||
            4292:    650(ptr) Variable Function
 | 
			
		||||
            4298:    649(ptr) Variable Function
 | 
			
		||||
                              Store 4292 2572
 | 
			
		||||
                              Store 4298 2571
 | 
			
		||||
                              Branch 14924
 | 
			
		||||
           14924:             Label
 | 
			
		||||
                              LoopMerge 6507 6488 None
 | 
			
		||||
                              Branch 11857
 | 
			
		||||
           11857:             Label
 | 
			
		||||
           13755:     12(int) Load 4298
 | 
			
		||||
           22731:     12(int) Load 6931
 | 
			
		||||
           20007:     9(bool) SLessThan 13755 22731
 | 
			
		||||
                              BranchConditional 20007 24750 6507
 | 
			
		||||
           24750:               Label
 | 
			
		||||
           22912:   13(float)   Load 4292
 | 
			
		||||
           19471:   13(float)   FAdd 22912 252
 | 
			
		||||
                                Store 4292 19471
 | 
			
		||||
                                Branch 6488
 | 
			
		||||
            6488:               Label
 | 
			
		||||
           19050:     12(int)   Load 4298
 | 
			
		||||
            8593:     12(int)   IAdd 19050 2574
 | 
			
		||||
                                Store 4298 8593
 | 
			
		||||
                                Branch 14924
 | 
			
		||||
            6507:             Label
 | 
			
		||||
           18877:   13(float) Load 4292
 | 
			
		||||
           15899:   13(float) FAdd 18877 2821
 | 
			
		||||
                              Store 4292 15899
 | 
			
		||||
           20342:   13(float) Load 4292
 | 
			
		||||
                              ReturnValue 20342
 | 
			
		||||
                              FunctionEnd
 | 
			
		||||
            3836:   13(float) Function None 204
 | 
			
		||||
            4408:    649(ptr) FunctionParameter
 | 
			
		||||
           12143:             Label
 | 
			
		||||
           22102:    649(ptr) Variable Function
 | 
			
		||||
           24151:     12(int) Load 4408
 | 
			
		||||
           13868:     9(bool) SGreaterThan 24151 2577
 | 
			
		||||
                              SelectionMerge 22309 None
 | 
			
		||||
                              BranchConditional 13868 10822 17416
 | 
			
		||||
           10822:               Label
 | 
			
		||||
           22680:     12(int)   Load 4408
 | 
			
		||||
           23216:     12(int)   IMul 22680 2577
 | 
			
		||||
                                Store 22102 23216
 | 
			
		||||
            7042:   13(float)   FunctionCall 3782 22102
 | 
			
		||||
                                ReturnValue 7042
 | 
			
		||||
           17416:               Label
 | 
			
		||||
           19506:     12(int)   Load 4408
 | 
			
		||||
           22773:     12(int)   IMul 19506 2583
 | 
			
		||||
           13472:    651(ptr)   AccessChain 4201 2573
 | 
			
		||||
           15280:     12(int)   Load 13472
 | 
			
		||||
           18079:    651(ptr)   AccessChain 4201 2576
 | 
			
		||||
           15199:     12(int)   Load 18079
 | 
			
		||||
            9343:     12(int)   IMul 15280 15199
 | 
			
		||||
           11462:     12(int)   IAdd 22773 9343
 | 
			
		||||
           11885:    651(ptr)   AccessChain 4201 2570
 | 
			
		||||
           21176:     12(int)   Load 11885
 | 
			
		||||
           10505:     12(int)   IAdd 11462 21176
 | 
			
		||||
           14626:   13(float)   ConvertSToF 10505
 | 
			
		||||
                                ReturnValue 14626
 | 
			
		||||
           22309:             Label
 | 
			
		||||
            6429:   13(float) Undef
 | 
			
		||||
                              ReturnValue 6429
 | 
			
		||||
                              FunctionEnd
 | 
			
		||||
							
								
								
									
										141
									
								
								Test/baseResults/remap.similar_1b.none.frag.out
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										141
									
								
								Test/baseResults/remap.similar_1b.none.frag.out
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,141 @@
 | 
			
		||||
remap.similar_1b.none.frag
 | 
			
		||||
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Linked fragment stage:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// Module Version 10000
 | 
			
		||||
// Generated by (magic number): 80001
 | 
			
		||||
// Id's are bound by 87
 | 
			
		||||
 | 
			
		||||
                              Capability Shader
 | 
			
		||||
               1:             ExtInstImport  "GLSL.std.450"
 | 
			
		||||
                              MemoryModel Logical GLSL450
 | 
			
		||||
                              EntryPoint Fragment 4  "main" 55 74 76
 | 
			
		||||
                              ExecutionMode 4 OriginUpperLeft
 | 
			
		||||
                              Source GLSL 450
 | 
			
		||||
                              Name 4  "main"
 | 
			
		||||
                              Name 11  "Test1(i1;"
 | 
			
		||||
                              Name 10  "bound"
 | 
			
		||||
                              Name 14  "Test2(i1;"
 | 
			
		||||
                              Name 13  "bound"
 | 
			
		||||
                              Name 17  "r"
 | 
			
		||||
                              Name 19  "x"
 | 
			
		||||
                              Name 47  "param"
 | 
			
		||||
                              Name 55  "ini4"
 | 
			
		||||
                              Name 74  "outf4"
 | 
			
		||||
                              Name 76  "inf"
 | 
			
		||||
                              Name 79  "param"
 | 
			
		||||
                              Name 83  "param"
 | 
			
		||||
                              Decorate 55(ini4) Flat
 | 
			
		||||
               2:             TypeVoid
 | 
			
		||||
               3:             TypeFunction 2
 | 
			
		||||
               6:             TypeInt 32 1
 | 
			
		||||
               7:             TypePointer Function 6(int)
 | 
			
		||||
               8:             TypeFloat 32
 | 
			
		||||
               9:             TypeFunction 8(float) 7(ptr)
 | 
			
		||||
              16:             TypePointer Function 8(float)
 | 
			
		||||
              18:    8(float) Constant 0
 | 
			
		||||
              20:      6(int) Constant 0
 | 
			
		||||
              28:             TypeBool
 | 
			
		||||
              30:    8(float) Constant 1056964608
 | 
			
		||||
              34:      6(int) Constant 1
 | 
			
		||||
              36:    8(float) Constant 1045220557
 | 
			
		||||
              41:      6(int) Constant 2
 | 
			
		||||
              51:      6(int) Constant 4
 | 
			
		||||
              53:             TypeVector 6(int) 4
 | 
			
		||||
              54:             TypePointer Input 53(ivec4)
 | 
			
		||||
        55(ini4):     54(ptr) Variable Input
 | 
			
		||||
              56:             TypeInt 32 0
 | 
			
		||||
              57:     56(int) Constant 1
 | 
			
		||||
              58:             TypePointer Input 6(int)
 | 
			
		||||
              61:     56(int) Constant 2
 | 
			
		||||
              66:     56(int) Constant 0
 | 
			
		||||
              72:             TypeVector 8(float) 4
 | 
			
		||||
              73:             TypePointer Output 72(fvec4)
 | 
			
		||||
       74(outf4):     73(ptr) Variable Output
 | 
			
		||||
              75:             TypePointer Input 8(float)
 | 
			
		||||
         76(inf):     75(ptr) Variable Input
 | 
			
		||||
         4(main):           2 Function None 3
 | 
			
		||||
               5:             Label
 | 
			
		||||
       79(param):      7(ptr) Variable Function
 | 
			
		||||
       83(param):      7(ptr) Variable Function
 | 
			
		||||
              77:    8(float) Load 76(inf)
 | 
			
		||||
              78:      6(int) ConvertFToS 77
 | 
			
		||||
                              Store 79(param) 78
 | 
			
		||||
              80:    8(float) FunctionCall 11(Test1(i1;) 79(param)
 | 
			
		||||
              81:    8(float) Load 76(inf)
 | 
			
		||||
              82:      6(int) ConvertFToS 81
 | 
			
		||||
                              Store 83(param) 82
 | 
			
		||||
              84:    8(float) FunctionCall 14(Test2(i1;) 83(param)
 | 
			
		||||
              85:    8(float) FAdd 80 84
 | 
			
		||||
              86:   72(fvec4) CompositeConstruct 85 85 85 85
 | 
			
		||||
                              Store 74(outf4) 86
 | 
			
		||||
                              Return
 | 
			
		||||
                              FunctionEnd
 | 
			
		||||
   11(Test1(i1;):    8(float) Function None 9
 | 
			
		||||
       10(bound):      7(ptr) FunctionParameter
 | 
			
		||||
              12:             Label
 | 
			
		||||
           17(r):     16(ptr) Variable Function
 | 
			
		||||
           19(x):      7(ptr) Variable Function
 | 
			
		||||
                              Store 17(r) 18
 | 
			
		||||
                              Store 19(x) 20
 | 
			
		||||
                              Branch 21
 | 
			
		||||
              21:             Label
 | 
			
		||||
                              LoopMerge 23 24 None
 | 
			
		||||
                              Branch 25
 | 
			
		||||
              25:             Label
 | 
			
		||||
              26:      6(int) Load 19(x)
 | 
			
		||||
              27:      6(int) Load 10(bound)
 | 
			
		||||
              29:    28(bool) SLessThan 26 27
 | 
			
		||||
                              BranchConditional 29 22 23
 | 
			
		||||
              22:               Label
 | 
			
		||||
              31:    8(float)   Load 17(r)
 | 
			
		||||
              32:    8(float)   FAdd 31 30
 | 
			
		||||
                                Store 17(r) 32
 | 
			
		||||
                                Branch 24
 | 
			
		||||
              24:               Label
 | 
			
		||||
              33:      6(int)   Load 19(x)
 | 
			
		||||
              35:      6(int)   IAdd 33 34
 | 
			
		||||
                                Store 19(x) 35
 | 
			
		||||
                                Branch 21
 | 
			
		||||
              23:             Label
 | 
			
		||||
              37:    8(float) Load 17(r)
 | 
			
		||||
              38:    8(float) FAdd 37 36
 | 
			
		||||
                              Store 17(r) 38
 | 
			
		||||
              39:    8(float) Load 17(r)
 | 
			
		||||
                              ReturnValue 39
 | 
			
		||||
                              FunctionEnd
 | 
			
		||||
   14(Test2(i1;):    8(float) Function None 9
 | 
			
		||||
       13(bound):      7(ptr) FunctionParameter
 | 
			
		||||
              15:             Label
 | 
			
		||||
       47(param):      7(ptr) Variable Function
 | 
			
		||||
              40:      6(int) Load 13(bound)
 | 
			
		||||
              42:    28(bool) SGreaterThan 40 41
 | 
			
		||||
                              SelectionMerge 44 None
 | 
			
		||||
                              BranchConditional 42 43 49
 | 
			
		||||
              43:               Label
 | 
			
		||||
              45:      6(int)   Load 13(bound)
 | 
			
		||||
              46:      6(int)   IMul 45 41
 | 
			
		||||
                                Store 47(param) 46
 | 
			
		||||
              48:    8(float)   FunctionCall 11(Test1(i1;) 47(param)
 | 
			
		||||
                                ReturnValue 48
 | 
			
		||||
              49:               Label
 | 
			
		||||
              50:      6(int)   Load 13(bound)
 | 
			
		||||
              52:      6(int)   IMul 50 51
 | 
			
		||||
              59:     58(ptr)   AccessChain 55(ini4) 57
 | 
			
		||||
              60:      6(int)   Load 59
 | 
			
		||||
              62:     58(ptr)   AccessChain 55(ini4) 61
 | 
			
		||||
              63:      6(int)   Load 62
 | 
			
		||||
              64:      6(int)   IMul 60 63
 | 
			
		||||
              65:      6(int)   IAdd 52 64
 | 
			
		||||
              67:     58(ptr)   AccessChain 55(ini4) 66
 | 
			
		||||
              68:      6(int)   Load 67
 | 
			
		||||
              69:      6(int)   IAdd 65 68
 | 
			
		||||
              70:    8(float)   ConvertSToF 69
 | 
			
		||||
                                ReturnValue 70
 | 
			
		||||
              44:             Label
 | 
			
		||||
              71:    8(float) Undef
 | 
			
		||||
                              ReturnValue 71
 | 
			
		||||
                              FunctionEnd
 | 
			
		||||
							
								
								
									
										81
									
								
								Test/baseResults/remap.switch.everything.frag.out
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										81
									
								
								Test/baseResults/remap.switch.everything.frag.out
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,81 @@
 | 
			
		||||
remap.switch.everything.frag
 | 
			
		||||
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
 | 
			
		||||
WARNING: 0:5: '' : all default precisions are highp; use precision statements to quiet warning, e.g.:
 | 
			
		||||
         "precision mediump int; precision highp float;" 
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Linked fragment stage:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// Module Version 10000
 | 
			
		||||
// Generated by (magic number): 80001
 | 
			
		||||
// Id's are bound by 23990
 | 
			
		||||
 | 
			
		||||
                              Capability Shader
 | 
			
		||||
               1:             ExtInstImport  "GLSL.std.450"
 | 
			
		||||
                              MemoryModel Logical GLSL450
 | 
			
		||||
                              EntryPoint Fragment 5663  "main" 3719 3994
 | 
			
		||||
                              ExecutionMode 5663 OriginUpperLeft
 | 
			
		||||
                              Decorate 3719 Location 0
 | 
			
		||||
                              Decorate 3994 RelaxedPrecision
 | 
			
		||||
                              Decorate 3994 Location 0
 | 
			
		||||
                              Decorate 12421 RelaxedPrecision
 | 
			
		||||
                              Decorate 12422 RelaxedPrecision
 | 
			
		||||
                              Decorate 12423 RelaxedPrecision
 | 
			
		||||
               8:             TypeVoid
 | 
			
		||||
            1282:             TypeFunction 8
 | 
			
		||||
              13:             TypeFloat 32
 | 
			
		||||
              29:             TypeVector 13(float) 4
 | 
			
		||||
             666:             TypePointer Input 29(fvec4)
 | 
			
		||||
            3719:    666(ptr) Variable Input
 | 
			
		||||
              11:             TypeInt 32 0
 | 
			
		||||
            2579:     11(int) Constant 3
 | 
			
		||||
             650:             TypePointer Input 13(float)
 | 
			
		||||
              12:             TypeInt 32 1
 | 
			
		||||
             667:             TypePointer Output 29(fvec4)
 | 
			
		||||
            3994:    667(ptr) Variable Output
 | 
			
		||||
            2570:     11(int) Constant 0
 | 
			
		||||
            2572:   13(float) Constant 0
 | 
			
		||||
            2573:     11(int) Constant 1
 | 
			
		||||
             138:   13(float) Constant 1065353216
 | 
			
		||||
            2576:     11(int) Constant 2
 | 
			
		||||
              24:   13(float) Constant 1073741824
 | 
			
		||||
             833:   13(float) Constant 3212836864
 | 
			
		||||
            1284:   29(fvec4) ConstantComposite 833 833 833 833
 | 
			
		||||
            5663:           8 Function None 1282
 | 
			
		||||
           23915:             Label
 | 
			
		||||
            7984:    650(ptr) AccessChain 3719 2579
 | 
			
		||||
           11376:   13(float) Load 7984
 | 
			
		||||
           16859:     12(int) ConvertFToS 11376
 | 
			
		||||
                              SelectionMerge 19578 None
 | 
			
		||||
                              Switch 16859 15971 
 | 
			
		||||
                                     case 0: 8158
 | 
			
		||||
                                     case 1: 8159
 | 
			
		||||
                                     case 2: 8160
 | 
			
		||||
           15971:               Label
 | 
			
		||||
                                Store 3994 1284
 | 
			
		||||
                                Branch 19578
 | 
			
		||||
            8158:               Label
 | 
			
		||||
           21848:    650(ptr)   AccessChain 3719 2570
 | 
			
		||||
           23987:   13(float)   Load 21848
 | 
			
		||||
           19989:   13(float)   FAdd 23987 2572
 | 
			
		||||
           12421:   29(fvec4)   CompositeConstruct 19989 19989 19989 19989
 | 
			
		||||
                                Store 3994 12421
 | 
			
		||||
                                Branch 19578
 | 
			
		||||
            8159:               Label
 | 
			
		||||
           21849:    650(ptr)   AccessChain 3719 2573
 | 
			
		||||
           23988:   13(float)   Load 21849
 | 
			
		||||
           19990:   13(float)   FAdd 23988 138
 | 
			
		||||
           12422:   29(fvec4)   CompositeConstruct 19990 19990 19990 19990
 | 
			
		||||
                                Store 3994 12422
 | 
			
		||||
                                Branch 19578
 | 
			
		||||
            8160:               Label
 | 
			
		||||
           21850:    650(ptr)   AccessChain 3719 2576
 | 
			
		||||
           23989:   13(float)   Load 21850
 | 
			
		||||
           19991:   13(float)   FAdd 23989 24
 | 
			
		||||
           12423:   29(fvec4)   CompositeConstruct 19991 19991 19991 19991
 | 
			
		||||
                                Store 3994 12423
 | 
			
		||||
                                Branch 19578
 | 
			
		||||
           19578:             Label
 | 
			
		||||
                              Return
 | 
			
		||||
                              FunctionEnd
 | 
			
		||||
							
								
								
									
										85
									
								
								Test/baseResults/remap.switch.none.frag.out
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										85
									
								
								Test/baseResults/remap.switch.none.frag.out
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,85 @@
 | 
			
		||||
remap.switch.none.frag
 | 
			
		||||
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
 | 
			
		||||
WARNING: 0:5: '' : all default precisions are highp; use precision statements to quiet warning, e.g.:
 | 
			
		||||
         "precision mediump int; precision highp float;" 
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Linked fragment stage:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// Module Version 10000
 | 
			
		||||
// Generated by (magic number): 80001
 | 
			
		||||
// Id's are bound by 44
 | 
			
		||||
 | 
			
		||||
                              Capability Shader
 | 
			
		||||
               1:             ExtInstImport  "GLSL.std.450"
 | 
			
		||||
                              MemoryModel Logical GLSL450
 | 
			
		||||
                              EntryPoint Fragment 4  "main" 9 23
 | 
			
		||||
                              ExecutionMode 4 OriginUpperLeft
 | 
			
		||||
                              Source GLSL 450
 | 
			
		||||
                              Name 4  "main"
 | 
			
		||||
                              Name 9  "in0"
 | 
			
		||||
                              Name 23  "FragColor"
 | 
			
		||||
                              Decorate 9(in0) Location 0
 | 
			
		||||
                              Decorate 23(FragColor) RelaxedPrecision
 | 
			
		||||
                              Decorate 23(FragColor) Location 0
 | 
			
		||||
                              Decorate 29 RelaxedPrecision
 | 
			
		||||
                              Decorate 35 RelaxedPrecision
 | 
			
		||||
                              Decorate 41 RelaxedPrecision
 | 
			
		||||
               2:             TypeVoid
 | 
			
		||||
               3:             TypeFunction 2
 | 
			
		||||
               6:             TypeFloat 32
 | 
			
		||||
               7:             TypeVector 6(float) 4
 | 
			
		||||
               8:             TypePointer Input 7(fvec4)
 | 
			
		||||
          9(in0):      8(ptr) Variable Input
 | 
			
		||||
              10:             TypeInt 32 0
 | 
			
		||||
              11:     10(int) Constant 3
 | 
			
		||||
              12:             TypePointer Input 6(float)
 | 
			
		||||
              15:             TypeInt 32 1
 | 
			
		||||
              22:             TypePointer Output 7(fvec4)
 | 
			
		||||
   23(FragColor):     22(ptr) Variable Output
 | 
			
		||||
              24:     10(int) Constant 0
 | 
			
		||||
              27:    6(float) Constant 0
 | 
			
		||||
              30:     10(int) Constant 1
 | 
			
		||||
              33:    6(float) Constant 1065353216
 | 
			
		||||
              36:     10(int) Constant 2
 | 
			
		||||
              39:    6(float) Constant 1073741824
 | 
			
		||||
              42:    6(float) Constant 3212836864
 | 
			
		||||
              43:    7(fvec4) ConstantComposite 42 42 42 42
 | 
			
		||||
         4(main):           2 Function None 3
 | 
			
		||||
               5:             Label
 | 
			
		||||
              13:     12(ptr) AccessChain 9(in0) 11
 | 
			
		||||
              14:    6(float) Load 13
 | 
			
		||||
              16:     15(int) ConvertFToS 14
 | 
			
		||||
                              SelectionMerge 21 None
 | 
			
		||||
                              Switch 16 20 
 | 
			
		||||
                                     case 0: 17
 | 
			
		||||
                                     case 1: 18
 | 
			
		||||
                                     case 2: 19
 | 
			
		||||
              20:               Label
 | 
			
		||||
                                Store 23(FragColor) 43
 | 
			
		||||
                                Branch 21
 | 
			
		||||
              17:               Label
 | 
			
		||||
              25:     12(ptr)   AccessChain 9(in0) 24
 | 
			
		||||
              26:    6(float)   Load 25
 | 
			
		||||
              28:    6(float)   FAdd 26 27
 | 
			
		||||
              29:    7(fvec4)   CompositeConstruct 28 28 28 28
 | 
			
		||||
                                Store 23(FragColor) 29
 | 
			
		||||
                                Branch 21
 | 
			
		||||
              18:               Label
 | 
			
		||||
              31:     12(ptr)   AccessChain 9(in0) 30
 | 
			
		||||
              32:    6(float)   Load 31
 | 
			
		||||
              34:    6(float)   FAdd 32 33
 | 
			
		||||
              35:    7(fvec4)   CompositeConstruct 34 34 34 34
 | 
			
		||||
                                Store 23(FragColor) 35
 | 
			
		||||
                                Branch 21
 | 
			
		||||
              19:               Label
 | 
			
		||||
              37:     12(ptr)   AccessChain 9(in0) 36
 | 
			
		||||
              38:    6(float)   Load 37
 | 
			
		||||
              40:    6(float)   FAdd 38 39
 | 
			
		||||
              41:    7(fvec4)   CompositeConstruct 40 40 40 40
 | 
			
		||||
                                Store 23(FragColor) 41
 | 
			
		||||
                                Branch 21
 | 
			
		||||
              21:             Label
 | 
			
		||||
                              Return
 | 
			
		||||
                              FunctionEnd
 | 
			
		||||
							
								
								
									
										67
									
								
								Test/baseResults/remap.uniformarray.everything.frag.out
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										67
									
								
								Test/baseResults/remap.uniformarray.everything.frag.out
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,67 @@
 | 
			
		||||
remap.uniformarray.everything.frag
 | 
			
		||||
 | 
			
		||||
Linked fragment stage:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// Module Version 10000
 | 
			
		||||
// Generated by (magic number): 80001
 | 
			
		||||
// Id's are bound by 25030
 | 
			
		||||
 | 
			
		||||
                              Capability Shader
 | 
			
		||||
               1:             ExtInstImport  "GLSL.std.450"
 | 
			
		||||
                              MemoryModel Logical GLSL450
 | 
			
		||||
                              EntryPoint Fragment 5663  "main" 3608 4957 4339 5139
 | 
			
		||||
                              ExecutionMode 5663 OriginUpperLeft
 | 
			
		||||
               8:             TypeVoid
 | 
			
		||||
            1282:             TypeFunction 8
 | 
			
		||||
              13:             TypeFloat 32
 | 
			
		||||
              29:             TypeVector 13(float) 4
 | 
			
		||||
             666:             TypePointer Function 29(fvec4)
 | 
			
		||||
              11:             TypeInt 32 0
 | 
			
		||||
            2588:     11(int) Constant 6
 | 
			
		||||
             740:             TypeArray 29(fvec4) 2588
 | 
			
		||||
            1377:             TypePointer Input 740
 | 
			
		||||
            3608:   1377(ptr) Variable Input
 | 
			
		||||
              12:             TypeInt 32 1
 | 
			
		||||
            2574:     12(int) Constant 1
 | 
			
		||||
             667:             TypePointer Input 29(fvec4)
 | 
			
		||||
              24:             TypeVector 13(float) 3
 | 
			
		||||
             661:             TypePointer Input 24(fvec3)
 | 
			
		||||
            4957:    661(ptr) Variable Input
 | 
			
		||||
            2618:     11(int) Constant 16
 | 
			
		||||
             669:             TypeArray 13(float) 2618
 | 
			
		||||
            1306:             TypePointer Input 669
 | 
			
		||||
            4339:   1306(ptr) Variable Input
 | 
			
		||||
            2607:     12(int) Constant 12
 | 
			
		||||
             650:             TypePointer Input 13(float)
 | 
			
		||||
            2579:     11(int) Constant 3
 | 
			
		||||
             651:             TypePointer Function 13(float)
 | 
			
		||||
             668:             TypePointer Output 29(fvec4)
 | 
			
		||||
            5139:    668(ptr) Variable Output
 | 
			
		||||
            5663:           8 Function None 1282
 | 
			
		||||
           25029:             Label
 | 
			
		||||
            4902:    666(ptr) Variable Function
 | 
			
		||||
           10645:    667(ptr) AccessChain 3608 2574
 | 
			
		||||
            8181:   29(fvec4) Load 10645
 | 
			
		||||
           21370:    667(ptr) AccessChain 3608 2574
 | 
			
		||||
           11355:   29(fvec4) Load 21370
 | 
			
		||||
           23084:   29(fvec4) FAdd 8181 11355
 | 
			
		||||
                              Store 4902 23084
 | 
			
		||||
           21218:   24(fvec3) Load 4957
 | 
			
		||||
           13695:   29(fvec4) Load 4902
 | 
			
		||||
           23883:   24(fvec3) VectorShuffle 13695 13695 0 1 2
 | 
			
		||||
           15591:   24(fvec3) FAdd 23883 21218
 | 
			
		||||
           17086:   29(fvec4) Load 4902
 | 
			
		||||
            7051:   29(fvec4) VectorShuffle 17086 15591 4 5 6 3
 | 
			
		||||
                              Store 4902 7051
 | 
			
		||||
           18282:    650(ptr) AccessChain 4339 2607
 | 
			
		||||
            7372:   13(float) Load 18282
 | 
			
		||||
           21371:    651(ptr) AccessChain 4902 2579
 | 
			
		||||
           11412:   13(float) Load 21371
 | 
			
		||||
           22584:   13(float) FAdd 11412 7372
 | 
			
		||||
           17318:    651(ptr) AccessChain 4902 2579
 | 
			
		||||
                              Store 17318 22584
 | 
			
		||||
           17934:   29(fvec4) Load 4902
 | 
			
		||||
                              Store 5139 17934
 | 
			
		||||
                              Return
 | 
			
		||||
                              FunctionEnd
 | 
			
		||||
							
								
								
									
										80
									
								
								Test/baseResults/remap.uniformarray.none.frag.out
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										80
									
								
								Test/baseResults/remap.uniformarray.none.frag.out
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,80 @@
 | 
			
		||||
remap.uniformarray.none.frag
 | 
			
		||||
 | 
			
		||||
Linked fragment stage:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// Module Version 10000
 | 
			
		||||
// Generated by (magic number): 80001
 | 
			
		||||
// Id's are bound by 53
 | 
			
		||||
 | 
			
		||||
                              Capability Shader
 | 
			
		||||
               1:             ExtInstImport  "GLSL.std.450"
 | 
			
		||||
                              MemoryModel Logical GLSL450
 | 
			
		||||
                              EntryPoint Fragment 4  "main" 14 25 35 47
 | 
			
		||||
                              ExecutionMode 4 OriginUpperLeft
 | 
			
		||||
                              Source GLSL 140
 | 
			
		||||
                              Name 4  "main"
 | 
			
		||||
                              Name 9  "texColor"
 | 
			
		||||
                              Name 14  "color"
 | 
			
		||||
                              Name 25  "inColor"
 | 
			
		||||
                              Name 35  "alpha"
 | 
			
		||||
                              Name 47  "gl_FragColor"
 | 
			
		||||
                              Name 52  "texSampler2D"
 | 
			
		||||
                              Decorate 52(texSampler2D) DescriptorSet 0
 | 
			
		||||
               2:             TypeVoid
 | 
			
		||||
               3:             TypeFunction 2
 | 
			
		||||
               6:             TypeFloat 32
 | 
			
		||||
               7:             TypeVector 6(float) 4
 | 
			
		||||
               8:             TypePointer Function 7(fvec4)
 | 
			
		||||
              10:             TypeInt 32 0
 | 
			
		||||
              11:     10(int) Constant 6
 | 
			
		||||
              12:             TypeArray 7(fvec4) 11
 | 
			
		||||
              13:             TypePointer Input 12
 | 
			
		||||
       14(color):     13(ptr) Variable Input
 | 
			
		||||
              15:             TypeInt 32 1
 | 
			
		||||
              16:     15(int) Constant 1
 | 
			
		||||
              17:             TypePointer Input 7(fvec4)
 | 
			
		||||
              23:             TypeVector 6(float) 3
 | 
			
		||||
              24:             TypePointer Input 23(fvec3)
 | 
			
		||||
     25(inColor):     24(ptr) Variable Input
 | 
			
		||||
              32:     10(int) Constant 16
 | 
			
		||||
              33:             TypeArray 6(float) 32
 | 
			
		||||
              34:             TypePointer Input 33
 | 
			
		||||
       35(alpha):     34(ptr) Variable Input
 | 
			
		||||
              36:     15(int) Constant 12
 | 
			
		||||
              37:             TypePointer Input 6(float)
 | 
			
		||||
              40:     10(int) Constant 3
 | 
			
		||||
              41:             TypePointer Function 6(float)
 | 
			
		||||
              46:             TypePointer Output 7(fvec4)
 | 
			
		||||
47(gl_FragColor):     46(ptr) Variable Output
 | 
			
		||||
              49:             TypeImage 6(float) 2D sampled format:Unknown
 | 
			
		||||
              50:             TypeSampledImage 49
 | 
			
		||||
              51:             TypePointer UniformConstant 50
 | 
			
		||||
52(texSampler2D):     51(ptr) Variable UniformConstant
 | 
			
		||||
         4(main):           2 Function None 3
 | 
			
		||||
               5:             Label
 | 
			
		||||
     9(texColor):      8(ptr) Variable Function
 | 
			
		||||
              18:     17(ptr) AccessChain 14(color) 16
 | 
			
		||||
              19:    7(fvec4) Load 18
 | 
			
		||||
              20:     17(ptr) AccessChain 14(color) 16
 | 
			
		||||
              21:    7(fvec4) Load 20
 | 
			
		||||
              22:    7(fvec4) FAdd 19 21
 | 
			
		||||
                              Store 9(texColor) 22
 | 
			
		||||
              26:   23(fvec3) Load 25(inColor)
 | 
			
		||||
              27:    7(fvec4) Load 9(texColor)
 | 
			
		||||
              28:   23(fvec3) VectorShuffle 27 27 0 1 2
 | 
			
		||||
              29:   23(fvec3) FAdd 28 26
 | 
			
		||||
              30:    7(fvec4) Load 9(texColor)
 | 
			
		||||
              31:    7(fvec4) VectorShuffle 30 29 4 5 6 3
 | 
			
		||||
                              Store 9(texColor) 31
 | 
			
		||||
              38:     37(ptr) AccessChain 35(alpha) 36
 | 
			
		||||
              39:    6(float) Load 38
 | 
			
		||||
              42:     41(ptr) AccessChain 9(texColor) 40
 | 
			
		||||
              43:    6(float) Load 42
 | 
			
		||||
              44:    6(float) FAdd 43 39
 | 
			
		||||
              45:     41(ptr) AccessChain 9(texColor) 40
 | 
			
		||||
                              Store 45 44
 | 
			
		||||
              48:    7(fvec4) Load 9(texColor)
 | 
			
		||||
                              Store 47(gl_FragColor) 48
 | 
			
		||||
                              Return
 | 
			
		||||
                              FunctionEnd
 | 
			
		||||
							
								
								
									
										11
									
								
								Test/remap.basic.dcefunc.frag
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								Test/remap.basic.dcefunc.frag
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,11 @@
 | 
			
		||||
#version 450
 | 
			
		||||
 | 
			
		||||
in float  inf;
 | 
			
		||||
out vec4  outf4;
 | 
			
		||||
 | 
			
		||||
vec3 dead_fn() { return vec3(0); }
 | 
			
		||||
 | 
			
		||||
void main()
 | 
			
		||||
{
 | 
			
		||||
    outf4 = vec4(inf);
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										11
									
								
								Test/remap.basic.everything.frag
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								Test/remap.basic.everything.frag
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,11 @@
 | 
			
		||||
#version 450
 | 
			
		||||
 | 
			
		||||
in float  inf;
 | 
			
		||||
out vec4  outf4;
 | 
			
		||||
 | 
			
		||||
vec3 dead_fn() { return vec3(0); }
 | 
			
		||||
 | 
			
		||||
void main()
 | 
			
		||||
{
 | 
			
		||||
    outf4 = vec4(inf);
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										11
									
								
								Test/remap.basic.none.frag
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								Test/remap.basic.none.frag
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,11 @@
 | 
			
		||||
#version 450
 | 
			
		||||
 | 
			
		||||
in float  inf;
 | 
			
		||||
out vec4  outf4;
 | 
			
		||||
 | 
			
		||||
vec3 dead_fn() { return vec3(0); }
 | 
			
		||||
 | 
			
		||||
void main()
 | 
			
		||||
{
 | 
			
		||||
    outf4 = vec4(inf);
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										11
									
								
								Test/remap.basic.strip.frag
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								Test/remap.basic.strip.frag
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,11 @@
 | 
			
		||||
#version 450
 | 
			
		||||
 | 
			
		||||
in float  inf;
 | 
			
		||||
out vec4  outf4;
 | 
			
		||||
 | 
			
		||||
vec3 dead_fn() { return vec3(0); }
 | 
			
		||||
 | 
			
		||||
void main()
 | 
			
		||||
{
 | 
			
		||||
    outf4 = vec4(inf);
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										90
									
								
								Test/remap.hlsl.sample.basic.everything.frag
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										90
									
								
								Test/remap.hlsl.sample.basic.everything.frag
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,90 @@
 | 
			
		||||
SamplerState       g_sSamp : register(s0);
 | 
			
		||||
uniform sampler2D          g_sSamp2d
 | 
			
		||||
{
 | 
			
		||||
    AddressU = MIRROR;
 | 
			
		||||
    AddressV = WRAP;
 | 
			
		||||
    MinLOD = 0;
 | 
			
		||||
    MaxLOD = 10;
 | 
			
		||||
    MaxAnisotropy = 2;
 | 
			
		||||
    MipLodBias = 0.2;
 | 
			
		||||
}, g_sSamp2D_b;
 | 
			
		||||
 | 
			
		||||
Texture1D          g_tTex1df4a : register(t1);
 | 
			
		||||
 | 
			
		||||
uniform Texture1D <float4> g_tTex1df4 : register(t0);
 | 
			
		||||
Texture1D <int4>   g_tTex1di4;
 | 
			
		||||
Texture1D <uint4>  g_tTex1du4;
 | 
			
		||||
 | 
			
		||||
Texture2D <float4> g_tTex2df4;
 | 
			
		||||
Texture2D <int4>   g_tTex2di4;
 | 
			
		||||
Texture2D <uint4>  g_tTex2du4;
 | 
			
		||||
 | 
			
		||||
Texture3D <float4> g_tTex3df4;
 | 
			
		||||
Texture3D <int4>   g_tTex3di4;
 | 
			
		||||
Texture3D <uint4>  g_tTex3du4;
 | 
			
		||||
 | 
			
		||||
TextureCube <float4> g_tTexcdf4;
 | 
			
		||||
TextureCube <int4>   g_tTexcdi4;
 | 
			
		||||
TextureCube <uint4>  g_tTexcdu4;
 | 
			
		||||
 | 
			
		||||
struct MemberTest
 | 
			
		||||
{
 | 
			
		||||
    int Sample;                          // in HLSL, method names are valid struct members.
 | 
			
		||||
    int CalculateLevelOfDetail;          // ...
 | 
			
		||||
    int CalculateLevelOfDetailUnclamped; // ...
 | 
			
		||||
    int Gather;                          // ...
 | 
			
		||||
    int GetDimensions;                   // ...
 | 
			
		||||
    int GetSamplePosition;               // ...
 | 
			
		||||
    int Load;                            // ...
 | 
			
		||||
    int SampleBias;                      // ...
 | 
			
		||||
    int SampleCmp;                       // ...
 | 
			
		||||
    int SampleCmpLevelZero;              // ...
 | 
			
		||||
    int SampleGrad;                      // ...
 | 
			
		||||
    int SampleLevel;                     // ...
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
struct PS_OUTPUT
 | 
			
		||||
{
 | 
			
		||||
    float4 Color : SV_Target0;
 | 
			
		||||
    float  Depth : SV_Depth;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
PS_OUTPUT main()
 | 
			
		||||
{
 | 
			
		||||
   PS_OUTPUT psout;
 | 
			
		||||
 | 
			
		||||
   MemberTest mtest;
 | 
			
		||||
   mtest.CalculateLevelOfDetail = 1;          // in HLSL, method names are valid struct members.
 | 
			
		||||
   mtest.CalculateLevelOfDetailUnclamped = 1; // ...
 | 
			
		||||
   mtest.Gather = 1;                          // ...
 | 
			
		||||
   mtest.GetDimensions = 1;                   // ...
 | 
			
		||||
   mtest.GetSamplePosition = 1;               // ...
 | 
			
		||||
   mtest.Load = 1;                            // ...
 | 
			
		||||
   mtest.Sample = 1;                          // ...
 | 
			
		||||
   mtest.SampleBias = 1;                      // ...
 | 
			
		||||
   mtest.SampleCmp = 1;                       // ...
 | 
			
		||||
   mtest.SampleCmpLevelZero = 1;              // ...
 | 
			
		||||
   mtest.SampleGrad = 1;                      // ...
 | 
			
		||||
   mtest.SampleLevel = 1;                     // ...
 | 
			
		||||
 | 
			
		||||
   float4 txval10 = g_tTex1df4 . Sample(g_sSamp, 0.1);
 | 
			
		||||
   int4   txval11 = g_tTex1di4 . Sample(g_sSamp, 0.2);
 | 
			
		||||
   uint4  txval12 = g_tTex1du4 . Sample(g_sSamp, 0.3);
 | 
			
		||||
 | 
			
		||||
   float4 txval20 = g_tTex2df4 . Sample(g_sSamp, float2(0.1, 0.2));
 | 
			
		||||
   int4   txval21 = g_tTex2di4 . Sample(g_sSamp, float2(0.3, 0.4));
 | 
			
		||||
   uint4  txval22 = g_tTex2du4 . Sample(g_sSamp, float2(0.5, 0.6));
 | 
			
		||||
 | 
			
		||||
   float4 txval30 = g_tTex3df4 . Sample(g_sSamp, float3(0.1, 0.2, 0.3));
 | 
			
		||||
   int4   txval31 = g_tTex3di4 . Sample(g_sSamp, float3(0.4, 0.5, 0.6));
 | 
			
		||||
   uint4  txval32 = g_tTex3du4 . Sample(g_sSamp, float3(0.7, 0.8, 0.9));
 | 
			
		||||
 | 
			
		||||
   float4 txval40 = g_tTexcdf4 . Sample(g_sSamp, float3(0.1, 0.2, 0.3));
 | 
			
		||||
   int4   txval41 = g_tTexcdi4 . Sample(g_sSamp, float3(0.4, 0.5, 0.6));
 | 
			
		||||
   uint4  txval42 = g_tTexcdu4 . Sample(g_sSamp, float3(0.7, 0.8, 0.9));
 | 
			
		||||
 | 
			
		||||
   psout.Color = 1.0;
 | 
			
		||||
   psout.Depth = 1.0;
 | 
			
		||||
 | 
			
		||||
   return psout;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										90
									
								
								Test/remap.hlsl.sample.basic.none.frag
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										90
									
								
								Test/remap.hlsl.sample.basic.none.frag
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,90 @@
 | 
			
		||||
SamplerState       g_sSamp : register(s0);
 | 
			
		||||
uniform sampler2D          g_sSamp2d
 | 
			
		||||
{
 | 
			
		||||
    AddressU = MIRROR;
 | 
			
		||||
    AddressV = WRAP;
 | 
			
		||||
    MinLOD = 0;
 | 
			
		||||
    MaxLOD = 10;
 | 
			
		||||
    MaxAnisotropy = 2;
 | 
			
		||||
    MipLodBias = 0.2;
 | 
			
		||||
}, g_sSamp2D_b;
 | 
			
		||||
 | 
			
		||||
Texture1D          g_tTex1df4a : register(t1);
 | 
			
		||||
 | 
			
		||||
uniform Texture1D <float4> g_tTex1df4 : register(t0);
 | 
			
		||||
Texture1D <int4>   g_tTex1di4;
 | 
			
		||||
Texture1D <uint4>  g_tTex1du4;
 | 
			
		||||
 | 
			
		||||
Texture2D <float4> g_tTex2df4;
 | 
			
		||||
Texture2D <int4>   g_tTex2di4;
 | 
			
		||||
Texture2D <uint4>  g_tTex2du4;
 | 
			
		||||
 | 
			
		||||
Texture3D <float4> g_tTex3df4;
 | 
			
		||||
Texture3D <int4>   g_tTex3di4;
 | 
			
		||||
Texture3D <uint4>  g_tTex3du4;
 | 
			
		||||
 | 
			
		||||
TextureCube <float4> g_tTexcdf4;
 | 
			
		||||
TextureCube <int4>   g_tTexcdi4;
 | 
			
		||||
TextureCube <uint4>  g_tTexcdu4;
 | 
			
		||||
 | 
			
		||||
struct MemberTest
 | 
			
		||||
{
 | 
			
		||||
    int Sample;                          // in HLSL, method names are valid struct members.
 | 
			
		||||
    int CalculateLevelOfDetail;          // ...
 | 
			
		||||
    int CalculateLevelOfDetailUnclamped; // ...
 | 
			
		||||
    int Gather;                          // ...
 | 
			
		||||
    int GetDimensions;                   // ...
 | 
			
		||||
    int GetSamplePosition;               // ...
 | 
			
		||||
    int Load;                            // ...
 | 
			
		||||
    int SampleBias;                      // ...
 | 
			
		||||
    int SampleCmp;                       // ...
 | 
			
		||||
    int SampleCmpLevelZero;              // ...
 | 
			
		||||
    int SampleGrad;                      // ...
 | 
			
		||||
    int SampleLevel;                     // ...
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
struct PS_OUTPUT
 | 
			
		||||
{
 | 
			
		||||
    float4 Color : SV_Target0;
 | 
			
		||||
    float  Depth : SV_Depth;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
PS_OUTPUT main()
 | 
			
		||||
{
 | 
			
		||||
   PS_OUTPUT psout;
 | 
			
		||||
 | 
			
		||||
   MemberTest mtest;
 | 
			
		||||
   mtest.CalculateLevelOfDetail = 1;          // in HLSL, method names are valid struct members.
 | 
			
		||||
   mtest.CalculateLevelOfDetailUnclamped = 1; // ...
 | 
			
		||||
   mtest.Gather = 1;                          // ...
 | 
			
		||||
   mtest.GetDimensions = 1;                   // ...
 | 
			
		||||
   mtest.GetSamplePosition = 1;               // ...
 | 
			
		||||
   mtest.Load = 1;                            // ...
 | 
			
		||||
   mtest.Sample = 1;                          // ...
 | 
			
		||||
   mtest.SampleBias = 1;                      // ...
 | 
			
		||||
   mtest.SampleCmp = 1;                       // ...
 | 
			
		||||
   mtest.SampleCmpLevelZero = 1;              // ...
 | 
			
		||||
   mtest.SampleGrad = 1;                      // ...
 | 
			
		||||
   mtest.SampleLevel = 1;                     // ...
 | 
			
		||||
 | 
			
		||||
   float4 txval10 = g_tTex1df4 . Sample(g_sSamp, 0.1);
 | 
			
		||||
   int4   txval11 = g_tTex1di4 . Sample(g_sSamp, 0.2);
 | 
			
		||||
   uint4  txval12 = g_tTex1du4 . Sample(g_sSamp, 0.3);
 | 
			
		||||
 | 
			
		||||
   float4 txval20 = g_tTex2df4 . Sample(g_sSamp, float2(0.1, 0.2));
 | 
			
		||||
   int4   txval21 = g_tTex2di4 . Sample(g_sSamp, float2(0.3, 0.4));
 | 
			
		||||
   uint4  txval22 = g_tTex2du4 . Sample(g_sSamp, float2(0.5, 0.6));
 | 
			
		||||
 | 
			
		||||
   float4 txval30 = g_tTex3df4 . Sample(g_sSamp, float3(0.1, 0.2, 0.3));
 | 
			
		||||
   int4   txval31 = g_tTex3di4 . Sample(g_sSamp, float3(0.4, 0.5, 0.6));
 | 
			
		||||
   uint4  txval32 = g_tTex3du4 . Sample(g_sSamp, float3(0.7, 0.8, 0.9));
 | 
			
		||||
 | 
			
		||||
   float4 txval40 = g_tTexcdf4 . Sample(g_sSamp, float3(0.1, 0.2, 0.3));
 | 
			
		||||
   int4   txval41 = g_tTexcdi4 . Sample(g_sSamp, float3(0.4, 0.5, 0.6));
 | 
			
		||||
   uint4  txval42 = g_tTexcdu4 . Sample(g_sSamp, float3(0.7, 0.8, 0.9));
 | 
			
		||||
 | 
			
		||||
   psout.Color = 1.0;
 | 
			
		||||
   psout.Depth = 1.0;
 | 
			
		||||
 | 
			
		||||
   return psout;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										90
									
								
								Test/remap.hlsl.sample.basic.strip.frag
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										90
									
								
								Test/remap.hlsl.sample.basic.strip.frag
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,90 @@
 | 
			
		||||
SamplerState       g_sSamp : register(s0);
 | 
			
		||||
uniform sampler2D          g_sSamp2d
 | 
			
		||||
{
 | 
			
		||||
    AddressU = MIRROR;
 | 
			
		||||
    AddressV = WRAP;
 | 
			
		||||
    MinLOD = 0;
 | 
			
		||||
    MaxLOD = 10;
 | 
			
		||||
    MaxAnisotropy = 2;
 | 
			
		||||
    MipLodBias = 0.2;
 | 
			
		||||
}, g_sSamp2D_b;
 | 
			
		||||
 | 
			
		||||
Texture1D          g_tTex1df4a : register(t1);
 | 
			
		||||
 | 
			
		||||
uniform Texture1D <float4> g_tTex1df4 : register(t0);
 | 
			
		||||
Texture1D <int4>   g_tTex1di4;
 | 
			
		||||
Texture1D <uint4>  g_tTex1du4;
 | 
			
		||||
 | 
			
		||||
Texture2D <float4> g_tTex2df4;
 | 
			
		||||
Texture2D <int4>   g_tTex2di4;
 | 
			
		||||
Texture2D <uint4>  g_tTex2du4;
 | 
			
		||||
 | 
			
		||||
Texture3D <float4> g_tTex3df4;
 | 
			
		||||
Texture3D <int4>   g_tTex3di4;
 | 
			
		||||
Texture3D <uint4>  g_tTex3du4;
 | 
			
		||||
 | 
			
		||||
TextureCube <float4> g_tTexcdf4;
 | 
			
		||||
TextureCube <int4>   g_tTexcdi4;
 | 
			
		||||
TextureCube <uint4>  g_tTexcdu4;
 | 
			
		||||
 | 
			
		||||
struct MemberTest
 | 
			
		||||
{
 | 
			
		||||
    int Sample;                          // in HLSL, method names are valid struct members.
 | 
			
		||||
    int CalculateLevelOfDetail;          // ...
 | 
			
		||||
    int CalculateLevelOfDetailUnclamped; // ...
 | 
			
		||||
    int Gather;                          // ...
 | 
			
		||||
    int GetDimensions;                   // ...
 | 
			
		||||
    int GetSamplePosition;               // ...
 | 
			
		||||
    int Load;                            // ...
 | 
			
		||||
    int SampleBias;                      // ...
 | 
			
		||||
    int SampleCmp;                       // ...
 | 
			
		||||
    int SampleCmpLevelZero;              // ...
 | 
			
		||||
    int SampleGrad;                      // ...
 | 
			
		||||
    int SampleLevel;                     // ...
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
struct PS_OUTPUT
 | 
			
		||||
{
 | 
			
		||||
    float4 Color : SV_Target0;
 | 
			
		||||
    float  Depth : SV_Depth;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
PS_OUTPUT main()
 | 
			
		||||
{
 | 
			
		||||
   PS_OUTPUT psout;
 | 
			
		||||
 | 
			
		||||
   MemberTest mtest;
 | 
			
		||||
   mtest.CalculateLevelOfDetail = 1;          // in HLSL, method names are valid struct members.
 | 
			
		||||
   mtest.CalculateLevelOfDetailUnclamped = 1; // ...
 | 
			
		||||
   mtest.Gather = 1;                          // ...
 | 
			
		||||
   mtest.GetDimensions = 1;                   // ...
 | 
			
		||||
   mtest.GetSamplePosition = 1;               // ...
 | 
			
		||||
   mtest.Load = 1;                            // ...
 | 
			
		||||
   mtest.Sample = 1;                          // ...
 | 
			
		||||
   mtest.SampleBias = 1;                      // ...
 | 
			
		||||
   mtest.SampleCmp = 1;                       // ...
 | 
			
		||||
   mtest.SampleCmpLevelZero = 1;              // ...
 | 
			
		||||
   mtest.SampleGrad = 1;                      // ...
 | 
			
		||||
   mtest.SampleLevel = 1;                     // ...
 | 
			
		||||
 | 
			
		||||
   float4 txval10 = g_tTex1df4 . Sample(g_sSamp, 0.1);
 | 
			
		||||
   int4   txval11 = g_tTex1di4 . Sample(g_sSamp, 0.2);
 | 
			
		||||
   uint4  txval12 = g_tTex1du4 . Sample(g_sSamp, 0.3);
 | 
			
		||||
 | 
			
		||||
   float4 txval20 = g_tTex2df4 . Sample(g_sSamp, float2(0.1, 0.2));
 | 
			
		||||
   int4   txval21 = g_tTex2di4 . Sample(g_sSamp, float2(0.3, 0.4));
 | 
			
		||||
   uint4  txval22 = g_tTex2du4 . Sample(g_sSamp, float2(0.5, 0.6));
 | 
			
		||||
 | 
			
		||||
   float4 txval30 = g_tTex3df4 . Sample(g_sSamp, float3(0.1, 0.2, 0.3));
 | 
			
		||||
   int4   txval31 = g_tTex3di4 . Sample(g_sSamp, float3(0.4, 0.5, 0.6));
 | 
			
		||||
   uint4  txval32 = g_tTex3du4 . Sample(g_sSamp, float3(0.7, 0.8, 0.9));
 | 
			
		||||
 | 
			
		||||
   float4 txval40 = g_tTexcdf4 . Sample(g_sSamp, float3(0.1, 0.2, 0.3));
 | 
			
		||||
   int4   txval41 = g_tTexcdi4 . Sample(g_sSamp, float3(0.4, 0.5, 0.6));
 | 
			
		||||
   uint4  txval42 = g_tTexcdu4 . Sample(g_sSamp, float3(0.7, 0.8, 0.9));
 | 
			
		||||
 | 
			
		||||
   psout.Color = 1.0;
 | 
			
		||||
   psout.Depth = 1.0;
 | 
			
		||||
 | 
			
		||||
   return psout;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										47
									
								
								Test/remap.hlsl.templatetypes.everything.frag
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								Test/remap.hlsl.templatetypes.everything.frag
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,47 @@
 | 
			
		||||
 | 
			
		||||
float4 main(float4 input) : COLOR0
 | 
			
		||||
{
 | 
			
		||||
    vector r00 = float4(1,2,3,4);  // vector means float4
 | 
			
		||||
    float4 r01 = vector(2,3,4,5);  // vector means float4
 | 
			
		||||
 | 
			
		||||
    vector<bool, 1>   r12 = bool1(false);
 | 
			
		||||
    vector<int, 1>    r13 = int1(1);
 | 
			
		||||
    vector<float, 1>  r14 = float1(1);
 | 
			
		||||
    vector<double, 1> r15 = double1(1);
 | 
			
		||||
    vector<uint, 1>   r16 = uint1(1);
 | 
			
		||||
 | 
			
		||||
    vector<bool, 2>   r20 = bool2(false, true);
 | 
			
		||||
    vector<int, 2>    r21 = int2(1,2);
 | 
			
		||||
    vector<float, 2>  r22 = float2(1,2);
 | 
			
		||||
    vector<double, 2> r23 = double2(1,2);
 | 
			
		||||
    vector<uint, 2>   r24 = uint2(1,2);
 | 
			
		||||
    
 | 
			
		||||
    vector<bool, 3>   r30 = bool3(false, true, true);
 | 
			
		||||
    vector<int, 3>    r31 = int3(1,2,3);
 | 
			
		||||
    vector<float, 3>  r32 = float3(1,2,3);
 | 
			
		||||
    vector<double, 3> r33 = double3(1,2,3);
 | 
			
		||||
    vector<uint, 3>   r34 = uint3(1,2,3);
 | 
			
		||||
 | 
			
		||||
    vector<bool, 4>   r40 = bool4(false, true, true, false);
 | 
			
		||||
    vector<int, 4>    r41 = int4(1,2,3,4);
 | 
			
		||||
    vector<float, 4>  r42 = float4(1,2,3,4);
 | 
			
		||||
    vector<double, 4> r43 = double4(1,2,3,4);
 | 
			
		||||
    vector<uint, 4>   r44 = uint4(1,2,3,4);
 | 
			
		||||
 | 
			
		||||
    matrix   r50 = float4x4(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); // matrix means float4x4
 | 
			
		||||
    float4x4 r51 = matrix(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15);   // matrix means float4x4
 | 
			
		||||
 | 
			
		||||
    // matrix<bool, 2, 3>  r60 = bool2x3(false, true, false, true, false, true);   // TODO: 
 | 
			
		||||
    matrix<float, 2, 3> r61 = float2x3(1,2,3,4,5,6);
 | 
			
		||||
    matrix<float, 3, 2> r62 = float3x2(1,2,3,4,5,6);
 | 
			
		||||
    // matrix<float, 4, 1> r63 = float4x1(1,2,3,4);  // TODO: 
 | 
			
		||||
    // matrix<float, 1, 4> r64 = float1x4(1,2,3,4);  // TODO: 
 | 
			
		||||
    matrix<float, 4, 2> r65 = float4x2(1,2,3,4,5,6,7,8);
 | 
			
		||||
    matrix<float, 4, 3> r66 = float4x3(1,2,3,4,5,6,7,8,9,10,11,12);
 | 
			
		||||
 | 
			
		||||
    // TODO: bool mats
 | 
			
		||||
    // TODO: int mats
 | 
			
		||||
    
 | 
			
		||||
    return 0.0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										47
									
								
								Test/remap.hlsl.templatetypes.none.frag
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								Test/remap.hlsl.templatetypes.none.frag
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,47 @@
 | 
			
		||||
 | 
			
		||||
float4 main(float4 input) : COLOR0
 | 
			
		||||
{
 | 
			
		||||
    vector r00 = float4(1,2,3,4);  // vector means float4
 | 
			
		||||
    float4 r01 = vector(2,3,4,5);  // vector means float4
 | 
			
		||||
 | 
			
		||||
    vector<bool, 1>   r12 = bool1(false);
 | 
			
		||||
    vector<int, 1>    r13 = int1(1);
 | 
			
		||||
    vector<float, 1>  r14 = float1(1);
 | 
			
		||||
    vector<double, 1> r15 = double1(1);
 | 
			
		||||
    vector<uint, 1>   r16 = uint1(1);
 | 
			
		||||
 | 
			
		||||
    vector<bool, 2>   r20 = bool2(false, true);
 | 
			
		||||
    vector<int, 2>    r21 = int2(1,2);
 | 
			
		||||
    vector<float, 2>  r22 = float2(1,2);
 | 
			
		||||
    vector<double, 2> r23 = double2(1,2);
 | 
			
		||||
    vector<uint, 2>   r24 = uint2(1,2);
 | 
			
		||||
    
 | 
			
		||||
    vector<bool, 3>   r30 = bool3(false, true, true);
 | 
			
		||||
    vector<int, 3>    r31 = int3(1,2,3);
 | 
			
		||||
    vector<float, 3>  r32 = float3(1,2,3);
 | 
			
		||||
    vector<double, 3> r33 = double3(1,2,3);
 | 
			
		||||
    vector<uint, 3>   r34 = uint3(1,2,3);
 | 
			
		||||
 | 
			
		||||
    vector<bool, 4>   r40 = bool4(false, true, true, false);
 | 
			
		||||
    vector<int, 4>    r41 = int4(1,2,3,4);
 | 
			
		||||
    vector<float, 4>  r42 = float4(1,2,3,4);
 | 
			
		||||
    vector<double, 4> r43 = double4(1,2,3,4);
 | 
			
		||||
    vector<uint, 4>   r44 = uint4(1,2,3,4);
 | 
			
		||||
 | 
			
		||||
    matrix   r50 = float4x4(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); // matrix means float4x4
 | 
			
		||||
    float4x4 r51 = matrix(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15);   // matrix means float4x4
 | 
			
		||||
 | 
			
		||||
    // matrix<bool, 2, 3>  r60 = bool2x3(false, true, false, true, false, true);   // TODO: 
 | 
			
		||||
    matrix<float, 2, 3> r61 = float2x3(1,2,3,4,5,6);
 | 
			
		||||
    matrix<float, 3, 2> r62 = float3x2(1,2,3,4,5,6);
 | 
			
		||||
    // matrix<float, 4, 1> r63 = float4x1(1,2,3,4);  // TODO: 
 | 
			
		||||
    // matrix<float, 1, 4> r64 = float1x4(1,2,3,4);  // TODO: 
 | 
			
		||||
    matrix<float, 4, 2> r65 = float4x2(1,2,3,4,5,6,7,8);
 | 
			
		||||
    matrix<float, 4, 3> r66 = float4x3(1,2,3,4,5,6,7,8,9,10,11,12);
 | 
			
		||||
 | 
			
		||||
    // TODO: bool mats
 | 
			
		||||
    // TODO: int mats
 | 
			
		||||
    
 | 
			
		||||
    return 0.0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										12
									
								
								Test/remap.if.everything.frag
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								Test/remap.if.everything.frag
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,12 @@
 | 
			
		||||
#version 450
 | 
			
		||||
 | 
			
		||||
in float  inf;
 | 
			
		||||
out vec4  outf4;
 | 
			
		||||
 | 
			
		||||
void main()
 | 
			
		||||
{
 | 
			
		||||
    if (inf > 2.0)
 | 
			
		||||
        outf4 = vec4(inf);
 | 
			
		||||
    else
 | 
			
		||||
        outf4 = vec4(inf + -.5);
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										12
									
								
								Test/remap.if.none.frag
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								Test/remap.if.none.frag
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,12 @@
 | 
			
		||||
#version 450
 | 
			
		||||
 | 
			
		||||
in float  inf;
 | 
			
		||||
out vec4  outf4;
 | 
			
		||||
 | 
			
		||||
void main()
 | 
			
		||||
{
 | 
			
		||||
    if (inf > 2.0)
 | 
			
		||||
        outf4 = vec4(inf);
 | 
			
		||||
    else
 | 
			
		||||
        outf4 = vec4(inf + -.5);
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								Test/remap.literal64.everything.spv
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Test/remap.literal64.everything.spv
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								Test/remap.literal64.none.spv
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Test/remap.literal64.none.spv
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										29
									
								
								Test/remap.similar_1a.everything.frag
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								Test/remap.similar_1a.everything.frag
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,29 @@
 | 
			
		||||
#version 450
 | 
			
		||||
 | 
			
		||||
in float  inf;
 | 
			
		||||
in flat ivec4  ini4;
 | 
			
		||||
out vec4  outf4;
 | 
			
		||||
 | 
			
		||||
float Test1(int bound)
 | 
			
		||||
{
 | 
			
		||||
    float r = 0;
 | 
			
		||||
    for (int x=0; x<bound; ++x)
 | 
			
		||||
        r += 0.5;
 | 
			
		||||
    return r;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
float Test2(int bound)
 | 
			
		||||
{
 | 
			
		||||
    if (bound > 2)
 | 
			
		||||
        return Test1(bound);
 | 
			
		||||
    else
 | 
			
		||||
        return float(bound * 2 +
 | 
			
		||||
                     ini4.y * ini4.z +
 | 
			
		||||
                     ini4.x);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void main()
 | 
			
		||||
{
 | 
			
		||||
    outf4 = vec4(Test1(int(inf)) + 
 | 
			
		||||
                 Test2(int(inf)));
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										29
									
								
								Test/remap.similar_1a.none.frag
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								Test/remap.similar_1a.none.frag
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,29 @@
 | 
			
		||||
#version 450
 | 
			
		||||
 | 
			
		||||
in float  inf;
 | 
			
		||||
in flat ivec4  ini4;
 | 
			
		||||
out vec4  outf4;
 | 
			
		||||
 | 
			
		||||
float Test1(int bound)
 | 
			
		||||
{
 | 
			
		||||
    float r = 0;
 | 
			
		||||
    for (int x=0; x<bound; ++x)
 | 
			
		||||
        r += 0.5;
 | 
			
		||||
    return r;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
float Test2(int bound)
 | 
			
		||||
{
 | 
			
		||||
    if (bound > 2)
 | 
			
		||||
        return Test1(bound);
 | 
			
		||||
    else
 | 
			
		||||
        return float(bound * 2 +
 | 
			
		||||
                     ini4.y * ini4.z +
 | 
			
		||||
                     ini4.x);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void main()
 | 
			
		||||
{
 | 
			
		||||
    outf4 = vec4(Test1(int(inf)) + 
 | 
			
		||||
                 Test2(int(inf)));
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										30
									
								
								Test/remap.similar_1b.everything.frag
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								Test/remap.similar_1b.everything.frag
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,30 @@
 | 
			
		||||
#version 450
 | 
			
		||||
 | 
			
		||||
out vec4  outf4;
 | 
			
		||||
in flat ivec4  ini4;
 | 
			
		||||
in float  inf;
 | 
			
		||||
 | 
			
		||||
float Test1(int bound)
 | 
			
		||||
{
 | 
			
		||||
    float r = 0;
 | 
			
		||||
    for (int x=0; x<bound; ++x)
 | 
			
		||||
        r += 0.5;
 | 
			
		||||
    r += 0.2;
 | 
			
		||||
    return r;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
float Test2(int bound)
 | 
			
		||||
{
 | 
			
		||||
    if (bound > 2) {
 | 
			
		||||
        return Test1(bound * 2);
 | 
			
		||||
    } else
 | 
			
		||||
        return float(bound * 4 +
 | 
			
		||||
                     ini4.y * ini4.z +
 | 
			
		||||
                     ini4.x);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void main()
 | 
			
		||||
{
 | 
			
		||||
    outf4 = vec4(Test1(int(inf)) + 
 | 
			
		||||
                 Test2(int(inf)));
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										30
									
								
								Test/remap.similar_1b.none.frag
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								Test/remap.similar_1b.none.frag
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,30 @@
 | 
			
		||||
#version 450
 | 
			
		||||
 | 
			
		||||
out vec4  outf4;
 | 
			
		||||
in flat ivec4  ini4;
 | 
			
		||||
in float  inf;
 | 
			
		||||
 | 
			
		||||
float Test1(int bound)
 | 
			
		||||
{
 | 
			
		||||
    float r = 0;
 | 
			
		||||
    for (int x=0; x<bound; ++x)
 | 
			
		||||
        r += 0.5;
 | 
			
		||||
    r += 0.2;
 | 
			
		||||
    return r;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
float Test2(int bound)
 | 
			
		||||
{
 | 
			
		||||
    if (bound > 2) {
 | 
			
		||||
        return Test1(bound * 2);
 | 
			
		||||
    } else
 | 
			
		||||
        return float(bound * 4 +
 | 
			
		||||
                     ini4.y * ini4.z +
 | 
			
		||||
                     ini4.x);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void main()
 | 
			
		||||
{
 | 
			
		||||
    outf4 = vec4(Test1(int(inf)) + 
 | 
			
		||||
                 Test2(int(inf)));
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										16
									
								
								Test/remap.switch.everything.frag
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								Test/remap.switch.everything.frag
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,16 @@
 | 
			
		||||
#version 450
 | 
			
		||||
 | 
			
		||||
precision highp float;
 | 
			
		||||
 | 
			
		||||
layout(location = 0) out mediump vec4 FragColor;
 | 
			
		||||
layout(location = 0) in vec4 in0;
 | 
			
		||||
 | 
			
		||||
void main()
 | 
			
		||||
{
 | 
			
		||||
    switch(int(in0.w)) {
 | 
			
		||||
    case 0: FragColor = vec4(in0.x + 0); break;
 | 
			
		||||
    case 1: FragColor = vec4(in0.y + 1); break;
 | 
			
		||||
    case 2: FragColor = vec4(in0.z + 2); break;
 | 
			
		||||
    default: FragColor = vec4(-1);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										16
									
								
								Test/remap.switch.none.frag
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								Test/remap.switch.none.frag
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,16 @@
 | 
			
		||||
#version 450
 | 
			
		||||
 | 
			
		||||
precision highp float;
 | 
			
		||||
 | 
			
		||||
layout(location = 0) out mediump vec4 FragColor;
 | 
			
		||||
layout(location = 0) in vec4 in0;
 | 
			
		||||
 | 
			
		||||
void main()
 | 
			
		||||
{
 | 
			
		||||
    switch(int(in0.w)) {
 | 
			
		||||
    case 0: FragColor = vec4(in0.x + 0); break;
 | 
			
		||||
    case 1: FragColor = vec4(in0.y + 1); break;
 | 
			
		||||
    case 2: FragColor = vec4(in0.z + 2); break;
 | 
			
		||||
    default: FragColor = vec4(-1);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										17
									
								
								Test/remap.uniformarray.everything.frag
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								Test/remap.uniformarray.everything.frag
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,17 @@
 | 
			
		||||
#version 140
 | 
			
		||||
 | 
			
		||||
uniform sampler2D texSampler2D;
 | 
			
		||||
in vec3 inColor;
 | 
			
		||||
in vec4 color[6];
 | 
			
		||||
in float alpha[16];
 | 
			
		||||
 | 
			
		||||
void main()
 | 
			
		||||
{
 | 
			
		||||
	vec4 texColor = color[1] + color[1];
 | 
			
		||||
 | 
			
		||||
	texColor.xyz += inColor;
 | 
			
		||||
 | 
			
		||||
	texColor.a += alpha[12];
 | 
			
		||||
 | 
			
		||||
    gl_FragColor = texColor;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										17
									
								
								Test/remap.uniformarray.none.frag
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								Test/remap.uniformarray.none.frag
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,17 @@
 | 
			
		||||
#version 140
 | 
			
		||||
 | 
			
		||||
uniform sampler2D texSampler2D;
 | 
			
		||||
in vec3 inColor;
 | 
			
		||||
in vec4 color[6];
 | 
			
		||||
in float alpha[16];
 | 
			
		||||
 | 
			
		||||
void main()
 | 
			
		||||
{
 | 
			
		||||
	vec4 texColor = color[1] + color[1];
 | 
			
		||||
 | 
			
		||||
	texColor.xyz += inColor;
 | 
			
		||||
 | 
			
		||||
	texColor.a += alpha[12];
 | 
			
		||||
 | 
			
		||||
    gl_FragColor = texColor;
 | 
			
		||||
}
 | 
			
		||||
@ -37,4 +37,37 @@ if (TARGET gmock)
 | 
			
		||||
    glslang OSDependent OGLCompiler HLSL glslang
 | 
			
		||||
    SPIRV glslang-default-resource-limits gmock)
 | 
			
		||||
  add_test(NAME glslang-gtests COMMAND glslangtests)
 | 
			
		||||
 | 
			
		||||
  # -- Remapper tests
 | 
			
		||||
  set(REMAPPER_TEST_SOURCES
 | 
			
		||||
    # Framework related source files
 | 
			
		||||
    ${CMAKE_CURRENT_SOURCE_DIR}/Initializer.h
 | 
			
		||||
    ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp
 | 
			
		||||
    ${CMAKE_CURRENT_SOURCE_DIR}/Settings.cpp
 | 
			
		||||
    ${CMAKE_CURRENT_SOURCE_DIR}/Settings.h
 | 
			
		||||
    ${CMAKE_CURRENT_SOURCE_DIR}/TestFixture.cpp
 | 
			
		||||
    ${CMAKE_CURRENT_SOURCE_DIR}/TestFixture.h
 | 
			
		||||
 | 
			
		||||
    # Test related source files
 | 
			
		||||
    ${CMAKE_CURRENT_SOURCE_DIR}/Remap.FromFile.cpp
 | 
			
		||||
  )
 | 
			
		||||
 | 
			
		||||
  add_executable(remappertests ${REMAPPER_TEST_SOURCES})
 | 
			
		||||
  set_property(TARGET remappertests PROPERTY FOLDER tests)
 | 
			
		||||
  glslang_set_link_args(remappertests)
 | 
			
		||||
  install(TARGETS remappertests
 | 
			
		||||
        RUNTIME DESTINATION bin)
 | 
			
		||||
 | 
			
		||||
  target_compile_definitions(remappertests
 | 
			
		||||
    PRIVATE GLSLANG_TEST_DIRECTORY="${CMAKE_CURRENT_SOURCE_DIR}/../Test")
 | 
			
		||||
  target_include_directories(remappertests PRIVATE
 | 
			
		||||
    ${CMAKE_CURRENT_SOURCE_DIR}
 | 
			
		||||
    ${PROJECT_SOURCE_DIR}
 | 
			
		||||
    ${gmock_SOURCE_DIR}/include
 | 
			
		||||
    ${gtest_SOURCE_DIR}/include)
 | 
			
		||||
  target_link_libraries(remappertests PRIVATE
 | 
			
		||||
    SPVRemapper
 | 
			
		||||
    glslang OSDependent OGLCompiler HLSL glslang
 | 
			
		||||
    SPIRV glslang-default-resource-limits gmock)
 | 
			
		||||
  add_test(NAME remapper-gtests COMMAND remappertests)
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										117
									
								
								gtests/Remap.FromFile.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										117
									
								
								gtests/Remap.FromFile.cpp
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,117 @@
 | 
			
		||||
//
 | 
			
		||||
// Copyright (C) 2016 LunarG, Inc.
 | 
			
		||||
//
 | 
			
		||||
// All rights reserved.
 | 
			
		||||
//
 | 
			
		||||
// Redistribution and use in source and binary forms, with or without
 | 
			
		||||
// modification, are permitted provided that the following conditions
 | 
			
		||||
// are met:
 | 
			
		||||
//
 | 
			
		||||
//    Redistributions of source code must retain the above copyright
 | 
			
		||||
//    notice, this list of conditions and the following disclaimer.
 | 
			
		||||
//
 | 
			
		||||
//    Redistributions in binary form must reproduce the above
 | 
			
		||||
//    copyright notice, this list of conditions and the following
 | 
			
		||||
//    disclaimer in the documentation and/or other materials provided
 | 
			
		||||
//    with the distribution.
 | 
			
		||||
//
 | 
			
		||||
//    Neither the name of Google Inc. nor the names of its
 | 
			
		||||
//    contributors may be used to endorse or promote products derived
 | 
			
		||||
//    from this software without specific prior written permission.
 | 
			
		||||
//
 | 
			
		||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 | 
			
		||||
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 | 
			
		||||
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
 | 
			
		||||
// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
 | 
			
		||||
// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
 | 
			
		||||
// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
 | 
			
		||||
// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 | 
			
		||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 | 
			
		||||
// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 | 
			
		||||
// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
 | 
			
		||||
// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 | 
			
		||||
// POSSIBILITY OF SUCH DAMAGE.
 | 
			
		||||
 | 
			
		||||
#include <gtest/gtest.h>
 | 
			
		||||
 | 
			
		||||
#include "TestFixture.h"
 | 
			
		||||
 | 
			
		||||
namespace glslangtest {
 | 
			
		||||
namespace {
 | 
			
		||||
 | 
			
		||||
struct RemapTestArgs {
 | 
			
		||||
    const char*  fileName;
 | 
			
		||||
    const char*  entryPoint;
 | 
			
		||||
    Source       sourceLanguage;
 | 
			
		||||
    unsigned int remapOpts;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// We are using FileNameEntryPointPair objects as parameters for instantiating
 | 
			
		||||
// the template, so the global FileNameAsCustomTestSuffix() won't work since
 | 
			
		||||
// it assumes std::string as parameters. Thus, an overriding one here.
 | 
			
		||||
std::string FileNameAsCustomTestSuffix(
 | 
			
		||||
    const ::testing::TestParamInfo<RemapTestArgs>& info) {
 | 
			
		||||
    std::string name = info.param.fileName;
 | 
			
		||||
    // A valid test case suffix cannot have '.' and '-' inside.
 | 
			
		||||
    std::replace(name.begin(), name.end(), '.', '_');
 | 
			
		||||
    std::replace(name.begin(), name.end(), '-', '_');
 | 
			
		||||
    return name;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
using RemapTest = GlslangTest<::testing::TestWithParam<RemapTestArgs>>;
 | 
			
		||||
 | 
			
		||||
// Remapping SPIR-V modules. 
 | 
			
		||||
TEST_P(RemapTest, FromFile)
 | 
			
		||||
{
 | 
			
		||||
    if (GetSuffix(GetParam().fileName) == "spv") {
 | 
			
		||||
        loadFileRemapAndCheck(GLSLANG_TEST_DIRECTORY, GetParam().fileName,
 | 
			
		||||
                              GetParam().sourceLanguage,
 | 
			
		||||
                              Semantics::Vulkan,
 | 
			
		||||
                              Target::Spv,
 | 
			
		||||
                              GetParam().remapOpts);
 | 
			
		||||
    } else {
 | 
			
		||||
        loadFileCompileRemapAndCheck(GLSLANG_TEST_DIRECTORY, GetParam().fileName,
 | 
			
		||||
                                     GetParam().sourceLanguage,
 | 
			
		||||
                                     Semantics::Vulkan,
 | 
			
		||||
                                     Target::Spv,
 | 
			
		||||
                                     GetParam().entryPoint,
 | 
			
		||||
                                     GetParam().remapOpts);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// clang-format off
 | 
			
		||||
INSTANTIATE_TEST_CASE_P(
 | 
			
		||||
    ToSpirv, RemapTest,
 | 
			
		||||
    ::testing::ValuesIn(std::vector<RemapTestArgs>{
 | 
			
		||||
            // GLSL remapper tests
 | 
			
		||||
            // testname                                   entry   language      remapper_options
 | 
			
		||||
            { "remap.basic.none.frag",                    "main", Source::GLSL, spv::spirvbin_t::NONE },
 | 
			
		||||
            { "remap.basic.everything.frag",              "main", Source::GLSL, spv::spirvbin_t::DO_EVERYTHING },
 | 
			
		||||
            { "remap.basic.dcefunc.frag",                 "main", Source::GLSL, spv::spirvbin_t::DCE_FUNCS },
 | 
			
		||||
            { "remap.basic.strip.frag",                   "main", Source::GLSL, spv::spirvbin_t::STRIP },
 | 
			
		||||
            { "remap.switch.none.frag",                   "main", Source::GLSL, spv::spirvbin_t::NONE },
 | 
			
		||||
            { "remap.switch.everything.frag",             "main", Source::GLSL, spv::spirvbin_t::DO_EVERYTHING },
 | 
			
		||||
            { "remap.literal64.none.spv",                 "main", Source::GLSL, spv::spirvbin_t::NONE },
 | 
			
		||||
            { "remap.literal64.everything.spv",           "main", Source::GLSL, spv::spirvbin_t::DO_EVERYTHING },
 | 
			
		||||
            { "remap.if.none.frag",                       "main", Source::GLSL, spv::spirvbin_t::NONE },
 | 
			
		||||
            { "remap.if.everything.frag",                 "main", Source::GLSL, spv::spirvbin_t::DO_EVERYTHING },
 | 
			
		||||
            { "remap.similar_1a.none.frag",               "main", Source::GLSL, spv::spirvbin_t::NONE },
 | 
			
		||||
            { "remap.similar_1b.none.frag",               "main", Source::GLSL, spv::spirvbin_t::NONE },
 | 
			
		||||
            { "remap.similar_1a.everything.frag",         "main", Source::GLSL, spv::spirvbin_t::DO_EVERYTHING },
 | 
			
		||||
            { "remap.similar_1b.everything.frag",         "main", Source::GLSL, spv::spirvbin_t::DO_EVERYTHING },
 | 
			
		||||
            { "remap.uniformarray.none.frag",             "main", Source::GLSL, spv::spirvbin_t::NONE },
 | 
			
		||||
            { "remap.uniformarray.everything.frag",       "main", Source::GLSL, spv::spirvbin_t::DO_EVERYTHING },
 | 
			
		||||
 | 
			
		||||
            // HLSL remapper tests
 | 
			
		||||
            { "remap.hlsl.sample.basic.strip.frag",       "main", Source::HLSL, spv::spirvbin_t::STRIP },
 | 
			
		||||
            { "remap.hlsl.sample.basic.everything.frag",  "main", Source::HLSL, spv::spirvbin_t::DO_EVERYTHING },
 | 
			
		||||
            { "remap.hlsl.sample.basic.none.frag",        "main", Source::HLSL, spv::spirvbin_t::NONE },
 | 
			
		||||
            { "remap.hlsl.templatetypes.none.frag",       "main", Source::HLSL, spv::spirvbin_t::NONE },
 | 
			
		||||
            { "remap.hlsl.templatetypes.everything.frag", "main", Source::HLSL, spv::spirvbin_t::DO_EVERYTHING },
 | 
			
		||||
            }),
 | 
			
		||||
    FileNameAsCustomTestSuffix
 | 
			
		||||
);
 | 
			
		||||
// clang-format on
 | 
			
		||||
 | 
			
		||||
}  // anonymous namespace
 | 
			
		||||
}  // namespace glslangtest
 | 
			
		||||
@ -116,6 +116,32 @@ std::pair<bool, std::string> ReadFile(const std::string& path)
 | 
			
		||||
    return std::make_pair(false, "");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
std::pair<bool, std::vector<std::uint32_t> > ReadSpvBinaryFile(const std::string& path)
 | 
			
		||||
{
 | 
			
		||||
    std::ifstream fstream(path, std::fstream::in | std::fstream::binary);
 | 
			
		||||
 | 
			
		||||
    if (!fstream)
 | 
			
		||||
        return std::make_pair(false, std::vector<std::uint32_t>());
 | 
			
		||||
 | 
			
		||||
    std::vector<std::uint32_t> contents;
 | 
			
		||||
 | 
			
		||||
    // Reserve space (for efficiency, not for correctness)
 | 
			
		||||
    fstream.seekg(0, fstream.end);
 | 
			
		||||
    contents.reserve(size_t(fstream.tellg()) / sizeof(std::uint32_t));
 | 
			
		||||
    fstream.seekg(0, fstream.beg);
 | 
			
		||||
 | 
			
		||||
    // There is no istream iterator traversing by uint32_t, so we must loop.
 | 
			
		||||
    while (!fstream.eof()) {
 | 
			
		||||
        std::uint32_t inWord;
 | 
			
		||||
        fstream.read((char *)&inWord, sizeof(inWord));
 | 
			
		||||
 | 
			
		||||
        if (!fstream.eof())
 | 
			
		||||
            contents.push_back(inWord);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return std::make_pair(true, contents); // hopefully, c++11 move semantics optimizes the copy away.
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool WriteFile(const std::string& path, const std::string& contents)
 | 
			
		||||
{
 | 
			
		||||
    std::ofstream fstream(path, std::ios::out);
 | 
			
		||||
 | 
			
		||||
@ -40,12 +40,14 @@
 | 
			
		||||
#include <sstream>
 | 
			
		||||
#include <streambuf>
 | 
			
		||||
#include <tuple>
 | 
			
		||||
#include <string>
 | 
			
		||||
 | 
			
		||||
#include <gtest/gtest.h>
 | 
			
		||||
 | 
			
		||||
#include "SPIRV/GlslangToSpv.h"
 | 
			
		||||
#include "SPIRV/disassemble.h"
 | 
			
		||||
#include "SPIRV/doc.h"
 | 
			
		||||
#include "SPIRV/SPVRemapper.h"
 | 
			
		||||
#include "StandAlone/ResourceLimits.h"
 | 
			
		||||
#include "glslang/Public/ShaderLang.h"
 | 
			
		||||
 | 
			
		||||
@ -93,6 +95,7 @@ EShMessages DeriveOptions(Source, Semantics, Target);
 | 
			
		||||
// Reads the content of the file at the given |path|. On success, returns true
 | 
			
		||||
// and the contents; otherwise, returns false and an empty string.
 | 
			
		||||
std::pair<bool, std::string> ReadFile(const std::string& path);
 | 
			
		||||
std::pair<bool, std::vector<std::uint32_t> > ReadSpvBinaryFile(const std::string& path);
 | 
			
		||||
 | 
			
		||||
// Writes the given |contents| into the file at the given |path|. Returns true
 | 
			
		||||
// on successful output.
 | 
			
		||||
@ -128,6 +131,16 @@ public:
 | 
			
		||||
        ASSERT_TRUE(fileReadOk) << "Cannot open " << tag << " file: " << path;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // Tries to load the contents from the file at the given |path|. On success,
 | 
			
		||||
    // writes the contents into |contents|. On failure, errors out.
 | 
			
		||||
    void tryLoadSpvFile(const std::string& path, const std::string& tag,
 | 
			
		||||
                        std::vector<uint32_t>& contents)
 | 
			
		||||
    {
 | 
			
		||||
        bool fileReadOk;
 | 
			
		||||
        std::tie(fileReadOk, contents) = ReadSpvBinaryFile(path);
 | 
			
		||||
        ASSERT_TRUE(fileReadOk) << "Cannot open " << tag << " file: " << path;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // Checks the equality of |expected| and |real|. If they are not equal,
 | 
			
		||||
    // write |real| to the given file named as |fname| if update mode is on.
 | 
			
		||||
    void checkEqAndUpdateIfRequested(const std::string& expected,
 | 
			
		||||
@ -221,6 +234,68 @@ public:
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // This is like compileAndLink but with remapping of the SPV binary
 | 
			
		||||
    // through spirvbin_t::remap().  While technically this could be merged
 | 
			
		||||
    // with compileAndLink() above (with the remap step optionally being a no-op)
 | 
			
		||||
    // it is given separately here for ease of future extraction.
 | 
			
		||||
    GlslangResult compileLinkRemap(
 | 
			
		||||
            const std::string shaderName, const std::string& code,
 | 
			
		||||
            const std::string& entryPointName, EShMessages controls,
 | 
			
		||||
            const unsigned int remapOptions = spv::spirvbin_t::NONE)
 | 
			
		||||
    {
 | 
			
		||||
        const EShLanguage kind = GetShaderStage(GetSuffix(shaderName));
 | 
			
		||||
 | 
			
		||||
        glslang::TShader shader(kind);
 | 
			
		||||
        bool success = compile(&shader, code, entryPointName, controls);
 | 
			
		||||
 | 
			
		||||
        glslang::TProgram program;
 | 
			
		||||
        program.addShader(&shader);
 | 
			
		||||
        success &= program.link(controls);
 | 
			
		||||
 | 
			
		||||
        spv::SpvBuildLogger logger;
 | 
			
		||||
 | 
			
		||||
        if (success && (controls & EShMsgSpvRules)) {
 | 
			
		||||
            std::vector<uint32_t> spirv_binary;
 | 
			
		||||
            glslang::GlslangToSpv(*program.getIntermediate(kind),
 | 
			
		||||
                                  spirv_binary, &logger);
 | 
			
		||||
 | 
			
		||||
            spv::spirvbin_t(0 /*verbosity*/).remap(spirv_binary, remapOptions);
 | 
			
		||||
 | 
			
		||||
            std::ostringstream disassembly_stream;
 | 
			
		||||
            spv::Parameterize();
 | 
			
		||||
            spv::Disassemble(disassembly_stream, spirv_binary);
 | 
			
		||||
            return {{{shaderName, shader.getInfoLog(), shader.getInfoDebugLog()},},
 | 
			
		||||
                    program.getInfoLog(), program.getInfoDebugLog(),
 | 
			
		||||
                    logger.getAllMessages(), disassembly_stream.str()};
 | 
			
		||||
        } else {
 | 
			
		||||
            return {{{shaderName, shader.getInfoLog(), shader.getInfoDebugLog()},},
 | 
			
		||||
                    program.getInfoLog(), program.getInfoDebugLog(), "", ""};
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // remap the binary in 'code' with the options in remapOptions
 | 
			
		||||
    GlslangResult remap(
 | 
			
		||||
            const std::string shaderName, const std::vector<uint32_t>& code,
 | 
			
		||||
            EShMessages controls,
 | 
			
		||||
            const unsigned int remapOptions = spv::spirvbin_t::NONE)
 | 
			
		||||
    {
 | 
			
		||||
        if ((controls & EShMsgSpvRules)) {
 | 
			
		||||
            std::vector<uint32_t> spirv_binary(code); // scratch copy
 | 
			
		||||
 | 
			
		||||
            spv::spirvbin_t(0 /*verbosity*/).remap(spirv_binary, remapOptions);
 | 
			
		||||
            
 | 
			
		||||
            std::ostringstream disassembly_stream;
 | 
			
		||||
            spv::Parameterize();
 | 
			
		||||
            spv::Disassemble(disassembly_stream, spirv_binary);
 | 
			
		||||
 | 
			
		||||
            return {{{shaderName, "", ""},},
 | 
			
		||||
                    "", "",
 | 
			
		||||
                        "", disassembly_stream.str()};
 | 
			
		||||
        } else {
 | 
			
		||||
            return {{{shaderName, "", ""},}, "", "", "", ""};
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    void outputResultToStream(std::ostringstream* stream,
 | 
			
		||||
                              const GlslangResult& result,
 | 
			
		||||
                              EShMessages controls)
 | 
			
		||||
@ -272,6 +347,60 @@ public:
 | 
			
		||||
                                    expectedOutputFname);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    void loadFileCompileRemapAndCheck(const std::string& testDir,
 | 
			
		||||
                                      const std::string& testName,
 | 
			
		||||
                                      Source source,
 | 
			
		||||
                                      Semantics semantics,
 | 
			
		||||
                                      Target target,
 | 
			
		||||
                                      const std::string& entryPointName="",
 | 
			
		||||
                                      const unsigned int remapOptions = spv::spirvbin_t::NONE)
 | 
			
		||||
    {
 | 
			
		||||
        const std::string inputFname = testDir + "/" + testName;
 | 
			
		||||
        const std::string expectedOutputFname =
 | 
			
		||||
            testDir + "/baseResults/" + testName + ".out";
 | 
			
		||||
        std::string input, expectedOutput;
 | 
			
		||||
 | 
			
		||||
        tryLoadFile(inputFname, "input", &input);
 | 
			
		||||
        tryLoadFile(expectedOutputFname, "expected output", &expectedOutput);
 | 
			
		||||
 | 
			
		||||
        const EShMessages controls = DeriveOptions(source, semantics, target);
 | 
			
		||||
        GlslangResult result = compileLinkRemap(testName, input, entryPointName, controls, remapOptions);
 | 
			
		||||
 | 
			
		||||
        // Generate the hybrid output in the way of glslangValidator.
 | 
			
		||||
        std::ostringstream stream;
 | 
			
		||||
        outputResultToStream(&stream, result, controls);
 | 
			
		||||
 | 
			
		||||
        checkEqAndUpdateIfRequested(expectedOutput, stream.str(),
 | 
			
		||||
                                    expectedOutputFname);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    void loadFileRemapAndCheck(const std::string& testDir,
 | 
			
		||||
                               const std::string& testName,
 | 
			
		||||
                               Source source,
 | 
			
		||||
                               Semantics semantics,
 | 
			
		||||
                               Target target,
 | 
			
		||||
                               const unsigned int remapOptions = spv::spirvbin_t::NONE)
 | 
			
		||||
    {
 | 
			
		||||
        const std::string inputFname = testDir + "/" + testName;
 | 
			
		||||
        const std::string expectedOutputFname =
 | 
			
		||||
            testDir + "/baseResults/" + testName + ".out";
 | 
			
		||||
        std::vector<std::uint32_t> input;
 | 
			
		||||
        std::string expectedOutput;
 | 
			
		||||
 | 
			
		||||
        tryLoadSpvFile(inputFname, "input", input);
 | 
			
		||||
        tryLoadFile(expectedOutputFname, "expected output", &expectedOutput);
 | 
			
		||||
 | 
			
		||||
        const EShMessages controls = DeriveOptions(source, semantics, target);
 | 
			
		||||
        GlslangResult result = remap(testName, input, controls, remapOptions);
 | 
			
		||||
 | 
			
		||||
        // Generate the hybrid output in the way of glslangValidator.
 | 
			
		||||
        std::ostringstream stream;
 | 
			
		||||
        outputResultToStream(&stream, result, controls);
 | 
			
		||||
 | 
			
		||||
        checkEqAndUpdateIfRequested(expectedOutput, stream.str(),
 | 
			
		||||
                                    expectedOutputFname);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // Preprocesses the given |source| code. On success, returns true, the
 | 
			
		||||
    // preprocessed shader, and warning messages. Otherwise, returns false, an
 | 
			
		||||
    // empty string, and error messages.
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user