Copy link to clipboard
Copied
Hello.
We are implementing a plugin that use GPU for it's internal rendering, So far, we implemented succesfully OpenGL and D3D11 renderers.
currently in the process of implementing the D3D12 renderer, while iterating over the different adapters (like described here:https://docs.microsoft.com/en-us/windows/win32/api/d3d12/nf-d3d12-d3d12createdevice ), we stumble upon a DXGI_ERROR_DEVICE_RESET that block us from getting the device.
After a quick talk with the DirectX12 guys, they stated that:
Direct3D 12 devices are singletons per adapter. If a Direct3D 12 device already exists in the current process for a given adapter, then a subsequent call to D3D12CreateDevice returns the existing device.
If the current Direct3D 12 device is in a removed state, then D3D12CreateDevice fails instead of returning the existing device.
Is there any internal query of After Effects to D3D12 Device that could cause this state ?
Tested on two different computers (one AMD; one NVidia GPU) with Adobe After Effects v18.2 - Both with no additional plugins.
1 Correct answer
We finally figured it out;
After Effects has the debug layer disabled for public released builds and our code was trying to force enable it; it was causing the DXGI_ERROR_DEVICE_RESET mentionned above.
Thanks for those who helped us getting that piece of info;
Pro-tip: If you want to develop with the debug layer on:
- with DirectX Control panel (accessible via visual studio Debug->Graphics->DirectX Control panel)
- Click on Scope->Edit List...-> Add : AfterFX.exe
- Then Direct3D/DXGI Debug Layer: Cho
...Copy link to clipboard
Copied
We finally figured it out;
After Effects has the debug layer disabled for public released builds and our code was trying to force enable it; it was causing the DXGI_ERROR_DEVICE_RESET mentionned above.
Thanks for those who helped us getting that piece of info;
Pro-tip: If you want to develop with the debug layer on:
- with DirectX Control panel (accessible via visual studio Debug->Graphics->DirectX Control panel)
- Click on Scope->Edit List...-> Add : AfterFX.exe
- Then Direct3D/DXGI Debug Layer: Choose the `Force On` Option and voila ! You got your debug logs.
Copy link to clipboard
Copied
Thank you for sharing. This resolves my issue that consumed by weekends!

