<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>229956</bug_id>
          
          <creation_ts>2021-09-06 04:31:07 -0700</creation_ts>
          <short_desc>webgl/1.0.x/conformance/glsl/bugs/compound-assignment-type-combination.html fails on macOS Catalina OpenGL</short_desc>
          <delta_ts>2021-09-13 04:32:19 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebGL</component>
          <version>WebKit Local Build</version>
          <rep_platform>Mac (Intel)</rep_platform>
          <op_sys>macOS 10.15</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>222812</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kimmo Kinnunen">kkinnunen</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>dino</cc>
    
    <cc>kbr</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1790670</commentid>
    <comment_count>0</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-09-06 04:31:07 -0700</bug_when>
    <thetext>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</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792914</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-09-13 04:32:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/83049374&gt;</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>