1

我正在像这样创建我的交换链

ComPtr<IDXGIFactory4> factory;
CreateDXGIFactory1(__uuidof(IDXGIFactory4), (void**)&factory);

DXGI_SWAP_CHAIN_DESC scd;
ZeroMemory(&scd, sizeof(DXGI_SWAP_CHAIN_DESC));
scd.BufferCount = 2;
scd.BufferDesc.Width = mWidth;
scd.BufferDesc.Height = mHeight;
scd.BufferDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM;
scd.OutputWindow = mHwnd;
scd.Windowed = true;
scd.SwapEffect = DXGI_SWAP_EFFECT_FLIP_DISCARD;
scd.SampleDesc.Count = 1;
scd.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT;

ComPtr<IDXGISwapChain> swapchain;
factory->CreateSwapChain(mQueue.Get(), &scd, &swapchain);

在 Debug 模式下,这工作正常,但在 Release(在 x86 或 x64 中), CreateSwapChain 返回DXGI_ERROR_INVALID_CALL.

谁能向我解释为什么它在调试模式下工作,而不是在发布模式下工作?

谢谢!

注意:我使用的是 Direct3D 12

4

1 回答 1

1

我找到了解决方案!耶 :)

我忘了链接 DX12 库....

于 2015-09-11T12:58:12.760 回答