<?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>214948</bug_id>
          
          <creation_ts>2020-07-29 16:26:50 -0700</creation_ts>
          <short_desc>REGRESSION: [ ios14 ] webgl/1.0.3/conformance/glsl/functions/glsl-function-sign.html and webgl/1.0.3/conformance/glsl/misc/glsl-function-nodes.html are failing consistently.</short_desc>
          <delta_ts>2022-08-11 03:22:45 -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 Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>ASSIGNED</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>
          <dependson>222964</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dean Jackson">dino</reporter>
          <assigned_to name="Kimmo Kinnunen">kkinnunen</assigned_to>
          <cc>dino</cc>
    
    <cc>jdarpinian</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>1676219</commentid>
    <comment_count>0</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2020-07-29 16:26:50 -0700</bug_when>
    <thetext>On iOS 14 simulator, the following two tests are failing:

webgl/1.0.3/conformance/glsl/functions/glsl-function-sign.html
webgl/1.0.3/conformance/glsl/misc/glsl-function-nodes.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1676220</commentid>
    <comment_count>1</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2020-07-29 16:27:13 -0700</bug_when>
    <thetext>rdar://64701357</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1676221</commentid>
    <comment_count>2</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2020-07-29 16:27:52 -0700</bug_when>
    <thetext>The tests work ok on device. This is specific to the simulator.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1676253</commentid>
    <comment_count>3</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2020-07-29 17:31:01 -0700</bug_when>
    <thetext>The rendered images are definitely different.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1676254</commentid>
    <comment_count>4</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2020-07-29 17:35:48 -0700</bug_when>
    <thetext>The vertex shader tests are failing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1676255</commentid>
    <comment_count>5</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2020-07-29 17:37:35 -0700</bug_when>
    <thetext>This is quite weird.

This is the reference vertex shader:

[[[
attribute vec4 aPosition;

varying vec4 vColor;


float sign_base(float value) {
  if (value == 0.0) return 0.0;
  return value &gt; 0.0 ? 1.0 : -1.0;
}

float sign_emu(float value) {
  return sign_base(value);
}

void main()
{
   gl_Position = aPosition;
   vec2 texcoord = vec2(aPosition.xy * 0.5 + vec2(0.5, 0.5));
   vec4 color = vec4(
       texcoord,
       texcoord.x * texcoord.y,
       (1.0 - texcoord.x) * texcoord.y * 0.5 + 0.5);
   vColor = vec4(
    sign_emu(color.x * 2.0 - 1.0) * 0.5 + 0.5,
    0.5,
    0,
    1);
}
]]]

and this is the test vertex shader:

[[[
attribute vec4 aPosition;

varying vec4 vColor;

void main()
{
   gl_Position = aPosition;
   vec2 texcoord = vec2(aPosition.xy * 0.5 + vec2(0.5, 0.5));
   vec4 color = vec4(
       texcoord,
       texcoord.x * texcoord.y,
       (1.0 - texcoord.x) * texcoord.y * 0.5 + 0.5);
   vColor = vec4(
    sign(color.x * 2.0 - 1.0) * 0.5 + 0.5,
    0.5,
    0,
    1);
}
]]]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1676257</commentid>
    <comment_count>6</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2020-07-29 17:40:32 -0700</bug_when>
    <thetext>So, the built-in &quot;sign&quot; function is not equivalent to the explicit form of

float sign(float value) {
  if (value == 0.0) return 0.0;
  return value &gt; 0.0 ? 1.0 : -1.0;
}

(I&apos;m not sure why the test puts it through another function)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1676258</commentid>
    <comment_count>7</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2020-07-29 17:48:48 -0700</bug_when>
    <thetext>Let&apos;s try to work out what it is actually returning!

texcoord is the normalized vertex position.

vec4 color = vec4(
       texcoord,
       texcoord.x * texcoord.y,
       (1.0 - texcoord.x) * texcoord.y * 0.5 + 0.5);

So for input texcoords...

0,0 -&gt; color = 0, 0, 0, 0.5
0,1 -&gt; color = 0, 1, 0, 1
1,0 -&gt; color = 1, 0, 0, 1
1,1 -&gt; color = 1, 1, 1, 0.5

Now the varying value

vColor = vec4(
    sign(color.x * 2.0 - 1.0) * 0.5 + 0.5,
    0.5,
    0,
    1);

0,0 [[sign(-1) * 0.5 + 0.5]] -&gt; 0, 0.5, 0, 1
0,1 [[sign(-1) * 0.5 + 0.5]] -&gt; 0, 0.5, 0, 1
1,0 [[sign(1) * 0.5 + 0.5]]  -&gt; 1, 0.5, 0, 1
1,1 [[sign(1) * 0.5 + 0.5]]  -&gt; 1, 0.5, 0, 1

Attaching the result as a screenshot.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1676259</commentid>
    <comment_count>8</comment_count>
      <attachid>405533</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2020-07-29 17:49:04 -0700</bug_when>
    <thetext>Created attachment 405533
result</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1676263</commentid>
    <comment_count>9</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2020-07-29 17:51:32 -0700</bug_when>
    <thetext>Those endpoints come out ok! There must be intermediate points in the drawn element.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1676264</commentid>
    <comment_count>10</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2020-07-29 17:52:52 -0700</bug_when>
    <thetext>Yeah, 4x4 grid.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1676274</commentid>
    <comment_count>11</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2020-07-29 18:09:03 -0700</bug_when>
    <thetext>The problem is that the built-in sign appears to be a no-op. ie. sign(-0.5) returns -0.5.

Here&apos;s my test case:

void main()
{
   gl_Position = aPosition;
   vec2 texcoord = vec2(aPosition.xy * 0.5 + vec2(0.5, 0.5));
   vec4 color = vec4(
       texcoord,
       texcoord.x * texcoord.y,
       (1.0 - texcoord.x) * texcoord.y * 0.5 + 0.5);

   // New code here.
   float a = (color.x * 2.0 - 1.0) &lt; 0.0 ? -1.0 : 1.0;
   float b = sign(color.x * 2.0 - 1.0);
   if (a != b) {
      vColor = vec4(1.0, 0.0, 0.0, 1.0);
   } else {
    vColor = vec4(
      sign(color.x * 2.0 - 1.0) * 0.5 + 0.5,
      0.5,
      0,
      1);
   }
}

... which shouldn&apos;t produce any red, but it does between about texCoords [0.25,0.75]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1676275</commentid>
    <comment_count>12</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2020-07-29 18:11:35 -0700</bug_when>
    <thetext>Now the question is whether this really is a regression from ANGLE. I can&apos;t imagine it would be replacing the built-in sign function with something that doesn&apos;t work.

Actually, my replaced code isn&apos;t right. sign returns 0 when the input is 0.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1676276</commentid>
    <comment_count>13</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2020-07-29 18:14:43 -0700</bug_when>
    <thetext>I was wrong. It&apos;s that the built-in is not returning 0 for an input of 0!

Still doesn&apos;t explain why ANGLE is to blame.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1676291</commentid>
    <comment_count>14</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2020-07-29 19:41:47 -0700</bug_when>
    <thetext>I wonder whether ANGLE&apos;s internal shader compiler instance might not be enabling some of the driver bug workarounds that used to be enabled by WebKit&apos;s manually constructed instance. Perhaps check the options that were previously being passed into sh::Compile in the ANGLEWebKitBridge, and see if any are missing inside ANGLE when it constructs its compiler instance? See Source/ThirdParty/ANGLE/include/GLSLANG/ShaderLang.h , and for example SH_REWRITE_FLOAT_UNARY_MINUS_OPERATOR.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1740644</commentid>
    <comment_count>15</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-03-17 03:28:26 -0700</bug_when>
    <thetext>The original TestExpectation was put to platform/ios/, even though the problem was in ios-simulator.

This does not seem to be failing anymore, possibly because of angle update or fixing few workarounds in angle.

Blocking weblg2conformance to remove the problematic expectations. once the expectations are removed, this can be closed. Removal targeted in bug 222964</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>405533</attachid>
            <date>2020-07-29 17:49:04 -0700</date>
            <delta_ts>2020-07-29 17:49:04 -0700</delta_ts>
            <desc>result</desc>
            <filename>Screen Shot 2020-07-30 at 10.47.49.png</filename>
            <type>image/png</type>
            <size>5714</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">iVBORw0KGgoAAAANSUhEUgAAAVgAAACACAYAAABOdnG2AAAAAXNSR0IArs4c6QAAAJZlWElmTU0A
KgAAAAgABAEaAAUAAAABAAAAPgEbAAUAAAABAAAARgEoAAMAAAABAAIAAIdpAAQAAAABAAAATgAA
AAAAAACQAAAAAQAAAJAAAAABAASShgAHAAAAEgAAAISgAQADAAAAAQABAACgAgAEAAAAAQAAAVig
AwAEAAAAAQAAAIAAAAAAQVNDSUkAAABTY3JlZW5zaG90Zyh2VgAAAAlwSFlzAAAWJQAAFiUBSVIk
8AAAAdZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6
bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDYuMC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRm
PSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJk
ZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDov
L25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8ZXhpZjpQaXhlbFlEaW1lbnNpb24+
MTI4PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9u
PjM0NDwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlVzZXJDb21tZW50PlNj
cmVlbnNob3Q8L2V4aWY6VXNlckNvbW1lbnQ+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8
L3JkZjpSREY+CjwveDp4bXBtZXRhPgo+X3j9AAAAHGlET1QAAAACAAAAAAAAAEAAAAAoAAAAQAAA
AEAAAAUsr4URCQAABPhJREFUeAHs3VFuHFUQhWEGIeAhEiypdkayM3aWnKZSKFbdPGTsBsn6Wmqd
csl9Z/z3yf+ax+dcP7kQQAABBN6cwINg35ypAxFAAIF/CBCsIiCAAAI3ESDYm8A6FgEEECBYHUAA
AQRuIkCwN4F1LAIIIECwOoAAAgjcRIBgbwLrWAQQQIBgdQABBBC4iQDB3gTWsQgggADB6gACCCBw
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
hUgAAAAASUVORK5CYII=
</data>

          </attachment>
      

    </bug>

</bugzilla>