渲染目标描述如下,我的应用程序在调用CreateTexture2D时崩溃,但着色器资源没有任何问题。
CD3D11_TEXTURE2D_DESC renderTargetDesc(
DXGI_FORMAT_R8_UNORM,
static_cast<UINT>(m_renderTargetSize.Width),
static_cast<UINT>(m_renderTargetSize.Height),
1,
1,
D3D11_BIND_RENDER_TARGET
);
m_d3dDevice->CreateTexture2D(
&renderTargetDesc,
nullptr,
&m_renderTarget
);
但我发现渲染目标支持DXGI_FORMAT_R8_UNORM格式:http://msdn.microsoft.com/en-us/library/windows/desktop/hh404483(v=vs.85).aspx
谁能告诉我问题出在哪里?非常感谢!
答案 0 :(得分:0)
并非所有硬件都相同,您应首先使用ID3D11Device::CheckFormatSupport
{{1}}检查使用情况。
现代GPU非常不支持渲染每像素少于32位的内容。 Windows驱动程序也更有可能在引擎盖后面提供缺失功能的仿真,而不是在应该仔细检查性能和电池消耗的手机上。
您应该在设备创建时添加调试层标志并查看控制台日志,您将看到与呼叫无效参数相关的错误消息。