[2.1] RenderingAPIException: Failed to create frame fence

Discussion area about developing with Ogre-Next (2.1, 2.2 and beyond)


Post Reply
rujialiu
Goblin
Posts: 296
Joined: Mon May 09, 2016 8:21 am
x 35

[2.1] RenderingAPIException: Failed to create frame fence

Post by rujialiu »

Hi!

Our software is working on most of our customers' computer, but some of them are receiving the RenderingAPIException: Failed to create frame fence. Most of them are Intel integrated graphics cards, which is below our minimum requirement. However, today a customer with GTX940M also failed. His laptop cannot open even the simplest scene we have. Here is the trimmed Ogre.log

Code: Select all

12:00:48: CPU Identifier & Features
12:00:48: -------------------------
12:00:48:  *   CPU ID: GenuineIntel: Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz
12:00:48:  *   Logical cores: 8
12:00:48:  *      SSE: yes
12:00:48:  *     SSE2: yes
12:00:48:  *     SSE3: yes
12:00:48:  *      MMX: yes
12:00:48:  *   MMXEXT: yes
12:00:48:  *    3DNOW: no
12:00:48:  * 3DNOWEXT: no
12:00:48:  *     CMOV: yes
12:00:48:  *      TSC: yes
12:00:48:  *      FPU: yes
12:00:48:  *      PRO: yes
12:00:48:  *       HT: no
12:00:48: -------------------------
12:00:48: D3D11 : Subsystem Initialising
12:00:48: ***************************************
12:00:48: *** D3D11 : Subsystem Initialized OK ***
12:00:48: ***************************************
...
12:00:48: RenderSystem capabilities
12:00:48: -------------------------
12:00:48: RenderSystem Name: Direct3D11 Rendering Subsystem
12:00:48: GPU Vendor: nvidia
12:00:48: Device Name: NVIDIA GeForce 940MX_0
12:00:48: Driver Version: 21.21.13.6937
12:00:48:  * Fixed function pipeline: no
12:00:48:  * Hardware generation of mipmaps: yes
12:00:48:  * Texture blending: yes
12:00:48:  * Anisotropic texture filtering: yes
12:00:48:  * Dot product texture operation: yes
12:00:48:  * Cube mapping: yes
12:00:48:  * Hardware stencil buffer: yes
12:00:48:    - Stencil depth: 8
12:00:48:    - Two sided stencil support: yes
12:00:48:    - Wrap stencil values: yes
12:00:48:  * Hardware vertex / index buffers: yes
12:00:48:  * 32-bit index buffers: yes
12:00:48:  * Vertex programs: yes
12:00:48:  * Number of floating-point constants for vertex programs: 512
12:00:48:  * Number of integer constants for vertex programs: 16
12:00:48:  * Number of boolean constants for vertex programs: 16
12:00:48:  * Fragment programs: yes
12:00:48:  * Number of floating-point constants for fragment programs: 512
12:00:48:  * Number of integer constants for fragment programs: 16
12:00:48:  * Number of boolean constants for fragment programs: 16
12:00:48:  * Geometry programs: yes
12:00:48:  * Number of floating-point constants for geometry programs: 512
12:00:48:  * Number of integer constants for geometry programs: 16
12:00:48:  * Number of boolean constants for geometry programs: 16
12:00:48:  * Tessellation Hull programs: yes
12:00:48:  * Number of floating-point constants for tessellation hull programs: 512
12:00:48:  * Number of integer constants for tessellation hull programs: 16
12:00:48:  * Number of boolean constants for tessellation hull programs: 16
12:00:48:  * Tessellation Domain programs: yes
12:00:48:  * Number of floating-point constants for tessellation domain programs: 512
12:00:48:  * Number of integer constants for tessellation domain programs: 16
12:00:48:  * Number of boolean constants for tessellation domain programs: 16
12:00:48:  * Compute programs: yes
12:00:48:  * Number of floating-point constants for compute programs: 512
12:00:48:  * Number of integer constants for compute programs: 16
12:00:48:  * Number of boolean constants for compute programs: 16
12:00:48:  * Supported Shader Profiles: cs_4_0 cs_4_1 cs_5_0 ds_5_0 gs_4_0 gs_4_1 gs_5_0 hlsl hs_5_0 ps_4_0 ps_4_0_level_9_1 ps_4_0_level_9_3 ps_4_1 ps_5_0 vs_4_0 vs_4_0_level_9_1 vs_4_0_level_9_3 vs_4_1 vs_5_0
12:00:48:  * Texture Compression: yes
12:00:48:    - DXT: yes
12:00:48:    - VTC: no
12:00:48:    - PVRTC: no
12:00:48:    - ATC: no
12:00:48:    - ETC1: no
12:00:48:    - ETC2: no
12:00:48:    - BC4/BC5: yes
12:00:48:    - BC6H/BC7: yes
12:00:48:    - ASTC: no
12:00:48:  * Hardware Occlusion Query: yes
12:00:48:  * User clip planes: yes
12:00:48:  * VET_UBYTE4 vertex element type: yes
12:00:48:  * Infinite far plane projection: yes
12:00:48:  * Hardware render-to-texture: yes
12:00:48:  * Floating point textures: yes
12:00:48:  * Non-power-of-two textures: yes
12:00:48:  * 1d textures: yes
12:00:48:  * Volume textures: yes
12:00:48:  * Max Texture resolution (2D) 16384
12:00:48:  * Max Texture resolution (3D) 2048
12:00:48:  * Max Texture resolution (Cubemaps) 16384
12:00:48:  * Multiple Render Targets: 8
12:00:48:    - With different bit depths: yes
12:00:48:  * Point Sprites: yes
12:00:48:  * Extended point parameters: yes
12:00:48:  * Max Point Size: 256
12:00:48:  * Vertex texture fetch: yes
12:00:48:  * Number of world matrices: 0
12:00:48:  * Number of texture units: 16
12:00:48:  * Stencil buffer depth: 8
12:00:48:  * Number of vertex blend matrices: 0
12:00:48:    - Max vertex textures: 4
12:00:48:    - Vertex textures shared: no
12:00:48:  * Render to Vertex Buffer : yes
12:00:48:  * Hardware Atomic Counters: no
12:00:48: DefaultWorkQueue('Root') initialising on thread main.
...
12:00:53: OGRE EXCEPTION(3:RenderingAPIException): Failed to create frame fence.
Error code: -2005270523.
hr = 0x887A0005
 in D3D11VaoManager::_update at C:\ogremygui\OGRE\RenderSystems\Direct3D11\src\Vao\OgreD3D11VaoManager.cpp (line 1476)
12:00:53: OGRE EXCEPTION(3:RenderingAPIException): Failed to create frame fence.
Error code: -2005270523.
hr = 0x887A0005
 in D3D11VaoManager::_update at C:\ogremygui\OGRE\RenderSystems\Direct3D11\src\Vao\OgreD3D11VaoManager.cpp (line 1476)
12:00:53: OGRE EXCEPTION(3:RenderingAPIException): Failed to create frame fence.
Error code: -2005270523.
hr = 0x887A0005
 in D3D11VaoManager::_update at C:\ogremygui\OGRE\RenderSystems\Direct3D11\src\Vao\OgreD3D11VaoManager.cpp (line 1476)
Our released software is using Ogre 2.1 in June 2018 (with fake area lights). His GPU has 2048MB RAM (GPU-Z said)
Anyone has some thoughts or similar experience? Thanks!
User avatar
dark_sylinc
OGRE Team Member
OGRE Team Member
Posts: 5296
Joined: Sat Jul 21, 2007 4:55 pm
Location: Buenos Aires, Argentina
x 1278
Contact:

Re: [2.1] RenderingAPIException: Failed to create frame fence

Post by dark_sylinc »

Hi!

The error code 0x887A0005 is key.

It corresponds to DXGI_ERROR_DEVICE_REMOVED. We could enhance the error reporting to include what GetDeviceRemoved says.

In this case the most likely scenarios are:
  • Missing Windows Update updates
  • Needs DirectX update
  • Needs a driver update (or sometimes... a downgrade). If it has multiple GPUs, make sure the customer upgrades both GPUs' drivers. According to the internet, driver 21.21.13.6937 is from Feb 4 2017. It probably hasn't had a driver update since it was bought.
  • The system has two GPUs (e.g. Intel integrated + NVIDIA), and the Monitor is only hooked to the Intel card, which can cause trouble with the NV card if no monitor is hooked to it.
  • The system is an Optimus laptop. This is the source of lots of problems. Perhaps your app needs to be whitelisted in NVIDIA's control panel or the app must be run via Right Click -> Run with NVIDIA. Something that may help, export NvOptimusEnablement symbol in your application (I can't remember if it should be exported in your app, or D3D11's RenderSystem, or both).
  • Third party applications interfering. Apps like MSI Afterburner, Plays.tv and Mumble hook onto D3D11 calls and modify them to "enhance" the experience.
  • The monitor cable is loose
  • The system is overclocked or overheating.
  • The GPU is actually dying. Doubtful.
Post Reply