Men-debug aplikasi DirectX dari jarak jauh
Anda dapat menggunakan Visual Studio dan SDK Windows 8 untuk men-debug aplikasi DirectX dari jarak jauh. SDK Windows 8 menyediakan serangkaian komponen yang mendukung pengembangan DirectX dan memberikan pemeriksaan kesalahan dan validasi parameter selain penelusuran kesalahan yang disediakan Visual Studio. Komponen-komponen ini D3D11_1SDKLayers.dll, D2D1Debug1.dll, dan Dxgidebug.dll.
Jika Anda ingin men-debug dari jarak jauh di komputer tanpa SDK Windows 8 terinstal dan Anda menginginkan kemampuan penelusuran kesalahan tambahan ini, Anda harus menginstal paket penelusuran kesalahan jarak jauh yang sesuai untuk arsitektur tempat Anda ingin men-debug. Paket Penginstal Windows dalam C:\Program Files (x86)\Windows Kits\8.0\Remote\<arch>
menginstal dukungan yang sesuai.
Untuk mengaktifkan kemampuan penelusuran kesalahan tambahan untuk aplikasi Direct2D, gunakan kode ini:
D2D1_FACTORY_OPTIONS options;
ZeroMemory(&options, sizeof(D2D1_FACTORY_OPTIONS));
#if defined(_DEBUG)
// If the project is in a debug build, enable Direct2D debugging via SDK Layers.
options.debugLevel = D2D1_DEBUG_LEVEL_INFORMATION;
#endif
DX::ThrowIfFailed(
D2D1CreateFactory(
D2D1_FACTORY_TYPE_SINGLE_THREADED,
__uuidof(ID2D1Factory1),
&options,
&m_d2dFactory
)
);
Untuk mengaktifkan kemampuan penelusuran kesalahan tambahan untuk aplikasi Direct3D, gunakan kode ini:
// This flag supports surfaces with a different color channel ordering than the API default.
// It is recommended usage, and is required for compatibility with Direct2D.
UINT creationFlags = D3D11_CREATE_DEVICE_BGRA_SUPPORT;
ComPtr<IDXGIDevice> dxgiDevice;
#if defined(_DEBUG)
// If the project is in a debug build, enable debugging via SDK Layers with this flag.
creationFlags |= D3D11_CREATE_DEVICE_DEBUG;
#endif
DX::ThrowIfFailed(
D3D11CreateDevice(
nullptr, // specify null to use the default adapter
D3D_DRIVER_TYPE_HARDWARE,
0, // leave as 0 unless software device
creationFlags, // optionally set debug and Direct2D compatibility flags
featureLevels, // list of feature levels this app can support
ARRAYSIZE(featureLevels), // number of entries in above list
D3D11_SDK_VERSION, // always set this to D3D11_SDK_VERSION for modern
&device, // returns the Direct3D device created
&m_featureLevel, // returns feature level of device created
&context // returns the device immediate context
)
);
Untuk informasi selengkapnya tentang penelusuran kesalahan aplikasi Direct2D, lihat Lapisan Debug Direct2D.
Untuk informasi selengkapnya tentang penelusuran kesalahan aplikasi Direct3D, lihat Lapisan Debug Direct3D.
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk