 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
		
			
				
	
	
		
			107 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			107 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| spv.funcall.array.frag
 | |
| // Module Version 10000
 | |
| // Generated by (magic number): 8000a
 | |
| // Id's are bound by 66
 | |
| 
 | |
|                               Capability Shader
 | |
|                1:             ExtInstImport  "GLSL.std.450"
 | |
|                               MemoryModel Logical GLSL450
 | |
|                               EntryPoint Fragment 4  "main" 27
 | |
|                               ExecutionMode 4 OriginUpperLeft
 | |
|                               Source GLSL 450
 | |
|                               Name 4  "main"
 | |
|                               Name 16  "f(vf4[9];i1;"
 | |
|                               Name 14  "a"
 | |
|                               Name 15  "ix"
 | |
|                               Name 20  "indexable"
 | |
|                               Name 27  "color"
 | |
|                               Name 29  "ub"
 | |
|                               MemberName 29(ub) 0  "u"
 | |
|                               Name 31  ""
 | |
|                               Name 37  "arg"
 | |
|                               Name 64  "param"
 | |
|                               Decorate 27(color) Location 0
 | |
|                               Decorate 28 ArrayStride 16
 | |
|                               MemberDecorate 29(ub) 0 Offset 0
 | |
|                               Decorate 29(ub) Block
 | |
|                               Decorate 31 DescriptorSet 0
 | |
|                               Decorate 31 Binding 0
 | |
|                2:             TypeVoid
 | |
|                3:             TypeFunction 2
 | |
|                6:             TypeFloat 32
 | |
|                7:             TypeVector 6(float) 4
 | |
|                8:             TypeInt 32 0
 | |
|                9:      8(int) Constant 9
 | |
|               10:             TypeArray 7(fvec4) 9
 | |
|               11:             TypeInt 32 1
 | |
|               12:             TypePointer Function 11(int)
 | |
|               13:             TypeFunction 7(fvec4) 10 12(ptr)
 | |
|               19:             TypePointer Function 10
 | |
|               21:             TypePointer Function 7(fvec4)
 | |
|               26:             TypePointer Output 7(fvec4)
 | |
|        27(color):     26(ptr) Variable Output
 | |
|               28:             TypeArray 7(fvec4) 9
 | |
|           29(ub):             TypeStruct 28
 | |
|               30:             TypePointer Uniform 29(ub)
 | |
|               31:     30(ptr) Variable Uniform
 | |
|               32:     11(int) Constant 0
 | |
|               33:             TypePointer Uniform 28
 | |
|               36:     11(int) Constant 2
 | |
|               41:     11(int) Constant 1
 | |
|               46:     11(int) Constant 3
 | |
|               49:     11(int) Constant 4
 | |
|               52:     11(int) Constant 5
 | |
|               55:     11(int) Constant 6
 | |
|               58:     11(int) Constant 7
 | |
|               61:     11(int) Constant 8
 | |
|          4(main):           2 Function None 3
 | |
|                5:             Label
 | |
|          37(arg):     19(ptr) Variable Function
 | |
|        64(param):     12(ptr) Variable Function
 | |
|               34:     33(ptr) AccessChain 31 32
 | |
|               35:          28 Load 34
 | |
|               38:    7(fvec4) CompositeExtract 35 0
 | |
|               39:     21(ptr) AccessChain 37(arg) 32
 | |
|                               Store 39 38
 | |
|               40:    7(fvec4) CompositeExtract 35 1
 | |
|               42:     21(ptr) AccessChain 37(arg) 41
 | |
|                               Store 42 40
 | |
|               43:    7(fvec4) CompositeExtract 35 2
 | |
|               44:     21(ptr) AccessChain 37(arg) 36
 | |
|                               Store 44 43
 | |
|               45:    7(fvec4) CompositeExtract 35 3
 | |
|               47:     21(ptr) AccessChain 37(arg) 46
 | |
|                               Store 47 45
 | |
|               48:    7(fvec4) CompositeExtract 35 4
 | |
|               50:     21(ptr) AccessChain 37(arg) 49
 | |
|                               Store 50 48
 | |
|               51:    7(fvec4) CompositeExtract 35 5
 | |
|               53:     21(ptr) AccessChain 37(arg) 52
 | |
|                               Store 53 51
 | |
|               54:    7(fvec4) CompositeExtract 35 6
 | |
|               56:     21(ptr) AccessChain 37(arg) 55
 | |
|                               Store 56 54
 | |
|               57:    7(fvec4) CompositeExtract 35 7
 | |
|               59:     21(ptr) AccessChain 37(arg) 58
 | |
|                               Store 59 57
 | |
|               60:    7(fvec4) CompositeExtract 35 8
 | |
|               62:     21(ptr) AccessChain 37(arg) 61
 | |
|                               Store 62 60
 | |
|               63:          10 Load 37(arg)
 | |
|                               Store 64(param) 36
 | |
|               65:    7(fvec4) FunctionCall 16(f(vf4[9];i1;) 63 64(param)
 | |
|                               Store 27(color) 65
 | |
|                               Return
 | |
|                               FunctionEnd
 | |
| 16(f(vf4[9];i1;):    7(fvec4) Function None 13
 | |
|            14(a):          10 FunctionParameter
 | |
|           15(ix):     12(ptr) FunctionParameter
 | |
|               17:             Label
 | |
|    20(indexable):     19(ptr) Variable Function
 | |
|               18:     11(int) Load 15(ix)
 | |
|                               Store 20(indexable) 14(a)
 | |
|               22:     21(ptr) AccessChain 20(indexable) 18
 | |
|               23:    7(fvec4) Load 22
 | |
|                               ReturnValue 23
 | |
|                               FunctionEnd
 |