Closed
Bug 1410766
Opened 8 years ago
Closed 8 years ago
GPUProcessManager::SimulateDeviceReset() causes GetDXGIAdapter() nullptr
Categories
(Core :: Graphics, enhancement, P3)
Core
Graphics
Tracking
()
RESOLVED
FIXED
mozilla58
People
(Reporter: sotaro, Assigned: sotaro)
References
Details
(Whiteboard: [gfx-noted])
Attachments
(1 file, 3 obsolete files)
6.21 KB,
patch
|
sotaro
:
review+
|
Details | Diff | Splinter Review |
I saw the following log when GPUProcessManager::SimulateDeviceReset() was called during GPU process was enabled on windows. It is because GetDXGIAdapter() returned nullptr.
- [GFX1-]: Could not get a DXGI adapter
Assignee | ||
Updated•8 years ago
|
Assignee: nobody → sotaro.ikeda.g
Assignee | ||
Updated•8 years ago
|
Component: Graphics: Layers → Graphics
Assignee | ||
Comment 1•8 years ago
|
||
GPUProcessManager::SimulateDeviceReset() calls GPUProcessManager::OnRemoteProcessDeviceReset(), but SimulateDeviceReset() does not trigger updating devices in GPU process.
https://dxr.mozilla.org/mozilla-central/source/gfx/ipc/GPUProcessManager.cpp#418
Assignee | ||
Comment 2•8 years ago
|
||
(In reply to Sotaro Ikeda [:sotaro] from comment #0)
> It is because GetDXGIAdapter() returned nullptr.
>
> - [GFX1-]: Could not get a DXGI adapter
DeviceManagerDx::GetDXGIAdapter() failed to create DXGIAdapter, since all fields of mDeviceStatus->adapter() were 0.
Assignee | ||
Comment 3•8 years ago
|
||
Assignee | ||
Comment 4•8 years ago
|
||
Assignee | ||
Updated•8 years ago
|
Attachment #8920928 -
Flags: review?(dvander)
Updated•8 years ago
|
status-firefox56:
--- → wontfix
status-firefox57:
--- → wontfix
status-firefox58:
--- → fix-optional
Priority: -- → P3
Whiteboard: [gfx-noted]
Comment on attachment 8920928 [details] [diff] [review]
patch - Re-acquireDevices in gpu process when SimulateDeviceReset() is called
Review of attachment 8920928 [details] [diff] [review]:
-----------------------------------------------------------------
::: gfx/ipc/PGPU.ipdl
@@ +77,5 @@
> async RemoveLayerTreeIdMapping(LayerTreeIdMapping mapping);
>
> // Request the current DeviceStatus from the GPU process. This blocks until
> // one is available (i.e., Init has completed).
> + sync GetDeviceStatus(bool reacquireDevices) returns (GPUDeviceData status);
The functionality seems fine, but please add it in a new message instead of using GetDeviceStatus.
Attachment #8920928 -
Flags: review?(dvander)
Assignee | ||
Comment 6•8 years ago
|
||
Attachment #8920928 -
Attachment is obsolete: true
Assignee | ||
Comment 7•8 years ago
|
||
Attachment #8922140 -
Attachment is obsolete: true
Assignee | ||
Comment 8•8 years ago
|
||
Assignee | ||
Updated•8 years ago
|
Attachment #8922141 -
Flags: review?(dvander)
Comment on attachment 8922141 [details] [diff] [review]
patch - Re-acquireDevices in gpu process when SimulateDeviceReset() is called
Review of attachment 8922141 [details] [diff] [review]:
-----------------------------------------------------------------
Thanks!
Attachment #8922141 -
Flags: review?(dvander) → review+
Comment 10•8 years ago
|
||
Pushed by sikeda@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/6eac731d5c33
Re-acquireDevices in gpu process when SimulateDeviceReset() is called r=dvander
Comment 11•8 years ago
|
||
Backed out 1 changesets (bug 1410766) for failing Reftest in reftest/tests/layout/reftests/bugs/409084-1a.html r=backout
https://hg.mozilla.org/integration/mozilla-inbound/rev/4f573aaf7650829998fa393ccf788e9c04b4d3c2
https://treeherder.mozilla.org/#/jobs?repo=mozilla-inbound&revision=6eac731d5c33a24ef8d69a410554f201ab21a9ab&filter-classifiedState=unclassified&filter-resultStatus=testfailed&filter-resultStatus=busted&filter-resultStatus=exception
Flags: needinfo?(sotaro.ikeda.g)
Comment 12•8 years ago
|
||
Pretty sure the backout was incorrect.
https://treeherder.mozilla.org/#/jobs?repo=mozilla-inbound&filter-searchStr=osx%20reftest&group_state=expanded&fromchange=92767404525aaee96990e37309cb2791fa3d1911&tochange=4f573aaf7650829998fa393ccf788e9c04b4d3c2
The reftest failure happens on the previous push as well but because of coalescing the reftest didn't run on that push until I backfilled it. I triggered the reftest job on the backout push as well so let's see if it persists.
Flags: needinfo?(acraciun)
Comment 13•8 years ago
|
||
Pushed by archaeopteryx@coole-files.de:
https://hg.mozilla.org/integration/mozilla-inbound/rev/817727beee91
Re-acquireDevices in gpu process when SimulateDeviceReset() is called r=dvander
![]() |
||
Comment 14•8 years ago
|
||
Sorry about that, relanded that push and backed out bug 1411860 and bug 1411886 from the previous push instead.
Flags: needinfo?(sotaro.ikeda.g)
Flags: needinfo?(acraciun)
![]() |
||
Comment 15•8 years ago
|
||
Backed out for leak - only on Windows 10?
https://hg.mozilla.org/integration/mozilla-inbound/rev/d7d02c88c7ba1d210364d296162f3ac2740672c4
See e.g. https://treeherder.mozilla.org/#/jobs?repo=mozilla-inbound&revision=e863dc231d0095d0cc7bc1ddbf83a51c6958c343&filter-resultStatus=usercancel&filter-resultStatus=runnable&filter-resultStatus=retry&filter-resultStatus=testfailed&filter-resultStatus=busted&filter-resultStatus=exception
Failure log: https://treeherder.mozilla.org/logviewer.html#?job_id=139970845&repo=mozilla-inbound
12:38:42 INFO - TEST-PASS | leakcheck | default process: no leaks detected!
12:38:42 INFO -
12:38:42 INFO - == BloatView: ALL (cumulative) LEAK AND BLOAT STATISTICS, gpu process 5176
12:38:42 INFO -
12:38:42 INFO - |<----------------Class--------------->|<-----Bytes------>|<----Objects---->|
12:38:42 INFO - | | Per-Inst Leaked| Total Rem|
12:38:42 INFO - 0 |TOTAL | 22 512| 949963 8|
12:38:42 INFO - 25 |DeviceAttachmentsD3D11 | 336 336| 1 1|
12:38:42 INFO - 112 |SyncObjectHost | 16 16| 3 1|
12:38:42 INFO - 120 |TextureHost | 40 40| 189 1|
12:38:42 INFO - 123 |TextureSource | 32 64| 827 2|
12:38:42 INFO - 124 |TextureSourceProvider | 40 40| 6 1|
12:38:42 INFO - 162 |nsTArray_base | 8 16| 133223 2|
12:38:42 INFO -
12:38:42 INFO - nsTraceRefcnt::DumpStatistics: 169 entries
12:38:42 INFO - TEST-INFO | leakcheck | gpu process: leaked 1 DeviceAttachmentsD3D11
12:38:42 INFO - TEST-INFO | leakcheck | gpu process: leaked 1 SyncObjectHost
12:38:42 INFO - TEST-INFO | leakcheck | gpu process: leaked 1 TextureHost
12:38:42 INFO - TEST-INFO | leakcheck | gpu process: leaked 2 TextureSource
12:38:42 INFO - TEST-INFO | leakcheck | gpu process: leaked 1 TextureSourceProvider
12:38:42 INFO - TEST-INFO | leakcheck | gpu process: leaked 2 nsTArray_base
12:38:42 ERROR - TEST-UNEXPECTED-FAIL | leakcheck | gpu process: 512 bytes leaked (DeviceAttachmentsD3D11, SyncObjectHost, TextureHost, TextureSource, TextureSourceProvider, ...)
12:38:42 INFO -
12:38:42 INFO - == BloatView: ALL (cumulative) LEAK AND BLOAT STATISTICS, tab process 2804
12:38:42 INFO -
12:38:42 INFO - |<----------------Class--------------->|<-----Bytes------>|<----Objects---->|
12:38:42 INFO - | | Per-Inst Leaked| Total Rem|
12:38:42 INFO - 0 |TOTAL | 51 20| 42290 2|
12:38:42 INFO - 488 |nsStringBuffer | 12 12| 15663 1|
12:38:42 INFO - 524 |nsTArray_base | 8 8| 7978 1|
12:38:42 INFO -
12:38:42 INFO - nsTraceRefcnt::DumpStatistics: 573 entries
12:38:42 INFO - TEST-INFO | leakcheck | tab process: leaked 1 nsStringBuffer
12:38:42 INFO - TEST-INFO | leakcheck | tab process: leaked 1 nsTArray_base
12:38:42 WARNING - leakcheck | tab process: 20 bytes leaked (nsStringBuffer, nsTArray_base)
Flags: needinfo?(sotaro.ikeda.g)
Assignee | ||
Comment 16•8 years ago
|
||
(In reply to Sebastian Hengst [:aryx][:archaeopteryx] (needinfo on intermittent or backout) from comment #15)
> Backed out for leak - only on Windows 10?
Thanks. I am going to look into the leak.
Flags: needinfo?(sotaro.ikeda.g)
Assignee | ||
Comment 17•8 years ago
|
||
Assignee | ||
Updated•8 years ago
|
Attachment #8924869 -
Flags: review+
Assignee | ||
Comment 19•8 years ago
|
||
Comment 20•8 years ago
|
||
Pushed by sikeda@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/a5a2ae162869
Re-acquireDevices in gpu process when SimulateDeviceReset() is called r=dvander
![]() |
||
Comment 21•8 years ago
|
||
bugherder |
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla58
You need to log in
before you can comment on or make changes to this bug.
Description
•