<?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>200410</bug_id>
          
          <creation_ts>2019-08-02 16:40:46 -0700</creation_ts>
          <short_desc>[WHLSL] Avoid visiting the full AST in computeDimensions</short_desc>
          <delta_ts>2019-08-02 18:11:20 -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>WebGPU</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="Robin Morisset">rmorisset</reporter>
          <assigned_to name="Robin Morisset">rmorisset</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1558201</commentid>
    <comment_count>0</comment_count>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2019-08-02 16:40:46 -0700</bug_when>
    <thetext>We only need to look at the attributes of function definitions, nothing else.
And currently we spend a couple of milliseconds in computeDimensions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1558202</commentid>
    <comment_count>1</comment_count>
      <attachid>375466</attachid>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2019-08-02 16:43:52 -0700</bug_when>
    <thetext>Created attachment 375466
Patch

2ms -&gt; 0.002ms for that pass.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1558207</commentid>
    <comment_count>2</comment_count>
      <attachid>375466</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2019-08-02 16:49:07 -0700</bug_when>
    <thetext>Comment on attachment 375466
Patch

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

&gt; Source/WebCore/Modules/webgpu/WHLSL/WHLSLComputeDimensions.cpp:52
&gt; +                if (&amp;functionDefinition == &amp;entryPoint) {

Can we move this check outside of the nearest for loop?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1558219</commentid>
    <comment_count>3</comment_count>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2019-08-02 17:16:43 -0700</bug_when>
    <thetext>(In reply to Myles C. Maxfield from comment #2)
&gt; Comment on attachment 375466 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=375466&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/webgpu/WHLSL/WHLSLComputeDimensions.cpp:52
&gt; &gt; +                if (&amp;functionDefinition == &amp;entryPoint) {
&gt; 
&gt; Can we move this check outside of the nearest for loop?

Not easily: the loop has two jobs, both computing the dimensions for the entry point and verifying that no function has multiple NumThreads attributes.
So we can&apos;t just &quot;continue;&quot; in the case where &amp;functionDefinition != &amp;entryPoint.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1558231</commentid>
    <comment_count>4</comment_count>
      <attachid>375466</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-08-02 18:10:49 -0700</bug_when>
    <thetext>Comment on attachment 375466
Patch

Clearing flags on attachment: 375466

Committed r248194: &lt;https://trac.webkit.org/changeset/248194&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1558232</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-08-02 18:10:51 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1558233</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-08-02 18:11:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/53888075&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>375466</attachid>
            <date>2019-08-02 16:43:52 -0700</date>
            <delta_ts>2019-08-02 18:10:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch200410</filename>
            <type>text/plain</type>
            <size>3919</size>
            <attacher name="Robin Morisset">rmorisset</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA1MmJkMDQwOGM2MC4uYWVjZDJjNzlmN2UgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOSBAQAorMjAxOS0wOC0wMiAgUm9iaW4gTW9yaXNzZXQgIDxybW9yaXNzZXRAYXBwbGUu
Y29tPgorCisgICAgICAgIFtXSExTTF0gQXZvaWQgdmlzaXRpbmcgdGhlIGZ1bGwgQVNUIGluIGNv
bXB1dGVEaW1lbnNpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDA0MTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBdm9pZCB2aXNpdGluZyB0aGUgZnVsbCBBU1QgaW4gY29tcHV0ZURpbWVuc2lvbnMK
KyAgICAgICAgVGhpcyBjdXRzIHRoZSB0aW1lIHNwZW50IGluIGNvbXB1dGVEaW1lbnNpb25zIG9u
IGNvbXB1dGVfYm9pZHMuaHRtbCBmcm9tIGFib3V0IDJtcyB0byBhYm91dCAwLjAwMm1zLgorCisg
ICAgICAgIE5vIG5ldyB0ZXN0cyBhcyB0aGVyZSBpcyBubyBmdW5jdGlvbmFsIGNoYW5nZSBpbnRl
bmRlZC4KKworICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dITFNML1dITFNMQ29tcHV0ZURpbWVu
c2lvbnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OmNvbXB1dGVEaW1lbnNpb25zKToK
KyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XSExTTC9XSExTTFByZXBhcmUuY3BwOgorCiAyMDE5
LTA4LTAxICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgogCiAgICAgICAgIFtXSExT
TF0gRG8gc2ltcGxlIG51bGxwdHIgY2hlY2sgZWxpbWluYXRpb24gdXNpbmcgYmFzaWMgZGF0YSBm
bG93IGFuYWx5c2lzIHdoZW4gZ2VuZXJhdGluZyBtZXRhbCBjb2RlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9XSExTTENvbXB1dGVEaW1lbnNpb25zLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML1dITFNMQ29tcHV0ZURpbWVu
c2lvbnMuY3BwCmluZGV4IDgyOTI0MDAzMTIzLi43MzlmMjg2NDkzMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvV0hMU0xDb21wdXRlRGltZW5zaW9ucy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvV0hMU0xDb21wdXRl
RGltZW5zaW9ucy5jcHAKQEAgLTM4LDUwICszOCwzMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IG5hbWVzcGFjZSBXSExTTCB7CiAKLWNsYXNzIENvbXB1dGVEaW1lbnNpb25zVmlzaXRvciA6IHB1
YmxpYyBWaXNpdG9yIHsKLXB1YmxpYzoKLSAgICBDb21wdXRlRGltZW5zaW9uc1Zpc2l0b3IoQVNU
OjpGdW5jdGlvbkRlZmluaXRpb24mIGVudHJ5UG9pbnQpCi0gICAgICAgIDogbV9lbnRyeVBvaW50
KGVudHJ5UG9pbnQpCi0gICAgewotICAgIH0KLQotICAgIHZpcnR1YWwgfkNvbXB1dGVEaW1lbnNp
b25zVmlzaXRvcigpID0gZGVmYXVsdDsKLQotICAgIE9wdGlvbmFsPENvbXB1dGVEaW1lbnNpb25z
PiBjb21wdXRlRGltZW5zaW9ucygpIGNvbnN0IHsgcmV0dXJuIG1fY29tcHV0ZURpbWVuc2lvbnM7
IH0KK09wdGlvbmFsPENvbXB1dGVEaW1lbnNpb25zPiBjb21wdXRlRGltZW5zaW9ucyhQcm9ncmFt
JiBwcm9ncmFtLCBBU1Q6OkZ1bmN0aW9uRGVmaW5pdGlvbiYgZW50cnlQb2ludCkKK3sKKyAgICBP
cHRpb25hbDxDb21wdXRlRGltZW5zaW9ucz4gY29tcHV0ZURpbWVuc2lvbnM7CiAKLXByaXZhdGU6
Ci0gICAgdm9pZCB2aXNpdChBU1Q6OkZ1bmN0aW9uRGVjbGFyYXRpb24mIGZ1bmN0aW9uRGVjbGFy
YXRpb24pIG92ZXJyaWRlCi0gICAgeworICAgIGZvciAoYXV0byYgZnVuY3Rpb25EZWZpbml0aW9u
IDogcHJvZ3JhbS5mdW5jdGlvbkRlZmluaXRpb25zKCkpIHsKICAgICAgICAgYm9vbCBmb3VuZE51
bVRocmVhZHNGdW5jdGlvbkF0dHJpYnV0ZSA9IGZhbHNlOwotICAgICAgICBmb3IgKGF1dG8mIGZ1
bmN0aW9uQXR0cmlidXRlIDogZnVuY3Rpb25EZWNsYXJhdGlvbi5hdHRyaWJ1dGVCbG9jaygpKSB7
CisgICAgICAgIGZvciAoYXV0byYgZnVuY3Rpb25BdHRyaWJ1dGUgOiBmdW5jdGlvbkRlZmluaXRp
b24tPmF0dHJpYnV0ZUJsb2NrKCkpIHsKICAgICAgICAgICAgIGF1dG8gc3VjY2VzcyA9IFdURjo6
dmlzaXQoV1RGOjptYWtlVmlzaXRvcihbJl0oQVNUOjpOdW1UaHJlYWRzRnVuY3Rpb25BdHRyaWJ1
dGUmIG51bVRocmVhZHNGdW5jdGlvbkF0dHJpYnV0ZSkgewogICAgICAgICAgICAgICAgIGlmIChm
b3VuZE51bVRocmVhZHNGdW5jdGlvbkF0dHJpYnV0ZSkKICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgIGZvdW5kTnVtVGhyZWFkc0Z1bmN0aW9uQXR0cmli
dXRlID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICBpZiAoJmZ1bmN0aW9uRGVjbGFyYXRpb24gPT0g
Jm1fZW50cnlQb2ludCkgewotICAgICAgICAgICAgICAgICAgICBBU1NFUlQoIW1fY29tcHV0ZURp
bWVuc2lvbnMpOwotICAgICAgICAgICAgICAgICAgICBtX2NvbXB1dGVEaW1lbnNpb25zID0ge3sg
bnVtVGhyZWFkc0Z1bmN0aW9uQXR0cmlidXRlLndpZHRoKCksIG51bVRocmVhZHNGdW5jdGlvbkF0
dHJpYnV0ZS5oZWlnaHQoKSwgbnVtVGhyZWFkc0Z1bmN0aW9uQXR0cmlidXRlLmRlcHRoKCkgfX07
CisgICAgICAgICAgICAgICAgaWYgKCZmdW5jdGlvbkRlZmluaXRpb24gPT0gJmVudHJ5UG9pbnQp
IHsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUKCFjb21wdXRlRGltZW5zaW9ucyk7CisgICAg
ICAgICAgICAgICAgICAgIGNvbXB1dGVEaW1lbnNpb25zID0ge3sgbnVtVGhyZWFkc0Z1bmN0aW9u
QXR0cmlidXRlLndpZHRoKCksIG51bVRocmVhZHNGdW5jdGlvbkF0dHJpYnV0ZS5oZWlnaHQoKSwg
bnVtVGhyZWFkc0Z1bmN0aW9uQXR0cmlidXRlLmRlcHRoKCkgfX07CiAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgfSksIGZ1bmN0aW9u
QXR0cmlidXRlKTsKICAgICAgICAgICAgIGlmICghc3VjY2VzcykgewotICAgICAgICAgICAgICAg
IHNldEVycm9yKEVycm9yKCJDYW5ub3QgZGVjbGFyZSBtdWx0aXBsZSBudW10aHJlYWQgYXR0cmli
dXRlcy4iLCBmdW5jdGlvbkRlY2xhcmF0aW9uLmNvZGVMb2NhdGlvbigpKSk7Ci0gICAgICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIC8vIENhbm5vdCBkZWNsYXJlIG11bHRpcGxl
IG51bXRocmVhZCBhdHRyaWJ1dGVzIG9uIGEgc2luZ2xlIGZ1bmN0aW9uLgorICAgICAgICAgICAg
ICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9
CiAKLSAgICBBU1Q6OkZ1bmN0aW9uRGVmaW5pdGlvbiYgbV9lbnRyeVBvaW50OwotICAgIE9wdGlv
bmFsPENvbXB1dGVEaW1lbnNpb25zPiBtX2NvbXB1dGVEaW1lbnNpb25zOwotfTsKLQotT3B0aW9u
YWw8Q29tcHV0ZURpbWVuc2lvbnM+IGNvbXB1dGVEaW1lbnNpb25zKFByb2dyYW0mIHByb2dyYW0s
IEFTVDo6RnVuY3Rpb25EZWZpbml0aW9uJiBlbnRyeVBvaW50KQotewotICAgIENvbXB1dGVEaW1l
bnNpb25zVmlzaXRvciBjb21wdXRlRGltZW5zaW9ucyhlbnRyeVBvaW50KTsKLSAgICBjb21wdXRl
RGltZW5zaW9ucy5WaXNpdG9yOjp2aXNpdChwcm9ncmFtKTsKLSAgICBpZiAoY29tcHV0ZURpbWVu
c2lvbnMuaGFzRXJyb3IoKSkKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICByZXR1
cm4gY29tcHV0ZURpbWVuc2lvbnMuY29tcHV0ZURpbWVuc2lvbnMoKTsKKyAgICByZXR1cm4gY29t
cHV0ZURpbWVuc2lvbnM7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdITFNMCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>