<?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>43059</bug_id>
          
          <creation_ts>2010-07-27 10:50:46 -0700</creation_ts>
          <short_desc>[Qt] putImageData() optimizations</short_desc>
          <delta_ts>2010-07-27 14:18:01 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Performance, Qt, QtTriaged</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andreas Kling">kling</reporter>
          <assigned_to name="QtWebKit Unassigned">webkit-qt-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>256691</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-07-27 10:50:46 -0700</bug_when>
    <thetext>- Single-pass premultiplication and BGR-&gt;RGB conversion
- Use ARGB32PM for the temporary image so Qt calls the fast Source composition function</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256697</commentid>
    <comment_count>1</comment_count>
      <attachid>62710</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-07-27 11:00:09 -0700</bug_when>
    <thetext>Created attachment 62710
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256830</commentid>
    <comment_count>2</comment_count>
      <attachid>62710</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-07-27 14:17:50 -0700</bug_when>
    <thetext>Comment on attachment 62710
Proposed patch

Clearing flags on attachment: 62710

Committed r64157: &lt;http://trac.webkit.org/changeset/64157&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256831</commentid>
    <comment_count>3</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-07-27 14:18:01 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62710</attachid>
            <date>2010-07-27 11:00:09 -0700</date>
            <delta_ts>2010-07-27 14:17:50 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>bug-43059.diff</filename>
            <type>text/plain</type>
            <size>4434</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MTMwNDIwMS4uY2YwOWYzMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMC0wNy0yNyAgQW5kcmVhcyBLbGlu
ZyAgPGFuZHJlYXMua2xpbmdAbm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gcHV0SW1hZ2VEYXRhKCkgb3B0aW1pemF0aW9ucwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDMwNTkKKwor
ICAgICAgICAtIFNpbmdsZS1wYXNzIHByZW11bHRpcGxpY2F0aW9uIGFuZCBCR1ItPlJHQiBjb252
ZXJzaW9uCisgICAgICAgIC0gVXNlIEFSR0IzMlBNIGZvciB0aGUgdGVtcG9yYXJ5IGltYWdlIHNv
IFF0IGNhbGxzIHRoZQorICAgICAgICAgIGZhc3QgU291cmNlIGNvbXBvc2l0aW9uIGZ1bmN0aW9u
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9xdC9JbWFnZUJ1ZmZlclF0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnByZW11bHRpcGx5KTogQWRkZWQgKHN0YXRpYyBpbmxpbmUpCisgICAg
ICAgIChXZWJDb3JlOjpwdXRJbWFnZURhdGEpOgorCiAyMDEwLTA3LTI3ICBTdGV2ZSBCbG9jayAg
PHN0ZXZlYmxvY2tAZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBKZXJlbXkgT3Js
b3cuCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ltYWdlQnVmZmVy
UXQuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9JbWFnZUJ1ZmZlclF0LmNwcApp
bmRleCBkY2JjODE3Li5iZDI3MmRiIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3F0L0ltYWdlQnVmZmVyUXQuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
cXQvSW1hZ2VCdWZmZXJRdC5jcHAKQEAgLTIzNyw2ICsyMzcsMjAgQEAgUGFzc1JlZlB0cjxJbWFn
ZURhdGE+IEltYWdlQnVmZmVyOjpnZXRQcmVtdWx0aXBsaWVkSW1hZ2VEYXRhKGNvbnN0IEludFJl
Y3QmIHJlY3QKICAgICByZXR1cm4gZ2V0SW1hZ2VEYXRhPFByZW11bHRpcGxpZWQ+KHJlY3QsIG1f
ZGF0YSwgbV9zaXplKTsKIH0KIAorc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgcHJlbXVsdGlw
bHkodW5zaWduZWQgaW50IHgpCit7CisgICAgdW5zaWduZWQgaW50IGEgPSB4ID4+IDI0OworICAg
IHVuc2lnbmVkIGludCB0ID0gKHggJiAweGZmMDBmZikgKiBhOworICAgIHQgPSAodCArICgodCA+
PiA4KSAmIDB4ZmYwMGZmKSArIDB4ODAwMDgwKSA+PiA4OworICAgIHQgJj0gMHhmZjAwZmY7CisK
KyAgICB4ID0gKCh4ID4+IDgpICYgMHhmZikgKiBhOworICAgIHggPSAoeCArICgoeCA+PiA4KSAm
IDB4ZmYpICsgMHg4MCk7CisgICAgeCAmPSAweGZmMDA7CisgICAgeCB8PSB0IHwgKGEgPDwgMjQp
OworICAgIHJldHVybiB4OworfQorCiB0ZW1wbGF0ZSA8TXVsdGlwbHkgbXVsdGlwbGllZD4KIHZv
aWQgcHV0SW1hZ2VEYXRhKEltYWdlRGF0YSomIHNvdXJjZSwgY29uc3QgSW50UmVjdCYgc291cmNl
UmVjdCwgY29uc3QgSW50UG9pbnQmIGRlc3RQb2ludCwgSW1hZ2VCdWZmZXJEYXRhJiBkYXRhLCBj
b25zdCBJbnRTaXplJiBzaXplKQogewpAQCAtMjY4LDIyICsyODIsMzMgQEAgdm9pZCBwdXRJbWFn
ZURhdGEoSW1hZ2VEYXRhKiYgc291cmNlLCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25z
dCBJbnRQb2ludCYKIAogICAgIHVuc2lnbmVkIHNyY0J5dGVzUGVyUm93ID0gNCAqIHNvdXJjZS0+
d2lkdGgoKTsKIAotICAgIFFSZWN0IGRlc3RSZWN0KGRlc3R4LCBkZXN0eSwgZW5keCAtIGRlc3R4
LCBlbmR5IC0gZGVzdHkpOworICAgIC8vIE5PVEU6IEZvciB1bm11bHRpcGxpZWQgaW5wdXQgZGF0
YSwgd2UgZG8gdGhlIHByZW11bHRpcGxpY2F0aW9uIGJlbG93LgorICAgIFFJbWFnZSBpbWFnZShu
dW1Db2x1bW5zLCBudW1Sb3dzLCBRSW1hZ2U6OkZvcm1hdF9BUkdCMzJfUHJlbXVsdGlwbGllZCk7
CisgICAgdWNoYXIqIGJpdHMgPSBpbWFnZS5iaXRzKCk7CisgICAgY29uc3QgaW50IGJ5dGVzUGVy
TGluZSA9IGltYWdlLmJ5dGVzUGVyTGluZSgpOwogCi0gICAgUUltYWdlOjpGb3JtYXQgZm9ybWF0
ID0gbXVsdGlwbGllZCA9PSBVbm11bHRpcGxpZWQgPyBRSW1hZ2U6OkZvcm1hdF9BUkdCMzIgOiBR
SW1hZ2U6OkZvcm1hdF9BUkdCMzJfUHJlbXVsdGlwbGllZDsKLSAgICBRSW1hZ2UgaW1hZ2UoZGVz
dFJlY3Quc2l6ZSgpLCBmb3JtYXQpOworICAgIGNvbnN0IHF1aW50MzIqIHNyY1NjYW5MaW5lID0g
cmVpbnRlcnByZXRfY2FzdDxjb25zdCBxdWludDMyKj4oc291cmNlLT5kYXRhKCktPmRhdGEoKS0+
ZGF0YSgpICsgb3JpZ2lueSAqIHNyY0J5dGVzUGVyUm93ICsgb3JpZ2lueCAqIDQpOwogCi0gICAg
dW5zaWduZWQgY2hhciogc3JjUm93cyA9IHNvdXJjZS0+ZGF0YSgpLT5kYXRhKCktPmRhdGEoKSAr
IG9yaWdpbnkgKiBzcmNCeXRlc1BlclJvdyArIG9yaWdpbnggKiA0OwotICAgIGZvciAoaW50IHkg
PSAwOyB5IDwgbnVtUm93czsgKyt5KSB7Ci0gICAgICAgIHF1aW50MzIqIHNjYW5MaW5lID0gcmVp
bnRlcnByZXRfY2FzdDxxdWludDMyKj4oaW1hZ2Uuc2NhbkxpbmUoeSkpOwotICAgICAgICBmb3Ig
KGludCB4ID0gMDsgeCA8IG51bUNvbHVtbnM7IHgrKykgewotICAgICAgICAgICAgLy8gSW1hZ2VE
YXRhIHN0b3JlcyB0aGUgcGl4ZWxzIGluIFJHQkEgd2hpbGUgUUltYWdlIGlzIEFSR0IKLSAgICAg
ICAgICAgIHF1aW50MzIgcGl4ZWwgPSByZWludGVycHJldF9jYXN0PHF1aW50MzIqPihzcmNSb3dz
ICsgNCAqIHgpWzBdOwotICAgICAgICAgICAgcGl4ZWwgPSAoKHBpeGVsIDw8IDE2KSAmIDB4ZmYw
MDAwKSB8ICgocGl4ZWwgPj4gMTYpICYgMHhmZikgfCAocGl4ZWwgJiAweGZmMDBmZjAwKTsKLSAg
ICAgICAgICAgIHNjYW5MaW5lW3hdID0gcGl4ZWw7CisgICAgaWYgKG11bHRpcGxpZWQgPT0gVW5t
dWx0aXBsaWVkKSB7CisgICAgICAgIGZvciAoaW50IHkgPSAwOyB5IDwgbnVtUm93czsgKyt5KSB7
CisgICAgICAgICAgICBxdWludDMyKiBkZXN0U2NhbkxpbmUgPSByZWludGVycHJldF9jYXN0PHF1
aW50MzIqPihiaXRzICsgeSAqIGJ5dGVzUGVyTGluZSk7CisgICAgICAgICAgICBmb3IgKGludCB4
ID0gMDsgeCA8IG51bUNvbHVtbnM7IHgrKykgeworICAgICAgICAgICAgICAgIC8vIFByZW11bHRp
cGx5IGFuZCBjb252ZXJ0IEJHUiB0byBSR0IuCisgICAgICAgICAgICAgICAgcXVpbnQzMiBwaXhl
bCA9IHNyY1NjYW5MaW5lW3hdOworICAgICAgICAgICAgICAgIGRlc3RTY2FuTGluZVt4XSA9IHBy
ZW11bHRpcGx5KCgocGl4ZWwgPDwgMTYpICYgMHhmZjAwMDApIHwgKChwaXhlbCA+PiAxNikgJiAw
eGZmKSB8IChwaXhlbCAmIDB4ZmYwMGZmMDApKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IHNyY1NjYW5MaW5lICs9IHNvdXJjZS0+d2lkdGgoKTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7
CisgICAgICAgIGZvciAoaW50IHkgPSAwOyB5IDwgbnVtUm93czsgKyt5KSB7CisgICAgICAgICAg
ICBxdWludDMyKiBkZXN0U2NhbkxpbmUgPSByZWludGVycHJldF9jYXN0PHF1aW50MzIqPihiaXRz
ICsgeSAqIGJ5dGVzUGVyTGluZSk7CisgICAgICAgICAgICBmb3IgKGludCB4ID0gMDsgeCA8IG51
bUNvbHVtbnM7IHgrKykgeworICAgICAgICAgICAgICAgIC8vIENvbnZlcnQgQkdSIHRvIFJHQi4K
KyAgICAgICAgICAgICAgICBxdWludDMyIHBpeGVsID0gc3JjU2NhbkxpbmVbeF07CisgICAgICAg
ICAgICAgICAgZGVzdFNjYW5MaW5lW3hdID0gKChwaXhlbCA8PCAxNikgJiAweGZmMDAwMCkgfCAo
KHBpeGVsID4+IDE2KSAmIDB4ZmYpIHwgKHBpeGVsICYgMHhmZjAwZmYwMCk7CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICBzcmNTY2FuTGluZSArPSBzb3VyY2UtPndpZHRoKCk7CiAgICAgICAg
IH0KLQotICAgICAgICBzcmNSb3dzICs9IHNyY0J5dGVzUGVyUm93OwogICAgIH0KIAogICAgIGJv
b2wgaXNQYWludGluZyA9IGRhdGEubV9wYWludGVyLT5pc0FjdGl2ZSgpOwpAQCAtMjk5LDcgKzMy
NCw3IEBAIHZvaWQgcHV0SW1hZ2VEYXRhKEltYWdlRGF0YSomIHNvdXJjZSwgY29uc3QgSW50UmVj
dCYgc291cmNlUmVjdCwgY29uc3QgSW50UG9pbnQmCiAgICAgfQogCiAgICAgZGF0YS5tX3BhaW50
ZXItPnNldENvbXBvc2l0aW9uTW9kZShRUGFpbnRlcjo6Q29tcG9zaXRpb25Nb2RlX1NvdXJjZSk7
Ci0gICAgZGF0YS5tX3BhaW50ZXItPmRyYXdJbWFnZShkZXN0UmVjdCwgaW1hZ2UpOworICAgIGRh
dGEubV9wYWludGVyLT5kcmF3SW1hZ2UoZGVzdHgsIGRlc3R5LCBpbWFnZSk7CiAKICAgICBpZiAo
IWlzUGFpbnRpbmcpCiAgICAgICAgIGRhdGEubV9wYWludGVyLT5lbmQoKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>