4

I'm writing a CAD application using OpenGL (not DirectX). When running the debug build on Windows 8 Pro (64bit), the following messages are printed to the debugger's console windows before the application terminates correctly:

DXGI WARNING: Process is terminating. Using simple reporting. Please call ReportLiveObjects() at runtime for standard reporting. [ STATE_CREATION WARNING #0: ]
DXGI WARNING: Live Producer at 0x0000009E51808AD8, Refcount: 2. [ STATE_CREATION WARNING #0: ]
DXGI WARNING:   Live Object at 0x0000009E5180A570, Refcount: 2. [ STATE_CREATION WARNING #0: ]
DXGI WARNING: Live                         Object :      1 [ STATE_CREATION WARNING #0: ]

I have no idea where this is coming from. DXGI seems to be related to DirectX, which I'm not using. Any hints?


Update

Following Paul-Jan's advice, I enabled device debugging, which produces the following messages:

D3D11 INFO: Create ID3D11Context: Name="unnamed", Addr=0x00000015EEB486D0, ExtRef=1, IntRef=0 [ STATE_CREATION INFO #2097225: CREATE_CONTEXT]
D3D11 INFO: Create ID3DDeviceContextState: Name="unnamed", Addr=0x00000015EE96DE70, ExtRef=1, IntRef=0 [ STATE_CREATION INFO #3145735: CREATE_DEVICECONTEXTSTATE]
D3D11 INFO: Create ID3D11BlendState: Name="unnamed", Addr=0x00000015EE97B6A0, ExtRef=1, IntRef=0 [ STATE_CREATION INFO #2097270: CREATE_BLENDSTATE]
D3D11 INFO: Create ID3D11DepthStencilState: Name="unnamed", Addr=0x00000015EE9799F0, ExtRef=1, IntRef=0 [ STATE_CREATION INFO #2097273: CREATE_DEPTHSTENCILSTATE]
D3D11 INFO: Create ID3D11RasterizerState: Name="unnamed", Addr=0x00000015EE97B340, ExtRef=1, IntRef=0 [ STATE_CREATION INFO #2097276: CREATE_RASTERIZERSTATE]
D3D11 INFO: Create ID3D11Sampler: Name="unnamed", Addr=0x00000015EE97AE30, ExtRef=1, IntRef=0 [ STATE_CREATION INFO #2097267: CREATE_SAMPLER]
D3D11 INFO: Create ID3D11Query: Name="unnamed", Addr=0x00000015F25D3060, ExtRef=1, IntRef=0 [ STATE_CREATION INFO #2097279: CREATE_QUERY]
D3D11 INFO: Create ID3D11Texture2D: Name="unnamed", Addr=0x00000015EEB8CA50, ExtRef=1, IntRef=0 [ STATE_CREATION INFO #2097234: CREATE_TEXTURE2D]
D3D11 INFO: Create ID3D11Texture2D: Name="unnamed", Addr=0x00000015EA313BF0, ExtRef=1, IntRef=0 [ STATE_CREATION INFO #2097234: CREATE_TEXTURE2D]
D3D11 INFO: Create ID3D11Texture2D: Name="unnamed", Addr=0x00000015EEB41EC0, ExtRef=1, IntRef=0 [ STATE_CREATION INFO #2097234: CREATE_TEXTURE2D]
D3D11 INFO: Destroy ID3D11Texture2D: Name="unnamed", Addr=0x00000015EA313BF0 [ STATE_CREATION INFO #2097236: DESTROY_TEXTURE2D]
D3D11 INFO: Destroy ID3D11Texture2D: Name="unnamed", Addr=0x00000015EEB41EC0 [ STATE_CREATION INFO #2097236: DESTROY_TEXTURE2D]
D3D11 INFO: Destroy ID3D11Texture2D: Name="unnamed", Addr=0x00000015EEB8CA50 [ STATE_CREATION INFO #2097236: DESTROY_TEXTURE2D]
D3D11 WARNING: Process is terminating. Using simple reporting. Please call ReportLiveObjects() at runtime for standard reporting. [ STATE_CREATION WARNING #0: UNKNOWN]
D3D11 WARNING: Live Producer at 0x00000015EEA57E08, Refcount: 3. [ STATE_CREATION WARNING #0: UNKNOWN]
D3D11 WARNING:  Live Object at 0x00000015EEB486D0, Refcount: 1. [ STATE_CREATION WARNING #0: UNKNOWN]
D3D11 WARNING:  Live Object at 0x00000015EE96DE70, Refcount: 0. [ STATE_CREATION WARNING #0: UNKNOWN]
D3D11 WARNING:  Live Object at 0x00000015EE97B6A0, Refcount: 0. [ STATE_CREATION WARNING #0: UNKNOWN]
D3D11 WARNING:  Live Object at 0x00000015EE9799F0, Refcount: 0. [ STATE_CREATION WARNING #0: UNKNOWN]
D3D11 WARNING:  Live Object at 0x00000015EE97B340, Refcount: 0. [ STATE_CREATION WARNING #0: UNKNOWN]
D3D11 WARNING:  Live Object at 0x00000015EE97AE30, Refcount: 0. [ STATE_CREATION WARNING #0: UNKNOWN]
D3D11 WARNING:  Live Object at 0x00000015F25D3060, Refcount: 0. [ STATE_CREATION WARNING #0: UNKNOWN]
D3D11 WARNING: Live                         Object :      7 [ STATE_CREATION WARNING #0: UNKNOWN]

DXGI WARNING: Process is terminating. Using simple reporting. Please call ReportLiveObjects() at runtime for standard reporting. [ STATE_CREATION WARNING #0: ]
DXGI WARNING: Live Producer at 0x00000015F25D2EB8, Refcount: 2. [ STATE_CREATION WARNING #0: ]
DXGI WARNING:   Live Object at 0x00000015EE9AF870, Refcount: 2. [ STATE_CREATION WARNING #0: ]
DXGI WARNING: Live                         Object :      1 [ STATE_CREATION WARNING #0: ]
Daniel Gehriger
  • 7,339
  • 2
  • 34
  • 55

2 Answers2

6

In Windows Vista and above, both DirectX and OpenGL actually work through DXGI. DXGI manages the devices. The actual rendering API used (OpenGL / DirectX) is called a producer in DXGI speak, so we can safely assume the message is about your generic OpenGL usage.

As it complains about both a producer and a live object having a referencecount of 2, could it be you are not destroying your OpenGL context properly? (i.e. succesfully calling wglMakeCurrent( NULL ) and wglDeleteContext) Such an ommission would not be a practical problem at all as both get implicity destroyed at proces termination, but would warrant a warning.

Paul-Jan
  • 16,746
  • 1
  • 63
  • 95
  • 1
    Thanks for you explanation! But no, my application correctly calls `wglMakeCurrent(NULL)` and `wglDeleteContext`. Maybe it's a bug in the driver? – Daniel Gehriger Nov 15 '12 at 11:58
  • 1
    Could be! I think you can safely assume these warnings are spurious and harmless, but if you are curious (I know I am!), you could try enabling Device Debugging from the DirectX Control Panel (see http://blog.rthand.com/post/2010/10/25/Capture-DirectX-1011-debug-output-to-Visual-Studio.aspx for instructions). This might provide the same information as calling "reportLiveObjects()" in a DX application would. – Paul-Jan Nov 15 '12 at 12:50
  • Thanks - I'll try that. If I manage to install DirectX Control Panel on Windows 8. – Daniel Gehriger Nov 15 '12 at 16:03
  • They are part of the Windows 8 SDK (see http://msdn.microsoft.com/en-us/library/windows/desktop/ee663275(v=vs.85).aspx). – Paul-Jan Nov 15 '12 at 18:52
  • Yes, thanks, I've installed it and updated my question with the result. Not very conclusive though. – Daniel Gehriger Nov 16 '12 at 08:11
0

I ran into the same warning information (ReportLiveObjects, Live Producer, Live Object, STATE_CREATION WARNING #0: UNKNOWN,.....) with you, in a project with DirectX 11. But this information was not informative enough for me, and to you, I think.

For my project, the problem turned out to be that the texture file (.dds) has an incompatible format with other parts of my program, so the program cannot load the texture correctly. After I converted it into the correct format. This warning info went away.

So my conclusion here, is that you may need to use some debugging techniques, such as breaking points, logging, etc., in order to trace what the real problem is in your case.

Peihui
  • 118
  • 1
  • 12