While rendering if the IDirect3DDevice9Ex::PresentEx method returns D3DERR_DEVICEHUNG then I release the resources and call IDirect3DDevice9Ex::ResetEx(&m_d3dParams, NULL) where m_d3dParams is of type D3DPRESENT_PARAMETERS. Unfortunately, the ResetEx method returns D3DERR_INVALIDCALL. My second parameters is NULL because I'm not in a full screen mode. How to call properly ResetEx ? Is it necessary to call ResetEx when using D3D 9Ex ? Is it not enough to simply call Reset ?
Also, is there a way to reproduce D3DERR_DEVICEHUNG error and what does this error mean ?
Thank you in advance for your help !
How to handle Direct3D 9Ex D3DERR_DEVICEHUNG error?
604 views Asked by m4d At
1
There are 1 answers
Related Questions in DIRECT3D
- Decal renderer does not discard pixels properly
- How do I dynamically change vertex colors using Direct3d 12 and Visual C++?
- Missing HLSL Debug Symbols with D3Dcompile in Visual Studio
- Unable to Display Cube in Direct3D Application
- d3d11 triangle rendering failure despite everything being properly initialized
- Anyone else notcing delays of shared d3dtexture2D betweeen two processes?
- Ternary operator with SamplerStates
- E_INVALIDARG when I encode the NV12 texture?
- How COM warning works? how does the device get initialized?
- imageStore causing crash in GL ES 3.1 Compute shader using ANGLE on windows
- How to use DirectX3D render gtk window on window platform?
- How to implement late latching in DirectX 12?
- Can I append vertexes to a default buffer using UpdateSubresources?
- Strange behaviour in google earth
- Why is D3D12GetDebugInterface failing with "no such interface supported" using Rust's windows-rs crate?
Related Questions in DIRECTX-9
- DirectX 9 With No SDK Installed - How To Translate a D3DMATRIX?
- Cannot create shared texture in D3D9 from D3D11 when using dedicated GPU
- How can I define Anti-Aliasing when creating a device in DX9?
- Fail to render in DirectX programming
- Visual Studio 2022 #include Directory does not start at the source file
- how i make the LPDIRECT3DDEVICE9 in the directX12?
- drawing 2d lines in directX9
- What do the three stars signify in this code for hooking the Direct3D EndScene call?
- How can i scale a texture to the given size in pixel with SharpDX.Direct3D9?
- Displaying text with DirectX 9 crashes after several calls
- WinUI 3 and legacy DirectX9 Component
- Make 2D Sprite Face Camera Using Vertex Shader - DirectX 9
- Direct3D9Ex function pointers mismatch
- How to use min-precision in d3d9
- imgui is not rendering with a D3D9 Hook
Related Questions in DIRECT3D9
- How to implement antialiasing in DirectShow?
- How to create a Texture2D format YV12 (DXGI_FORMAT_420_OPAQUE)
- Direct3D9 does not work without display monitor or minimizing and locking the screen
- What is expected comparison between AlphaRef and AlphaValue in D3D9?
- Call GetDeviceCaps failed when remote desktop is minimized
- d3d9 how to register software device
- How can I reliably identify when Direct3D9 "device" maps onto which Windows GDI "monitor"?
- &D3DXVECTOR3 causes error C2102 '&' requires l-value
- Direct3D9 "Clear" Function Not Clearing
- How to handle Direct3D 9Ex D3DERR_DEVICEHUNG error?
- Direct3D9 not drawing?
- How to perform alpha blending on saved raw argb videos(a image and a video will also work) using direct3d9 , direct3d10 or direct3d11?
- Direct3D 9 Z-Buffer Precision Bug occuring only in release build
- What is a data stream in DirectX 9?
- Get SharpDXException Invalid Parameters when try to create a new Texture for DirectX 9 on 32bit NVidia Quadro M1000M
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Popular Tags
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
With Direct3D 9, you are supposed to wait until
TestCooperativeLevelreturnsS_OKbefore you try toResetfrom lost device. With Direct3D9Ex, the same should be done with CheckDeviceState. Make sure you are doing this...With Direct3D9Ex, you are using "DXGI device removed" scenarios rather than the older legacy "Lost device" you got with Direct3D 9.
The modern "DXGI device removed" happens in a few cases:
A new video driver is installed while you are running a Direct3D application
Some systems (typically servers and some hybrid devices) support physical hot-swapping of video components
Other cases of failure are "DXGI device hung" or "DXGI device timeout". This typically means that there is either a driver/hardware bug -or- you submitted a very long-running compute shader (not a thing with Direct3D9Ex). You can simulate this behavior by triggering a "TDR". VS 2015 or later has a command-line tool in the Developer Command Prompt:
See Microsoft Docs.
In general, 'device removed' means everything is gone: all loaded video RAM objects, all driver state, etc. For Direct3D 10+, the only recourse is to release all Direct3D interfaces and re-create the device. For Direct3D9Ex, there's no support for
D3DPOOL_MANAGED, so you have to re-create all your resources anyhow--it at least happens a lot less often than legacy 'lost device'.In fact, the only published official sample for Direct3D9Ex doesn't even handle 'device removed'.