Bagikan melalui


0x116 Pemeriksaan Bug: VIDEO_TDR_FAILURE

Pemeriksaan bug VIDEO_TDR_FAILURE memiliki nilai 0x00000116. Pemeriksaan bug ini menunjukkan bahwa upaya untuk mengatur ulang driver tampilan dan pulih dari batas waktu telah gagal.

Penting

Artikel ini untuk programmer. Jika Anda adalah pelanggan yang telah menerima kode kesalahan layar biru saat menggunakan komputer Anda, lihat Memecahkan masalah kesalahan layar biru.

parameter VIDEO_TDR_FAILURE

Parameter Deskripsi
1 Penunjuk ke konteks pemulihan TDR internal, jika tersedia.
2 Penunjuk ke dalam modul driver perangkat yang bertanggung jawab (misalnya, tag pemilik).
3 Kode kesalahan dari operasi terakhir yang gagal, jika tersedia.
4 Data dependen konteks internal, jika tersedia.

Penyebab

Masalah stabilitas umum dalam grafik terjadi ketika sistem tampak benar-benar beku atau menggantung saat memproses perintah atau operasi pengguna akhir. Biasanya GPU sibuk memproses operasi grafis intensif, biasanya selama gameplay. Tidak ada pembaruan layar yang terjadi, dan pengguna mengasumsikan bahwa sistem mereka dibekukan. Pengguna biasanya menunggu beberapa detik dan kemudian me-reboot sistem dengan menekan tombol daya. Windows mencoba mendeteksi situasi macet yang bermasalah ini dan secara dinamis memulihkan desktop responsif.

Proses deteksi dan pemulihan ini dikenal sebagai Deteksi dan Pemulihan Batas Waktu (TDR). Batas waktu default adalah 2 detik. Dalam proses TDR untuk kartu video, penjadwal GPU sistem operasi memanggil fungsi DxgkDdiResetFromTimeout driver miniport tampilan untuk menginisialisasi ulang driver dan mengatur ulang GPU.

Selama proses ini, sistem operasi memberi tahu driver untuk tidak mengakses perangkat keras atau memori dan memberinya waktu singkat untuk menyelesaikan utas yang sedang berjalan. Jika utas tidak selesai dalam batas waktu, bug sistem akan memeriksa dengan 0x116 VIDEO_TDR_FAILURE. Untuk informasi selengkapnya, lihat Sinkronisasi Utas dan TDR.

Sistem juga dapat memeriksa bug dengan VIDEO_TDR_FAILURE jika beberapa peristiwa TDR terjadi dalam waktu singkat. Jumlah default adalah lebih dari lima TDR dalam satu menit.

Jika proses pemulihan berhasil, pesan akan ditampilkan, menunjukkan bahwa "Driver tampilan berhenti merespons dan telah pulih."

Untuk informasi selengkapnya, lihat Deteksi dan pemulihan batas waktu (TDR), kunci registri TDR, dan perubahan TDR di Windows 8 dan yang lebih baru.

Resolusi

GPU membutuhkan lebih banyak waktu daripada yang diizinkan untuk menampilkan grafik ke monitor Anda. Perilaku ini dapat terjadi karena satu atau beberapa alasan berikut:

  • Anda mungkin perlu menginstal pembaruan terbaru untuk driver tampilan Anda, sehingga mendukung proses TDR dengan benar.
  • Masalah perangkat keras yang memengaruhi kemampuan kartu video untuk beroperasi dengan benar, termasuk:
    • Komponen berwaktu berlebih, seperti motherboard
    • Kompatibilitas dan pengaturan komponen yang salah (terutama konfigurasi memori dan waktu)
    • Pendinginan sistem tidak mencukup
    • Daya sistem tidak mencukupi
    • Bagian yang rusak (modul memori, motherboard, dll.)
  • Efek visual, atau terlalu banyak program yang berjalan di latar belakang mungkin memperlambat PC Anda, sehingga kartu video tidak dapat merespons seperlunya.

Ekstensi debug !analyze menampilkan informasi tentang pemeriksaan bug dan dapat membantu dalam menentukan akar penyebabnya.

1: kd> !analyze -v
*******************************************************************************
*                                                                             *
*                        Bugcheck Analysis                                    *
*                                                                             *
*******************************************************************************

VIDEO_TDR_FAILURE (116)
Attempt to reset the display driver and recover from timeout failed.
Arguments:
Arg1: ffffe000c2c404c0, Optional pointer to internal TDR recovery context (TDR_RECOVERY_CONTEXT).
Arg2: fffff8016470c14c, The pointer into responsible device driver module (e.g. owner tag).
Arg3: ffffffffc000009a, Optional error code (NTSTATUS) of the last failed operation.
Arg4: 0000000000000004, Optional internal context dependent data.

...

Nama modul yang salah juga ditampilkan.

MODULE_NAME: nvlddmkm

IMAGE_NAME:  nvlddmkm.sys

Anda dapat menggunakan perintah lm (List Loaded Modules) untuk menampilkan informasi tentang driver yang salah, termasuk tanda waktu.

1: kd> lmvm nvlddmkm
Browse full module list
start             end                 module name
fffff801`63ec0000 fffff801`649a7000   nvlddmkm T (no symbols)           
    Loaded symbol image file: nvlddmkm.sys
    Image path: \SystemRoot\system32\DRIVERS\nvlddmkm.sys
    Image name: nvlddmkm.sys
    Browse all global symbols  functions  data
    Timestamp:        Wed Jul  8 15:43:44 2015 (559DA7A0)
    CheckSum:         00AA7491
    ImageSize:        00AE7000
    Translations:     0000.04b0 0000.04e4 0409.04b0 0409.04e4

Parameter 1 berisi penunjuk ke TDR_RECOVERY_CONTEXT. Seperti yang ditunjukkan dalam output !analyze, jika Anda memiliki simbol untuk kode terkait, Anda dapat menggunakan dt perintah untuk menampilkan data ini.

1: kd> dt dxgkrnl!_TDR_RECOVERY_CONTEXT ffffe000c2c404c0
   +0x000 Signature        : 0x52445476
   +0x008 pState           : 0xffffe000`c2b12a40 ??
   +0x010 TimeoutReason    : 9 ( TdrEngineTimeoutPromotedToAdapterReset )
   +0x018 Tick             : _ULARGE_INTEGER 0xb2
   +0x020 pAdapter         : 0xffffe000`c2a89010 DXGADAPTER
   +0x028 pVidSchContext   : (null) 
   +0x030 GPUTimeoutData   : _TDR_RECOVERY_GPU_DATA
   +0x048 CrtcTimeoutData  : _TDR_RECOVERY_CONTEXT::<unnamed-type-CrtcTimeoutData>
   +0x050 pProcessName     : (null) 
   +0x058 DbgOwnerTag      : 0xfffff801`6470c14c
   +0x060 PrivateDbgInfo   : _TDR_DEBUG_REPORT_PRIVATE_INFO
   +0xb00 pDbgReport       : 0xffffe000`c2c3f750 _WD_DEBUG_REPORT
   +0xb08 pDbgBuffer       : 0xffffc000`bd000000 Void
   +0xb10 DbgBufferSize    : 0x37515
   +0xb18 pDumpBufferHelper : (null) 
   +0xb20 pDbgInfoExtension : 0xffffc000`ba7e47a0 _DXGKARG_COLLECTDBGINFO_EXT
   +0xb28 pDbgBufferUpdatePrivateInfo : 0xffffc000`bd000140 Void
   +0xb30 ReferenceCount   : 0n1
   +0xb38 pResetCompletedEvent : (null) 

Parameter 2 berisi pointer ke dalam modul driver perangkat yang bertanggung jawab (misalnya, tag pemilik).

1: kd> ub fffff8016470c14c
nvlddmkm+0x84c132:
fffff801`6470c132 cc              int     3
fffff801`6470c133 cc              int     3
fffff801`6470c134 48ff254d2deaff  jmp     qword ptr [nvlddmkm+0x6eee88 (fffff801`645aee88)]
fffff801`6470c13b cc              int     3
fffff801`6470c13c 48ff252d2eeaff  jmp     qword ptr [nvlddmkm+0x6eef70 (fffff801`645aef70)]
fffff801`6470c143 cc              int     3
fffff801`6470c144 48ff257d2deaff  jmp     qword ptr [nvlddmkm+0x6eeec8 (fffff801`645aeec8)]
fffff801`6470c14b cc              int     3

Anda mungkin ingin memeriksa jejak tumpukan dengan menggunakan perintah k, kb, kc, kd, kp, kP, kv (Display Stack Backtrace).

1: kd> k
 # Child-SP          RetAddr           Call Site
00 ffffd001`7d53d918 fffff801`61ba2b4c nt!KeBugCheckEx [d:\th\minkernel\ntos\ke\amd64\procstat.asm @ 122]
01 ffffd001`7d53d920 fffff801`61b8da0e dxgkrnl!TdrBugcheckOnTimeout+0xec [d:\th\windows\core\dxkernel\dxgkrnl\core\dxgtdr.cxx @ 2731]
02 ffffd001`7d53d960 fffff801`61b8dd7f dxgkrnl!ADAPTER_RENDER::Reset+0x15e [d:\th\windows\core\dxkernel\dxgkrnl\core\adapter.cxx @ 19443]
03 ffffd001`7d53d990 fffff801`61ba2385 dxgkrnl!DXGADAPTER::Reset+0x177 [d:\th\windows\core\dxkernel\dxgkrnl\core\adapter.cxx @ 19316]
04 ffffd001`7d53d9e0 fffff801`63c5fba7 dxgkrnl!TdrResetFromTimeout+0x15 [d:\th\windows\core\dxkernel\dxgkrnl\core\dxgtdr.cxx @ 2554]
05 ffffd001`7d53da10 fffff801`63c47e5d dxgmms1!VidSchiRecoverFromTDR+0x11b [d:\th\windows\core\dxkernel\dxgkrnl\dxgmms1\vidsch\vidscher.cxx @ 1055]
06 ffffd001`7d53dbc0 fffff801`aa55c698 dxgmms1!VidSchiWorkerThread+0x8d [d:\th\windows\core\dxkernel\dxgkrnl\dxgmms1\vidsch\vidschi.cxx @ 426]
07 ffffd001`7d53dc00 fffff801`aa5c9306 nt!PspSystemThreadStartup+0x58 [d:\th\minkernel\ntos\ps\psexec.c @ 6845]
08 ffffd001`7d53dc60 00000000`00000000 nt!KxStartSystemThread+0x16 [d:\th\minkernel\ntos\ke\amd64\threadbg.asm @ 80]

Anda juga dapat mengatur titik henti dalam kode yang mengarah ke kode berhenti ini dan mencoba untuk maju satu langkah ke dalam kode yang salah, jika Anda dapat secara konsisten mereproduksi kode berhenti.

Untuk informasi selengkapnya, lihat Menganalisis file crash dump dengan menggunakan WinDbg.

Jika Anda tidak dilengkapi untuk menggunakan debugger Windows untuk mengerjakan masalah ini, Anda dapat menggunakan beberapa teknik pemecahan masalah dasar.

  • Periksa Sistem Masuk Pemantau Peristiwa untuk pesan kesalahan lain yang mungkin membantu mengidentifikasi perangkat atau driver yang menyebabkan pemeriksaan bug ini.

  • Jika driver diidentifikasi dalam pesan pemeriksaan bug, nonaktifkan driver atau tanyakan kepada produsen untuk pembaruan driver.

  • Verifikasi bahwa semua perangkat lunak terkait grafis, seperti DirectX dan OpenGL, sudah diperbarui, dan aplikasi intensif grafis apa pun (seperti game) sepenuhnya di-patch.

  • Konfirmasikan bahwa perangkat keras baru yang diinstal kompatibel dengan versi Windows yang terinstal. Misalnya, Anda bisa mendapatkan informasi tentang perangkat keras yang diperlukan di Spesifikasi Windows 10.

  • Jalankan alat Windows Memory Diagnostics untuk menguji memori. Di kotak pencarian panel kontrol, masukkan Memori, lalu pilih Diagnosis masalah memori komputer Anda. Setelah pengujian dijalankan, gunakan Penampil peristiwa untuk melihat hasil di bawah log Sistem. Cari entri MemoryDiagnostics-Results untuk melihat hasilnya.

  • Anda dapat mencoba menjalankan diagnostik perangkat keras yang disediakan oleh produsen sistem.

  • Gunakan Mode Aman

    Pertimbangkan untuk menggunakan Mode Aman untuk membantu mengisolasi masalah ini. Menggunakan Mode Aman hanya memuat driver minimum yang diperlukan dan layanan sistem selama startup Windows.

    1. Untuk memasuki Mode Aman, buka Pembaruan dan Keamanan di Pengaturan.
    2. Pilih Pemulihan>Startup tingkat lanjut untuk boot ke mode pemeliharaan.
    3. Pada menu yang dihasilkan, pilih Pemecahan Masalah>Pengaturan>Startup Opsi>Tingkat Lanjut Mulai Ulang.
    4. Setelah Windows memulai ulang ke layar Pengaturan Startup, pilih opsi, 4, 5 atau 6 untuk boot ke Mode Aman.

    Mode Aman mungkin tersedia dengan menekan tombol fungsi saat boot, misalnya F8. Lihat informasi dari produsen untuk opsi startup tertentu.

Untuk informasi pemecahan masalah umum, lihat Menganalisis Data Layar Biru Pemeriksaan Bug.

Keterangan

Untuk informasi tentang persyaratan yang harus dipenuhi perangkat keras saat menerapkan TDR, lihat dokumentasi Windows Hardware Lab Kit . Misalnya, TDR2 - Grafis Uji Dua Perangkat Standar.

Lihat juga

Referensi Bug Check Code