 11c24e9adb
			
		
	
	
		11c24e9adb
		
	
	
	
	
		
			
			Previous check was missing type difference between uniform array actual arg with stride decoration and the formal arg without. Now does logical or component-wise copy where needed. Fixes #2637
		
			
				
	
	
		
			111 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			111 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| spv.1.4.OpCopyLogical.funcall.frag
 | |
| // Module Version 10400
 | |
| // Generated by (magic number): 8000a
 | |
| // Id's are bound by 59
 | |
| 
 | |
|                               Capability Shader
 | |
|                1:             ExtInstImport  "GLSL.std.450"
 | |
|                               MemoryModel Logical GLSL450
 | |
|                               EntryPoint Fragment 4  "main" 25 36
 | |
|                               ExecutionMode 4 OriginUpperLeft
 | |
|                               Source GLSL 450
 | |
|                               Name 4  "main"
 | |
|                               Name 9  "S"
 | |
|                               MemberName 9(S) 0  "m"
 | |
|                               Name 12  "fooConst(struct-S-mf441;"
 | |
|                               Name 11  "s"
 | |
|                               Name 17  "foo(struct-S-mf441;"
 | |
|                               Name 16  "s"
 | |
|                               Name 20  "fooOut(struct-S-mf441;"
 | |
|                               Name 19  "s"
 | |
|                               Name 22  "S"
 | |
|                               MemberName 22(S) 0  "m"
 | |
|                               Name 23  "blockName"
 | |
|                               MemberName 23(blockName) 0  "s1"
 | |
|                               Name 25  ""
 | |
|                               Name 31  "arg"
 | |
|                               Name 36  "s2"
 | |
|                               Name 39  "param"
 | |
|                               Name 44  "param"
 | |
|                               Name 47  "param"
 | |
|                               Name 55  "param"
 | |
|                               MemberDecorate 22(S) 0 ColMajor
 | |
|                               MemberDecorate 22(S) 0 Offset 0
 | |
|                               MemberDecorate 22(S) 0 MatrixStride 16
 | |
|                               MemberDecorate 23(blockName) 0 Offset 0
 | |
|                               Decorate 23(blockName) Block
 | |
|                               Decorate 25 DescriptorSet 0
 | |
|                               Decorate 25 Binding 0
 | |
|                2:             TypeVoid
 | |
|                3:             TypeFunction 2
 | |
|                6:             TypeFloat 32
 | |
|                7:             TypeVector 6(float) 4
 | |
|                8:             TypeMatrix 7(fvec4) 4
 | |
|             9(S):             TypeStruct 8
 | |
|               10:             TypeFunction 2 9(S)
 | |
|               14:             TypePointer Function 9(S)
 | |
|               15:             TypeFunction 2 14(ptr)
 | |
|            22(S):             TypeStruct 8
 | |
|    23(blockName):             TypeStruct 22(S)
 | |
|               24:             TypePointer StorageBuffer 23(blockName)
 | |
|               25:     24(ptr) Variable StorageBuffer
 | |
|               26:             TypeInt 32 1
 | |
|               27:     26(int) Constant 0
 | |
|               28:             TypePointer StorageBuffer 22(S)
 | |
|               35:             TypePointer Private 9(S)
 | |
|           36(s2):     35(ptr) Variable Private
 | |
|          4(main):           2 Function None 3
 | |
|                5:             Label
 | |
|          31(arg):     14(ptr) Variable Function
 | |
|        39(param):     14(ptr) Variable Function
 | |
|        44(param):     14(ptr) Variable Function
 | |
|        47(param):     14(ptr) Variable Function
 | |
|        55(param):     14(ptr) Variable Function
 | |
|               29:     28(ptr) AccessChain 25 27
 | |
|               30:       22(S) Load 29
 | |
|               32:        9(S) CopyLogical 30
 | |
|                               Store 31(arg) 32
 | |
|               33:        9(S) Load 31(arg)
 | |
|               34:           2 FunctionCall 12(fooConst(struct-S-mf441;) 33
 | |
|               37:        9(S) Load 36(s2)
 | |
|               38:           2 FunctionCall 12(fooConst(struct-S-mf441;) 37
 | |
|               40:     28(ptr) AccessChain 25 27
 | |
|               41:       22(S) Load 40
 | |
|               42:        9(S) CopyLogical 41
 | |
|                               Store 39(param) 42
 | |
|               43:           2 FunctionCall 17(foo(struct-S-mf441;) 39(param)
 | |
|               45:        9(S) Load 36(s2)
 | |
|                               Store 44(param) 45
 | |
|               46:           2 FunctionCall 17(foo(struct-S-mf441;) 44(param)
 | |
|               48:     28(ptr) AccessChain 25 27
 | |
|               49:       22(S) Load 48
 | |
|               50:        9(S) CopyLogical 49
 | |
|                               Store 47(param) 50
 | |
|               51:           2 FunctionCall 20(fooOut(struct-S-mf441;) 47(param)
 | |
|               52:        9(S) Load 47(param)
 | |
|               53:     28(ptr) AccessChain 25 27
 | |
|               54:       22(S) CopyLogical 52
 | |
|                               Store 53 54
 | |
|               56:        9(S) Load 36(s2)
 | |
|                               Store 55(param) 56
 | |
|               57:           2 FunctionCall 20(fooOut(struct-S-mf441;) 55(param)
 | |
|               58:        9(S) Load 55(param)
 | |
|                               Store 36(s2) 58
 | |
|                               Return
 | |
|                               FunctionEnd
 | |
| 12(fooConst(struct-S-mf441;):           2 Function None 10
 | |
|            11(s):        9(S) FunctionParameter
 | |
|               13:             Label
 | |
|                               Return
 | |
|                               FunctionEnd
 | |
| 17(foo(struct-S-mf441;):           2 Function None 15
 | |
|            16(s):     14(ptr) FunctionParameter
 | |
|               18:             Label
 | |
|                               Return
 | |
|                               FunctionEnd
 | |
| 20(fooOut(struct-S-mf441;):           2 Function None 15
 | |
|            19(s):     14(ptr) FunctionParameter
 | |
|               21:             Label
 | |
|                               Return
 | |
|                               FunctionEnd
 |