2012-06-25 3 views
3

Недавно я обновил приложение DirectX 11 (C++) для поддержки двух мониторов с поддержкой двух окон. С тех пор, когда я пытаюсь отлаживать любой пиксель в PIX отладчике, я получаю следующее сообщение об ошибке:PIX DirectX 11 Ошибка отладки пикселя

A call that previously succeeded failed during playback: 

EID: 1375 
Call: IDXGIFactory::CreateSwapChain() 
HRESULT: DXGI_ERROR_INVALID_CALL 

For more information click 'Help'. 

Я больше не использую D3D11CreateDeviceAndSwapChain, но вместо того, чтобы с помощью D3D11CreateDevice, а затем CreateSwapChain создавать отдельный своп цепь для каждого из двух окон (по одному на монитор). Я использовал образец SDK MultiMon10 в качестве ссылки при внесении изменений, однако я все еще могу отлаживать пиксели без ошибок при запуске проекта образца MultiMon10 через PIX. Таким образом, это не просто вопрос «CreateSwapChain», не являющийся PIX-дружественным.

Любые идеи, что может вызвать эту ошибку? Отладка пикселей и переход по шейдерам помогли мне в прошлом, и я не хотел бы терять эту способность.

+0

Вы когда-нибудь находили решение? У меня такая же проблема. –

+0

Извините, я так и не нашел решение. С тех пор я использовал nVidia's NSight для графической отладки. Это хорошо, но вам нужно использовать два компьютера - один для запуска отладчика, а другой для запуска программного обеспечения. Это связано с тем, что он позволяет отлаживать код в реальном времени на вашем графическом процессоре, поэтому он останавливает GPU (и, следовательно, дисплей) компьютера, на котором запущено программное обеспечение. –

ответ

0

Похоже, я сталкиваюсь с той же проблемой. Это также происходит с Visual Studio 2012 Graphics Debug. Должно быть что-то с CreateSwapChain в режиме отладки DX.

Я использовал Intel's GPA tool вместо этого, чтобы обойти эту проблему. Мне это очень полезно. Его можно использовать для отладки на том же компьютере или с помощью модели клиент/сервер.