opengl - 在 Windows 8 上使用 OpenGL 时出现 DXGI 警告?

标签 opengl windows-8 directx dxgi

我正在使用 OpenGL(不是 DirectX)编写 CAD 应用程序。在 Windows 8 Pro(64 位)上运行调试版本时,以下消息会在应用程序正确终止之前打印到调试器的控制台窗口:

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: ]

我不知道这是从哪里来的。 DXGI 似乎与 DirectX 有关,我没有使用它。任何提示?

更新

按照 Paul-Jan 的建议,我启用了设备调试,这会产生以下消息:
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: ]

最佳答案

在 Windows Vista 及更高版本中,DirectX 和 OpenGL 实际上都通过 DXGI 工作。 DXGI 管理设备。实际使用的渲染 API(OpenGL/DirectX)称为 producer在 DXGI 中,所以我们可以放心地假设该消息是关于您的通用 OpenGL 使用的。

当它提示生产者和事件对象的引用计数均为 2 时,您是否没有正确破坏 OpenGL 上下文? (即成功调用 wglMakeCurrent( NULL )wglDeleteContext )这样的遗漏根本不是一个实际问题,因为两者都在进程终止时被隐式销毁,但需要警告。

关于opengl - 在 Windows 8 上使用 OpenGL 时出现 DXGI 警告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13387113/

相关文章:

c++ - 常量缓冲区中的纹理变换矩阵无法正常工作

opengl - 不明白 glutPostRedisplay 和 glIdleFunc

ruby-on-rails - Windows/Ruby/Rails 安装 --- .cannot load such file -- sqlite3/sqlite3_native windows

c - 如何在 Windows 8 上安装 C 编译器?我不想使用 IDE

html - 如何确定它是否是点击或单击 ListView 的元素调用事件

c++ - 关于direct3d关于D3DXCreateTextureFromFileEx的方法

c++ - 启用照明时 DirectX 9 顶点颜色会被忽略吗?

c++ - 如何在不再次渲染整个屏幕的情况下放大/缩小到 OpenGL 屏幕

c++ - 片段着色器中的纹理错误值

c - 在 OpenGL 中,我可以绘制一个恰好位于坐标 (5, 5) 的像素吗?