<?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>99332</bug_id>
          
          <creation_ts>2012-10-15 08:36:09 -0700</creation_ts>
          <short_desc>[WK2][CAIRO] Use cairo_format_stride_for_width() in ShareableBitmap</short_desc>
          <delta_ts>2012-10-15 14:00:55 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://cairographics.org/manual/cairo-Image-Surfaces.html#cairo-image-surface-create-for-data</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>cgarcia</cc>
    
    <cc>kenneth</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>mrobinson</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yael</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>742066</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-10-15 08:36:09 -0700</bug_when>
    <thetext>Cairo implementation of ShareableBitmap calls cairo_image_surface_create_for_data(data, format, width, height, stride) to create an image surface for the provided pixel data.

The Cairo documentation states:
&quot;Note that the stride may be larger than width*bytes_per_pixel to provide proper alignment for each pixel and row. This alignment is required to allow high-performance rendering within cairo. The correct way to obtain a legal stride value is to call cairo_format_stride_for_width() with the desired format and maximum image width value, and then use the resulting stride value to allocate the data and to create the image surface.&quot;

However, the current implementation always uses &quot;m_size.width() * 4&quot; for stride argument, instead of calling cairo_format_stride_for_width(). This may affect rendering performance in cairo.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>742069</commentid>
    <comment_count>1</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-10-15 08:38:03 -0700</bug_when>
    <thetext>Sounds sane to fix this</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>742084</commentid>
    <comment_count>2</comment_count>
      <attachid>168722</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-10-15 08:45:00 -0700</bug_when>
    <thetext>Created attachment 168722
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>742396</commentid>
    <comment_count>3</comment_count>
      <attachid>168722</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-15 14:00:50 -0700</bug_when>
    <thetext>Comment on attachment 168722
Patch

Clearing flags on attachment: 168722

Committed r131354: &lt;http://trac.webkit.org/changeset/131354&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>742397</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-15 14:00:55 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168722</attachid>
            <date>2012-10-15 08:45:00 -0700</date>
            <delta_ts>2012-10-15 14:00:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>99332_cairo_stride.patch</filename>
            <type>text/plain</type>
            <size>5362</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBkMjEyYzYyLi44NjVkMDcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkg
QEAKKzIwMTItMTAtMTUgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVs
LmNvbT4KKworICAgICAgICBbV0syXVtDQUlST10gVXNlIGNhaXJvX2Zvcm1hdF9zdHJpZGVfZm9y
X3dpZHRoKCkgaW4gU2hhcmVhYmxlQml0bWFwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD05OTMzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIENhaXJvIGltcGxlbWVudGF0aW9uIG9mIFNoYXJlYWJsZUJpdG1h
cCBpcyBjYWxsaW5nCisgICAgICAgIGNhaXJvX2ltYWdlX3N1cmZhY2VfY3JlYXRlX2Zvcl9kYXRh
KCkgdG8gY3JlYXRlIGFuIGltYWdlIHN1cmZhY2UgZm9yCisgICAgICAgIHRoZSBwcm92aWRlZCBw
aXhlbCBkYXRhLiBIb3dldmVyLCBpdCB3YXMgcGFzc2luZyAibV9zaXplLndpZHRoKCkgKiA0Igor
ICAgICAgICBmb3IgdGhlIHN0cmlkZSBhcmd1bWVudCBpbnN0ZWFkIG9mIGNhbGxpbmcKKyAgICAg
ICAgY2Fpcm9fZm9ybWF0X3N0cmlkZV9mb3Jfd2lkdGgoKS4KKworICAgICAgICBUaGUgQ2Fpcm8g
ZG9jdW1lbnRhdGlvbiBzdGF0ZXM6CisgICAgICAgICJOb3RlIHRoYXQgdGhlIHN0cmlkZSBtYXkg
YmUgbGFyZ2VyIHRoYW4gd2lkdGgqYnl0ZXNfcGVyX3BpeGVsIHRvCisgICAgICAgIHByb3ZpZGUg
cHJvcGVyIGFsaWdubWVudCBmb3IgZWFjaCBwaXhlbCBhbmQgcm93LiBUaGlzIGFsaWdubWVudCBp
cworICAgICAgICByZXF1aXJlZCB0byBhbGxvdyBoaWdoLXBlcmZvcm1hbmNlIHJlbmRlcmluZyB3
aXRoaW4gY2Fpcm8uIFRoZSBjb3JyZWN0CisgICAgICAgIHdheSB0byBvYnRhaW4gYSBsZWdhbCBz
dHJpZGUgdmFsdWUgaXMgdG8gY2FsbAorICAgICAgICBjYWlyb19mb3JtYXRfc3RyaWRlX2Zvcl93
aWR0aCgpIHdpdGggdGhlIGRlc2lyZWQgZm9ybWF0IGFuZCBtYXhpbXVtCisgICAgICAgIGltYWdl
IHdpZHRoIHZhbHVlLCBhbmQgdGhlbiB1c2UgdGhlIHJlc3VsdGluZyBzdHJpZGUgdmFsdWUgdG8g
YWxsb2NhdGUKKyAgICAgICAgdGhlIGRhdGEgYW5kIHRvIGNyZWF0ZSB0aGUgaW1hZ2Ugc3VyZmFj
ZS4iCisKKyAgICAgICAgVGhpcyBwYXRjaCBjYWxscyBjYWlyb19mb3JtYXRfc3RyaWRlX2Zvcl93
aWR0aCgpIGlzIFNoYXJlYWJsZUJpdG1hcAorICAgICAgICBpbiBvcmRlciB0byBvYnRhaW4gYSBs
ZWdhbCBzdHJpZGUgdmFsdWUgdG8gbWFrZSBzdXJlIHdlIHByb3ZpZGUgcHJvcGVyCisgICAgICAg
IGFsaWdubWVudCBmb3IgZWFjaCBwaXhlbCBhbmQgcm93LCBhbmQgYWxsb3cgaGlnaC1wZXJmb3Jt
YW5jZSByZW5kZXJpbmcKKyAgICAgICAgd2l0aGluIGNhaXJvLgorCisgICAgICAgICogU2hhcmVk
L1NoYXJlYWJsZUJpdG1hcC5oOgorICAgICAgICAoU2hhcmVhYmxlQml0bWFwKToKKyAgICAgICAg
KiBTaGFyZWQvY2Fpcm8vU2hhcmVhYmxlQml0bWFwQ2Fpcm8uY3BwOgorICAgICAgICAoV2ViS2l0
KToKKyAgICAgICAgKFdlYktpdDo6U2hhcmVhYmxlQml0bWFwOjpudW1CeXRlc0ZvclNpemUpOgor
ICAgICAgICAoV2ViS2l0OjpjcmVhdGVTdXJmYWNlRnJvbURhdGEpOgorICAgICAgICAoV2ViS2l0
OjpTaGFyZWFibGVCaXRtYXA6OnBhaW50KToKKyAgICAgICAgKFdlYktpdDo6U2hhcmVhYmxlQml0
bWFwOjpjcmVhdGVDYWlyb1N1cmZhY2UpOgorCiAyMDEyLTEwLTE1ICBTaW1vbiBIYXVzbWFubiAg
PHNpbW9uLmhhdXNtYW5uQGRpZ2lhLmNvbT4KIAogICAgICAgICBbUXRdIFNlcGFyYXRlIFF0IFdl
YktpdCBpbnRvIFF0IFdlYktpdCBhbmQgUXQgV2ViS2l0IFdpZGdldHMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9TaGFyZWFibGVCaXRtYXAuaCBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9TaGFyZWFibGVCaXRtYXAuaAppbmRleCBlMWViYzJlLi4yYWYyMjhlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2hhcmVhYmxlQml0bWFwLmgKKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL1NoYXJlYWJsZUJpdG1hcC5oCkBAIC0xNDMsNyArMTQzLDExIEBAIHByaXZh
dGU6CiAgICAgU2hhcmVhYmxlQml0bWFwKGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBGbGFncywg
dm9pZCopOwogICAgIFNoYXJlYWJsZUJpdG1hcChjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgRmxh
Z3MsIFBhc3NSZWZQdHI8U2hhcmVkTWVtb3J5Pik7CiAKKyNpZiBVU0UoQ0FJUk8pCisgICAgc3Rh
dGljIHNpemVfdCBudW1CeXRlc0ZvclNpemUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpOworI2Vs
c2UKICAgICBzdGF0aWMgc2l6ZV90IG51bUJ5dGVzRm9yU2l6ZShjb25zdCBXZWJDb3JlOjpJbnRT
aXplJiBzaXplKSB7IHJldHVybiBzaXplLndpZHRoKCkgKiBzaXplLmhlaWdodCgpICogNDsgfQor
I2VuZGlmCiAKICNpZiBVU0UoQ0cpCiAgICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IGNyZWF0ZUNH
SW1hZ2UoQ0dEYXRhUHJvdmlkZXJSZWYpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL2NhaXJvL1NoYXJlYWJsZUJpdG1hcENhaXJvLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9jYWlyby9TaGFyZWFibGVCaXRtYXBDYWlyby5jcHAKaW5kZXggMDJlOTY5ZS4uN2Qy
YzQ0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL2NhaXJvL1NoYXJlYWJsZUJp
dG1hcENhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvY2Fpcm8vU2hhcmVhYmxl
Qml0bWFwQ2Fpcm8uY3BwCkBAIC0zOCw2ICszOCwxOSBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK3N0YXRpYyBjb25zdCBjYWlyb19mb3JtYXRfdCBj
YWlyb0Zvcm1hdCA9IENBSVJPX0ZPUk1BVF9BUkdCMzI7CisKK3NpemVfdCBTaGFyZWFibGVCaXRt
YXA6Om51bUJ5dGVzRm9yU2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzaXplKQoreworICAg
IHJldHVybiBjYWlyb19mb3JtYXRfc3RyaWRlX2Zvcl93aWR0aChjYWlyb0Zvcm1hdCwgc2l6ZS53
aWR0aCgpKSAqIHNpemUuaGVpZ2h0KCk7Cit9CisKK3N0YXRpYyBpbmxpbmUgUGFzc1JlZlB0cjxj
YWlyb19zdXJmYWNlX3Q+IGNyZWF0ZVN1cmZhY2VGcm9tRGF0YSh2b2lkKiBkYXRhLCBjb25zdCBX
ZWJDb3JlOjpJbnRTaXplJiBzaXplKQoreworICAgIGNvbnN0IGludCBzdHJpZGUgPSBjYWlyb19m
b3JtYXRfc3RyaWRlX2Zvcl93aWR0aChjYWlyb0Zvcm1hdCwgc2l6ZS53aWR0aCgpKTsKKyAgICBy
ZXR1cm4gYWRvcHRSZWYoY2Fpcm9faW1hZ2Vfc3VyZmFjZV9jcmVhdGVfZm9yX2RhdGEoc3RhdGlj
X2Nhc3Q8dW5zaWduZWQgY2hhcio+KGRhdGEpLCBjYWlyb0Zvcm1hdCwgc2l6ZS53aWR0aCgpLCBz
aXplLmhlaWdodCgpLCBzdHJpZGUpKTsKK30KKwogUGFzc093blB0cjxHcmFwaGljc0NvbnRleHQ+
IFNoYXJlYWJsZUJpdG1hcDo6Y3JlYXRlR3JhcGhpY3NDb250ZXh0KCkKIHsKICAgICBSZWZQdHI8
Y2Fpcm9fc3VyZmFjZV90PiBpbWFnZSA9IGNyZWF0ZUNhaXJvU3VyZmFjZSgpOwpAQCAtNDcsMTAg
KzYwLDcgQEAgUGFzc093blB0cjxHcmFwaGljc0NvbnRleHQ+IFNoYXJlYWJsZUJpdG1hcDo6Y3Jl
YXRlR3JhcGhpY3NDb250ZXh0KCkKIAogdm9pZCBTaGFyZWFibGVCaXRtYXA6OnBhaW50KEdyYXBo
aWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgSW50UG9pbnQmIGRzdFBvaW50LCBjb25zdCBJbnRS
ZWN0JiBzcmNSZWN0KQogewotICAgIFJlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IHN1cmZhY2UgPSBh
ZG9wdFJlZihjYWlyb19pbWFnZV9zdXJmYWNlX2NyZWF0ZV9mb3JfZGF0YShzdGF0aWNfY2FzdDx1
bnNpZ25lZCBjaGFyKj4oZGF0YSgpKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0FJUk9f
Rk9STUFUX0FSR0IzMiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9zaXplLndpZHRoKCks
IG1fc2l6ZS5oZWlnaHQoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9zaXplLndpZHRo
KCkgKiA0KSk7CisgICAgUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gc3VyZmFjZSA9IGNyZWF0ZVN1
cmZhY2VGcm9tRGF0YShkYXRhKCksIG1fc2l6ZSk7CiAgICAgRmxvYXRSZWN0IGRlc3RSZWN0KGRz
dFBvaW50LCBzcmNSZWN0LnNpemUoKSk7CiAgICAgY29udGV4dC5wbGF0Zm9ybUNvbnRleHQoKS0+
ZHJhd1N1cmZhY2VUb0NvbnRleHQoc3VyZmFjZS5nZXQoKSwgZGVzdFJlY3QsIHNyY1JlY3QsICZj
b250ZXh0KTsKIH0KQEAgLTY3LDEwICs3Nyw3IEBAIHZvaWQgU2hhcmVhYmxlQml0bWFwOjpwYWlu
dChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGZsb2F0IHNjYWxlRmFjdG9yLCBjb25zdCBJCiAK
IFBhc3NSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBTaGFyZWFibGVCaXRtYXA6OmNyZWF0ZUNhaXJv
U3VyZmFjZSgpCiB7Ci0gICAgUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gaW1hZ2UgPSBhZG9wdFJl
ZihjYWlyb19pbWFnZV9zdXJmYWNlX2NyZWF0ZV9mb3JfZGF0YShzdGF0aWNfY2FzdDx1bnNpZ25l
ZCBjaGFyKj4oZGF0YSgpKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENBSVJPX0ZPUk1BVF9B
UkdCMzIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3NpemUud2lkdGgoKSwgbV9zaXplLmhl
aWdodCgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9zaXplLndpZHRoKCkgKiA0KSk7Cisg
ICAgUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gaW1hZ2UgPSBjcmVhdGVTdXJmYWNlRnJvbURhdGEo
ZGF0YSgpLCBtX3NpemUpOwogCiAgICAgcmVmKCk7IC8vIEJhbGFuY2VkIGJ5IGRlcmVmIGluIHJl
bGVhc2VTdXJmYWNlRGF0YS4KICAgICBzdGF0aWMgY2Fpcm9fdXNlcl9kYXRhX2tleV90IGRhdGFL
ZXk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>