RESOLVED DUPLICATE of bug 170640 170408
Asynchronously decoded image frames should not be destroyed when switching encoded data buffers
https://bugs.webkit.org/show_bug.cgi?id=170408
Summary Asynchronously decoded image frames should not be destroyed when switching en...
Said Abou-Hallawa
Reported 2017-04-03 11:38:10 PDT
When switching the encoded data buffers, it would be better if we could somehow tell the ImageDecoder to swap in the new contents without destroying anything. But right now the native ImageDecoder does not have a mechanism to do that so WebKit simply destroys all the decoded frames and then deletes the ImageDecoder itself. Then it sets the new data in the ImageSource which will recreate a new ImageDecoder. For async image decoding, this aggressive flushing mechanism is not actually needed. The asynchronously decoded image frames are owned by WebKit. They are not referenced by the native ImageDecoder. Destroying them and re-decoding them again will generate exactly the same image frames. More importantly, destroying the decoded image frames, can cause flickering because the image can not be drawn till the second decode finish.
Attachments
Patch (23.56 KB, patch)
2017-04-03 12:34 PDT, Said Abou-Hallawa
no flags
Archive of layout-test-results from ews112 for mac-elcapitan (369.58 KB, application/zip)
2017-04-03 13:34 PDT, Build Bot
no flags
Patch (23.76 KB, patch)
2017-04-03 15:07 PDT, Said Abou-Hallawa
no flags
Said Abou-Hallawa
Comment 1 2017-04-03 11:39:30 PDT
Said Abou-Hallawa
Comment 2 2017-04-03 12:34:48 PDT
Simon Fraser (smfr)
Comment 3 2017-04-03 12:42:18 PDT
Comment on attachment 306095 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=306095&action=review > Source/WebCore/platform/graphics/Image.h:72 > +enum class ImageFrameDestroyScope { Maybe ImageFramesToDestroy or ImageFrameDestroyBehavior > Source/WebCore/platform/graphics/Image.h:77 > + Shared It's not clear what "Shared" means here. Shared with whom?
Build Bot
Comment 4 2017-04-03 13:34:49 PDT
Comment on attachment 306095 [details] Patch Attachment 306095 [details] did not pass mac-debug-ews (mac): Output: http://webkit-queues.webkit.org/results/3466706 Number of test failures exceeded the failure limit.
Build Bot
Comment 5 2017-04-03 13:34:50 PDT
Created attachment 306102 [details] Archive of layout-test-results from ews112 for mac-elcapitan The attached test failures were seen while running run-webkit-tests on the mac-debug-ews. Bot: ews112 Port: mac-elcapitan Platform: Mac OS X 10.11.6
Said Abou-Hallawa
Comment 6 2017-04-03 15:07:37 PDT
Said Abou-Hallawa
Comment 7 2017-04-03 15:09:02 PDT
Comment on attachment 306095 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=306095&action=review >> Source/WebCore/platform/graphics/Image.h:72 >> +enum class ImageFrameDestroyScope { > > Maybe ImageFramesToDestroy or ImageFrameDestroyBehavior I renamed it to ImageFrameDestroyBehavior. >> Source/WebCore/platform/graphics/Image.h:77 >> + Shared > > It's not clear what "Shared" means here. Shared with whom? I renamed Shared to Synchronous.
Said Abou-Hallawa
Comment 8 2017-04-10 10:35:50 PDT
If we prevent deleting the decoded frames of the images in the viewport then there is no need for this bug. *** This bug has been marked as a duplicate of bug 170640 ***
Note You need to log in before you can comment on or make changes to this bug.