D3D12 IDXGISwapChain :: Присутствует сбой при настройке полноэкранного режима - PullRequest
0 голосов
/ 19 февраля 2020

Я пытался переключиться между полноэкранным и оконным режимами в dx12, и программа вылетает, когда я вызываю IDXGISwapChain :: Present ()

В результате возвращается IDXGISwapChain :: Present. Это происходит только тогда, когда я устанавливаю полноэкранный режим, вызывая IDXGISwapChain :: SetFullscreenState

. Я проверил всю инициализацию и все возвращаемые результаты - S_OK (createSwapchain, очередь команд и т. Д. c). Я также прочитал документы MSDN. Согласно документам: «D3D12 поддерживает ограничение, согласно которому приложения должны вызывать ResizeBuffers после перехода между оконным и полноэкранным режимами (цепочки обмена флип-модели D3D11 имеют те же ограничения)."

"Когда IDXGISwapChain1 :: Present1 вызывается, задний буфер, который должен быть представлен, должен находиться в состоянии D3D12_RESOURCE_STATE_PRESENT. При сбое представления с DXGI_ERROR_INVALID_CALL произойдет сбой.

Полноэкранные цепочки подкачки по-прежнему имеют ограничение SetFullscreenState (FALSE, NULL ) должен вызываться до окончательного выпуска цепочки подкачки. SetFullscreenState (FALSE) успешно выполняется на цепочках подкачки, работающих на устройствах D3D12. "

Я проверил их, и все они выглядят нормально.

Теперь я понятия не имею, почему возникает ошибка. Кто-нибудь может дать мне направление? Спасибо.

...