Game berhenti karena harus membaca file dan membuat shader tepat sebelum menggambar area, monster, atau efek yang baru pertama kali muncul.
Mengapa Masuk area baru, skill, equipment, atau monster yang baru pertama kali muncul → Akibatnya Main thread menunggu pembacaan file dan kompilasi shader → Di layar Berhenti 0,1–1 detik hanya pada kali pertama, setelah itu normal
Saat bergerak atau pindah area, Saat melakukan aksi tertentu
Penanggung jawab
Penanggung jawab utama Pengembangan klien (Tim Pengembang Game)
Tugas Tim Pengembang Game
Gunakan loading asinkron, muat lebih awal (prewarming), kompilasi shader lebih awal di layar loading atau saat game pertama kali dijalankan, manfaatkan layar loading.
Kisaran angka
Kompilasi satu shader memakan puluhan ms, kalau lama bisa 100 ms atau lebih. Loading tekstur memakan puluhan hingga ratusan ms, tergantung kecepatan storage.
Di grafik
Melonjak tepat setelah server dibuka · Jumlah lonjakan frame (tepat setelah patch atau update driver)
Yang diperiksa
Rekam rute yang sama dua kali dengan PresentMon, lalu bandingkan kunjungan pertama dan kedua. Di development build Unreal, aktifkan r.PSOPrecache.Validation lalu periksa stat PSOPrecache dan “PSO PRECACHING MISS” di log; di Unity, periksa bagian loading dan shader pada frame yang melonjak di Timeline profiler
Cocok jika
Lonjakan 0,1–1 detik hanya terjadi di tempat yang pertama didatangi atau skill yang pertama dipakai, lalu hilang pada kali kedua. Laporan menumpuk tepat setelah patch atau update driver grafis, lalu berkurang
Tidak cocok jika
Selalu melonjak di tempat yang sama: masalahnya ada di luar cache shader. Berulang setiap kali bergerak, hanya di PC dengan storage lambat: lebih mungkin “Streaming aset tertinggal akibat storage lambat”. Memori GPU khusus penuh: lebih mungkin “Kekurangan memori grafis (VRAM)”
Sarana pemeriksaan
Log dan metrik server atau klien game
Pelajari lebih lanjut
Di PC, shader yang sudah dibuat sekali disimpan oleh driver grafis di cache shader lalu dipakai ulang. Karena itu, tepat setelah driver grafis diperbarui atau patch game dirilis, cache ini menjadi tidak berlaku, sehingga pemain yang tadinya lancar pun kembali mengalami patah-patah untuk sementara. Laporan yang khas berbunyi “setelah patch, tersendat setiap kali masuk tempat yang baru pertama didatangi”.
Sumber
Shader loadingUnity Saat varian shader dipakai pertama kali, driver grafis harus membuatnya untuk GPU sehingga bisa terjadi jeda yang terasa; yang sudah dibuat disimpan di cache sehingga tidak berhenti lagi
Direct3D 12 Return CodesMicrosoft D3D12_ERROR_DRIVER_VERSION_MISMATCH: cache PSO yang dibuat dengan versi driver lain tidak bisa dipakai ulang (dikompilasi ulang setelah update driver)
PSO Precaching for Unreal EngineEpic Games Jika r.PSOPrecache.Validation diaktifkan, statistik PSO yang terlewat terlihat di stat PSOPrecache dan “PSO PRECACHING MISS” dicatat di log; pembuatan PSO saat runtime yang melewati 20 ms (default) dihitung sebagai hitch