Closed
Bug 599675
Opened 14 years ago
Closed 14 years ago
d3d device lost detection needs more work
Categories
(Core :: Graphics, defect)
Tracking
()
RESOLVED
FIXED
Tracking | Status | |
---|---|---|
blocking2.0 | --- | beta7+ |
People
(Reporter: vlad, Assigned: bas.schouten)
Details
Attachments
(1 file)
963 bytes,
patch
|
vlad
:
review+
|
Details | Diff | Splinter Review |
I see consistent lockup of my browser window if a GPU reset occurs. Win 7 64-bit, another app is doing the GPU reset, nvidia 260.61 drivers. 17:53 < vlad> Bas: so this hang, it is ThebesLayerD3D9::DrawRegion calling cairo_d2d_finish_device, which in turn does: 17:53 < vlad> while (!done) { if (FAILED(query->GetData(&done, sizeof(BOOL), 0)) break; } 17:53 < vlad> that is never failing, and is never setting done to true 17:54 < vlad> I am guessing we should be checking for device lost inside that loop I think it has to be done inside the loop, because the async nature of things means that the reset might not happen until we're actually executing that loop.
Reporter | ||
Updated•14 years ago
|
blocking2.0: --- → ?
Assignee | ||
Comment 1•14 years ago
|
||
That's bad, the function should 'fail' as soon as the device is lost, rather than return S_FALSE for not having the data! (and it seems to do that on my machine) But I guess that isn't very reliable then! D3D10 layers should take care of this but in the meanwhile we might want to insert a check for DeviceRemovedReason and break is that returns some form of device loss.
Assignee | ||
Comment 2•14 years ago
|
||
This takes care of breaking out of the loop when a device is lost.
Reporter | ||
Updated•14 years ago
|
Attachment #478661 -
Flags: review?(vladimir) → review+
blocking2.0: ? → beta7+
Assignee | ||
Comment 3•14 years ago
|
||
http://hg.mozilla.org/mozilla-central/rev/e6ae83018a7c
Status: ASSIGNED → RESOLVED
Closed: 14 years ago
Resolution: --- → FIXED
You need to log in
before you can comment on or make changes to this bug.
Description
•