C++ 无法在DirectX11中创建深度模具

C++ 无法在DirectX11中创建深度模具,c++,directx,directx-11,C++,Directx,Directx 11,我有以下代码: D3D11_TEXTURE2D_DESC descDepth; memset(&descDepth, 0, sizeof(descDepth)); descDepth.Width = width; descDepth.Height = height; descDepth.MipLevels = 1; descDepth.ArraySize = 1; descDepth.Format = DXGI_FORMAT_D24_UNORM_S8_UINT; descDepth.Sa

我有以下代码:

D3D11_TEXTURE2D_DESC descDepth;
memset(&descDepth, 0, sizeof(descDepth));
descDepth.Width = width;
descDepth.Height = height;
descDepth.MipLevels = 1;
descDepth.ArraySize = 1;
descDepth.Format = DXGI_FORMAT_D24_UNORM_S8_UINT;
descDepth.SampleDesc.Count = 1;
descDepth.SampleDesc.Quality = 0;
descDepth.Usage = D3D11_USAGE_DEFAULT;
descDepth.BindFlags = D3D11_BIND_DEPTH_STENCIL;
descDepth.CPUAccessFlags = 0;
descDepth.MiscFlags = 0;
hr = g_d3dDevice->CreateTexture2D(&descDepth, nullptr, &g_depthStencil);

无效参数
错误。我真的不知道有什么问题。我以前使用过这段代码,一切正常。

如果在设备创建时打开调试层,您应该在日志中发现
DXGI\u格式\u D24\u UNORM\u S8\u UINT
不是纹理格式,您需要使用
DXGI\u FORMAT\u R24\u UNORM\u X8\u TYPELESS
用于纹理,另一个用于深度模具视图。

尝试启用调试层。它应该为您提供有关呼叫失败的更详细描述。也许可以为
SampleDesc.Count
尝试不同的数字。另外,您是如何定义g_depthStencil的?@rashmatash
ID3D11Texture2D*
@RossRidge我已经启用了调试层。但是在哪里可以找到日志文件?您需要在调试器下运行它才能查看调试消息。我正在使用
DXGI\u格式\u D24\u UNORM\u S8\u UINT
,现在一切正常。它失败了,因为高度为零。