зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1345648 - Add BREAK_ON_D3D_ERROR to DeviceManagerDx - r=kvark
MozReview-Commit-ID: DgHPXgjOi3f
This commit is contained in:
Родитель
5b899ebc2d
Коммит
4cce4a821f
|
@ -367,6 +367,8 @@ DeviceManagerDx::CreateCompositorDevice(FeatureState& d3d11)
|
|||
mCompositorDevice->SetExceptionMode(0);
|
||||
}
|
||||
|
||||
//#define BREAK_ON_D3D_ERROR
|
||||
|
||||
bool
|
||||
DeviceManagerDx::CreateDevice(IDXGIAdapter* aAdapter,
|
||||
D3D_DRIVER_TYPE aDriverType,
|
||||
|
@ -374,6 +376,10 @@ DeviceManagerDx::CreateDevice(IDXGIAdapter* aAdapter,
|
|||
HRESULT& aResOut,
|
||||
RefPtr<ID3D11Device>& aOutDevice)
|
||||
{
|
||||
#ifdef BREAK_ON_D3D_ERROR
|
||||
aFlags |= D3D11_CREATE_DEVICE_DEBUG;
|
||||
#endif
|
||||
|
||||
MOZ_SEH_TRY {
|
||||
aResOut = sD3D11CreateDeviceFn(
|
||||
aAdapter, aDriverType, nullptr,
|
||||
|
@ -383,6 +389,26 @@ DeviceManagerDx::CreateDevice(IDXGIAdapter* aAdapter,
|
|||
} MOZ_SEH_EXCEPT (EXCEPTION_EXECUTE_HANDLER) {
|
||||
return false;
|
||||
}
|
||||
|
||||
#ifdef BREAK_ON_D3D_ERROR
|
||||
do {
|
||||
if (!aOutDevice)
|
||||
break;
|
||||
|
||||
RefPtr<ID3D11Debug> debug;
|
||||
if(!SUCCEEDED( aOutDevice->QueryInterface(__uuidof(ID3D11Debug), getter_AddRefs(debug)) ))
|
||||
break;
|
||||
|
||||
RefPtr<ID3D11InfoQueue> infoQueue;
|
||||
if(!SUCCEEDED( debug->QueryInterface(__uuidof(ID3D11InfoQueue), getter_AddRefs(infoQueue)) ))
|
||||
break;
|
||||
|
||||
infoQueue->SetBreakOnSeverity(D3D11_MESSAGE_SEVERITY_CORRUPTION, true);
|
||||
infoQueue->SetBreakOnSeverity(D3D11_MESSAGE_SEVERITY_ERROR, true);
|
||||
infoQueue->SetBreakOnSeverity(D3D11_MESSAGE_SEVERITY_WARNING, true);
|
||||
} while (false);
|
||||
#endif
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче