Bug 39139

Summary: Pages that use hardware acceleration don't repaint after waking computer from sleep
Product: WebKit Reporter: Adam Roben (:aroben) <aroben>
Component: Layout and RenderingAssignee: Adam Roben (:aroben) <aroben>
Status: RESOLVED FIXED    
Severity: Normal CC: cmarrin, enrica, eric, simon.fraser
Priority: P2 Keywords: InRadar, PlatformOnly
Version: 528+ (Nightly build)   
Hardware: PC   
OS: Windows XP   
URL: http://webkit.org/blog-files/3d-transforms/poster-circle.html
Bug Depends on: 39159    
Bug Blocks:    
Attachments:
Description Flags
Periodically try to reset a lost IDirect3DDevice9 until we succeed sullivan: review+

Adam Roben (:aroben)
Reported 2010-05-14 14:51:38 PDT
To reproduce: 1. Go to <http://webkit.org/blog-files/3d-transforms/poster-circle.html> 2. Put your computer to sleep 3. Wake the computer back up The page never repaints (until you navigate somewhere else, or reload). The problem is that WKCACFLayerRenderer doesn't respond to lost devices correctly. See <http://msdn.microsoft.com/en-us/library/bb174714(v=VS.85).aspx>.
Attachments
Periodically try to reset a lost IDirect3DDevice9 until we succeed (13.10 KB, patch)
2010-05-15 06:18 PDT, Adam Roben (:aroben)
sullivan: review+
Adam Roben (:aroben)
Comment 1 2010-05-14 14:52:02 PDT
Adam Roben (:aroben)
Comment 2 2010-05-15 06:18:15 PDT
Created attachment 56151 [details] Periodically try to reset a lost IDirect3DDevice9 until we succeed
John Sullivan
Comment 3 2010-05-15 07:34:25 PDT
Comment on attachment 56151 [details] Periodically try to reset a lost IDirect3DDevice9 until we succeed > - resetDevice(); > + resetDevice(ChangedWindowSize); Is it worth asserting that this call returns true? r+
Eric Seidel (no email)
Comment 4 2010-05-16 00:37:26 PDT
Attachment 56151 [details] was posted by a committer and has review+, assigning to Adam Roben for commit.
Adam Roben (:aroben)
Comment 5 2010-05-17 07:58:00 PDT
(In reply to comment #3) > (From update of attachment 56151 [details]) > > - resetDevice(); > > + resetDevice(ChangedWindowSize); > > Is it worth asserting that this call returns true? No. Resetting might fail at this point (e.g., if the device became lost sometime since the last time we rendered), so we can't assert that it doesn't. But we don't need to worry here whether it failed or not; if it did fail, we'll try to reset again before we next render. I'll add a comment about this. Thanks for the review!
Adam Roben (:aroben)
Comment 6 2010-05-17 08:06:16 PDT
Note You need to log in before you can comment on or make changes to this bug.