Ini lebih merupakan pertanyaan terbuka, tetapi saya berharap mendapatkan wawasan yang baik tentang bagaimana menghindari masalah ini.
Saat memainkan Game di Windows, saya mungkin ingin ALT-TAB keluar dari sana. Beberapa permainan tidak memiliki masalah, yang lain tidak begitu mudah: Mereka mungkin membutuhkan AGES untuk beralih dan kembali. Beberapa bahkan rentan terhadap tabrakan atau perilaku aneh seperti distorsi grafis atau suara gagap.
Saya hanya ingin tahu apa yang menyebabkan perilaku ini? Apakah ini lebih seperti DirectX atau OpenGL? Apakah ini disebabkan oleh Game yang 'pintar' dan menyimpan / menghapus cache setiap kali pengaturan layar berubah? (Saya berasumsi mereka mendapatkan semacam sinyal ketika saya ALT-TAB?)
Saya tidak punya masalah sendiri, tetapi saya ingin tahu apa yang harus dihindari dan trik 'pintar' mana yang dapat menyebabkan pengalaman pelanggan yang mengerikan seperti ini?
sumber
Jawaban:
Dalam beberapa situasi ALT-TAB akan menyebabkan perangkat DirectX hilang. Ketika perangkat hilang, semua sumber daya GPU (simpul, tekstur, shader dan sebagainya) harus dianggap tidak valid dan tidak dapat digunakan lagi. Referensi MSDN di sini .
Sumber daya yang hilang ini harus dilepaskan, dan kemudian diciptakan kembali ketika perangkat dipulihkan. Dalam kasus sebagian besar gim yang memulihkan sumber daya ini membutuhkan banyak data untuk dimuat dari disk lagi - seringkali prosedur pemuatan yang sama seperti yang dilakukan pada awal gim / level.
Apa yang bisa dilakukan untuk menghindari ini?
sumber
Di Direct3D, perangkat dapat hilang ketika Anda ALT-TAB keluar dari jendela layar penuh. Jika itu terjadi, Anda harus melepaskan dan memulihkan sumber daya dan mengatur ulang perangkat. Ini bisa sulit dilakukan dengan benar tergantung pada kompleksitas permainan atau kemalasan pengembang (hai Valve!). Saya tidak berpikir OpenGL menderita masalah yang sama karena driver bertanggung jawab untuk menjaga konteks OpenGL untuk Anda, tetapi saya tidak yakin.
Ada pertanyaan tentang StackOverflow tentang praktik terbaik untuk dukungan ALT-TAB dalam aplikasi DirectX yang mencakup tautan berguna dari MSDN dan sumber lainnya.
sumber
Ini bisa menjadi jumlah ram gratis yang tersedia. Jika terlalu rendah, saat gim Anda berjalan, Windows menyembunyikan sebagian besar layanannya ke dalam area swap (yaitu mengambil sebagian besar data yang dimuat dalam RAM dan meletakkannya di area khusus hard drive Anda) agar permainan Anda untuk memiliki ruang RAM yang tersedia sebanyak mungkin.
Kemudian, ketika Anda alt + tab dari gim ke windows, diperlukan layanan ini untuk dimuat dalam RAM agar dapat bekerja, sehingga akan mengambil data gim Anda dari RAM, menyimpannya di swap, dan menarik data windows dari swap ke RAM.
Dan seperti yang Anda tahu, menulis ke hard drive dapat mengambil USIA dibandingkan dengan RAM. Hal yang sama sebenarnya juga terjadi ketika Anda keluar dari game yang berat. Itu sebabnya memiliki ruang RAM yang cukup untuk gim dan jendela bisa sangat nyaman.
sumber