Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Cache Shader
Dengan caching shader, aplikasi Anda dapat melewati kompilasi ulang shader yang mahal di sesi streaming mendatang. Jika aplikasi Anda mengalami kegagalan atau waktu muat yang lambat, menangkap cache shader dapat secara signifikan meningkatkan pengalaman bagi pengguna akhir Anda.
Dengan Amazon GameLift Streams, Anda dapat menangkap cache shader dari sesi streaming yang ditunjuk khusus. Sesi aliran berikutnya dari aplikasi di semua grup aliran yang kompatibel secara otomatis menggunakan cache shader yang diambil. Menggunakan fitur caching shader tidak memerlukan kode atau perubahan lain pada aplikasi Anda.
Prasyarat
Untuk menggunakan caching shader, Anda harus memenuhi persyaratan berikut:
-
Grup streaming harus dibuat pada atau setelah 31 Juli 2026. Grup streaming yang dibuat sebelum tanggal ini tidak mendukung caching shader.
Cara kerja caching shader
Aplikasi grafis seperti game mendapat manfaat dari cache shader. Cache menghindari pemrosesan dan kompilasi terkait grafik yang berulang. Untuk menangkap cache shader dari sesi streaming yang ditunjuk, Amazon Stre GameLift ams mengumpulkan file cache shader sistem yang dibuat secara otomatis untuk aplikasi Anda. Layanan menyimpan cache ini dan secara otomatis menerapkannya ke sesi mendatang pada grup aliran yang kompatibel. Ini mengurangi waktu yang dihabiskan untuk memproses shader selama sesi mendatang. Menghasilkan atau menggunakan cache shader tidak memerlukan perubahan pada aplikasi Anda.
Siklus hidup caching shader memiliki tiga tahap:
-
Menangkap — Anda menjalankan sesi streaming dengan penangkapan cache shader diaktifkan. Selama sesi ini, sistem mengkompilasi program shader yang digunakan oleh aplikasi Anda secara otomatis ke cache filesystem lokal. Saat Anda keluar dari aplikasi dengan anggun, Amazon GameLift Streams mengemas dan mengunggah cache lokal ini.
-
Replikasi — Amazon GameLift Streams mereplikasi cache shader ke semua lokasi streaming grup streaming. Anda dapat memantau status replikasi menggunakan operasi ListApplicationShaderCaches API.
-
Konsumsi — Amazon GameLift Streams secara otomatis mengunduh dan menerapkan cache shader ke semua sesi streaming berikutnya untuk aplikasi yang sama. Cache shader digunakan di semua grup aliran terkait yang kompatibel dan lokasi streaming. Perilaku ini aktif secara default.
Menangkap cache shader
Untuk menangkap cache shader, ikuti langkah-langkah berikut:
-
Mulai sesi streaming menggunakan operasi StartStreamSession API. Dalam permintaan, sertakan
GAMELIFT_STREAMS_PACKAGED_SHADER_CACHE_CAPTUREset ke1sebagai variabel lingkungan tambahan saat memanggil StartStreamSession:{ "AdditionalEnvironmentVariables": { "GAMELIFT_STREAMS_PACKAGED_SHADER_CACHE_CAPTURE": "1" } } -
Gunakan aplikasi Anda seperti biasanya selama sesi.
-
Setelah selesai, keluar dari aplikasi Anda dengan anggun dari menu bawaan atau dengan menggunakan perintah keluar bawaan lainnya. Ini memastikan bahwa cache shader siap untuk dikumpulkan.
-
Setelah penghentian, Amazon GameLift Streams mengemas cache shader yang dikompilasi dan memulai replikasi ke semua lokasi streaming di semua grup aliran terkait yang kompatibel.
Tip
Dalam aplikasi game, menavigasi melalui lingkungan, konten, dan level yang berbeda menghasilkan data shader tambahan. Semakin banyak aplikasi yang Anda tutupi selama pengambilan, semakin komprehensif cakupan cache shader. Peningkatan cakupan dapat mengurangi waktu pemrosesan shader di sesi mendatang.
penting
Hindari mengakhiri sesi menggunakan operasi TerminateStreamSession API. Jika aplikasi Anda tidak memiliki pintu keluar bawaan, gunakan Shell admin sesi streaming fitur ini untuk masuk dari jarak jauh. Kemudian hentikan proses aplikasi setelah memastikan bahwa aplikasi dalam keadaan idle dan tidak merender konten baru.
Setelah membuat cache shader, Anda dapat memperbaikinya dengan memulai sesi lebih lanjut dengan GAMELIFT_STREAMS_PACKAGED_SHADER_CACHE_CAPTURE set to1. Sesi ini dimulai dengan cache shader yang ada dan menghasilkan versi yang diperbarui.
Batas ukuran cache Shader
Cache Shader yang lebih kecil dari 10 KB atau lebih besar dari 4 GB (tidak terkompresi) ditolak.
Alur kerja cache Shader
Saat Anda membuat cache shader untuk aplikasi Amazon GameLift Streams yang ada, semua grup aliran terkait yang kompatibel secara otomatis mulai menggunakannya.
Untuk menguji cache shader sebelum mempengaruhi sesi produksi, kami merekomendasikan pendekatan ini:
Buat aplikasi terpisah.
Kumpulkan cache shader untuk aplikasi itu.
Verifikasi hasil menggunakan sesi streaming baru.
Gunakan aplikasi dalam pengaturan produksi Anda.
Replikasi cache Shader
Setelah pengambilan berhasil, Amazon GameLift Streams secara otomatis membuat cache shader tersedia di setiap lokasi streaming aktif di grup aliran terkait aplikasi yang kompatibel. Proses replikasi ini biasanya selesai dalam beberapa menit.
Anda dapat memantau kemajuan replikasi menggunakan operasi ListApplicationShaderCaches API. Bidang cache Status shader menunjukkan status agregat di semua lokasi grup aliran. Status yang mungkin termasuk yang berikut ini.
| Status | Deskripsi |
|---|---|
INITIALIZED |
Amazon GameLift Streams menerima permintaan dan sedang mempersiapkan cache shader. |
PROCESSING |
Amazon GameLift Streams mereplikasi cache shader ke lokasi streaming di grup aliran terkait. |
READY |
Cache shader direplikasi dan tersedia untuk digunakan dalam sesi streaming. |
ERROR |
Terjadi kesalahan selama pemrosesan cache shader. Buat cache shader baru untuk mencoba lagi. |
DELETING |
Amazon GameLift Streams menghapus cache shader. |
Ketika statusnyaREADY, cache shader secara otomatis diterapkan ke semua sesi streaming baru untuk aplikasi.
Kapasitas aliran yang baru disediakan menerima cache shader segera. Kapasitas grup aliran yang ada dapat memakan waktu hingga satu jam untuk mendapatkan cache shader baru.
Menonaktifkan konsumsi cache shader
Secara default, Amazon GameLift Streams mengunduh dan menerapkan cache shader sebelum meluncurkan aplikasi. Untuk menonaktifkan perilaku ini untuk sesi tertentu, tetapkan variabel lingkungan berikut:
{ "AdditionalEnvironmentVariables": { "GAMELIFT_STREAMS_PACKAGED_SHADER_CACHE_IGNORE": "1" } }
Untuk meningkatkan cache shader yang ada, sediakan sajaGAMELIFT_STREAMS_PACKAGED_SHADER_CACHE_CAPTURE. Untuk membuang cache yang ada dan mengumpulkan yang sama sekali baru, berikan keduanya GAMELIFT_STREAMS_PACKAGED_SHADER_CACHE_IGNORE danGAMELIFT_STREAMS_PACKAGED_SHADER_CACHE_CAPTURE.
Kompatibilitas cache Shader
Anda dapat mengaitkan aplikasi dengan beberapa grup aliran. Untuk mengetahui grup aliran mana yang saat ini terkait dengan aplikasi Anda, gunakan operasi GetApplication API dan tinjau AssociatedStreamGroups bidang tersebut.
Tidak semua grup aliran terkait harus kompatibel dengan cache shader yang dikumpulkan. Anda dapat menentukan grup aliran terkait mana yang kompatibel dengan menggunakan operasi ListApplicationShaderCaches API. Dalam tanggapannya, AssociatedStreamGroups bidang hanya berisi grup aliran terkait yang kompatibel dengan cache shader.
Perangkat keras grafis dan driver menentukan bagaimana sistem mengkompilasi program shader. Karena itu, cache tidak dapat ditransfer di berbagai konfigurasi perangkat keras dan perangkat lunak. Dengan Amazon GameLift Streams, kompatibilitas cache shader ditentukan oleh properti grup aliran yang digunakan selama pengambilan:
-
Model yang tepat dari perangkat keras grafis yang mendasarinya (GPU)
-
Versi driver GPU yang diinstal
Dalam praktiknya, ini berarti bahwa cache shader Amazon GameLift Streams memiliki batasan kompatibilitas berikut.
-
Cache shader tidak kompatibel di seluruh kelas aliran yang menggunakan perangkat keras GPU yang berbeda, yang berarti kelas aliran generasi yang berbeda. Misalnya,
gen5n_highdan kelasgen6n_highstreaming tidak kompatibel, tetapigen6n_highdangen6n_ultramemang demikian. Demikian pula,gen6n_prodangen6e_projuga tidak kompatibel. -
Cache shader tidak kompatibel antara grup aliran yang memiliki versi driver GPU yang berbeda diinstal. Grup streaming menggunakan versi driver GPU yang sama selama masa pakainya, tetapi yang baru dibuat mungkin menerima versi yang diperbarui. Untuk informasi selengkapnya tentang versi driver GPU yang saat ini tersedia di Amazon Stre GameLift ams untuk grup aliran baru, lihatVersi driver GPU.
-
Cache shader tidak kompatibel antaraWindows,Linux, dan Proton runtime.
Amazon GameLift Streams secara otomatis menentukan kompatibilitas ini dan menggunakan cache shader yang dikumpulkan hanya dengan sesi yang kompatibel.
Contoh: Kelas aliran generasi yang berbeda
Aplikasi Anda dikaitkan dengan dua grup aliran:
-
Grup aliran pertama menggunakan kelas stream
gen5n_high -
Grup aliran kedua menggunakan kelas stream
gen6n_high
Cache shader yang sama tidak kompatibel di dua grup aliran generasi yang berbeda ini. Untuk mendukung kedua grup aliran, buat cache shader terpisah untuk setiap kelas aliran.
Contoh: Versi driver GPU yang berbeda
Anda memiliki grup aliran yang menggunakan kelas gen6n_high aliran, dan telah menghasilkan cache shader untuk itu. Kemudian Anda membuat grup aliran lain, masih menggunakan kelas aliran yang samagen6n_high.
Grup streaming baru ini sekarang menggunakan versi driver GPU yang berbeda dan lebih baru. Dengan menggunakan ListApplicationShaderCaches, Anda mengetahui bahwa grup streaming baru Anda tidak terdaftar di bawahAssociatedStreamGroups. Oleh karena itu, cache shader yang ada tidak kompatibel dengan grup aliran baru. Buat cache shader baru dengan menggunakan grup aliran baru.
Memecahkan masalah cache shader
-
ListApplicationShaderCaches menunjukkan status ERR OR — Terjadi kesalahan selama pemrosesan cache shader. Buat cache shader baru untuk mencoba lagi.
-
ListApplicationShaderCaches tidak mencantumkan cache shader baru
Cache shader terlalu kecil atau terlalu besar untuk dikumpulkan.
Aplikasi tidak keluar dengan anggun.
Terjadi kesalahan selama pengumpulan.
Buat cache shader baru untuk mencoba lagi.