From 3c24a06c8c49f4ee2bafcc4fa2fa9428dc9e2da8 Mon Sep 17 00:00:00 2001 From: John Kessenich <cepheus@frii.com> Date: Fri, 11 Dec 2015 15:08:26 -0700 Subject: [PATCH] SPV tests: Turn on some more tests related to currently pending issues. --- Test/baseResults/spv.Operations.frag.out | 827 +++++++++++++---------- Test/baseResults/spv.matrix.frag.out | 4 - Test/spv.Operations.frag | 57 +- Test/spv.length.frag | 4 - Test/spv.matrix.frag | 37 +- glslang/Include/revision.h | 4 +- 6 files changed, 492 insertions(+), 441 deletions(-) diff --git a/Test/baseResults/spv.Operations.frag.out b/Test/baseResults/spv.Operations.frag.out index 97ffce980..3685b73c2 100755 --- a/Test/baseResults/spv.Operations.frag.out +++ b/Test/baseResults/spv.Operations.frag.out @@ -1,31 +1,36 @@ spv.Operations.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 418 +// Id's are bound by 503 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 479 ExecutionMode 4 OriginLowerLeft - Source GLSL 130 + Source GLSL 450 Name 4 "main" Name 9 "v" Name 11 "uv4" Name 20 "i" Name 22 "ui" - Name 172 "uf" - Name 219 "b" - Name 253 "ub41" - Name 255 "ub42" - Name 318 "f" - Name 397 "gl_FragColor" - Name 415 "uiv4" - Name 417 "ub" + Name 181 "ub41" + Name 188 "f" + Name 211 "uf" + Name 281 "u" + Name 284 "uui" + Name 301 "b" + Name 338 "ub42" + Name 479 "FragColor" + Name 497 "uiv4" + Name 499 "ub" + Name 502 "uuv4" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -37,38 +42,45 @@ Linked fragment stage: 19: TypePointer Function 18(int) 21: TypePointer UniformConstant 18(int) 22(ui): 21(ptr) Variable UniformConstant - 129: TypeInt 32 0 - 130: 129(int) Constant 0 - 131: TypePointer Function 6(float) - 171: TypePointer UniformConstant 6(float) - 172(uf): 171(ptr) Variable UniformConstant - 217: TypeBool - 218: TypePointer Function 217(bool) - 222: TypeVector 217(bool) 4 - 252: TypePointer UniformConstant 222(bvec4) - 253(ub41): 252(ptr) Variable UniformConstant - 255(ub42): 252(ptr) Variable UniformConstant - 309: 18(int) Constant 2 - 316: 18(int) Constant 1 - 347: TypeVector 6(float) 3 - 366: 6(float) Constant 1073741824 - 373: 6(float) Constant 1065353216 - 378: 18(int) Constant 66 - 384: 18(int) Constant 17 - 396: TypePointer Output 7(fvec4) -397(gl_FragColor): 396(ptr) Variable Output - 413: TypeVector 18(int) 4 - 414: TypePointer UniformConstant 413(ivec4) - 415(uiv4): 414(ptr) Variable UniformConstant - 416: TypePointer UniformConstant 217(bool) - 417(ub): 416(ptr) Variable UniformConstant + 141: TypeInt 32 0 + 142: 141(int) Constant 0 + 143: TypePointer Function 6(float) + 178: TypeBool + 179: TypeVector 178(bool) 4 + 180: TypePointer UniformConstant 179(bvec4) + 181(ub41): 180(ptr) Variable UniformConstant + 210: TypePointer UniformConstant 6(float) + 211(uf): 210(ptr) Variable UniformConstant + 280: TypePointer Function 141(int) + 283: TypePointer UniformConstant 141(int) + 284(uui): 283(ptr) Variable UniformConstant + 300: TypePointer Function 178(bool) + 338(ub42): 180(ptr) Variable UniformConstant + 392: 18(int) Constant 2 + 399: 18(int) Constant 1 + 429: TypeVector 6(float) 3 + 448: 6(float) Constant 1073741824 + 455: 6(float) Constant 1065353216 + 460: 18(int) Constant 66 + 466: 18(int) Constant 17 + 478: TypePointer Output 7(fvec4) + 479(FragColor): 478(ptr) Variable Output + 495: TypeVector 18(int) 4 + 496: TypePointer UniformConstant 495(ivec4) + 497(uiv4): 496(ptr) Variable UniformConstant + 498: TypePointer UniformConstant 178(bool) + 499(ub): 498(ptr) Variable UniformConstant + 500: TypeVector 141(int) 4 + 501: TypePointer UniformConstant 500(ivec4) + 502(uuv4): 501(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(v): 8(ptr) Variable Function 20(i): 19(ptr) Variable Function - 219(b): 218(ptr) Variable Function - 318(f): 131(ptr) Variable Function - 398: 8(ptr) Variable Function + 188(f): 143(ptr) Variable Function + 281(u): 280(ptr) Variable Function + 301(b): 300(ptr) Variable Function + 480: 8(ptr) Variable Function 12: 7(fvec4) Load 11(uv4) 13: 7(fvec4) ExtInst 1(GLSL.std.450) 11(Radians) 12 Store 9(v) 13 @@ -193,362 +205,457 @@ Linked fragment stage: 114: 7(fvec4) FAdd 113 112 Store 9(v) 114 115: 7(fvec4) Load 9(v) - 116: 7(fvec4) ExtInst 1(GLSL.std.450) 9(Ceil) 115 + 116: 7(fvec4) ExtInst 1(GLSL.std.450) 3(Trunc) 115 117: 7(fvec4) Load 9(v) 118: 7(fvec4) FAdd 117 116 Store 9(v) 118 119: 7(fvec4) Load 9(v) - 120: 7(fvec4) ExtInst 1(GLSL.std.450) 10(Fract) 119 + 120: 7(fvec4) ExtInst 1(GLSL.std.450) 1(Round) 119 121: 7(fvec4) Load 9(v) 122: 7(fvec4) FAdd 121 120 Store 9(v) 122 123: 7(fvec4) Load 9(v) - 124: 7(fvec4) Load 9(v) - 125: 7(fvec4) FMod 123 124 - 126: 7(fvec4) Load 9(v) - 127: 7(fvec4) FAdd 126 125 - Store 9(v) 127 - 128: 7(fvec4) Load 9(v) - 132: 131(ptr) AccessChain 9(v) 130 - 133: 6(float) Load 132 - 134: 7(fvec4) CompositeConstruct 133 133 133 133 - 135: 7(fvec4) FMod 128 134 + 124: 7(fvec4) ExtInst 1(GLSL.std.450) 2(RoundEven) 123 + 125: 7(fvec4) Load 9(v) + 126: 7(fvec4) FAdd 125 124 + Store 9(v) 126 + 127: 7(fvec4) Load 9(v) + 128: 7(fvec4) ExtInst 1(GLSL.std.450) 9(Ceil) 127 + 129: 7(fvec4) Load 9(v) + 130: 7(fvec4) FAdd 129 128 + Store 9(v) 130 + 131: 7(fvec4) Load 9(v) + 132: 7(fvec4) ExtInst 1(GLSL.std.450) 10(Fract) 131 + 133: 7(fvec4) Load 9(v) + 134: 7(fvec4) FAdd 133 132 + Store 9(v) 134 + 135: 7(fvec4) Load 9(v) 136: 7(fvec4) Load 9(v) - 137: 7(fvec4) FAdd 136 135 - Store 9(v) 137 + 137: 7(fvec4) FMod 135 136 138: 7(fvec4) Load 9(v) - 139: 7(fvec4) Load 11(uv4) - 140: 7(fvec4) ExtInst 1(GLSL.std.450) 37(FMin) 138 139 - 141: 7(fvec4) Load 9(v) - 142: 7(fvec4) FAdd 141 140 - Store 9(v) 142 - 143: 7(fvec4) Load 9(v) - 144: 7(fvec4) Load 11(uv4) - 145: 7(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 143 144 - 146: 7(fvec4) Load 9(v) - 147: 7(fvec4) FAdd 146 145 - Store 9(v) 147 + 139: 7(fvec4) FAdd 138 137 + Store 9(v) 139 + 140: 7(fvec4) Load 9(v) + 144: 143(ptr) AccessChain 9(v) 142 + 145: 6(float) Load 144 + 146: 7(fvec4) CompositeConstruct 145 145 145 145 + 147: 7(fvec4) FMod 140 146 148: 7(fvec4) Load 9(v) - 149: 7(fvec4) Load 11(uv4) - 150: 7(fvec4) Load 11(uv4) - 151: 7(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 148 149 150 + 149: 7(fvec4) FAdd 148 147 + Store 9(v) 149 + 150: 7(fvec4) Load 9(v) + 151: 7(fvec4) ExtInst 1(GLSL.std.450) 35(Modf) 150 9(v) 152: 7(fvec4) Load 9(v) 153: 7(fvec4) FAdd 152 151 Store 9(v) 153 154: 7(fvec4) Load 9(v) - 155: 7(fvec4) Load 9(v) - 156: 7(fvec4) Load 9(v) - 157: 7(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 154 155 156 - 158: 7(fvec4) Load 9(v) - 159: 7(fvec4) FAdd 158 157 - Store 9(v) 159 - 160: 7(fvec4) Load 9(v) - 161: 7(fvec4) Load 9(v) - 162: 7(fvec4) ExtInst 1(GLSL.std.450) 48(Step) 160 161 - 163: 7(fvec4) Load 9(v) - 164: 7(fvec4) FAdd 163 162 - Store 9(v) 164 - 165: 7(fvec4) Load 9(v) - 166: 7(fvec4) Load 9(v) - 167: 7(fvec4) Load 9(v) - 168: 7(fvec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 165 166 167 - 169: 7(fvec4) Load 9(v) - 170: 7(fvec4) FAdd 169 168 - Store 9(v) 170 - 173: 6(float) Load 172(uf) + 155: 7(fvec4) Load 11(uv4) + 156: 7(fvec4) ExtInst 1(GLSL.std.450) 37(FMin) 154 155 + 157: 7(fvec4) Load 9(v) + 158: 7(fvec4) FAdd 157 156 + Store 9(v) 158 + 159: 7(fvec4) Load 9(v) + 160: 7(fvec4) Load 11(uv4) + 161: 7(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 159 160 + 162: 7(fvec4) Load 9(v) + 163: 7(fvec4) FAdd 162 161 + Store 9(v) 163 + 164: 7(fvec4) Load 9(v) + 165: 7(fvec4) Load 11(uv4) + 166: 7(fvec4) Load 11(uv4) + 167: 7(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 164 165 166 + 168: 7(fvec4) Load 9(v) + 169: 7(fvec4) FAdd 168 167 + Store 9(v) 169 + 170: 7(fvec4) Load 9(v) + 171: 7(fvec4) Load 9(v) + 172: 7(fvec4) Load 9(v) + 173: 7(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 170 171 172 174: 7(fvec4) Load 9(v) - 175: 7(fvec4) ExtInst 1(GLSL.std.450) 48(Step) 173 174 + 175: 7(fvec4) FAdd 174 173 + Store 9(v) 175 176: 7(fvec4) Load 9(v) - 177: 7(fvec4) FAdd 176 175 - Store 9(v) 177 - 178: 6(float) Load 172(uf) - 179: 6(float) Load 172(uf) - 180: 7(fvec4) Load 9(v) - 181: 7(fvec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 178 179 180 - 182: 7(fvec4) Load 9(v) - 183: 7(fvec4) FAdd 182 181 - Store 9(v) 183 + 177: 7(fvec4) Load 9(v) + 182: 179(bvec4) Load 181(ub41) + 183: 7(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 176 177 182 184: 7(fvec4) Load 9(v) - 185: 7(fvec4) ExtInst 1(GLSL.std.450) 69(Normalize) 184 + 185: 7(fvec4) FAdd 184 183 + Store 9(v) 185 186: 7(fvec4) Load 9(v) - 187: 7(fvec4) FAdd 186 185 - Store 9(v) 187 - 188: 7(fvec4) Load 9(v) - 189: 7(fvec4) Load 9(v) - 190: 7(fvec4) Load 9(v) - 191: 7(fvec4) ExtInst 1(GLSL.std.450) 70(FaceForward) 188 189 190 - 192: 7(fvec4) Load 9(v) - 193: 7(fvec4) FAdd 192 191 - Store 9(v) 193 - 194: 7(fvec4) Load 9(v) + 187: 7(fvec4) Load 9(v) + 189: 6(float) Load 188(f) + 190: 7(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 186 187 189 + 191: 7(fvec4) Load 9(v) + 192: 7(fvec4) FAdd 191 190 + Store 9(v) 192 + 193: 7(fvec4) Load 9(v) + 194: 7(fvec4) Load 11(uv4) 195: 7(fvec4) Load 9(v) - 196: 7(fvec4) ExtInst 1(GLSL.std.450) 71(Reflect) 194 195 + 196: 7(fvec4) ExtInst 1(GLSL.std.450) 50(Fma) 193 194 195 197: 7(fvec4) Load 9(v) 198: 7(fvec4) FAdd 197 196 Store 9(v) 198 199: 7(fvec4) Load 9(v) 200: 7(fvec4) Load 9(v) - 201: 6(float) Load 172(uf) - 202: 7(fvec4) ExtInst 1(GLSL.std.450) 72(Refract) 199 200 201 - 203: 7(fvec4) Load 9(v) - 204: 7(fvec4) FAdd 203 202 - Store 9(v) 204 + 201: 7(fvec4) ExtInst 1(GLSL.std.450) 48(Step) 199 200 + 202: 7(fvec4) Load 9(v) + 203: 7(fvec4) FAdd 202 201 + Store 9(v) 203 + 204: 7(fvec4) Load 9(v) 205: 7(fvec4) Load 9(v) - 206: 7(fvec4) DPdx 205 - 207: 7(fvec4) Load 9(v) - 208: 7(fvec4) FAdd 207 206 - Store 9(v) 208 - 209: 7(fvec4) Load 9(v) - 210: 7(fvec4) DPdy 209 - 211: 7(fvec4) Load 9(v) - 212: 7(fvec4) FAdd 211 210 - Store 9(v) 212 + 206: 7(fvec4) Load 9(v) + 207: 7(fvec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 204 205 206 + 208: 7(fvec4) Load 9(v) + 209: 7(fvec4) FAdd 208 207 + Store 9(v) 209 + 212: 6(float) Load 211(uf) 213: 7(fvec4) Load 9(v) - 214: 7(fvec4) Fwidth 213 + 214: 7(fvec4) ExtInst 1(GLSL.std.450) 48(Step) 212 213 215: 7(fvec4) Load 9(v) 216: 7(fvec4) FAdd 215 214 Store 9(v) 216 - 220: 7(fvec4) Load 9(v) - 221: 7(fvec4) Load 11(uv4) - 223: 222(bvec4) FOrdLessThan 220 221 - 224: 217(bool) Any 223 - Store 219(b) 224 - 225: 217(bool) Load 219(b) - SelectionMerge 227 None - BranchConditional 225 226 227 - 226: Label - 228: 7(fvec4) Load 9(v) - 229: 7(fvec4) Load 11(uv4) - 230: 222(bvec4) FOrdLessThanEqual 228 229 - 231: 217(bool) Any 230 - Branch 227 - 227: Label - 232: 217(bool) Phi 225 5 231 226 - Store 219(b) 232 - 233: 217(bool) Load 219(b) - SelectionMerge 235 None - BranchConditional 233 234 235 - 234: Label - 236: 7(fvec4) Load 9(v) - 237: 7(fvec4) Load 11(uv4) - 238: 222(bvec4) FOrdGreaterThan 236 237 - 239: 217(bool) Any 238 - Branch 235 - 235: Label - 240: 217(bool) Phi 233 227 239 234 - Store 219(b) 240 - 241: 217(bool) Load 219(b) - SelectionMerge 243 None - BranchConditional 241 242 243 - 242: Label - 244: 7(fvec4) Load 9(v) - 245: 7(fvec4) Load 11(uv4) - 246: 222(bvec4) FOrdGreaterThanEqual 244 245 - 247: 217(bool) Any 246 - Branch 243 - 243: Label - 248: 217(bool) Phi 241 235 247 242 - Store 219(b) 248 - 249: 217(bool) Load 219(b) - SelectionMerge 251 None - BranchConditional 249 250 251 - 250: Label - 254: 222(bvec4) Load 253(ub41) - 256: 222(bvec4) Load 255(ub42) - 257: 222(bvec4) IEqual 254 256 - 258: 217(bool) Any 257 - Branch 251 - 251: Label - 259: 217(bool) Phi 249 243 258 250 - Store 219(b) 259 - 260: 217(bool) Load 219(b) - SelectionMerge 262 None - BranchConditional 260 261 262 - 261: Label - 263: 222(bvec4) Load 253(ub41) - 264: 222(bvec4) Load 255(ub42) - 265: 222(bvec4) INotEqual 263 264 - 266: 217(bool) Any 265 - Branch 262 - 262: Label - 267: 217(bool) Phi 260 251 266 261 - Store 219(b) 267 - 268: 217(bool) Load 219(b) - 269: 222(bvec4) Load 253(ub41) - 270: 217(bool) Any 269 - 271: 217(bool) LogicalAnd 268 270 - Store 219(b) 271 - 272: 217(bool) Load 219(b) - 273: 222(bvec4) Load 253(ub41) - 274: 217(bool) All 273 - 275: 217(bool) LogicalAnd 272 274 - Store 219(b) 275 - 276: 217(bool) Load 219(b) - SelectionMerge 278 None - BranchConditional 276 277 278 - 277: Label - 279: 222(bvec4) Load 253(ub41) - 280: 222(bvec4) LogicalNot 279 - 281: 217(bool) Any 280 - Branch 278 - 278: Label - 282: 217(bool) Phi 276 262 281 277 - Store 219(b) 282 - 283: 18(int) Load 20(i) - 284: 18(int) Load 22(ui) - 285: 18(int) IAdd 283 284 - 286: 18(int) Load 20(i) - 287: 18(int) IMul 285 286 - 288: 18(int) Load 22(ui) - 289: 18(int) ISub 287 288 - 290: 18(int) Load 20(i) - 291: 18(int) SDiv 289 290 - Store 20(i) 291 - 292: 18(int) Load 20(i) - 293: 18(int) Load 22(ui) - 294: 18(int) SMod 292 293 - Store 20(i) 294 - 295: 18(int) Load 20(i) - 296: 18(int) Load 22(ui) - 297: 217(bool) IEqual 295 296 - 298: 217(bool) LogicalNot 297 - SelectionMerge 300 None - BranchConditional 298 299 300 - 299: Label - 301: 18(int) Load 20(i) - 302: 18(int) Load 22(ui) - 303: 217(bool) INotEqual 301 302 - 304: 18(int) Load 20(i) - 305: 18(int) Load 22(ui) - 306: 217(bool) IEqual 304 305 - 307: 217(bool) LogicalAnd 303 306 - 308: 18(int) Load 20(i) - 310: 217(bool) INotEqual 308 309 - 311: 217(bool) LogicalNotEqual 307 310 - Branch 300 - 300: Label - 312: 217(bool) Phi 297 278 311 299 - SelectionMerge 314 None - BranchConditional 312 313 314 - 313: Label - 315: 18(int) Load 20(i) - 317: 18(int) IAdd 315 316 - Store 20(i) 317 - Branch 314 - 314: Label - 319: 6(float) Load 172(uf) - 320: 6(float) Load 172(uf) - 321: 6(float) FAdd 319 320 - 322: 6(float) Load 172(uf) - 323: 6(float) FMul 321 322 - 324: 6(float) Load 172(uf) - 325: 6(float) FSub 323 324 - 326: 6(float) Load 172(uf) - 327: 6(float) FDiv 325 326 - Store 318(f) 327 - 328: 7(fvec4) Load 9(v) - 329: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 328 - 330: 6(float) Load 318(f) - 331: 6(float) FAdd 330 329 - Store 318(f) 331 - 332: 7(fvec4) Load 9(v) - 333: 7(fvec4) Load 9(v) - 334: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 332 333 - 335: 6(float) Load 318(f) - 336: 6(float) FAdd 335 334 - Store 318(f) 336 - 337: 7(fvec4) Load 9(v) - 338: 7(fvec4) Load 9(v) - 339: 6(float) Dot 337 338 - 340: 6(float) Load 318(f) - 341: 6(float) FAdd 340 339 - Store 318(f) 341 - 342: 6(float) Load 318(f) - 343: 6(float) Load 172(uf) - 344: 6(float) FMul 342 343 - 345: 6(float) Load 318(f) - 346: 6(float) FAdd 345 344 - Store 318(f) 346 - 348: 7(fvec4) Load 9(v) - 349: 347(fvec3) VectorShuffle 348 348 0 1 2 - 350: 7(fvec4) Load 9(v) - 351: 347(fvec3) VectorShuffle 350 350 0 1 2 - 352: 347(fvec3) ExtInst 1(GLSL.std.450) 68(Cross) 349 351 - 353: 6(float) CompositeExtract 352 0 - 354: 6(float) Load 318(f) - 355: 6(float) FAdd 354 353 - Store 318(f) 355 - 356: 6(float) Load 318(f) - 357: 6(float) Load 172(uf) - 358: 217(bool) FOrdEqual 356 357 - 359: 217(bool) LogicalNot 358 + 217: 6(float) Load 211(uf) + 218: 6(float) Load 211(uf) + 219: 7(fvec4) Load 9(v) + 220: 7(fvec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 217 218 219 + 221: 7(fvec4) Load 9(v) + 222: 7(fvec4) FAdd 221 220 + Store 9(v) 222 + 223: 7(fvec4) Load 9(v) + 224: 7(fvec4) ExtInst 1(GLSL.std.450) 69(Normalize) 223 + 225: 7(fvec4) Load 9(v) + 226: 7(fvec4) FAdd 225 224 + Store 9(v) 226 + 227: 7(fvec4) Load 9(v) + 228: 7(fvec4) Load 9(v) + 229: 7(fvec4) Load 9(v) + 230: 7(fvec4) ExtInst 1(GLSL.std.450) 70(FaceForward) 227 228 229 + 231: 7(fvec4) Load 9(v) + 232: 7(fvec4) FAdd 231 230 + Store 9(v) 232 + 233: 7(fvec4) Load 9(v) + 234: 7(fvec4) Load 9(v) + 235: 7(fvec4) ExtInst 1(GLSL.std.450) 71(Reflect) 233 234 + 236: 7(fvec4) Load 9(v) + 237: 7(fvec4) FAdd 236 235 + Store 9(v) 237 + 238: 7(fvec4) Load 9(v) + 239: 7(fvec4) Load 9(v) + 240: 6(float) Load 211(uf) + 241: 7(fvec4) ExtInst 1(GLSL.std.450) 72(Refract) 238 239 240 + 242: 7(fvec4) Load 9(v) + 243: 7(fvec4) FAdd 242 241 + Store 9(v) 243 + 244: 7(fvec4) Load 9(v) + 245: 7(fvec4) DPdx 244 + 246: 7(fvec4) Load 9(v) + 247: 7(fvec4) FAdd 246 245 + Store 9(v) 247 + 248: 7(fvec4) Load 9(v) + 249: 7(fvec4) DPdy 248 + 250: 7(fvec4) Load 9(v) + 251: 7(fvec4) FAdd 250 249 + Store 9(v) 251 + 252: 7(fvec4) Load 9(v) + 253: 7(fvec4) Fwidth 252 + 254: 7(fvec4) Load 9(v) + 255: 7(fvec4) FAdd 254 253 + Store 9(v) 255 + 256: 18(int) Load 22(ui) + 257: 18(int) ExtInst 1(GLSL.std.450) 5(SAbs) 256 + 258: 18(int) Load 20(i) + 259: 18(int) IAdd 258 257 + Store 20(i) 259 + 260: 18(int) Load 20(i) + 261: 18(int) ExtInst 1(GLSL.std.450) 7(SSign) 260 + 262: 18(int) Load 20(i) + 263: 18(int) IAdd 262 261 + Store 20(i) 263 + 264: 18(int) Load 20(i) + 265: 18(int) Load 22(ui) + 266: 18(int) ExtInst 1(GLSL.std.450) 39(SMin) 264 265 + 267: 18(int) Load 20(i) + 268: 18(int) IAdd 267 266 + Store 20(i) 268 + 269: 18(int) Load 20(i) + 270: 18(int) Load 22(ui) + 271: 18(int) ExtInst 1(GLSL.std.450) 42(SMax) 269 270 + 272: 18(int) Load 20(i) + 273: 18(int) IAdd 272 271 + Store 20(i) 273 + 274: 18(int) Load 20(i) + 275: 18(int) Load 22(ui) + 276: 18(int) Load 22(ui) + 277: 18(int) ExtInst 1(GLSL.std.450) 45(SClamp) 274 275 276 + 278: 18(int) Load 20(i) + 279: 18(int) IAdd 278 277 + Store 20(i) 279 + 282: 141(int) Load 281(u) + 285: 141(int) Load 284(uui) + 286: 141(int) ExtInst 1(GLSL.std.450) 38(UMin) 282 285 + 287: 141(int) Load 281(u) + 288: 141(int) IAdd 287 286 + Store 281(u) 288 + 289: 141(int) Load 281(u) + 290: 141(int) Load 284(uui) + 291: 141(int) ExtInst 1(GLSL.std.450) 41(UMax) 289 290 + 292: 141(int) Load 281(u) + 293: 141(int) IAdd 292 291 + Store 281(u) 293 + 294: 141(int) Load 281(u) + 295: 141(int) Load 284(uui) + 296: 141(int) Load 284(uui) + 297: 141(int) ExtInst 1(GLSL.std.450) 44(UClamp) 294 295 296 + 298: 141(int) Load 281(u) + 299: 141(int) IAdd 298 297 + Store 281(u) 299 + 302: 6(float) Load 211(uf) + 303: 178(bool) IsNan 302 + Store 301(b) 303 + 304: 6(float) Load 188(f) + 305: 178(bool) IsInf 304 + Store 301(b) 305 + 306: 7(fvec4) Load 9(v) + 307: 7(fvec4) Load 11(uv4) + 308: 179(bvec4) FOrdLessThan 306 307 + 309: 178(bool) Any 308 + Store 301(b) 309 + 310: 178(bool) Load 301(b) + SelectionMerge 312 None + BranchConditional 310 311 312 + 311: Label + 313: 7(fvec4) Load 9(v) + 314: 7(fvec4) Load 11(uv4) + 315: 179(bvec4) FOrdLessThanEqual 313 314 + 316: 178(bool) Any 315 + Branch 312 + 312: Label + 317: 178(bool) Phi 310 5 316 311 + Store 301(b) 317 + 318: 178(bool) Load 301(b) + SelectionMerge 320 None + BranchConditional 318 319 320 + 319: Label + 321: 7(fvec4) Load 9(v) + 322: 7(fvec4) Load 11(uv4) + 323: 179(bvec4) FOrdGreaterThan 321 322 + 324: 178(bool) Any 323 + Branch 320 + 320: Label + 325: 178(bool) Phi 318 312 324 319 + Store 301(b) 325 + 326: 178(bool) Load 301(b) + SelectionMerge 328 None + BranchConditional 326 327 328 + 327: Label + 329: 7(fvec4) Load 9(v) + 330: 7(fvec4) Load 11(uv4) + 331: 179(bvec4) FOrdGreaterThanEqual 329 330 + 332: 178(bool) Any 331 + Branch 328 + 328: Label + 333: 178(bool) Phi 326 320 332 327 + Store 301(b) 333 + 334: 178(bool) Load 301(b) + SelectionMerge 336 None + BranchConditional 334 335 336 + 335: Label + 337: 179(bvec4) Load 181(ub41) + 339: 179(bvec4) Load 338(ub42) + 340: 179(bvec4) IEqual 337 339 + 341: 178(bool) Any 340 + Branch 336 + 336: Label + 342: 178(bool) Phi 334 328 341 335 + Store 301(b) 342 + 343: 178(bool) Load 301(b) + SelectionMerge 345 None + BranchConditional 343 344 345 + 344: Label + 346: 179(bvec4) Load 181(ub41) + 347: 179(bvec4) Load 338(ub42) + 348: 179(bvec4) INotEqual 346 347 + 349: 178(bool) Any 348 + Branch 345 + 345: Label + 350: 178(bool) Phi 343 336 349 344 + Store 301(b) 350 + 351: 178(bool) Load 301(b) + 352: 179(bvec4) Load 181(ub41) + 353: 178(bool) Any 352 + 354: 178(bool) LogicalAnd 351 353 + Store 301(b) 354 + 355: 178(bool) Load 301(b) + 356: 179(bvec4) Load 181(ub41) + 357: 178(bool) All 356 + 358: 178(bool) LogicalAnd 355 357 + Store 301(b) 358 + 359: 178(bool) Load 301(b) SelectionMerge 361 None BranchConditional 359 360 361 360: Label - 362: 6(float) Load 318(f) - 363: 6(float) Load 172(uf) - 364: 217(bool) FOrdNotEqual 362 363 - 365: 6(float) Load 318(f) - 367: 217(bool) FOrdNotEqual 365 366 - 368: 217(bool) LogicalAnd 364 367 + 362: 179(bvec4) Load 181(ub41) + 363: 179(bvec4) LogicalNot 362 + 364: 178(bool) Any 363 Branch 361 361: Label - 369: 217(bool) Phi 358 314 368 360 - SelectionMerge 371 None - BranchConditional 369 370 371 - 370: Label - 372: 6(float) Load 318(f) - 374: 6(float) FAdd 372 373 - Store 318(f) 374 - Branch 371 - 371: Label - 375: 18(int) Load 22(ui) - 376: 18(int) Load 20(i) - 377: 18(int) BitwiseAnd 376 375 + 365: 178(bool) Phi 359 345 364 360 + Store 301(b) 365 + 366: 18(int) Load 20(i) + 367: 18(int) Load 22(ui) + 368: 18(int) IAdd 366 367 + 369: 18(int) Load 20(i) + 370: 18(int) IMul 368 369 + 371: 18(int) Load 22(ui) + 372: 18(int) ISub 370 371 + 373: 18(int) Load 20(i) + 374: 18(int) SDiv 372 373 + Store 20(i) 374 + 375: 18(int) Load 20(i) + 376: 18(int) Load 22(ui) + 377: 18(int) SMod 375 376 Store 20(i) 377 - 379: 18(int) Load 20(i) - 380: 18(int) BitwiseOr 379 378 - Store 20(i) 380 - 381: 18(int) Load 22(ui) - 382: 18(int) Load 20(i) - 383: 18(int) BitwiseXor 382 381 - Store 20(i) 383 - 385: 18(int) Load 20(i) - 386: 18(int) SMod 385 384 - Store 20(i) 386 - 387: 18(int) Load 20(i) - 388: 18(int) ShiftRightArithmetic 387 309 - Store 20(i) 388 - 389: 18(int) Load 22(ui) - 390: 18(int) Load 20(i) - 391: 18(int) ShiftLeftLogical 390 389 - Store 20(i) 391 - 392: 18(int) Load 20(i) - 393: 18(int) Not 392 - Store 20(i) 393 - 394: 217(bool) Load 219(b) - 395: 217(bool) LogicalNot 394 - Store 219(b) 395 - 399: 217(bool) Load 219(b) - SelectionMerge 401 None - BranchConditional 399 400 410 - 400: Label - 402: 18(int) Load 20(i) - 403: 6(float) ConvertSToF 402 - 404: 7(fvec4) CompositeConstruct 403 403 403 403 - 405: 6(float) Load 318(f) - 406: 7(fvec4) CompositeConstruct 405 405 405 405 - 407: 7(fvec4) FAdd 404 406 - 408: 7(fvec4) Load 9(v) - 409: 7(fvec4) FAdd 407 408 - Store 398 409 - Branch 401 - 410: Label - 411: 7(fvec4) Load 9(v) - Store 398 411 - Branch 401 - 401: Label - 412: 7(fvec4) Load 398 - Store 397(gl_FragColor) 412 + 378: 18(int) Load 20(i) + 379: 18(int) Load 22(ui) + 380: 178(bool) IEqual 378 379 + 381: 178(bool) LogicalNot 380 + SelectionMerge 383 None + BranchConditional 381 382 383 + 382: Label + 384: 18(int) Load 20(i) + 385: 18(int) Load 22(ui) + 386: 178(bool) INotEqual 384 385 + 387: 18(int) Load 20(i) + 388: 18(int) Load 22(ui) + 389: 178(bool) IEqual 387 388 + 390: 178(bool) LogicalAnd 386 389 + 391: 18(int) Load 20(i) + 393: 178(bool) INotEqual 391 392 + 394: 178(bool) LogicalNotEqual 390 393 + Branch 383 + 383: Label + 395: 178(bool) Phi 380 361 394 382 + SelectionMerge 397 None + BranchConditional 395 396 397 + 396: Label + 398: 18(int) Load 20(i) + 400: 18(int) IAdd 398 399 + Store 20(i) 400 + Branch 397 + 397: Label + 401: 6(float) Load 211(uf) + 402: 6(float) Load 211(uf) + 403: 6(float) FAdd 401 402 + 404: 6(float) Load 211(uf) + 405: 6(float) FMul 403 404 + 406: 6(float) Load 211(uf) + 407: 6(float) FSub 405 406 + 408: 6(float) Load 211(uf) + 409: 6(float) FDiv 407 408 + Store 188(f) 409 + 410: 7(fvec4) Load 9(v) + 411: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 410 + 412: 6(float) Load 188(f) + 413: 6(float) FAdd 412 411 + Store 188(f) 413 + 414: 7(fvec4) Load 9(v) + 415: 7(fvec4) Load 9(v) + 416: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 414 415 + 417: 6(float) Load 188(f) + 418: 6(float) FAdd 417 416 + Store 188(f) 418 + 419: 7(fvec4) Load 9(v) + 420: 7(fvec4) Load 9(v) + 421: 6(float) Dot 419 420 + 422: 6(float) Load 188(f) + 423: 6(float) FAdd 422 421 + Store 188(f) 423 + 424: 6(float) Load 188(f) + 425: 6(float) Load 211(uf) + 426: 6(float) FMul 424 425 + 427: 6(float) Load 188(f) + 428: 6(float) FAdd 427 426 + Store 188(f) 428 + 430: 7(fvec4) Load 9(v) + 431: 429(fvec3) VectorShuffle 430 430 0 1 2 + 432: 7(fvec4) Load 9(v) + 433: 429(fvec3) VectorShuffle 432 432 0 1 2 + 434: 429(fvec3) ExtInst 1(GLSL.std.450) 68(Cross) 431 433 + 435: 6(float) CompositeExtract 434 0 + 436: 6(float) Load 188(f) + 437: 6(float) FAdd 436 435 + Store 188(f) 437 + 438: 6(float) Load 188(f) + 439: 6(float) Load 211(uf) + 440: 178(bool) FOrdEqual 438 439 + 441: 178(bool) LogicalNot 440 + SelectionMerge 443 None + BranchConditional 441 442 443 + 442: Label + 444: 6(float) Load 188(f) + 445: 6(float) Load 211(uf) + 446: 178(bool) FOrdNotEqual 444 445 + 447: 6(float) Load 188(f) + 449: 178(bool) FOrdNotEqual 447 448 + 450: 178(bool) LogicalAnd 446 449 + Branch 443 + 443: Label + 451: 178(bool) Phi 440 397 450 442 + SelectionMerge 453 None + BranchConditional 451 452 453 + 452: Label + 454: 6(float) Load 188(f) + 456: 6(float) FAdd 454 455 + Store 188(f) 456 + Branch 453 + 453: Label + 457: 18(int) Load 22(ui) + 458: 18(int) Load 20(i) + 459: 18(int) BitwiseAnd 458 457 + Store 20(i) 459 + 461: 18(int) Load 20(i) + 462: 18(int) BitwiseOr 461 460 + Store 20(i) 462 + 463: 18(int) Load 22(ui) + 464: 18(int) Load 20(i) + 465: 18(int) BitwiseXor 464 463 + Store 20(i) 465 + 467: 18(int) Load 20(i) + 468: 18(int) SMod 467 466 + Store 20(i) 468 + 469: 18(int) Load 20(i) + 470: 18(int) ShiftRightArithmetic 469 392 + Store 20(i) 470 + 471: 18(int) Load 22(ui) + 472: 18(int) Load 20(i) + 473: 18(int) ShiftLeftLogical 472 471 + Store 20(i) 473 + 474: 18(int) Load 20(i) + 475: 18(int) Not 474 + Store 20(i) 475 + 476: 178(bool) Load 301(b) + 477: 178(bool) LogicalNot 476 + Store 301(b) 477 + 481: 178(bool) Load 301(b) + SelectionMerge 483 None + BranchConditional 481 482 492 + 482: Label + 484: 18(int) Load 20(i) + 485: 6(float) ConvertSToF 484 + 486: 7(fvec4) CompositeConstruct 485 485 485 485 + 487: 6(float) Load 188(f) + 488: 7(fvec4) CompositeConstruct 487 487 487 487 + 489: 7(fvec4) FAdd 486 488 + 490: 7(fvec4) Load 9(v) + 491: 7(fvec4) FAdd 489 490 + Store 480 491 + Branch 483 + 492: Label + 493: 7(fvec4) Load 9(v) + Store 480 493 + Branch 483 + 483: Label + 494: 7(fvec4) Load 480 + Store 479(FragColor) 494 Return FunctionEnd diff --git a/Test/baseResults/spv.matrix.frag.out b/Test/baseResults/spv.matrix.frag.out index f879f9726..e9496067c 100644 --- a/Test/baseResults/spv.matrix.frag.out +++ b/Test/baseResults/spv.matrix.frag.out @@ -1,8 +1,4 @@ spv.matrix.frag -WARNING: 0:6: varying deprecated in version 130; may be removed in future release -WARNING: 0:17: varying deprecated in version 130; may be removed in future release -WARNING: 0:22: varying deprecated in version 130; may be removed in future release - Linked fragment stage: diff --git a/Test/spv.Operations.frag b/Test/spv.Operations.frag index 820048f22..de0fa2d6d 100644 --- a/Test/spv.Operations.frag +++ b/Test/spv.Operations.frag @@ -1,4 +1,4 @@ -#version 130 +#version 450 uniform ivec4 uiv4; uniform vec4 uv4; @@ -7,10 +7,10 @@ uniform bvec4 ub41, ub42; uniform float uf; uniform int ui; -#ifdef TEST_POST_110 uniform uvec4 uuv4; -uniform unsigned int uui; -#endif +uniform uint uui; + +out vec4 FragColor; void main() { @@ -19,9 +19,7 @@ void main() bool b; bvec4 bv4; int i; -#ifdef TEST_POST_110 uint u; -#endif // floating point v = radians(uv4); @@ -51,37 +49,29 @@ void main() v += sign(v); v += floor(v); -#ifdef TEST_POST_110 v += trunc(v); v += round(v); v += roundEven(v); -#endif v += ceil(v); v += fract(v); v += mod(v, v); v += mod(v, v.x); -#ifdef TEST_POST_110 v += modf(v, v); -#endif v += min(v, uv4); v += max(v, uv4); v += clamp(v, uv4, uv4); v += mix(v,v,v); -#ifdef TEST_POST_110 - v += mix(v,v,ub); - v += intBitsToFloat(v); - v += uintBitsToFloat(v); - v += fma(v); - v += frexp(v); - v += ldexp(v); - v += unpackUnorm2x16(v); - v += unpackUnorm4x8(v); - v += unpackSnorm4x8(v); -#endif + v += mix(v,v,ub41); + v += mix(v,v,f); +//spv v += intBitsToFloat(ui); +// v += uintBitsToFloat(uui); +// i += floatBitsToInt(f); +// u += floatBitsToUint(f); + v += fma(v, uv4, v); v += step(v,v); v += smoothstep(v,v,v); @@ -94,9 +84,7 @@ void main() v += dFdx(v); v += dFdy(v); v += fwidth(v); - //noise*(v); -#ifdef TEST_POST_110 // signed integer i += abs(ui); i += sign(i); @@ -104,29 +92,14 @@ void main() i += max(i, ui); i += clamp(i, ui, ui); - floatsBitsToInt(v); - packUnorm2x16(v); - packUnorm4x8(v); - packSnorm4x8(v); - // unsigned integer - u = abs(uui); - u += sign(u); u += min(u, uui); u += max(u, uui); u += clamp(u, uui, uui); - u += floatsBitToInt(v); - u += packUnorm2x16(v); - u += packUnorm4x8(v); - u += packSnorm4x8(v); - u += floatBitsToUInt(v); -#endif - - // bool -#ifdef TEST_POST_110 + + //// bool b = isnan(uf); - b = isinf(v); -#endif + b = isinf(f); b = any(lessThan(v, uv4)); b = (b && any(lessThanEqual(v, uv4))); b = (b && any(greaterThan(v, uv4))); @@ -162,5 +135,5 @@ void main() i = ~i; b = !b; - gl_FragColor = b ? vec4(i) + vec4(f) + v : v; + FragColor = b ? vec4(i) + vec4(f) + v : v; } diff --git a/Test/spv.length.frag b/Test/spv.length.frag index 74c286f33..956d3be88 100644 --- a/Test/spv.length.frag +++ b/Test/spv.length.frag @@ -2,11 +2,7 @@ uniform vec4 u[3]; -#ifdef TEST_POST_110 -varying vec2 v[]; -#else varying vec2 v[2]; -#endif void main() { diff --git a/Test/spv.matrix.frag b/Test/spv.matrix.frag index 150e0434f..381d38343 100644 --- a/Test/spv.matrix.frag +++ b/Test/spv.matrix.frag @@ -1,26 +1,15 @@ #version 130 -//#define TEST_POST_110 - uniform mat3 colorTransform; -varying vec3 Color; +in vec3 Color; uniform mat4 m, n; -#ifdef TEST_POST_110 uniform mat4x3 um43; uniform mat3x4 un34; -#else -uniform mat4 um43; -uniform mat4 un34; -#endif -varying vec4 v; +in vec4 v; -#ifdef TEST_POST_110 -varying vec3 u; -#else -varying vec4 u; -#endif +in vec3 u; void main() { @@ -29,24 +18,14 @@ void main() if (m != n) gl_FragColor += v; - else { + else { gl_FragColor += m * v; gl_FragColor += v * (m - n); - } - -#ifdef TEST_POST_110 + } + mat3x4 m34 = outerProduct(v, u); - m34 += mat4(v.x); - m34 += mat4(u, u.x, u, u.x, u, u.x, u.x); -#else - mat4 m34 = mat4(v.x*u.x, v.x*u.y, v.x*u.z, v.x*u.w, - v.y*u.x, v.y*u.y, v.y*u.z, v.y*u.w, - v.z*u.x, v.z*u.y, v.z*u.z, v.z*u.w, - v.w*u.x, v.w*u.y, v.w*u.z, v.w*u.w); - m34 += mat4(v.x); - m34 += mat4(u, u.x, u, u.x, u, u.x, u.x); - -#endif + m34 += mat3x4(v.x); + m34 += mat3x4(u, u.x, u, u.x, u, u.x); if (m34 == un34) gl_FragColor += m34 * u; diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index dd8f2d1a4..eee5008f1 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "SPIRV99.836" -#define GLSLANG_DATE "09-Dec-2015" +#define GLSLANG_REVISION "SPIRV99.839" +#define GLSLANG_DATE "11-Dec-2015" -- GitLab