 9c56d84b73
			
		
	
	
		9c56d84b73
		
	
	
	
	
		
			
			This change causes ES shaders to precision qualifiers for build-in functions as defined in ESSL spec. It especially mattersfor functions that are defined as highp or taking a highp. Fixes vulkanCTS dEQP-VK.glsl.builtin.function.integer.bitfieldreverse.*, where bitfieldReverse() retval was wrongly marked as RelaxedPrecision. Note: floatBitsToInt/floatBitsToUInt precision is also broken, but in different way - so it is not addressed here.
		
			
				
	
	
		
			362 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			362 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| spv.intOps.vert
 | |
| Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
 | |
| 
 | |
| 
 | |
| Linked vertex stage:
 | |
| 
 | |
| 
 | |
| // Module Version 10000
 | |
| // Generated by (magic number): 80001
 | |
| // Id's are bound by 268
 | |
| 
 | |
|                               Capability Shader
 | |
|                1:             ExtInstImport  "GLSL.std.450"
 | |
|                               MemoryModel Logical GLSL450
 | |
|                               EntryPoint Vertex 4  "main" 9 15 21 26 47 67 83 100 121 142 146 156 173 182 247
 | |
|                               Source ESSL 310
 | |
|                               Name 4  "main"
 | |
|                               Name 9  "iout"
 | |
|                               Name 15  "uout"
 | |
|                               Name 21  "fout"
 | |
|                               Name 26  "u2"
 | |
|                               Name 30  "u2out"
 | |
|                               Name 31  "ResType"
 | |
|                               Name 47  "u1"
 | |
|                               Name 51  "u1out"
 | |
|                               Name 52  "ResType"
 | |
|                               Name 67  "u4"
 | |
|                               Name 71  "u4outHi"
 | |
|                               Name 72  "u4outLow"
 | |
|                               Name 73  "ResType"
 | |
|                               Name 83  "i4"
 | |
|                               Name 87  "i4outHi"
 | |
|                               Name 88  "i4outLow"
 | |
|                               Name 89  "ResType"
 | |
|                               Name 100  "v3"
 | |
|                               Name 104  "i3out"
 | |
|                               Name 105  "ResType"
 | |
|                               Name 121  "v1"
 | |
|                               Name 124  "i1out"
 | |
|                               Name 125  "ResType"
 | |
|                               Name 142  "v2"
 | |
|                               Name 146  "i2"
 | |
|                               Name 156  "i1"
 | |
|                               Name 173  "u3"
 | |
|                               Name 182  "i3"
 | |
|                               Name 247  "v4"
 | |
|                               Decorate 210 RelaxedPrecision
 | |
|                               Decorate 216 RelaxedPrecision
 | |
|                               Decorate 223 RelaxedPrecision
 | |
|                               Decorate 230 RelaxedPrecision
 | |
|                               Decorate 234 RelaxedPrecision
 | |
|                               Decorate 240 RelaxedPrecision
 | |
|                               Decorate 261 RelaxedPrecision
 | |
|                               Decorate 265 RelaxedPrecision
 | |
|                2:             TypeVoid
 | |
|                3:             TypeFunction 2
 | |
|                6:             TypeInt 32 1
 | |
|                7:             TypeVector 6(int) 4
 | |
|                8:             TypePointer Output 7(ivec4)
 | |
|          9(iout):      8(ptr) Variable Output
 | |
|               10:      6(int) Constant 0
 | |
|               11:    7(ivec4) ConstantComposite 10 10 10 10
 | |
|               12:             TypeInt 32 0
 | |
|               13:             TypeVector 12(int) 4
 | |
|               14:             TypePointer Output 13(ivec4)
 | |
|         15(uout):     14(ptr) Variable Output
 | |
|               16:     12(int) Constant 0
 | |
|               17:   13(ivec4) ConstantComposite 16 16 16 16
 | |
|               18:             TypeFloat 32
 | |
|               19:             TypeVector 18(float) 4
 | |
|               20:             TypePointer Output 19(fvec4)
 | |
|         21(fout):     20(ptr) Variable Output
 | |
|               22:   18(float) Constant 0
 | |
|               23:   19(fvec4) ConstantComposite 22 22 22 22
 | |
|               24:             TypeVector 12(int) 2
 | |
|               25:             TypePointer Input 24(ivec2)
 | |
|           26(u2):     25(ptr) Variable Input
 | |
|               29:             TypePointer Function 24(ivec2)
 | |
|      31(ResType):             TypeStruct 24(ivec2) 24(ivec2)
 | |
|               46:             TypePointer Input 12(int)
 | |
|           47(u1):     46(ptr) Variable Input
 | |
|               50:             TypePointer Function 12(int)
 | |
|      52(ResType):             TypeStruct 12(int) 12(int)
 | |
|               56:             TypePointer Output 12(int)
 | |
|               66:             TypePointer Input 13(ivec4)
 | |
|           67(u4):     66(ptr) Variable Input
 | |
|               70:             TypePointer Function 13(ivec4)
 | |
|      73(ResType):             TypeStruct 13(ivec4) 13(ivec4)
 | |
|               82:             TypePointer Input 7(ivec4)
 | |
|           83(i4):     82(ptr) Variable Input
 | |
|               86:             TypePointer Function 7(ivec4)
 | |
|      89(ResType):             TypeStruct 7(ivec4) 7(ivec4)
 | |
|               98:             TypeVector 18(float) 3
 | |
|               99:             TypePointer Input 98(fvec3)
 | |
|          100(v3):     99(ptr) Variable Input
 | |
|              102:             TypeVector 6(int) 3
 | |
|              103:             TypePointer Function 102(ivec3)
 | |
|     105(ResType):             TypeStruct 98(fvec3) 102(ivec3)
 | |
|              120:             TypePointer Input 18(float)
 | |
|          121(v1):    120(ptr) Variable Input
 | |
|              123:             TypePointer Function 6(int)
 | |
|     125(ResType):             TypeStruct 18(float) 6(int)
 | |
|              129:             TypePointer Output 18(float)
 | |
|              135:             TypePointer Output 6(int)
 | |
|              140:             TypeVector 18(float) 2
 | |
|              141:             TypePointer Input 140(fvec2)
 | |
|          142(v2):    141(ptr) Variable Input
 | |
|              144:             TypeVector 6(int) 2
 | |
|              145:             TypePointer Input 144(ivec2)
 | |
|          146(i2):    145(ptr) Variable Input
 | |
|              155:             TypePointer Input 6(int)
 | |
|          156(i1):    155(ptr) Variable Input
 | |
|              164:      6(int) Constant 4
 | |
|              165:      6(int) Constant 5
 | |
|              171:             TypeVector 12(int) 3
 | |
|              172:             TypePointer Input 171(ivec3)
 | |
|          173(u3):    172(ptr) Variable Input
 | |
|              181:             TypePointer Input 102(ivec3)
 | |
|          182(i3):    181(ptr) Variable Input
 | |
|              246:             TypePointer Input 19(fvec4)
 | |
|          247(v4):    246(ptr) Variable Input
 | |
|          4(main):           2 Function None 3
 | |
|                5:             Label
 | |
|        30(u2out):     29(ptr) Variable Function
 | |
|        51(u1out):     50(ptr) Variable Function
 | |
|      71(u4outHi):     70(ptr) Variable Function
 | |
|     72(u4outLow):     70(ptr) Variable Function
 | |
|      87(i4outHi):     86(ptr) Variable Function
 | |
|     88(i4outLow):     86(ptr) Variable Function
 | |
|       104(i3out):    103(ptr) Variable Function
 | |
|       124(i1out):    123(ptr) Variable Function
 | |
|                               Store 9(iout) 11
 | |
|                               Store 15(uout) 17
 | |
|                               Store 21(fout) 23
 | |
|               27:   24(ivec2) Load 26(u2)
 | |
|               28:   24(ivec2) Load 26(u2)
 | |
|               32: 31(ResType) IAddCarry 27 28
 | |
|               33:   24(ivec2) CompositeExtract 32 1
 | |
|                               Store 30(u2out) 33
 | |
|               34:   24(ivec2) CompositeExtract 32 0
 | |
|               35:   13(ivec4) Load 15(uout)
 | |
|               36:   24(ivec2) VectorShuffle 35 35 0 1
 | |
|               37:   24(ivec2) IAdd 36 34
 | |
|               38:   13(ivec4) Load 15(uout)
 | |
|               39:   13(ivec4) VectorShuffle 38 37 4 5 2 3
 | |
|                               Store 15(uout) 39
 | |
|               40:   24(ivec2) Load 30(u2out)
 | |
|               41:   13(ivec4) Load 15(uout)
 | |
|               42:   24(ivec2) VectorShuffle 41 41 0 1
 | |
|               43:   24(ivec2) IAdd 42 40
 | |
|               44:   13(ivec4) Load 15(uout)
 | |
|               45:   13(ivec4) VectorShuffle 44 43 4 5 2 3
 | |
|                               Store 15(uout) 45
 | |
|               48:     12(int) Load 47(u1)
 | |
|               49:     12(int) Load 47(u1)
 | |
|               53: 52(ResType) ISubBorrow 48 49
 | |
|               54:     12(int) CompositeExtract 53 1
 | |
|                               Store 51(u1out) 54
 | |
|               55:     12(int) CompositeExtract 53 0
 | |
|               57:     56(ptr) AccessChain 15(uout) 16
 | |
|               58:     12(int) Load 57
 | |
|               59:     12(int) IAdd 58 55
 | |
|               60:     56(ptr) AccessChain 15(uout) 16
 | |
|                               Store 60 59
 | |
|               61:     12(int) Load 51(u1out)
 | |
|               62:     56(ptr) AccessChain 15(uout) 16
 | |
|               63:     12(int) Load 62
 | |
|               64:     12(int) IAdd 63 61
 | |
|               65:     56(ptr) AccessChain 15(uout) 16
 | |
|                               Store 65 64
 | |
|               68:   13(ivec4) Load 67(u4)
 | |
|               69:   13(ivec4) Load 67(u4)
 | |
|               74: 73(ResType) UMulExtended 68 69
 | |
|               75:   13(ivec4) CompositeExtract 74 0
 | |
|                               Store 72(u4outLow) 75
 | |
|               76:   13(ivec4) CompositeExtract 74 1
 | |
|                               Store 71(u4outHi) 76
 | |
|               77:   13(ivec4) Load 71(u4outHi)
 | |
|               78:   13(ivec4) Load 72(u4outLow)
 | |
|               79:   13(ivec4) IAdd 77 78
 | |
|               80:   13(ivec4) Load 15(uout)
 | |
|               81:   13(ivec4) IAdd 80 79
 | |
|                               Store 15(uout) 81
 | |
|               84:    7(ivec4) Load 83(i4)
 | |
|               85:    7(ivec4) Load 83(i4)
 | |
|               90: 89(ResType) SMulExtended 84 85
 | |
|               91:    7(ivec4) CompositeExtract 90 0
 | |
|                               Store 88(i4outLow) 91
 | |
|               92:    7(ivec4) CompositeExtract 90 1
 | |
|                               Store 87(i4outHi) 92
 | |
|               93:    7(ivec4) Load 88(i4outLow)
 | |
|               94:    7(ivec4) Load 87(i4outHi)
 | |
|               95:    7(ivec4) IAdd 93 94
 | |
|               96:    7(ivec4) Load 9(iout)
 | |
|               97:    7(ivec4) IAdd 96 95
 | |
|                               Store 9(iout) 97
 | |
|              101:   98(fvec3) Load 100(v3)
 | |
|              106:105(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 101
 | |
|              107:  102(ivec3) CompositeExtract 106 1
 | |
|                               Store 104(i3out) 107
 | |
|              108:   98(fvec3) CompositeExtract 106 0
 | |
|              109:   19(fvec4) Load 21(fout)
 | |
|              110:   98(fvec3) VectorShuffle 109 109 0 1 2
 | |
|              111:   98(fvec3) FAdd 110 108
 | |
|              112:   19(fvec4) Load 21(fout)
 | |
|              113:   19(fvec4) VectorShuffle 112 111 4 5 6 3
 | |
|                               Store 21(fout) 113
 | |
|              114:  102(ivec3) Load 104(i3out)
 | |
|              115:    7(ivec4) Load 9(iout)
 | |
|              116:  102(ivec3) VectorShuffle 115 115 0 1 2
 | |
|              117:  102(ivec3) IAdd 116 114
 | |
|              118:    7(ivec4) Load 9(iout)
 | |
|              119:    7(ivec4) VectorShuffle 118 117 4 5 6 3
 | |
|                               Store 9(iout) 119
 | |
|              122:   18(float) Load 121(v1)
 | |
|              126:125(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 122
 | |
|              127:      6(int) CompositeExtract 126 1
 | |
|                               Store 124(i1out) 127
 | |
|              128:   18(float) CompositeExtract 126 0
 | |
|              130:    129(ptr) AccessChain 21(fout) 16
 | |
|              131:   18(float) Load 130
 | |
|              132:   18(float) FAdd 131 128
 | |
|              133:    129(ptr) AccessChain 21(fout) 16
 | |
|                               Store 133 132
 | |
|              134:      6(int) Load 124(i1out)
 | |
|              136:    135(ptr) AccessChain 9(iout) 16
 | |
|              137:      6(int) Load 136
 | |
|              138:      6(int) IAdd 137 134
 | |
|              139:    135(ptr) AccessChain 9(iout) 16
 | |
|                               Store 139 138
 | |
|              143:  140(fvec2) Load 142(v2)
 | |
|              147:  144(ivec2) Load 146(i2)
 | |
|              148:  140(fvec2) ExtInst 1(GLSL.std.450) 53(Ldexp) 143 147
 | |
|              149:   19(fvec4) Load 21(fout)
 | |
|              150:  140(fvec2) VectorShuffle 149 149 0 1
 | |
|              151:  140(fvec2) FAdd 150 148
 | |
|              152:   19(fvec4) Load 21(fout)
 | |
|              153:   19(fvec4) VectorShuffle 152 151 4 5 2 3
 | |
|                               Store 21(fout) 153
 | |
|              154:   18(float) Load 121(v1)
 | |
|              157:      6(int) Load 156(i1)
 | |
|              158:   18(float) ExtInst 1(GLSL.std.450) 53(Ldexp) 154 157
 | |
|              159:    129(ptr) AccessChain 21(fout) 16
 | |
|              160:   18(float) Load 159
 | |
|              161:   18(float) FAdd 160 158
 | |
|              162:    129(ptr) AccessChain 21(fout) 16
 | |
|                               Store 162 161
 | |
|              163:      6(int) Load 156(i1)
 | |
|              166:      6(int) BitFieldSExtract 163 164 165
 | |
|              167:    135(ptr) AccessChain 9(iout) 16
 | |
|              168:      6(int) Load 167
 | |
|              169:      6(int) IAdd 168 166
 | |
|              170:    135(ptr) AccessChain 9(iout) 16
 | |
|                               Store 170 169
 | |
|              174:  171(ivec3) Load 173(u3)
 | |
|              175:  171(ivec3) BitFieldUExtract 174 164 165
 | |
|              176:   13(ivec4) Load 15(uout)
 | |
|              177:  171(ivec3) VectorShuffle 176 176 0 1 2
 | |
|              178:  171(ivec3) IAdd 177 175
 | |
|              179:   13(ivec4) Load 15(uout)
 | |
|              180:   13(ivec4) VectorShuffle 179 178 4 5 6 3
 | |
|                               Store 15(uout) 180
 | |
|              183:  102(ivec3) Load 182(i3)
 | |
|              184:  102(ivec3) Load 182(i3)
 | |
|              185:  102(ivec3) BitFieldInsert 183 184 164 165
 | |
|              186:    7(ivec4) Load 9(iout)
 | |
|              187:  102(ivec3) VectorShuffle 186 186 0 1 2
 | |
|              188:  102(ivec3) IAdd 187 185
 | |
|              189:    7(ivec4) Load 9(iout)
 | |
|              190:    7(ivec4) VectorShuffle 189 188 4 5 6 3
 | |
|                               Store 9(iout) 190
 | |
|              191:     12(int) Load 47(u1)
 | |
|              192:     12(int) Load 47(u1)
 | |
|              193:     12(int) BitFieldInsert 191 192 164 165
 | |
|              194:     56(ptr) AccessChain 15(uout) 16
 | |
|              195:     12(int) Load 194
 | |
|              196:     12(int) IAdd 195 193
 | |
|              197:     56(ptr) AccessChain 15(uout) 16
 | |
|                               Store 197 196
 | |
|              198:  144(ivec2) Load 146(i2)
 | |
|              199:  144(ivec2) BitReverse 198
 | |
|              200:    7(ivec4) Load 9(iout)
 | |
|              201:  144(ivec2) VectorShuffle 200 200 0 1
 | |
|              202:  144(ivec2) IAdd 201 199
 | |
|              203:    7(ivec4) Load 9(iout)
 | |
|              204:    7(ivec4) VectorShuffle 203 202 4 5 2 3
 | |
|                               Store 9(iout) 204
 | |
|              205:   13(ivec4) Load 67(u4)
 | |
|              206:   13(ivec4) BitReverse 205
 | |
|              207:   13(ivec4) Load 15(uout)
 | |
|              208:   13(ivec4) IAdd 207 206
 | |
|                               Store 15(uout) 208
 | |
|              209:      6(int) Load 156(i1)
 | |
|              210:      6(int) BitCount 209
 | |
|              211:    135(ptr) AccessChain 9(iout) 16
 | |
|              212:      6(int) Load 211
 | |
|              213:      6(int) IAdd 212 210
 | |
|              214:    135(ptr) AccessChain 9(iout) 16
 | |
|                               Store 214 213
 | |
|              215:  171(ivec3) Load 173(u3)
 | |
|              216:  102(ivec3) BitCount 215
 | |
|              217:    7(ivec4) Load 9(iout)
 | |
|              218:  102(ivec3) VectorShuffle 217 217 0 1 2
 | |
|              219:  102(ivec3) IAdd 218 216
 | |
|              220:    7(ivec4) Load 9(iout)
 | |
|              221:    7(ivec4) VectorShuffle 220 219 4 5 6 3
 | |
|                               Store 9(iout) 221
 | |
|              222:  144(ivec2) Load 146(i2)
 | |
|              223:  144(ivec2) ExtInst 1(GLSL.std.450) 73(FindILsb) 222
 | |
|              224:    7(ivec4) Load 9(iout)
 | |
|              225:  144(ivec2) VectorShuffle 224 224 0 1
 | |
|              226:  144(ivec2) IAdd 225 223
 | |
|              227:    7(ivec4) Load 9(iout)
 | |
|              228:    7(ivec4) VectorShuffle 227 226 4 5 2 3
 | |
|                               Store 9(iout) 228
 | |
|              229:   13(ivec4) Load 67(u4)
 | |
|              230:    7(ivec4) ExtInst 1(GLSL.std.450) 73(FindILsb) 229
 | |
|              231:    7(ivec4) Load 9(iout)
 | |
|              232:    7(ivec4) IAdd 231 230
 | |
|                               Store 9(iout) 232
 | |
|              233:      6(int) Load 156(i1)
 | |
|              234:      6(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 233
 | |
|              235:    135(ptr) AccessChain 9(iout) 16
 | |
|              236:      6(int) Load 235
 | |
|              237:      6(int) IAdd 236 234
 | |
|              238:    135(ptr) AccessChain 9(iout) 16
 | |
|                               Store 238 237
 | |
|              239:   24(ivec2) Load 26(u2)
 | |
|              240:  144(ivec2) ExtInst 1(GLSL.std.450) 75(FindUMsb) 239
 | |
|              241:    7(ivec4) Load 9(iout)
 | |
|              242:  144(ivec2) VectorShuffle 241 241 0 1
 | |
|              243:  144(ivec2) IAdd 242 240
 | |
|              244:    7(ivec4) Load 9(iout)
 | |
|              245:    7(ivec4) VectorShuffle 244 243 4 5 2 3
 | |
|                               Store 9(iout) 245
 | |
|              248:   19(fvec4) Load 247(v4)
 | |
|              249:     12(int) ExtInst 1(GLSL.std.450) 55(PackUnorm4x8) 248
 | |
|              250:     56(ptr) AccessChain 15(uout) 16
 | |
|              251:     12(int) Load 250
 | |
|              252:     12(int) IAdd 251 249
 | |
|              253:     56(ptr) AccessChain 15(uout) 16
 | |
|                               Store 253 252
 | |
|              254:   19(fvec4) Load 247(v4)
 | |
|              255:     12(int) ExtInst 1(GLSL.std.450) 54(PackSnorm4x8) 254
 | |
|              256:     56(ptr) AccessChain 15(uout) 16
 | |
|              257:     12(int) Load 256
 | |
|              258:     12(int) IAdd 257 255
 | |
|              259:     56(ptr) AccessChain 15(uout) 16
 | |
|                               Store 259 258
 | |
|              260:     12(int) Load 47(u1)
 | |
|              261:   19(fvec4) ExtInst 1(GLSL.std.450) 64(UnpackUnorm4x8) 260
 | |
|              262:   19(fvec4) Load 21(fout)
 | |
|              263:   19(fvec4) FAdd 262 261
 | |
|                               Store 21(fout) 263
 | |
|              264:     12(int) Load 47(u1)
 | |
|              265:   19(fvec4) ExtInst 1(GLSL.std.450) 63(UnpackSnorm4x8) 264
 | |
|              266:   19(fvec4) Load 21(fout)
 | |
|              267:   19(fvec4) FAdd 266 265
 | |
|                               Store 21(fout) 267
 | |
|                               Return
 | |
|                               FunctionEnd
 |