| 144 | } |
| 145 | |
| 146 | void Shutdown() |
| 147 | { |
| 148 | Assert_(CurrentCPUFrame == CurrentGPUFrame); |
| 149 | ShuttingDown = true; |
| 150 | |
| 151 | for(uint64 i = 0; i < ArraySize_(DeferredReleases); ++i) |
| 152 | ProcessDeferredReleases(i); |
| 153 | |
| 154 | FrameFence.Shutdown(); |
| 155 | |
| 156 | for(uint64 i = 0; i < RenderLatency; ++i) |
| 157 | Release(CmdAllocators[i]); |
| 158 | |
| 159 | Release(CmdList); |
| 160 | Release(GfxQueue); |
| 161 | Release(Factory); |
| 162 | Release(Adapter); |
| 163 | |
| 164 | Shutdown_Upload(); |
| 165 | Shutdown_Helpers(); |
| 166 | |
| 167 | #if BreakOnDXError_ |
| 168 | if(Device != nullptr) |
| 169 | { |
| 170 | ID3D12InfoQueuePtr infoQueue; |
| 171 | DXCall(Device->QueryInterface(IID_PPV_ARGS(&infoQueue))); |
| 172 | infoQueue->SetBreakOnSeverity(D3D12_MESSAGE_SEVERITY_WARNING, FALSE); |
| 173 | infoQueue->SetBreakOnSeverity(D3D12_MESSAGE_SEVERITY_ERROR, FALSE); |
| 174 | } |
| 175 | #endif |
| 176 | |
| 177 | #if UseDebugDevice_ && 0 |
| 178 | if(Device != nullptr) |
| 179 | { |
| 180 | ID3D12DebugDevicePtr debugDevice; |
| 181 | DXCall(Device->QueryInterface(IID_PPV_ARGS(&debugDevice))); |
| 182 | debugDevice->ReportLiveDeviceObjects(D3D12_RLDO_DETAIL); |
| 183 | } |
| 184 | #endif |
| 185 | |
| 186 | Release(Device); |
| 187 | } |
| 188 | |
| 189 | void BeginFrame() |
| 190 | { |
no test coverage detected