Bug 229956

Summary: webgl/1.0.x/conformance/glsl/bugs/compound-assignment-type-combination.html fails on macOS Catalina OpenGL
Product: WebKit Reporter: Kimmo Kinnunen <kkinnunen>
Component: WebGLAssignee: Nobody <webkit-unassigned>
Status: NEW ---    
Severity: Normal CC: dino, kbr, kkinnunen, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Local Build   
Hardware: Mac (Intel)   
OS: macOS 10.15   
Bug Depends on:    
Bug Blocks: 222812    

Description Kimmo Kinnunen 2021-09-06 04:31:07 PDT
This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.

Test: ../../../../resources/webgl_test_files/conformance/glsl/bugs/compound-assignment-type-combination.html

[ 1: PASS ] float += vec2 in a vertex shader should fail.
[ 2: PASS ] float += vec2 in a fragment shader should fail.
[ 3: PASS ] vec2 += float in a vertex shader should succeed.
[ 4: PASS ] vec2 += float in a fragment shader should succeed.
[ 5: PASS ] vec2 += vec2 in a vertex shader should succeed.
[ 6: PASS ] vec2 += vec2 in a fragment shader should succeed.
[ 7: PASS ] float += vec3 in a vertex shader should fail.
[ 8: PASS ] float += vec3 in a fragment shader should fail.
[ 9: PASS ] vec3 += vec2 in a vertex shader should fail.
[ 10: PASS ] vec3 += vec2 in a fragment shader should fail.
[ 11: PASS ] vec3 += float in a vertex shader should succeed.
[ 12: PASS ] vec3 += float in a fragment shader should succeed.
[ 13: PASS ] vec3 += vec3 in a vertex shader should succeed.
[ 14: PASS ] vec3 += vec3 in a fragment shader should succeed.
[ 15: PASS ] float += vec4 in a vertex shader should fail.
[ 16: PASS ] float += vec4 in a fragment shader should fail.
[ 17: PASS ] vec4 += vec3 in a vertex shader should fail.
[ 18: PASS ] vec4 += vec3 in a fragment shader should fail.
[ 19: PASS ] vec4 += float in a vertex shader should succeed.
[ 20: PASS ] vec4 += float in a fragment shader should succeed.
[ 21: PASS ] vec4 += vec4 in a vertex shader should succeed.
[ 22: PASS ] vec4 += vec4 in a fragment shader should succeed.
[ 23: PASS ] float += mat2 in a vertex shader should fail.
[ 24: PASS ] float += mat2 in a fragment shader should fail.
[ 25: PASS ] mat2 += vec4 in a vertex shader should fail.
[ 26: PASS ] mat2 += vec4 in a fragment shader should fail.
[ 27: PASS ] mat2 += float in a vertex shader should succeed.
[ 28: PASS ] mat2 += float in a fragment shader should succeed.
[ 29: PASS ] mat2 += mat2 in a vertex shader should succeed.
[ 30: PASS ] mat2 += mat2 in a fragment shader should succeed.
[ 31: PASS ] float += mat3 in a vertex shader should fail.
[ 32: PASS ] float += mat3 in a fragment shader should fail.
[ 33: PASS ] mat3 += mat2 in a vertex shader should fail.
[ 34: PASS ] mat3 += mat2 in a fragment shader should fail.
[ 35: PASS ] mat3 += float in a vertex shader should succeed.
[ 36: PASS ] mat3 += float in a fragment shader should succeed.
[ 37: PASS ] mat3 += mat3 in a vertex shader should succeed.
[ 38: PASS ] mat3 += mat3 in a fragment shader should succeed.
[ 39: PASS ] float += mat4 in a vertex shader should fail.
[ 40: PASS ] float += mat4 in a fragment shader should fail.
[ 41: PASS ] mat4 += mat3 in a vertex shader should fail.
[ 42: PASS ] mat4 += mat3 in a fragment shader should fail.
[ 43: PASS ] mat4 += float in a vertex shader should succeed.
[ 44: PASS ] mat4 += float in a fragment shader should succeed.
[ 45: PASS ] mat4 += mat4 in a vertex shader should succeed.
[ 46: PASS ] mat4 += mat4 in a fragment shader should succeed.
[ 47: PASS ] int += ivec2 in a vertex shader should fail.
[ 48: PASS ] int += ivec2 in a fragment shader should fail.
[ 49: PASS ] ivec2 += int in a vertex shader should succeed.
[ 50: PASS ] ivec2 += int in a fragment shader should succeed.
[ 51: PASS ] ivec2 += ivec2 in a vertex shader should succeed.
[ 52: PASS ] ivec2 += ivec2 in a fragment shader should succeed.
[ 53: PASS ] int += ivec3 in a vertex shader should fail.
[ 54: PASS ] int += ivec3 in a fragment shader should fail.
[ 55: PASS ] ivec3 += ivec2 in a vertex shader should fail.
[ 56: PASS ] ivec3 += ivec2 in a fragment shader should fail.
[ 57: PASS ] ivec3 += int in a vertex shader should succeed.
[ 58: PASS ] ivec3 += int in a fragment shader should succeed.
[ 59: PASS ] ivec3 += ivec3 in a vertex shader should succeed.
[ 60: PASS ] ivec3 += ivec3 in a fragment shader should succeed.
[ 61: PASS ] int += ivec4 in a vertex shader should fail.
[ 62: PASS ] int += ivec4 in a fragment shader should fail.
[ 63: PASS ] ivec4 += ivec3 in a vertex shader should fail.
[ 64: PASS ] ivec4 += ivec3 in a fragment shader should fail.
[ 65: PASS ] ivec4 += int in a vertex shader should succeed.
[ 66: PASS ] ivec4 += int in a fragment shader should succeed.
[ 67: PASS ] ivec4 += ivec4 in a vertex shader should succeed.
[ 68: PASS ] ivec4 += ivec4 in a fragment shader should succeed.
[ 69: PASS ] float -= vec2 in a vertex shader should fail.
[ 70: PASS ] float -= vec2 in a fragment shader should fail.
[ 71: PASS ] vec2 -= float in a vertex shader should succeed.
[ 72: PASS ] vec2 -= float in a fragment shader should succeed.
[ 73: PASS ] vec2 -= vec2 in a vertex shader should succeed.
[ 74: PASS ] vec2 -= vec2 in a fragment shader should succeed.
[ 75: PASS ] float -= vec3 in a vertex shader should fail.
[ 76: PASS ] float -= vec3 in a fragment shader should fail.
[ 77: PASS ] vec3 -= vec2 in a vertex shader should fail.
[ 78: PASS ] vec3 -= vec2 in a fragment shader should fail.
[ 79: PASS ] vec3 -= float in a vertex shader should succeed.
[ 80: PASS ] vec3 -= float in a fragment shader should succeed.
[ 81: PASS ] vec3 -= vec3 in a vertex shader should succeed.
[ 82: PASS ] vec3 -= vec3 in a fragment shader should succeed.
[ 83: PASS ] float -= vec4 in a vertex shader should fail.
[ 84: PASS ] float -= vec4 in a fragment shader should fail.
[ 85: PASS ] vec4 -= vec3 in a vertex shader should fail.
[ 86: PASS ] vec4 -= vec3 in a fragment shader should fail.
[ 87: PASS ] vec4 -= float in a vertex shader should succeed.
[ 88: PASS ] vec4 -= float in a fragment shader should succeed.
[ 89: PASS ] vec4 -= vec4 in a vertex shader should succeed.
[ 90: PASS ] vec4 -= vec4 in a fragment shader should succeed.
[ 91: PASS ] float -= mat2 in a vertex shader should fail.
[ 92: PASS ] float -= mat2 in a fragment shader should fail.
[ 93: PASS ] mat2 -= vec4 in a vertex shader should fail.
[ 94: PASS ] mat2 -= vec4 in a fragment shader should fail.
[ 95: PASS ] mat2 -= float in a vertex shader should succeed.
[ 96: PASS ] mat2 -= float in a fragment shader should succeed.
[ 97: PASS ] mat2 -= mat2 in a vertex shader should succeed.
[ 98: PASS ] mat2 -= mat2 in a fragment shader should succeed.
[ 99: PASS ] float -= mat3 in a vertex shader should fail.
[ 100: PASS ] float -= mat3 in a fragment shader should fail.
[ 101: PASS ] mat3 -= mat2 in a vertex shader should fail.
[ 102: PASS ] mat3 -= mat2 in a fragment shader should fail.
[ 103: PASS ] mat3 -= float in a vertex shader should succeed.
[ 104: PASS ] mat3 -= float in a fragment shader should succeed.
[ 105: PASS ] mat3 -= mat3 in a vertex shader should succeed.
[ 106: PASS ] mat3 -= mat3 in a fragment shader should succeed.
[ 107: PASS ] float -= mat4 in a vertex shader should fail.
[ 108: PASS ] float -= mat4 in a fragment shader should fail.
[ 109: PASS ] mat4 -= mat3 in a vertex shader should fail.
[ 110: PASS ] mat4 -= mat3 in a fragment shader should fail.
[ 111: PASS ] mat4 -= float in a vertex shader should succeed.
[ 112: PASS ] mat4 -= float in a fragment shader should succeed.
[ 113: PASS ] mat4 -= mat4 in a vertex shader should succeed.
[ 114: PASS ] mat4 -= mat4 in a fragment shader should succeed.
[ 115: PASS ] int -= ivec2 in a vertex shader should fail.
[ 116: PASS ] int -= ivec2 in a fragment shader should fail.
[ 117: PASS ] ivec2 -= int in a vertex shader should succeed.
[ 118: PASS ] ivec2 -= int in a fragment shader should succeed.
[ 119: PASS ] ivec2 -= ivec2 in a vertex shader should succeed.
[ 120: PASS ] ivec2 -= ivec2 in a fragment shader should succeed.
[ 121: PASS ] int -= ivec3 in a vertex shader should fail.
[ 122: PASS ] int -= ivec3 in a fragment shader should fail.
[ 123: PASS ] ivec3 -= ivec2 in a vertex shader should fail.
[ 124: PASS ] ivec3 -= ivec2 in a fragment shader should fail.
[ 125: PASS ] ivec3 -= int in a vertex shader should succeed.
[ 126: PASS ] ivec3 -= int in a fragment shader should succeed.
[ 127: PASS ] ivec3 -= ivec3 in a vertex shader should succeed.
[ 128: PASS ] ivec3 -= ivec3 in a fragment shader should succeed.
[ 129: PASS ] int -= ivec4 in a vertex shader should fail.
[ 130: PASS ] int -= ivec4 in a fragment shader should fail.
[ 131: PASS ] ivec4 -= ivec3 in a vertex shader should fail.
[ 132: PASS ] ivec4 -= ivec3 in a fragment shader should fail.
[ 133: PASS ] ivec4 -= int in a vertex shader should succeed.
[ 134: PASS ] ivec4 -= int in a fragment shader should succeed.
[ 135: PASS ] ivec4 -= ivec4 in a vertex shader should succeed.
[ 136: PASS ] ivec4 -= ivec4 in a fragment shader should succeed.
[ 137: PASS ] float *= vec2 in a vertex shader should fail.
[ 138: PASS ] float *= vec2 in a fragment shader should fail.
[ 139: PASS ] vec2 *= float in a vertex shader should succeed.
[ 140: PASS ] vec2 *= float in a fragment shader should succeed.
[ 141: PASS ] vec2 *= mat2 in a vertex shader should succeed.
[ 142: PASS ] vec2 *= mat2 in a fragment shader should succeed.
[ 143: PASS ] vec2 *= vec2 in a vertex shader should succeed.
[ 144: PASS ] vec2 *= vec2 in a fragment shader should succeed.
[ 145: PASS ] float *= vec3 in a vertex shader should fail.
[ 146: PASS ] float *= vec3 in a fragment shader should fail.
[ 147: PASS ] vec3 *= vec2 in a vertex shader should fail.
[ 148: PASS ] vec3 *= vec2 in a fragment shader should fail.
[ 149: PASS ] vec3 *= float in a vertex shader should succeed.
[ 150: PASS ] vec3 *= float in a fragment shader should succeed.
[ 151: PASS ] vec3 *= mat3 in a vertex shader should succeed.
[ 152: PASS ] vec3 *= mat3 in a fragment shader should succeed.
[ 153: PASS ] vec3 *= vec3 in a vertex shader should succeed.
[ 154: PASS ] vec3 *= vec3 in a fragment shader should succeed.
[ 155: PASS ] float *= vec4 in a vertex shader should fail.
[ 156: PASS ] float *= vec4 in a fragment shader should fail.
[ 157: PASS ] vec4 *= vec3 in a vertex shader should fail.
[ 158: PASS ] vec4 *= vec3 in a fragment shader should fail.
[ 159: PASS ] vec4 *= float in a vertex shader should succeed.
[ 160: PASS ] vec4 *= float in a fragment shader should succeed.
[ 161: PASS ] vec4 *= mat4 in a vertex shader should succeed.
[ 162: PASS ] vec4 *= mat4 in a fragment shader should succeed.
[ 163: PASS ] vec4 *= vec4 in a vertex shader should succeed.
[ 164: PASS ] vec4 *= vec4 in a fragment shader should succeed.
[ 165: PASS ] float *= mat2 in a vertex shader should fail.
[ 166: PASS ] float *= mat2 in a fragment shader should fail.
[ 167: PASS ] mat2 *= vec4 in a vertex shader should fail.
[ 168: PASS ] mat2 *= vec4 in a fragment shader should fail.
[ 169: PASS ] mat2 *= float in a vertex shader should succeed.
[ 170: PASS ] mat2 *= float in a fragment shader should succeed.
[ 171: PASS ] mat2 *= mat2 in a vertex shader should succeed.
[ 172: PASS ] mat2 *= mat2 in a fragment shader should succeed.
[ 173: PASS ] float *= mat3 in a vertex shader should fail.
[ 174: PASS ] float *= mat3 in a fragment shader should fail.
[ 175: PASS ] mat3 *= mat2 in a vertex shader should fail.
[ 176: PASS ] mat3 *= mat2 in a fragment shader should fail.
[ 177: PASS ] mat3 *= float in a vertex shader should succeed.
[ 178: PASS ] mat3 *= float in a fragment shader should succeed.
[ 179: PASS ] mat3 *= mat3 in a vertex shader should succeed.
[ 180: PASS ] mat3 *= mat3 in a fragment shader should succeed.
[ 181: PASS ] float *= mat4 in a vertex shader should fail.
[ 182: PASS ] float *= mat4 in a fragment shader should fail.
[ 183: PASS ] mat4 *= mat3 in a vertex shader should fail.
[ 184: PASS ] mat4 *= mat3 in a fragment shader should fail.
[ 185: PASS ] mat4 *= float in a vertex shader should succeed.
[ 186: PASS ] mat4 *= float in a fragment shader should succeed.
[ 187: PASS ] mat4 *= mat4 in a vertex shader should succeed.
[ 188: PASS ] mat4 *= mat4 in a fragment shader should succeed.
[ 189: PASS ] int *= ivec2 in a vertex shader should fail.
[ 190: PASS ] int *= ivec2 in a fragment shader should fail.
[ 191: PASS ] ivec2 *= int in a vertex shader should succeed.
[ 192: PASS ] ivec2 *= int in a fragment shader should succeed.
[ 193: PASS ] ivec2 *= ivec2 in a vertex shader should succeed.
[ 194: PASS ] ivec2 *= ivec2 in a fragment shader should succeed.
[ 195: PASS ] int *= ivec3 in a vertex shader should fail.
[ 196: PASS ] int *= ivec3 in a fragment shader should fail.
[ 197: PASS ] ivec3 *= ivec2 in a vertex shader should fail.
[ 198: PASS ] ivec3 *= ivec2 in a fragment shader should fail.
[ 199: PASS ] ivec3 *= int in a vertex shader should succeed.
[ 200: PASS ] ivec3 *= int in a fragment shader should succeed.
[ 201: PASS ] ivec3 *= ivec3 in a vertex shader should succeed.
[ 202: PASS ] ivec3 *= ivec3 in a fragment shader should succeed.
[ 203: PASS ] int *= ivec4 in a vertex shader should fail.
[ 204: PASS ] int *= ivec4 in a fragment shader should fail.
[ 205: PASS ] ivec4 *= ivec3 in a vertex shader should fail.
[ 206: PASS ] ivec4 *= ivec3 in a fragment shader should fail.
[ 207: PASS ] ivec4 *= int in a vertex shader should succeed.
[ 208: PASS ] ivec4 *= int in a fragment shader should succeed.
[ 209: PASS ] ivec4 *= ivec4 in a vertex shader should succeed.
[ 210: PASS ] ivec4 *= ivec4 in a fragment shader should succeed.
[ 211: PASS ] float /= vec2 in a vertex shader should fail.
[ 212: PASS ] float /= vec2 in a fragment shader should fail.
[ 213: PASS ] vec2 /= float in a vertex shader should succeed.
[ 214: PASS ] vec2 /= float in a fragment shader should succeed.
[ 215: PASS ] vec2 /= vec2 in a vertex shader should succeed.
[ 216: PASS ] vec2 /= vec2 in a fragment shader should succeed.
[ 217: PASS ] float /= vec3 in a vertex shader should fail.
[ 218: PASS ] float /= vec3 in a fragment shader should fail.
[ 219: PASS ] vec3 /= vec2 in a vertex shader should fail.
[ 220: PASS ] vec3 /= vec2 in a fragment shader should fail.
[ 221: PASS ] vec3 /= float in a vertex shader should succeed.
[ 222: PASS ] vec3 /= float in a fragment shader should succeed.
[ 223: PASS ] vec3 /= vec3 in a vertex shader should succeed.
[ 224: PASS ] vec3 /= vec3 in a fragment shader should succeed.
[ 225: PASS ] float /= vec4 in a vertex shader should fail.
[ 226: PASS ] float /= vec4 in a fragment shader should fail.
[ 227: PASS ] vec4 /= vec3 in a vertex shader should fail.
[ 228: PASS ] vec4 /= vec3 in a fragment shader should fail.
[ 229: PASS ] vec4 /= float in a vertex shader should succeed.
[ 230: PASS ] vec4 /= float in a fragment shader should succeed.
[ 231: PASS ] vec4 /= vec4 in a vertex shader should succeed.
[ 232: PASS ] vec4 /= vec4 in a fragment shader should succeed.
[ 233: PASS ] float /= mat2 in a vertex shader should fail.
[ 234: PASS ] float /= mat2 in a fragment shader should fail.
[ 235: PASS ] mat2 /= vec4 in a vertex shader should fail.
[ 236: PASS ] mat2 /= vec4 in a fragment shader should fail.
[ 237: FAIL ] [unexpected link status] (expected: true) mat2 /= float in a vertex shader should succeed.
[ 238: FAIL ] [unexpected link status] (expected: true) mat2 /= float in a fragment shader should succeed.
[ 239: PASS ] mat2 /= mat2 in a vertex shader should succeed.
[ 240: PASS ] mat2 /= mat2 in a fragment shader should succeed.
[ 241: PASS ] float /= mat3 in a vertex shader should fail.
[ 242: PASS ] float /= mat3 in a fragment shader should fail.
[ 243: PASS ] mat3 /= mat2 in a vertex shader should fail.
[ 244: PASS ] mat3 /= mat2 in a fragment shader should fail.
[ 245: FAIL ] [unexpected link status] (expected: true) mat3 /= float in a vertex shader should succeed.
[ 246: FAIL ] [unexpected link status] (expected: true) mat3 /= float in a fragment shader should succeed.
[ 247: PASS ] mat3 /= mat3 in a vertex shader should succeed.
[ 248: PASS ] mat3 /= mat3 in a fragment shader should succeed.
[ 249: PASS ] float /= mat4 in a vertex shader should fail.
[ 250: PASS ] float /= mat4 in a fragment shader should fail.
[ 251: PASS ] mat4 /= mat3 in a vertex shader should fail.
[ 252: PASS ] mat4 /= mat3 in a fragment shader should fail.
[ 253: FAIL ] [unexpected link status] (expected: true) mat4 /= float in a vertex shader should succeed.
[ 254: FAIL ] [unexpected link status] (expected: true) mat4 /= float in a fragment shader should succeed.
[ 255: PASS ] mat4 /= mat4 in a vertex shader should succeed.
[ 256: PASS ] mat4 /= mat4 in a fragment shader should succeed.
[ 257: PASS ] int /= ivec2 in a vertex shader should fail.
[ 258: PASS ] int /= ivec2 in a fragment shader should fail.
[ 259: PASS ] ivec2 /= int in a vertex shader should succeed.
[ 260: PASS ] ivec2 /= int in a fragment shader should succeed.
[ 261: PASS ] ivec2 /= ivec2 in a vertex shader should succeed.
[ 262: PASS ] ivec2 /= ivec2 in a fragment shader should succeed.
[ 263: PASS ] int /= ivec3 in a vertex shader should fail.
[ 264: PASS ] int /= ivec3 in a fragment shader should fail.
[ 265: PASS ] ivec3 /= ivec2 in a vertex shader should fail.
[ 266: PASS ] ivec3 /= ivec2 in a fragment shader should fail.
[ 267: PASS ] ivec3 /= int in a vertex shader should succeed.
[ 268: PASS ] ivec3 /= int in a fragment shader should succeed.
[ 269: PASS ] ivec3 /= ivec3 in a vertex shader should succeed.
[ 270: PASS ] ivec3 /= ivec3 in a fragment shader should succeed.
[ 271: PASS ] int /= ivec4 in a vertex shader should fail.
[ 272: PASS ] int /= ivec4 in a fragment shader should fail.
[ 273: PASS ] ivec4 /= ivec3 in a vertex shader should fail.
[ 274: PASS ] ivec4 /= ivec3 in a fragment shader should fail.
[ 275: PASS ] ivec4 /= int in a vertex shader should succeed.
[ 276: PASS ] ivec4 /= int in a fragment shader should succeed.
[ 277: PASS ] ivec4 /= ivec4 in a vertex shader should succeed.
[ 278: PASS ] ivec4 /= ivec4 in a fragment shader should succeed.
[ 279: PASS ] successfullyParsed is true
[ FAIL ] 6 failures reported
Comment 1 Radar WebKit Bug Importer 2021-09-13 04:32:19 PDT
<rdar://problem/83049374>