<?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>261297</bug_id>
          
          <creation_ts>2023-09-07 15:17:59 -0700</creation_ts>
          <short_desc>[Win] stack overflow in ANGLE for webgl/2.0.y/conformance/glsl/bugs/complex-glsl-does-not-crash.html</short_desc>
          <delta_ts>2023-09-18 19:52:40 -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>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</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>171618</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Fujii Hironori">fujii</reporter>
          <assigned_to name="Fujii Hironori">fujii</assigned_to>
          <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1976246</commentid>
    <comment_count>0</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2023-09-07 15:17:59 -0700</bug_when>
    <thetext>[Win] Infinite loop in ANGLE if compiled by clang-cl

Windows port clang-cl release builds are crashing for the following tests.
I&apos;m using LLVM 16.0.6.

Regressions: Unexpected crashes (2)
  webgl/2.0.y/conformance/glsl/bugs/complex-glsl-does-not-crash.html [ Crash ]
  webgl/2.0.y/conformance/glsl/misc/shader-uniform-packing-restrictions.html [ Crash ]

It&apos;s an infinite loop.

Callstack

&gt; libGLESv2.dll!sh::TIntermBinary::propagatePrecision(sh::TPrecision precision) Line 2031	C++
&gt; [Inline Frame] libGLESv2.dll!sh::`anonymous namespace&apos;::PropagatePrecisionIfApplicable(sh::TIntermTyped * node, sh::TPrecision precision) Line 192	C++
&gt; libGLESv2.dll!sh::TIntermBinary::propagatePrecision(sh::TPrecision precision) Line 2039	C++
&gt; [Inline Frame] libGLESv2.dll!sh::`anonymous namespace&apos;::PropagatePrecisionIfApplicable(sh::TIntermTyped * node, sh::TPrecision precision) Line 192	C++
&gt; libGLESv2.dll!sh::TIntermBinary::propagatePrecision(sh::TPrecision precision) Line 2039	C++
&gt; (...)

Is this a compiler optimizer bug?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1977134</commentid>
    <comment_count>1</comment_count>
      <attachid>467668</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2023-09-12 14:08:38 -0700</bug_when>
    <thetext>Created attachment 467668
Patch to reduce complex-glsl-does-not-crash.html

In webgl/2.0.y/conformance/glsl/bugs/complex-glsl-does-not-crash.html,
&quot;test: vertex shader with 16384 uniforms of bool&quot; causes the stack overflow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1977205</commentid>
    <comment_count>2</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2023-09-12 20:17:15 -0700</bug_when>
    <thetext>The test is hosted online there.
https://registry.khronos.org/webgl/sdk/tests/conformance/glsl/bugs/complex-glsl-does-not-crash.html

The test vertex shader contains a very long expression.

&gt;    v_varying = vec4(u_uniform0, 0, 0, 0) + 
&gt;            vec4(u_uniform1, 0, 0, 0) + 
&gt;            vec4(u_uniform2, 0, 0, 0) + 
&gt;            (...)          
&gt;            vec4(u_uniform16382, 0, 0, 0) + 
&gt;            vec4(u_uniform16383, 0, 0, 0);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1977222</commentid>
    <comment_count>3</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2023-09-12 22:46:30 -0700</bug_when>
    <thetext>This is not clang-cl release build specific.
clang-cl and MSVC debug builds are also the case.
But, MSVC release build isn&apos;t.

MSVC release build consumes 48 bytes for each
TIntermBinary::propagatePrecision funciton call,
while clang-cl release build consumes 64 bytes.

The test case has 16384 additions.

64 * 16384 = 1M
1M is the default stack size of Windows program.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1977223</commentid>
    <comment_count>4</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2023-09-12 22:51:56 -0700</bug_when>
    <thetext>WinCairo Debug is skipping the test cases.
&gt; [ Debug ] webgl/2.0.y/conformance/glsl/bugs/complex-glsl-does-not-crash.html [ Skip ] # Slow
&gt; [ Debug ] webgl/2.0.y/conformance/glsl/misc/shader-uniform-packing-restrictions.html [ Skip ] # Slow
https://github.com/WebKit/WebKit/blob/20ce50e23068f44e6025e5d6c4196d8aa1116add/LayoutTests/platform/wincairo/TestExpectations#L1908</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1977226</commentid>
    <comment_count>5</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2023-09-12 23:17:30 -0700</bug_when>
    <thetext>I run the test with STP 178 on my Mac mini (2018).
&quot;test: vertex shader with 4096 uniforms of bool&quot;
Only 4096 uniforms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1977227</commentid>
    <comment_count>6</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2023-09-12 23:45:24 -0700</bug_when>
    <thetext>I tested the latest Epiphany Tech Preview too. It has only 4096 uniforms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1977228</commentid>
    <comment_count>7</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2023-09-13 00:00:30 -0700</bug_when>
    <thetext>267933@main skips the tests for Windows port temporarily.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1977437</commentid>
    <comment_count>8</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2023-09-13 21:42:18 -0700</bug_when>
    <thetext>PR for WebGL: https://github.com/KhronosGroup/WebGL/pull/3591</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1977579</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2023-09-14 15:18:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/115521906&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1978174</commentid>
    <comment_count>10</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2023-09-18 18:43:21 -0700</bug_when>
    <thetext>Pull request: https://github.com/WebKit/WebKit/pull/17892</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1978183</commentid>
    <comment_count>11</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2023-09-18 19:52:38 -0700</bug_when>
    <thetext>Committed 268108@main (7c14f48e920c): &lt;https://commits.webkit.org/268108@main&gt;

Reviewed commits have been landed. Closing PR #17892 and removing active labels.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>467668</attachid>
            <date>2023-09-12 14:08:38 -0700</date>
            <delta_ts>2023-09-12 14:08:38 -0700</delta_ts>
            <desc>Patch to reduce complex-glsl-does-not-crash.html</desc>
            <filename>reduced-test.patch</filename>
            <type>text/plain</type>
            <size>4046</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL2dsc2wvYnVncy9jb21wbGV4LWdsc2wtZG9lcy1ub3QtY3Jhc2guaHRtbCBi
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L2dsc2wvYnVncy9jb21wbGV4LWdsc2wtZG9lcy1ub3QtY3Jhc2guaHRtbAppbmRleCA3YjMyNGRl
Zjg0OTkuLjIxZDBmZDNhNzM4NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvZ2xzbC9idWdzL2NvbXBsZXgtZ2xzbC1k
b2VzLW5vdC1jcmFzaC5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2dsc2wvYnVncy9jb21wbGV4LWdsc2wtZG9lcy1ub3Qt
Y3Jhc2guaHRtbApAQCAtNzksMjQgKzc5LDYgQEAgdmFyIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4
dCgiZXhhbXBsZSIpOwogCiB2YXIgdW5pZm9ybVR5cGVzID0gWwogICB7IHR5cGU6ICJib29sIiwg
ICAgICAgIGNvbXBvbmVudHNQZXJSb3c6IDEsIHJvd3M6IDEsIGNvZGU6ICJ2ZWM0KHVfdW5pZm9y
bSQoaWQpJChpbmRleCksIDAsIDAsIDApIiwgfSwKLSAgeyB0eXBlOiAiZmxvYXQiLCAgICAgICBj
b21wb25lbnRzUGVyUm93OiAxLCByb3dzOiAxLCBjb2RlOiAidmVjNCh1X3VuaWZvcm0kKGlkKSQo
aW5kZXgpLCAwLCAwLCAwKSIsIH0sCi0gIHsgdHlwZTogImludCIsICAgICAgICAgY29tcG9uZW50
c1BlclJvdzogMSwgcm93czogMSwgY29kZTogInZlYzQodV91bmlmb3JtJChpZCkkKGluZGV4KSwg
MCwgMCwgMCkiLCB9LAotICB7IHR5cGU6ICJ2ZWMyIiwgICAgICAgIGNvbXBvbmVudHNQZXJSb3c6
IDIsIHJvd3M6IDEsIGNvZGU6ICJ2ZWM0KHVfdW5pZm9ybSQoaWQpJChpbmRleCksIDAsIDApIiwg
fSwKLSAgeyB0eXBlOiAiaXZlYzIiLCAgICAgICBjb21wb25lbnRzUGVyUm93OiAyLCByb3dzOiAx
LCBjb2RlOiAidmVjNCh1X3VuaWZvcm0kKGlkKSQoaW5kZXgpLCAwLCAwKSIsIH0sCi0gIHsgdHlw
ZTogImJ2ZWMyIiwgICAgICAgY29tcG9uZW50c1BlclJvdzogMiwgcm93czogMSwgY29kZTogInZl
YzQodV91bmlmb3JtJChpZCkkKGluZGV4KSwgMCwgMCkiLCB9LAotICB7IHR5cGU6ICJ2ZWMzIiwg
ICAgICAgIGNvbXBvbmVudHNQZXJSb3c6IDMsIHJvd3M6IDEsIGNvZGU6ICJ2ZWM0KHVfdW5pZm9y
bSQoaWQpJChpbmRleCksIDApIiwgfSwKLSAgeyB0eXBlOiAiaXZlYzMiLCAgICAgICBjb21wb25l
bnRzUGVyUm93OiAzLCByb3dzOiAxLCBjb2RlOiAidmVjNCh1X3VuaWZvcm0kKGlkKSQoaW5kZXgp
LCAwKSIsIH0sCi0gIHsgdHlwZTogImJ2ZWMzIiwgICAgICAgY29tcG9uZW50c1BlclJvdzogMywg
cm93czogMSwgY29kZTogInZlYzQodV91bmlmb3JtJChpZCkkKGluZGV4KSwgMCkiLCB9LAotICB7
IHR5cGU6ICJ2ZWM0IiwgICAgICAgIGNvbXBvbmVudHNQZXJSb3c6IDQsIHJvd3M6IDEsIGNvZGU6
ICJ2ZWM0KHVfdW5pZm9ybSQoaWQpJChpbmRleCkpIiwgfSwKLSAgeyB0eXBlOiAiaXZlYzQiLCAg
ICAgICBjb21wb25lbnRzUGVyUm93OiA0LCByb3dzOiAxLCBjb2RlOiAidmVjNCh1X3VuaWZvcm0k
KGlkKSQoaW5kZXgpKSIsIH0sCi0gIHsgdHlwZTogImJ2ZWM0IiwgICAgICAgY29tcG9uZW50c1Bl
clJvdzogNCwgcm93czogMSwgY29kZTogInZlYzQodV91bmlmb3JtJChpZCkkKGluZGV4KSkiLCB9
LAotLy8gWWVzLCB0aGUgc3BlYyBzYXlzIG1hdDIgdGFrZXMgNCBjb2x1bW5zLCAyIHJvd3MuCi0g
IHsgdHlwZTogIm1hdDIiLCAgICAgICAgY29tcG9uZW50c1BlclJvdzogNCwgcm93czogMiwgY29k
ZTogInZlYzQodV91bmlmb3JtJChpZCkkKGluZGV4KVswXSwgMCwgMCkiLCB9LAotICB7IHR5cGU6
ICJtYXQzIiwgICAgICAgIGNvbXBvbmVudHNQZXJSb3c6IDMsIHJvd3M6IDMsIGNvZGU6ICJ2ZWM0
KHVfdW5pZm9ybSQoaWQpJChpbmRleClbMF0sIDApIiwgfSwKLSAgeyB0eXBlOiAibWF0NCIsICAg
ICAgICBjb21wb25lbnRzUGVyUm93OiA0LCByb3dzOiA0LCBjb2RlOiAidmVjNCh1X3VuaWZvcm0k
KGlkKSQoaW5kZXgpWzBdKSIsIH0sCi0vLyBTYW1wbGVycyBnZW5lcmFsbHkgaGF2ZSBtb3JlIHJl
c3RpY3RpdmUgbGltaXRzLgotLy8gIHsgdHlwZTogInNhbXBsZXIyRCIsICAgY29tcG9uZW50c1Bl
clJvdzogMSwgcm93czogMSwgY29kZTogInZlYzQodGV4dHVyZTJEKHVfdW5pZm9ybVskKGluZGV4
KV0sIHZlYzIoMCwgMCkpKSIsIH0sCi0vLyAgeyB0eXBlOiAic2FtcGxlckN1YmUiLCBjb21wb25l
bnRzUGVyUm93OiAxLCByb3dzOiAxLCBjb2RlOiAidmVjNCh0ZXh0dXJlQ3ViZSh1X3VuaWZvcm1b
JChpbmRleCldLCB2ZWMzKDAsIDAsIDApKSkiLCB9LAogXTsKIAogdmFyIHZCYXNlU291cmNlID0g
d3R1LmdldFNjcmlwdCgidnNoYWRlciIpOwpAQCAtMTE5LDE3ICsxMDEsNiBAQCB2YXIgc2hhZGVy
VHlwZXMgPSBbCiAgICAgbWF4VmVjdG9yczogZ2wuZ2V0UGFyYW1ldGVyKGdsLk1BWF9WRVJURVhf
VU5JRk9STV9WRUNUT1JTKSwKICAgICBtaW5WZWN0b3JzOiAxMjgsICAvLyBHTFNMIEVTIDEuMC4x
NyBBcHBlbmRpeCBBLjcsCiAgIH0sCi0gIHsgdHlwZTogImZyYWdtZW50IiwKLSAgICAvLyBGb3Ig
dGVzdHMgdGhhdCBleHBlY3QgZmFpbHVyZSB3aGljaCBzaGFkZXIgbWlnaHQgZmFpbC4KLSAgICB2
ZXJ0RXhwZWN0YXRpb246IHRydWUsCi0gICAgZnJhZ0V4cGVjdGF0aW9uOiBmYWxzZSwKLSAgICB2
ZXJ0QXJyYXlUZXN0OiB2QmFzZVNvdXJjZSwKLSAgICBmcmFnQXJyYXlUZXN0OiBmQXJyYXlUZXN0
U291cmNlLAotICAgIHZlcnRVbmlmb3JtVGVzdDogdkJhc2VTb3VyY2UsCi0gICAgZnJhZ1VuaWZv
cm1UZXN0OiBmVW5pZm9ybVRlc3RTb3VyY2UsCi0gICAgbWF4VmVjdG9yczogZ2wuZ2V0UGFyYW1l
dGVyKGdsLk1BWF9GUkFHTUVOVF9VTklGT1JNX1ZFQ1RPUlMpLAotICAgIG1pblZlY3RvcnM6IDE2
LCAgLy8gR0xTTCBFUyAxLjAuMTcgQXBwZW5kaXggQS43LAotICB9LAogXTsKIGZvciAodmFyIHNz
ID0gMDsgc3MgPCBzaGFkZXJUeXBlcy5sZW5ndGg7ICsrc3MpIHsKICAgdmFyIHNoYWRlclR5cGUg
PSBzaGFkZXJUeXBlc1tzc107CkBAIC0xNDksMTUgKzEyMCw2IEBAIGZvciAodmFyIHNzID0gMDsg
c3MgPCBzaGFkZXJUeXBlcy5sZW5ndGg7ICsrc3MpIHsKICAgICAvLyBOb3RlOiBXZSBjYW4ndCB0
ZXN0IGZvciBzdWNjZXNzIG9yIGZhaWxlciBhcyBhY3R1YWwgR0wgZHJpdmVycyBhcmUgb25seSBy
ZXF1aXJlZCB0byBiZSBhYmxlIHRvCiAgICAgLy8gZG8gdGhlIG1pbmltdW0gbnVtYmVyLiBBZnRl
ciB0aGF0IGl0IGNhbiBmYWlsIGZvciBhbnkgcmVhc29uLgogICAgIHZhciBjb2RlID0gd3R1LnJl
cGxhY2VQYXJhbXMoaW5mby5jb2RlLCB7aWQ6ICIiLCBpbmRleDogIlsiICsgKG51bVZhcnMgLSAx
KSArICJdIn0pOwotICAgIHRlc3RzLnB1c2goewotICAgICAgdlNoYWRlclNvdXJjZTogd3R1LnJl
cGxhY2VQYXJhbXMoc2hhZGVyVHlwZS52ZXJ0QXJyYXlUZXN0LCB7bnVtVGVzdFR5cGU6IG51bVZh
cnMsIGNvZGU6IGNvZGV9LCBpbmZvKSwKLSAgICAgIHZTaGFkZXJTdWNjZXNzOiB0cnVlLAotICAg
ICAgZlNoYWRlclNvdXJjZTogd3R1LnJlcGxhY2VQYXJhbXMoc2hhZGVyVHlwZS5mcmFnQXJyYXlU
ZXN0LCB7bnVtVGVzdFR5cGU6IG51bVZhcnMsIGNvZGU6IGNvZGV9LCBpbmZvKSwKLSAgICAgIGZT
aGFkZXJTdWNjZXNzOiB0cnVlLAotICAgICAgbGlua1N1Y2Nlc3M6IHRydWUsCi0gICAgICBpZ25v
cmVSZXN1bHRzOiB0cnVlLAotICAgICAgcGFzc01zZzogc2hhZGVyVHlwZS50eXBlICsgIiBzaGFk
ZXIgd2l0aCB1bmlmb3JtIGFycmF5IG9mICIgKyBpbmZvLnR5cGUgKyAiIHdpdGggIiArIG51bVZh
cnMgKyAiIGVsZW1lbnRzICh0aGUgbWF4aW11bSkiLAotICAgIH0pOwogCiAgICAgdmFyIGdlbmVy
YXRlQ29kZSA9IGZ1bmN0aW9uKG51bVZhcnMpIHsKICAgICAgIHZhciB1bmlmb3JtcyA9IFtdOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>