2015-09-27 15 views
19

w moim D3D 11 projektów, zawsze dodaćZastosowanie D3D11 warstwa debugowania z VS2013 w systemie Windows 10

#if (defined(DEBUG) || defined(_DEBUG)) 
deviceFlags |= D3D11_CREATE_DEVICE_DEBUG; 
#endif /* (defined(DEBUG) || defined(_DEBUG)) */ 

do flag tworzenia urządzenie, aby umożliwić wyjście debugowania. Od momentu przejścia na system Windows 10, to już nie działa. Stworzenie urządzenie zakończy się następujące dane wyjściowe:

D3D11CreateDevice: Flagi (0x2) zostały określone, które wymagają Warstwy D3D11 SDK dla systemu Windows 10, ale nie są one obecne w systemie. Te flagi muszą zostać usunięte lub musi być zainstalowany zestaw Windows 10 SDK. Flagi należą: D3D11_CREATE_DEVICE_DEBUG

Jednak nie mogę korzystać z systemu Windows 10 SDK nie mogę uaktualnić projekt z VS2013 do VS 2015 atm. Czy istnieje sposób, aby rozwiązać ten problem, tj. Czy mogę włączyć warstwę debugowania D3D11 na Windows 10 za pomocą VS2013?

Odpowiedz

40

Komunikat debugowania jest trochę mylący. W systemie Windows 10 zestaw SDK systemu Windows nie instaluje już warstwy debugowania Direct3D. Zamiast tego należy włączyć opcję opcjonalną systemu Windows o nazwie "Narzędzia graficzne", która obejmuje warstwę debugowania. Zainstalowanie VS 2015 i SDK Windows 10 na Windows 10 powinno automatycznie włączyć tę funkcję, ale możesz to zrobić bezpośrednio.

(a) panel Ustawienia -> System -> Aplikacje & funkcje -> Zarządzaj opcjonalne funkcje -> Dodaj funkcję -> wybierz "Graficzne Narzędzia"

(b) z wiersza poleceń administratora:

Dism /online /add-capability /capabilityname:Tools.Graphics.DirectX~~~~0.0.1.0 

Zobacz this post.

Należy pamiętać, że po aktualizacji z systemu Windows 10 (10240) do aktualizacji z listopada 2015 (10586) może być konieczne ponowne włączenie funkcji opcjonalnej Narzędzia graficzne.

+0

przypadku systemów z UseWUServer ustawiona na 1 (patrz [o] (https://answers.microsoft.com/en-us/windows/forum/windows_10-other_settings-winpc/windows-10-optional-features- missing/c9555e72-11ed-416a-bc65-1a8372fc27ab? auth = 1)), odpowiedź Chucka [tutaj] (https://stackoverflow.com/a/34347665/2274765) może działać, jeśli takie podejście nie ma zastosowania. –

Powiązane problemy