<?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>77923</bug_id>
          
          <creation_ts>2012-02-06 18:36:20 -0800</creation_ts>
          <short_desc>[chromium] Allow retaining texture across frames in composited video playback and correctly handle lost context</short_desc>
          <delta_ts>2012-02-07 17:28:26 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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></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="James Robinson">jamesr</reporter>
          <assigned_to name="James Robinson">jamesr</assigned_to>
          <cc>cc-bugs</cc>
    
    <cc>fischman</cc>
    
    <cc>vangelis</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>550513</commentid>
    <comment_count>0</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-02-06 18:36:20 -0800</bug_when>
    <thetext>[chromium] Allow retaining texture across frames in composited video playback and correctly handle lost context</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550515</commentid>
    <comment_count>1</comment_count>
      <attachid>125748</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-02-06 18:38:07 -0800</bug_when>
    <thetext>Created attachment 125748
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550517</commentid>
    <comment_count>2</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-02-06 18:40:06 -0800</bug_when>
    <thetext>This improves the composited video playback a good bit. It depends on http://trac.webkit.org/changeset/106840, in case we want to merge this.

Ami - we avoid regressing lost context case for other types of content by adding layout tests like LayoutTests/platform/chromium/compositing/lost-compositor-context*. I&apos;d like to do the same for html5 video but am not sure how to make a reliable layout test involving video playback, do you have any hints or suggestions or pointers to similar tests that I could copy? I&apos;d like to make sure we draw at least one frame, lost the compositor context, then draw at least one more frame from the video.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550518</commentid>
    <comment_count>3</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-02-06 18:41:19 -0800</bug_when>
    <thetext>Actually, depends on http://trac.webkit.org/changeset/106891 as well since I&apos;m using ManagedTexture::setTextureManager()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550533</commentid>
    <comment_count>4</comment_count>
    <who name="Ami Fischman">fischman</who>
    <bug_when>2012-02-06 19:00:04 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; This improves the composited video playback a good bit.

OOC, how do you observe this?

&gt; Ami - we avoid regressing lost context case for other types of content by adding layout tests like LayoutTests/platform/chromium/compositing/lost-compositor-context*.

Oooh, nice.

&gt; I&apos;d like to do the same for html5 video but am not sure how to make a reliable layout test involving video playback, do you have any hints or suggestions or pointers to similar tests that I could copy? I&apos;d like to make sure we draw at least one frame, lost the compositor context, then draw at least one more frame from the video.

http://trac.webkit.org/browser/trunk/LayoutTests/media/ is where most video-related layouttests live.  
I think you could have a reliable test by seeking a video that hasn&apos;t been play()&apos;d yet to a known spot, losing the context, and seeking to another spot, asserting the expected currentTime when the latter &apos;seeked&apos; event fires.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550534</commentid>
    <comment_count>5</comment_count>
    <who name="Ami Fischman">fischman</who>
    <bug_when>2012-02-06 19:00:39 -0800</bug_when>
    <thetext>Also, the patch lgtm, fwiw.  Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550631</commentid>
    <comment_count>6</comment_count>
      <attachid>125748</attachid>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2012-02-06 22:18:46 -0800</bug_when>
    <thetext>Comment on attachment 125748
Patch

Looks great!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>551386</commentid>
    <comment_count>7</comment_count>
      <attachid>125748</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2012-02-07 14:18:25 -0800</bug_when>
    <thetext>Comment on attachment 125748
Patch

rs=me based on Vangelis&apos;s review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>551391</commentid>
    <comment_count>8</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-02-07 14:20:45 -0800</bug_when>
    <thetext>Committed r106992: &lt;http://trac.webkit.org/changeset/106992&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>551595</commentid>
    <comment_count>9</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-02-07 17:28:26 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #2)
&gt; &gt; This improves the composited video playback a good bit.
&gt; 
&gt; OOC, how do you observe this?

I should clarify - it improves the behavior I see in tracing (there aren&apos;t any new textures created) but I haven&apos;t measured any framerate improvement or anything like that.

&gt; 
&gt; &gt; Ami - we avoid regressing lost context case for other types of content by adding layout tests like LayoutTests/platform/chromium/compositing/lost-compositor-context*.
&gt; 
&gt; Oooh, nice.
&gt; 
&gt; &gt; I&apos;d like to do the same for html5 video but am not sure how to make a reliable layout test involving video playback, do you have any hints or suggestions or pointers to similar tests that I could copy? I&apos;d like to make sure we draw at least one frame, lost the compositor context, then draw at least one more frame from the video.
&gt; 
&gt; http://trac.webkit.org/browser/trunk/LayoutTests/media/ is where most video-related layouttests live.  
&gt; I think you could have a reliable test by seeking a video that hasn&apos;t been play()&apos;d yet to a known spot, losing the context, and seeking to another spot, asserting the expected currentTime when the latter &apos;seeked&apos; event fires.

Added a layout test here: https://bugs.webkit.org/show_bug.cgi?id=78060 that I believe would have caught this regression</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125748</attachid>
            <date>2012-02-06 18:38:07 -0800</date>
            <delta_ts>2012-02-07 14:18:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77923-20120206183806.patch</filename>
            <type>text/plain</type>
            <size>3765</size>
            <attacher name="James Robinson">jamesr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2ODkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTdiM2M3OThiNTM2NzYw
NDQ0NzNjYTAzNTcyYTM4YzZmZjIyOTJjMC4uY2E4MTFjNGU1MzUyOWFjYjRiNzA1NDU3ODM3Nzdh
NWQ4YjE2YmIyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDIzIEBACiAyMDEyLTAyLTA2ICBKYW1l
cyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgW2Nocm9taXVtXSBB
bGxvdyByZXRhaW5pbmcgdGV4dHVyZSBhY3Jvc3MgZnJhbWVzIGluIGNvbXBvc2l0ZWQgdmlkZW8g
cGxheWJhY2sgYW5kIGNvcnJlY3RseSBoYW5kbGUgbG9zdCBjb250ZXh0CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzkyMworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoYW5rcyB0byByMTA2ODQwLCB3ZSBj
YW4gaW1wcm92ZSB0aGUgdmlkZW8gcGxheWJhY2sgbW9kZSBhIGJpdC4gSW5zdGVhZCBvZiBjcmVh
dGluZyBhIG5ldyB0ZXh0dXJlIG9uIGV2ZXJ5CisgICAgICAgIGZyYW1lLCB0aGlzIGF0dGVtcHRz
IHRvIHJldXNlIHRoZSB0ZXh0dXJlIGZyb20gdGhlIHByZXZpb3VzIGZyYW1lIHVubGVzcyB0aGUg
Y29udGV4dCBpcyBsb3N0LiBBbHNvIGltcHJvdmVzCisgICAgICAgIGVycm9yIGNoZWNraW5nIGlu
IGNhc2UgdGhlIFRleHR1cmVNYW5hZ2VyIGNhbm5vdCBzdWNjZXNzZnVsbHkgcmVzZXJ2ZSBtZW1v
cnkgZm9yIHRoZSB0ZXh0dXJlLgorCisgICAgICAgIFRlc3RlZCBtYW51YWxseSBieSBraWxsaW5n
IHRoZSBHUFUgcHJvY2VzcyB3aXRoIGFuIGh0bWw1IHZpZGVvIHBsYXlpbmcgYW5kIHZlcmlmeWlu
ZyB0aGF0IHRoZSB2aWRlbyBwbGF5YmFjaworICAgICAgICBjb250aW51ZXMgYW5kIHRoYXQgd2Ug
ZG9uJ3QgY3JlYXRlIGEgbmV3IHNldCBvZiB0ZXh0dXJlcyBmb3IgZWFjaCBwbGFuZSBvbiBlYWNo
IGZyYW1lLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NWaWRl
b0xheWVySW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ1ZpZGVvTGF5ZXJJbXBsOjpkcmF3
KToKKyAgICAgICAgKFdlYkNvcmU6OkNDVmlkZW9MYXllckltcGw6OnJlc2VydmVUZXh0dXJlcyk6
CisKKzIwMTItMDItMDYgIEphbWVzIFJvYmluc29uICA8amFtZXNyQGNocm9taXVtLm9yZz4KKwog
ICAgICAgICBbY2hyb21pdW1dIGNhbnZhcyBkZW1vIGlzIHNsb3cgZHVlIHRvIHVubmVjZXNzYXJ5
IHJlc291cmNlIGNsZWFudXBzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD03NzEzNQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ1ZpZGVvTGF5ZXJJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVmlkZW9MYXllckltcGwuY3BwCmluZGV4
IGZmODFhY2RhODI3MDcxN2RkYTZhM2MwYmU4MmU2NmE0N2UwZDgzNmIuLmVlZjBjYTNlOTQyNWI0
NmVhM2FhNTFjODdhYTI0ODlmYjNlMzQzNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVmlkZW9MYXllckltcGwuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVmlkZW9MYXllcklt
cGwuY3BwCkBAIC0xNTAsMTcgKzE1MCw4IEBAIHZvaWQgQ0NWaWRlb0xheWVySW1wbDo6ZHJhdyhM
YXllclJlbmRlcmVyQ2hyb21pdW0qIGxheWVyUmVuZGVyZXIpCiAgICAgICAgIENSQVNIKCk7IC8v
IFNvbWVvbmUgdXBkYXRlZCBjb252ZXJ0VkZDRm9ybWF0VG9HQzNERm9ybWF0IGFib3ZlIGJ1dCB1
cGRhdGUgdGhpcyEKICAgICB9CiAKLSAgICBmb3IgKHVuc2lnbmVkIHBsYW5lID0gMDsgcGxhbmUg
PCBmcmFtZS0+cGxhbmVzKCk7ICsrcGxhbmUpIHsKKyAgICBmb3IgKHVuc2lnbmVkIHBsYW5lID0g
MDsgcGxhbmUgPCBmcmFtZS0+cGxhbmVzKCk7ICsrcGxhbmUpCiAgICAgICAgIG1fdGV4dHVyZXNb
cGxhbmVdLm1fdGV4dHVyZS0+dW5yZXNlcnZlKCk7Ci0gICAgICAgIC8vIEZJWE1FOiBNYW5hZ2Vk
VGV4dHVyZSdzIHN0b3JlIGEgcmF3IHBvaW50ZXIgdG8gdGhlaXIgVGV4dHVyZU1hbmFnZXIsCi0g
ICAgICAgIC8vIGFuZCB0aGUgdGV4dHVyZXMgd2UgY3JlYXRlIHVzZSBsYXllclJlbmRlcmVyLT5y
ZW5kZXJTdXJmYWNlVGV4dHVyZU1hbmFnZXIoKS4KLSAgICAgICAgLy8gU2luY2UgdGhlcmUgaXMg
bm8gZ3VhcmFudGVlIGxheWVyUmVuZGVyZXIgd2lsbCBzdGlsbCBiZSBhbGl2ZSB0aGUKLSAgICAg
ICAgLy8gbmV4dCB0aW1lIHdlIGFyZSBjYWxsZWQsIHdlIGNsZWFyIHRoZSB0ZXh0dXJlIHJlZmVy
ZW5jZS4gSXQgd291bGQKLSAgICAgICAgLy8gYmUgbmljZSBpZiBpbnN0ZWFkIHdlIGNvdWxkIHJl
bHkgb24gdGV4dHVyZXMgYmVpbmcgaW52YWxpZGF0ZWQgd2hlbgotICAgICAgICAvLyB0aGVpciBt
YW5hZ2VyIHdhcyBkZWxldGVkIHNvIHRoYXQgbmV3IHRleHR1cmVzIGRpZG4ndCBhbHdheXMgaGF2
ZSB0bwotICAgICAgICAvLyBiZSByZWNyZWF0ZWQgZm9yIGVhY2ggZnJhbWUuCi0gICAgICAgIG1f
dGV4dHVyZXNbcGxhbmVdLm1fdGV4dHVyZS5jbGVhcigpOwotICAgIH0KICAgICBtX3Byb3ZpZGVy
LT5wdXRDdXJyZW50RnJhbWUoZnJhbWUpOwogfQogCkBAIC0yNTUsMTAgKzI0NiwxNSBAQCBib29s
IENDVmlkZW9MYXllckltcGw6OnJlc2VydmVUZXh0dXJlcyhjb25zdCBWaWRlb0ZyYW1lQ2hyb21p
dW0qIGZyYW1lLCBHQzNEZW51bQogICAgICAgICAgICAgaWYgKCFtX3RleHR1cmVzW3BsYW5lXS5t
X3RleHR1cmUpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgbV90
ZXh0dXJlc1twbGFuZV0ubV92aXNpYmxlU2l6ZSA9IEludFNpemUoKTsKKyAgICAgICAgfSBlbHNl
IHsKKyAgICAgICAgICAgIC8vIFRoZSByZW5kZXJTdXJmYWNlVGV4dHVyZU1hbmFnZXIgbWF5IGhh
dmUgYmVlbiBkZXN0cm95ZWQgYW5kIHJlY3JlYXRlZCBzaW5jZSB0aGUgbGFzdCBmcmFtZSwgc28g
cGFzcyB0aGUgbmV3IG9uZS4KKyAgICAgICAgICAgIC8vIFRoaXMgaXMgYSBuby1vcCBpZiB0aGUg
VGV4dHVyZU1hbmFnZXIgaXMgc3RpbGwgYXJvdW5kLgorICAgICAgICAgICAgbV90ZXh0dXJlc1tw
bGFuZV0ubV90ZXh0dXJlLT5zZXRUZXh0dXJlTWFuYWdlcihsYXllclJlbmRlcmVyLT5yZW5kZXJT
dXJmYWNlVGV4dHVyZU1hbmFnZXIoKSk7CiAgICAgICAgIH0KICAgICAgICAgaWYgKG1fdGV4dHVy
ZXNbcGxhbmVdLm1fdGV4dHVyZS0+c2l6ZSgpICE9IHJlcXVpcmVkVGV4dHVyZVNpemUpCiAgICAg
ICAgICAgICBtX3RleHR1cmVzW3BsYW5lXS5tX3Zpc2libGVTaXplID0gY29tcHV0ZVZpc2libGVT
aXplKGZyYW1lLCBwbGFuZSk7Ci0gICAgICAgIG1fdGV4dHVyZXNbcGxhbmVdLm1fdGV4dHVyZS0+
cmVzZXJ2ZShyZXF1aXJlZFRleHR1cmVTaXplLCBmb3JtYXQpOworICAgICAgICBpZiAoIW1fdGV4
dHVyZXNbcGxhbmVdLm1fdGV4dHVyZS0+cmVzZXJ2ZShyZXF1aXJlZFRleHR1cmVTaXplLCBmb3Jt
YXQpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICAgICByZXR1cm4gdHJ1ZTsK
IH0K
</data>
<flag name="review"
          id="127333"
          type_id="1"
          status="+"
          setter="kbr"
    />
          </attachment>
      

    </bug>

</bugzilla>