<?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>215896</bug_id>
          
          <creation_ts>2020-08-27 11:32:07 -0700</creation_ts>
          <short_desc>CSS invert() and opacity() filter implementations should use linear transfer functions for clarity and simplicity</short_desc>
          <delta_ts>2020-08-27 18:24:22 -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>CSS</component>
          <version>Other</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>frankhome61</reporter>
          <assigned_to>frankhome61</assigned_to>
          <cc>changseok</cc>
    
    <cc>darin</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>pdr</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1683440</commentid>
    <comment_count>0</comment_count>
    <who name="">frankhome61</who>
    <bug_when>2020-08-27 11:32:07 -0700</bug_when>
    <thetext>In WebKit&apos;s implementation of CSS filters invert() and opacity(), FEComponentTransfer is used and the transfer function is surprisingly to table, instead of linear. Looking at the CSS spec, https://drafts.fxtf.org/filter-effects/#invertEquivalent
invert() and opacity() is implemented using &quot;table&quot; with just 2 values, which is equivalent to using a linear function. I propose to change the implementation of invert() and opacity() to use linear transfer function as well for simplicity and clarity.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1683441</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-08-27 11:32:37 -0700</bug_when>
    <thetext>&lt;rdar://problem/67887069&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1683443</commentid>
    <comment_count>2</comment_count>
      <attachid>407421</attachid>
    <who name="">frankhome61</who>
    <bug_when>2020-08-27 11:45:35 -0700</bug_when>
    <thetext>Created attachment 407421
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1683542</commentid>
    <comment_count>3</comment_count>
      <attachid>407421</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-08-27 17:50:28 -0700</bug_when>
    <thetext>Comment on attachment 407421
Patch

Does this have any effect on performance?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1683544</commentid>
    <comment_count>4</comment_count>
    <who name="">frankhome61</who>
    <bug_when>2020-08-27 18:06:35 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #3)
&gt; Comment on attachment 407421 [details]
&gt; Patch
&gt; 
&gt; Does this have any effect on performance?

No, not that I know of. By looking at the code, FEComponentTransfer eventually converts linear, discrete table transfer functions to a hash map that maps each R,G,B values to a new value by applying the transfer function. So I don&apos;t expect this patch to cause any performance hit at all</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1683547</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-08-27 18:24:21 -0700</bug_when>
    <thetext>Committed r266266: &lt;https://trac.webkit.org/changeset/266266&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 407421.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>407421</attachid>
            <date>2020-08-27 11:45:35 -0700</date>
            <delta_ts>2020-08-27 18:24:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215896-20200827114534.patch</filename>
            <type>text/plain</type>
            <size>4112</size>
            <attacher>frankhome61</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1OTgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjZiY2MxZTA3ZGFkZDBm
NDdkNmRjOGVkZjAxMDRkYTI0MWQyNTQyMC4uYWExMGRhYTcxMTExNDBhODI3YTdhZWI1NmM2YWEw
NjE5OTFkZGY5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIwLTA4LTI3ICBGcmFu
ayBZYW5nICA8Z3Vvd2VpX3lhbmdAYXBwbGUuY29tPgorCisgICAgICAgIENTUyBGaWx0ZXIgaW52
ZXJ0KCkgYW5kIG9wYWNpdHkoKSBJbXBsZW1lbnRhdGlvbiBTaG91bGQgVXNlIExpbmVhciBUcmFu
c2ZlciBGdW5jdGlvbiBmb3IgQ2xhcml0eSBhbmQgU2ltcGxpY2l0eQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE1ODk2CisKKyAgICAgICAgU2ltcGxp
ZnkgQ1NTIGZpbHRlcnMsIGludmVydCgpIGFuZCBvcGFjaXR5KCkgaW1wbGVtZW50YXRpb24gYnkg
dXNpbmcgImxpbmVhciIgdHJhbnNmZXIgZnVuY3Rpb24sIAorICAgICAgICBpbnN0ZWFkIG9mIHVz
aW5nIGEgbW9yZSBjb25mdXNpbmcgdHJhbnNmZXIgZnVuY3Rpb24sICJ0YWJsZSIuIEZvciBpbnZl
cnQoKSwgdGhlIHRyYW5zZmVyIGZ1bmN0aW9uIAorICAgICAgICBpcyB0eXBlPSJ0YWJsZSIgdGFi
bGVWYWx1ZXM9IlthbW91bnRdICgxIC0gW2Ftb3VudF0pIiwgd2hpY2ggaXMgZXF1aXZhbGVudCB0
byBhIGxpbmVhciBmdW5jdGlvbgorICAgICAgICBvZiBzbG9wZSAxIC0gMiAqIFthbW91bnRdIGFu
ZCBpbnRlcmNlcHQgW2Ftb3VudF07IGZvciBvcGFjaXR5IHRoZSB0cmFuc2ZlciBmdW5jdGlvbiBp
cyB0eXBlPSJ0YWJsZSIgdGFibGVWYWx1ZXM9IjAgW2Ftb3VudF0iCisgICAgICAgIHdoaWNoIGlz
IGVxdWl2YWxlbnQgdG8gYSBsaW5lYXIgdHJhbnNmZXIgZnVuY3Rpb24gb2Ygc2xvcGUgW2Ftb3Vu
dF0gYW5kIGludGVyY2VwdCAwLiBUaGlzIGNoYW5nZSB3aWxsIG1ha2UgdGhlIGltcGxlbWVudGF0
aW9uIAorICAgICAgICBjbGVhcmVyIGFuZCBzaW1wbGVyLgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBuZWVkZWQsIHVzaW5nIGV4
aXN0aW5nIHRlc3RzIGluIGNzcy9maWx0ZXItZWZmZWN0cworCisgICAgICAgICogcmVuZGVyaW5n
L0NTU0ZpbHRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NGaWx0ZXI6OmJ1aWxkKTogTW9k
aWZpZWQgdGhlIGltcGxlbWVudGF0aW9uIG9mIGludmVydCgpIGFuZCBvcGFjaXR5KCkgc28gdGhh
dCB0aGV5IGJvdGggdXNlIAorICAgICAgICAgICAgIGEgbGluZWFyIGNvbXBvbmVudCB0cmFuc2Zl
ciBmdW5jdGlvbiBpbnN0ZWFkIG9mIGEgbW9yZSBjb25mdXNpbmcgdGFibGUgdHJhbnNmZXIgZnVu
Y3Rpb24uCisKKwogMjAyMC0wOC0yMCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgog
CiAgICAgICAgIEF1ZGlvQnVmZmVyU291cmNlTm9kZSBzaG91bGQgdXNlICJmaW5hbCIgdmFsdWVz
IGZvciBwbGF5YmFja1JhdGUgYW5kIGRldHVuZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL0NTU0ZpbHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ1NTRmls
dGVyLmNwcAppbmRleCA1M2U5Mjk1NDRhM2E4MGY5Yjc5NWY4NDhlMjkwMDQyYmViZDA5NDMxLi5h
ZmViOTI5NTUzNTM0Mjc4MDJjZTI5MDYwN2RhMWE4OTdjZjhjYTIwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvQ1NTRmlsdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvQ1NTRmlsdGVyLmNwcApAQCAtMjIxLDExICsyMjEsMTAgQEAgYm9vbCBDU1NGaWx0
ZXI6OmJ1aWxkKFJlbmRlckVsZW1lbnQmIHJlbmRlcmVyLCBjb25zdCBGaWx0ZXJPcGVyYXRpb25z
JiBvcGVyYXRpb24KICAgICAgICAgY2FzZSBGaWx0ZXJPcGVyYXRpb246OklOVkVSVDogewogICAg
ICAgICAgICAgYXV0byYgY29tcG9uZW50VHJhbnNmZXJPcGVyYXRpb24gPSBkb3duY2FzdDxCYXNp
Y0NvbXBvbmVudFRyYW5zZmVyRmlsdGVyT3BlcmF0aW9uPihmaWx0ZXJPcGVyYXRpb24pOwogICAg
ICAgICAgICAgQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbiB0cmFuc2ZlckZ1bmN0aW9uOwotICAg
ICAgICAgICAgdHJhbnNmZXJGdW5jdGlvbi50eXBlID0gRkVDT01QT05FTlRUUkFOU0ZFUl9UWVBF
X1RBQkxFOwotICAgICAgICAgICAgVmVjdG9yPGZsb2F0PiB0cmFuc2ZlclBhcmFtZXRlcnM7Ci0g
ICAgICAgICAgICB0cmFuc2ZlclBhcmFtZXRlcnMuYXBwZW5kKG5hcnJvd1ByZWNpc2lvblRvRmxv
YXQoY29tcG9uZW50VHJhbnNmZXJPcGVyYXRpb24uYW1vdW50KCkpKTsKLSAgICAgICAgICAgIHRy
YW5zZmVyUGFyYW1ldGVycy5hcHBlbmQobmFycm93UHJlY2lzaW9uVG9GbG9hdCgxIC0gY29tcG9u
ZW50VHJhbnNmZXJPcGVyYXRpb24uYW1vdW50KCkpKTsKLSAgICAgICAgICAgIHRyYW5zZmVyRnVu
Y3Rpb24udGFibGVWYWx1ZXMgPSB0cmFuc2ZlclBhcmFtZXRlcnM7CisgICAgICAgICAgICB0cmFu
c2ZlckZ1bmN0aW9uLnR5cGUgPSBGRUNPTVBPTkVOVFRSQU5TRkVSX1RZUEVfTElORUFSOworICAg
ICAgICAgICAgZmxvYXQgYW1vdW50ID0gbmFycm93UHJlY2lzaW9uVG9GbG9hdChjb21wb25lbnRU
cmFuc2Zlck9wZXJhdGlvbi5hbW91bnQoKSk7CisgICAgICAgICAgICB0cmFuc2ZlckZ1bmN0aW9u
LnNsb3BlID0gMSAtIDIgKiBhbW91bnQ7CisgICAgICAgICAgICB0cmFuc2ZlckZ1bmN0aW9uLmlu
dGVyY2VwdCA9IGFtb3VudDsKIAogICAgICAgICAgICAgQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlv
biBudWxsRnVuY3Rpb247CiAgICAgICAgICAgICBlZmZlY3QgPSBGRUNvbXBvbmVudFRyYW5zZmVy
OjpjcmVhdGUoKnRoaXMsIHRyYW5zZmVyRnVuY3Rpb24sIHRyYW5zZmVyRnVuY3Rpb24sIHRyYW5z
ZmVyRnVuY3Rpb24sIG51bGxGdW5jdGlvbik7CkBAIC0yMzcsMTEgKzIzNiwxMCBAQCBib29sIENT
U0ZpbHRlcjo6YnVpbGQoUmVuZGVyRWxlbWVudCYgcmVuZGVyZXIsIGNvbnN0IEZpbHRlck9wZXJh
dGlvbnMmIG9wZXJhdGlvbgogICAgICAgICBjYXNlIEZpbHRlck9wZXJhdGlvbjo6T1BBQ0lUWTog
ewogICAgICAgICAgICAgYXV0byYgY29tcG9uZW50VHJhbnNmZXJPcGVyYXRpb24gPSBkb3duY2Fz
dDxCYXNpY0NvbXBvbmVudFRyYW5zZmVyRmlsdGVyT3BlcmF0aW9uPihmaWx0ZXJPcGVyYXRpb24p
OwogICAgICAgICAgICAgQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbiB0cmFuc2ZlckZ1bmN0aW9u
OwotICAgICAgICAgICAgdHJhbnNmZXJGdW5jdGlvbi50eXBlID0gRkVDT01QT05FTlRUUkFOU0ZF
Ul9UWVBFX1RBQkxFOwotICAgICAgICAgICAgVmVjdG9yPGZsb2F0PiB0cmFuc2ZlclBhcmFtZXRl
cnM7Ci0gICAgICAgICAgICB0cmFuc2ZlclBhcmFtZXRlcnMuYXBwZW5kKDApOwotICAgICAgICAg
ICAgdHJhbnNmZXJQYXJhbWV0ZXJzLmFwcGVuZChuYXJyb3dQcmVjaXNpb25Ub0Zsb2F0KGNvbXBv
bmVudFRyYW5zZmVyT3BlcmF0aW9uLmFtb3VudCgpKSk7Ci0gICAgICAgICAgICB0cmFuc2ZlckZ1
bmN0aW9uLnRhYmxlVmFsdWVzID0gdHJhbnNmZXJQYXJhbWV0ZXJzOworICAgICAgICAgICAgdHJh
bnNmZXJGdW5jdGlvbi50eXBlID0gRkVDT01QT05FTlRUUkFOU0ZFUl9UWVBFX0xJTkVBUjsKKyAg
ICAgICAgICAgIGZsb2F0IGFtb3VudCA9IG5hcnJvd1ByZWNpc2lvblRvRmxvYXQoY29tcG9uZW50
VHJhbnNmZXJPcGVyYXRpb24uYW1vdW50KCkpOworICAgICAgICAgICAgdHJhbnNmZXJGdW5jdGlv
bi5zbG9wZSA9IGFtb3VudDsKKyAgICAgICAgICAgIHRyYW5zZmVyRnVuY3Rpb24uaW50ZXJjZXB0
ID0gMDsKIAogICAgICAgICAgICAgQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbiBudWxsRnVuY3Rp
b247CiAgICAgICAgICAgICBlZmZlY3QgPSBGRUNvbXBvbmVudFRyYW5zZmVyOjpjcmVhdGUoKnRo
aXMsIG51bGxGdW5jdGlvbiwgbnVsbEZ1bmN0aW9uLCBudWxsRnVuY3Rpb24sIHRyYW5zZmVyRnVu
Y3Rpb24pOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>