<?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>227633</bug_id>
          
          <creation_ts>2021-07-02 11:51:17 -0700</creation_ts>
          <short_desc>[macOS] Only use WebGL on Metal by default on safe versions of macOS</short_desc>
          <delta_ts>2021-07-04 18:28:25 -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>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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brent Fulgham">bfulgham</reporter>
          <assigned_to name="Brent Fulgham">bfulgham</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dino</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>kbr</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>kpiddington</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1774516</commentid>
    <comment_count>0</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2021-07-02 11:51:17 -0700</bug_when>
    <thetext>Some older supported macOS releases have a version of Metal that does not work properly for implementing WebGL features. We should stick to the OpenGL backend on those releases (by default) and only activate Metal WebGL on systems we know pass all tests.

Users can still activate WebGL on Metal if they wish, but it will not be the default behavior.

&lt;rdar://problem/78527887&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774519</commentid>
    <comment_count>1</comment_count>
      <attachid>432809</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2021-07-02 11:59:00 -0700</bug_when>
    <thetext>Created attachment 432809
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774533</commentid>
    <comment_count>2</comment_count>
      <attachid>432809</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2021-07-02 13:09:20 -0700</bug_when>
    <thetext>Comment on attachment 432809
Patch

Won&apos;t this disable it on watchOS, tvOS and Catalyst?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774566</commentid>
    <comment_count>3</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2021-07-02 14:13:40 -0700</bug_when>
    <thetext>(In reply to Dean Jackson from comment #2)
&gt; Comment on attachment 432809 [details]
&gt; Patch
&gt; 
&gt; Won&apos;t this disable it on watchOS, tvOS and Catalyst?

#if PLATFORM(IOS_FAMILY) || (PLATFORM(MAC) &amp;&amp; __MAC_OS_X_VERSION_MIN_REQUIRED &gt;= 120000)
#define HAVE_WEBGL_COMPATIBLE_METAL 1
#endif

This should ENABLE it for watchOS, tvOS, Catalyst, and iPhone, and on any macOS at or above 120000.

I THINK!?!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774569</commentid>
    <comment_count>4</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2021-07-02 14:21:47 -0700</bug_when>
    <thetext>I asked Tim to double-check and he said it looked right.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774615</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-07-02 16:21:09 -0700</bug_when>
    <thetext>Committed r279524 (239374@main): &lt;https://commits.webkit.org/239374@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 432809.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774744</commentid>
    <comment_count>6</comment_count>
      <attachid>432809</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2021-07-04 18:22:43 -0700</bug_when>
    <thetext>Comment on attachment 432809
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=432809&amp;action=review

&gt; Source/WTF/wtf/PlatformHave.h:1097
&gt; +#if PLATFORM(IOS_FAMILY) || (PLATFORM(MAC) &amp;&amp; __MAC_OS_X_VERSION_MIN_REQUIRED &gt;= 120000)

Could you explain a bit more how these compile time guards work? I would assume that runtime checks would be needed in order to choose the Metal backend only when running on certain macOS versions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774745</commentid>
    <comment_count>7</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-07-04 18:28:25 -0700</bug_when>
    <thetext>(In reply to Kenneth Russell from comment #6)
&gt; Comment on attachment 432809 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=432809&amp;action=review
&gt; 
&gt; &gt; Source/WTF/wtf/PlatformHave.h:1097
&gt; &gt; +#if PLATFORM(IOS_FAMILY) || (PLATFORM(MAC) &amp;&amp; __MAC_OS_X_VERSION_MIN_REQUIRED &gt;= 120000)
&gt; 
&gt; Could you explain a bit more how these compile time guards work? I would
&gt; assume that runtime checks would be needed in order to choose the Metal
&gt; backend only when running on certain macOS versions.

No need for a runtime check; we build separate binaries with the appropriate SDK for each OS, so a check like this is fine (and very common).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774746</commentid>
    <comment_count>8</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-07-04 18:28:25 -0700</bug_when>
    <thetext>(In reply to Kenneth Russell from comment #6)
&gt; Comment on attachment 432809 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=432809&amp;action=review
&gt; 
&gt; &gt; Source/WTF/wtf/PlatformHave.h:1097
&gt; &gt; +#if PLATFORM(IOS_FAMILY) || (PLATFORM(MAC) &amp;&amp; __MAC_OS_X_VERSION_MIN_REQUIRED &gt;= 120000)
&gt; 
&gt; Could you explain a bit more how these compile time guards work? I would
&gt; assume that runtime checks would be needed in order to choose the Metal
&gt; backend only when running on certain macOS versions.

No need for a runtime check; we build separate binaries with the appropriate SDK for each OS, so a check like this is fine (and very common).</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432809</attachid>
            <date>2021-07-02 11:59:00 -0700</date>
            <delta_ts>2021-07-02 16:21:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227633-20210702115859.patch</filename>
            <type>text/plain</type>
            <size>2116</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5NDg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDczZTkxMjVmM2Q4NDM0NmVmMzA5MmVl
ZDY1Zjk2N2VhYTIzZTI2NDUuLjExMTg1N2M0Mjg3MTZmMDQzYWM3YmUzYjc5OWQwZjE4MjUwNTZm
ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMDctMDIgIEJyZW50IEZ1bGdoYW0gIDxiZnVs
Z2hhbUBhcHBsZS5jb20+CisKKyAgICAgICAgW21hY09TXSBPbmx5IHVzZSBXZWJHTCBvbiBNZXRh
bCBieSBkZWZhdWx0IG9uIHNhZmUgdmVyc2lvbnMgb2YgbWFjT1MKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzYzMworICAgICAgICA8cmRhcjovL3By
b2JsZW0vNzg1Mjc4ODc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGVzdGVkIGJ5IFdlYkdMIHRlc3Qgc3VpdGUuCisKKyAgICAgICAgKiBTY3JpcHRz
L1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWw6CisgICAgICAgICog
d3RmL1BsYXRmb3JtSGF2ZS5oOgorCiAyMDIxLTA3LTAxICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5u
QGFwcGxlLmNvbT4KIAogICAgICAgICBEaXNhYmxlIHJlbGF5IGZvciBVRFAgc29ja2V0cyB3aGVu
IG5vdCBuZWVkZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9X
ZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZl
cmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKaW5kZXggNTRhNmVlNjAzOWVi
ZmM3YTQ2OGQ5MmNiMWZhMDcwNDlhMzQ3N2Q4YS4uOWVjYjdhM2Q2YjM5Y2EyM2RkZDMyNTgzMjZh
MWZkYzJmMDE2Y2UzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2Vz
L1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKKysrIGIvU291cmNlL1dURi9TY3JpcHRz
L1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKQEAgLTEyMDIsMTEg
KzEyMDIsMTQgQEAgV2ViR0xVc2luZ01ldGFsOgogICBjb25kaXRpb246IEVOQUJMRShXRUJHTCkg
JiYgUExBVEZPUk0oQ09DT0EpCiAgIGRlZmF1bHRWYWx1ZToKICAgICBXZWJLaXRMZWdhY3k6Ci0g
ICAgICBkZWZhdWx0OiB0cnVlCisgICAgICAiSEFWRShXRUJHTF9DT01QQVRJQkxFX01FVEFMKSI6
IHRydWUKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCiAgICAgV2ViS2l0OgotICAgICAgZGVmYXVsdDog
dHJ1ZQorICAgICAgIkhBVkUoV0VCR0xfQ09NUEFUSUJMRV9NRVRBTCkiOiB0cnVlCisgICAgICBk
ZWZhdWx0OiBmYWxzZQogICAgIFdlYkNvcmU6Ci0gICAgICBkZWZhdWx0OiB0cnVlCisgICAgICAi
SEFWRShXRUJHTF9DT01QQVRJQkxFX01FVEFMKSI6IHRydWUKKyAgICAgIGRlZmF1bHQ6IGZhbHNl
CiAKIFdlYkdQVUVuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL1BsYXRmb3JtSGF2ZS5oIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgKaW5kZXgg
NTg3YWFjZTEyMTljMTA5MjBkZWIxMTYyMmVlOTFhYjA5ZjQwZWNmMS4uMTQ1NmI3NzE3ZThmNzVj
MjhmODQxZGE2ZDcyOGY5YTdlMjUxOGIyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxh
dGZvcm1IYXZlLmgKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgKQEAgLTEwOTMs
MyArMTA5Myw3IEBACiAjaWYgIWRlZmluZWQoSEFWRV9HUk9VUF9BQ1RJVklUSUVTKSAmJiBQTEFU
Rk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTIwMDAwCiAj
ZGVmaW5lIEhBVkVfR1JPVVBfQUNUSVZJVElFUyAxCiAjZW5kaWYKKworI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpIHx8IChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTIwMDAwKQorI2RlZmluZSBIQVZFX1dFQkdMX0NPTVBBVElCTEVfTUVUQUwgMQor
I2VuZGlmCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>