1 poin oleh GN⁺ 3 jam lalu | 1 komentar | Bagikan ke WhatsApp
  • Dari hasil pengukuran pada display 500Hz, mulai dari klik hingga perubahan kecerahan layar, penerapan X11, VRR, dan dxvk-low-latency sekaligus hanya menurunkan median latensi end-to-end sebesar 0,72ms dibanding Wayland bawaan
  • Wayland native 0,14~0,22ms lebih lambat daripada X11, sedangkan XWayland menambahkan hingga 3,13ms dibanding Wayland native, menghasilkan selisih yang jauh lebih besar
  • Variable Refresh Rate (VRR) mengurangi latensi 0,26~0,45ms di semua perbandingan, dan mempersempit rentang distribusi p5~p95 dari 2,6~3,0ms menjadi 2,1~2,2ms
  • dxvk-low-latency mengurangi latensi 0,10~0,29ms saat frame rate dibatasi, dan 0,84ms saat batas dilepas; tetapi pada kondisi terakhir, FPS turun dari 715 menjadi 670 sambil menjaga utilisasi GPU di 95~97%, bukan 100%
  • Hasil ini diperoleh dalam kondisi optimal berupa FPS stabil dan bottleneck CPU, serta kombinasi hardware dan software tertentu; dalam permainan nyata, pengurangan jitter oleh VRR dan penekanan render queue oleh frame pacer dapat membuat perbedaan yang melampaui nilai median

Alasan memverifikasi langsung saran optimasi

  • Untuk gaming Linux ada banyak saran optimasi, seperti memakai X11 alih-alih Wayland, menonaktifkan compositing, memakai fork DXVK yang dioptimalkan untuk latensi, scheduler kernel untuk gaming, serta menerapkan gamescope, gamemode, dan variabel lingkungan
  • Pada FPS kompetitif, latensi rendah, frame time yang konsisten, dan FPS tinggi sangat penting, tetapi sulit memastikan apakah perubahan konfigurasi benar-benar memberi perbaikan atau hanya plasebo atau malah berdampak negatif
  • Hardware perangkat pengukur, enclosure, firmware, kode analisis, dan data mentah dipublikasikan di repositori GitHub click2photon

Perangkat untuk mengukur dari klik hingga perubahan layar

  • Dengan memasang perangkat ke monitor dan memicu klik mouse via USB, perangkat mengukur latensi sistem end-to-end dengan menghitung waktu hingga sensor cahaya mendeteksi perubahan layar
  • Desain awal mengacu pada skematik OSLTT yang tersedia saat itu, dan selama proses penyelesaian juga mengintegrasikan ide dari m2p-latency dan Open-Source-LDAT
  • Pembuatannya memerlukan mikrokontroler, penyolderan, firmware Arduino, integration time, transimpedance amplifier, KiCad, dan desain enclosure
  • Adafruit QT Py RP2040 beroperasi sebagai mouse USB HID polling 1.000Hz dan menghasilkan klik
    • Segera setelah klik dikirim, sampel fotodioda dikumpulkan kira-kira setiap 24µs
    • Untuk tiap klik, 12.000 sampel dikirim ke host melalui koneksi serial dan dicatat sebagai CSV
    • Tool host menghitung baseline per klik dan mencari sampel pertama yang menyimpang dari baseline lebih dari ambang tertentu
    • Karena waktu pengumpulan 12.000 sampel bersifat tetap, waktu dari pengiriman klik hingga perubahan kecerahan layar dapat dihitung

Konfigurasi display dan rendering yang dibandingkan

  • X11 dan Wayland native dibandingkan untuk mencocokkan penilaian bahwa Wayland terasa lambat dengan hasil pengukuran
  • Perbandingan dilakukan antara Variable Refresh Rate (VRR), termasuk G-Sync dan FreeSync, aktif dan tidak aktif
  • Perbedaan antara dxvk-low-latency dan DXVK bawaan diukur
    • Frame pacer dari fork ini telah diintegrasikan ke paket resmi proton-cachyos, dan diaktifkan dengan PROTON_DXVK_LOWLATENCY=1
  • Dua kasus tanpa batas FPS ditambahkan untuk memeriksa apakah frame pacer menyerap variasi frame time dan mencegah penumpukan render queue
    • Pada adegan game statis, tidak ada variasi frame time, dan pengujian juga berada dalam kondisi bottleneck CPU, sehingga tidak sepenuhnya mencerminkan sesi game nyata
    • Dalam sesi nyata, frame time dapat berubah sesuai situasi di dalam game atau penggunaan resource oleh proses lain
  • Pengujian Wayland pada dasarnya dijalankan di Wayland native menggunakan PROTON_ENABLE_WAYLAND=1, dan untuk perbandingan juga diukur 2 kasus XWayland dengan VRR dimatikan

Hardware dan software pengujian

  • Selama pengujian, hanya satu display yang tersambung, dengan konfigurasi hardware sebagai berikut
    • AMD Ryzen 7 5800X3D
    • NVIDIA GeForce RTX 4070 SUPER
    • 2 modul DDR4 3.200MHz 8GB
    • MSI MAG 272QP QD-OLED X50, 2560×1440, 500Hz
    • MSI B450 GAMING PRO CARBON AC
  • Software stack terdiri dari CachyOS, Kernel 7.1.3-2-cachyos, NVIDIA driver 610.43.03-1, KDE Plasma 6.7.2-1.1, dan xorg-server 21.1.24-1.1
    • Menggunakan proton-cachyos-native 1:11.0.20260602-3 dan dxvk 3.0
    • Scheduler kernel bawaan CachyOS dipertahankan

Pengaturan display dan DXVK

  • Refresh rate sistem diatur ke 500Hz
  • Di X11, flip mode dan VRR diaktifkan dengan nvidia-settings, dan perubahan VRR memerlukan reboot
  • Di Wayland, VRR diaktifkan lewat pengaturan KDE dan tidak memerlukan reboot
  • Flip mode atau direct scanout di Wayland tidak diatur langsung oleh pengguna, melainkan diputuskan compositor per frame
    • showcompositing diaktifkan pada tab Effects di KWin Debug Console
    • Jika hanya game yang tampil full-screen, fokus sepenuhnya, dan tidak ada bingkai merah di tepi, kondisi itu dianggap sebagai flip mode
  • dxvk.conf yang dioptimalkan untuk tiap kondisi perbandingan digunakan
    • Saat VRR nonaktif: dxgi.maxFrameRate = 500
    • Saat VRR aktif dan dxvk-low-latency nonaktif: dxgi.maxFrameRate = 497
    • Saat VRR dan dxvk-low-latency aktif bersama, pengaturan berikut digunakan untuk frame pacing VRR latensi rendah pada 500Hz
dxgi.maxFrameRate = 480
dxvk.lowLatencyOffset = 70
dxvk.framePace = "low-latency-vrr-500"
dxvk.lowLatencyAllowCpuFramesOverlap = False
  • d3d11.cachedDynamicResources = "c" diterapkan ke semua konfigurasi

Lingkungan game dan prosedur pengukuran berulang

  • Game pengujian adalah game DirectX 11 Diabotical, dijalankan dengan Heroic dan Proton
  • Resolusi native dan render scale 100% digunakan, Vsync dimatikan, lalu pengaturan grafis lainnya diturunkan serendah mungkin
  • Perintah tersembunyi yang menyembunyikan UI sebentar diikat ke klik kiri dengan /bind mouse_left testlatency, dan HUD yang menampilkan kotak putih besar dikonfigurasi untuk memperbesar selisih kecerahan saat klik
  • Setiap pengujian diulang dalam kondisi yang sama
    • Menutup software yang tidak diperlukan dan memulai server lokal dengan mode dan map yang sama
    • Mengarahkan mouse ke penanda terrain tertentu dari posisi yang ditentukan
    • Melakukan 100 klik selama sekitar 2 menit, diulang total 3 kali
    • Menjaga adegan tetap statis tanpa bot, pemain lain, pergerakan, atau restart ronde
    • Memastikan tidak ada proses lain yang signifikan berjalan, dan posisi perangkat pengukur juga dijaga tetap sama di semua pengujian

Rentang latensi seluruh konfigurasi

  • Semua kasus dengan batas frame rate mempertahankan FPS target secara stabil, dan game berada dalam kondisi bottleneck CPU sepanjang pengujian
  • Semua kasus menunjukkan distribusi berbentuk lonceng tanpa outlier besar, dengan rentang dari p5 hingga p95 sekitar 2~3ms
  • Median dari 8 konfigurasi utama adalah 4,21~4,93ms, sehingga selisih totalnya hanya 0,72ms
  • XWayland memiliki median hingga 3,13ms lebih tinggi daripada konfigurasi Wayland native yang sepadan, masing-masing mencatat 8,06ms dan 4,93ms
  • Pada kasus tanpa batas FPS, dxvk-low-latency mengurangi latensi 0,84ms dibanding DXVK bawaan

Selisih kecil antara X11 dan Wayland native

  • X11 lebih cepat di semua konfigurasi, tetapi selisihnya kecil, 0,14~0,22ms, sehingga tidak cukup untuk menjelaskan penilaian bahwa Wayland terasa jauh lebih lambat
    • low-latency dan VRR aktif: X11 4,21ms, Wayland 4,38ms, selisih +0,17ms
    • hanya low-latency aktif: X11 4,64ms, Wayland 4,83ms, selisih +0,19ms
    • hanya VRR aktif: X11 4,45ms, Wayland 4,67ms, selisih +0,22ms
    • keduanya nonaktif: X11 4,79ms, Wayland 4,93ms, selisih +0,14ms
  • Bentuk distribusi latensi kedua display server juga sangat mirip

Dampak VRR terhadap latensi dan distribusi

  • VRR menunjukkan dampak terbesar di antara item yang dibandingkan, dan lebih cepat 0,26~0,45ms pada semua kombinasi
    • X11 dengan low-latency: turun 0,43ms dari 4,64ms menjadi 4,21ms
    • X11 dengan DXVK bawaan: turun 0,34ms dari 4,79ms menjadi 4,45ms
    • Wayland dengan low-latency: turun 0,45ms dari 4,83ms menjadi 4,38ms
    • Wayland dengan DXVK bawaan: turun 0,26ms dari 4,93ms menjadi 4,67ms
  • Rentang antara p95 dan p5 adalah 2,1~2,2ms saat VRR digunakan, dan 2,6~3,0ms saat tidak digunakan, sehingga distribusi latensi juga menyempit
  • Pada VRR, frame di-scan out segera setelah siap tanpa menunggu slot scanout berikutnya, sehingga hasil pengukuran sesuai dengan cara kerjanya

Efek dan biaya dxvk-low-latency

  • Pada kasus dengan batas FPS, dxvk-low-latency mengurangi latensi di semua kombinasi, dengan rata-rata perbaikan 0,20ms, mirip dengan selisih rata-rata 0,18ms antara X11 dan Wayland
    • X11 dengan VRR: turun 0,24ms dari 4,45ms menjadi 4,21ms
    • X11 dengan VRR nonaktif: turun 0,15ms dari 4,79ms menjadi 4,64ms
    • Wayland dengan VRR: turun 0,29ms dari 4,67ms menjadi 4,38ms
    • Wayland dengan VRR nonaktif: turun 0,10ms dari 4,93ms menjadi 4,83ms
  • Dalam kondisi tanpa batas FPS, pacer menunjukkan efek lebih besar dalam mencegah penumpukan render queue dan meredam frame pacing yang tidak merata
    • GPU tidak dibuat jenuh sepenuhnya dan dijaga dalam kondisi mendekati bottleneck GPU
    • Utilisasi GPU adalah 100% pada DXVK bawaan dan 95~97% pada dxvk-low-latency
    • Latensi turun 0,84ms dari 5,27ms menjadi 4,43ms
    • FPS berkurang 45FPS dari 715 menjadi 670

Latensi besar yang ditambahkan XWayland

  • Jika Enable Wine-Wayland (Experimental) di Heroic Launcher atau PROTON_ENABLE_WAYLAND=1 dimatikan, game berjalan melalui XWayland
  • XWayland menambahkan latensi besar dibanding Wayland native
    • low-latency aktif: naik 1,12ms dari 4,83ms menjadi 5,95ms
    • DXVK bawaan: naik 3,13ms dari 4,93ms menjadi 8,06ms
  • Tambahan 3,13ms pada DXVK bawaan lebih besar daripada gabungan semua efek lain yang diukur, dan bukan karena beberapa frame buruk menaikkan rata-rata, melainkan karena seluruh distribusi bergeser
  • Menambahkan dxvk-low-latency pada XWayland mengurangi latensi 2,11ms, menjadi perbaikan terbesar di antara semua kasus

Cakupan penerapan hasil dan interpretasi praktis

  • Hasil pengukuran terbatas pada kondisi optimal berupa FPS terbatas yang stabil, bottleneck CPU, dan adegan statis, serta software stack dan hardware tertentu
  • Di lingkungan lain, nilai latensi absolut dapat berbeda, tetapi peningkatan atau penurunan yang terjadi pada tiap konfigurasi dianggap umumnya dapat terbawa
  • Pada display dengan refresh rate lebih rendah, kemungkinan dampak perbaikan dari VRR dan pacer latensi rendah akan lebih besar
  • X11 lebih cepat 0,14~0,22ms daripada Wayland, tetapi selisih ini dapat menyempit berkat pekerjaan optimasi KWin, dan ada kemungkinan compositor Wayland lain sudah lebih baik
  • Jika mengecualikan XWayland, penerapan X11, VRR, dan dxvk-low-latency sekaligus menghasilkan median 0,72ms lebih rendah daripada konfigurasi Wayland bawaan
  • Selisih median kecil, tetapi VRR mengurangi jitter latensi, dan dxvk-low-latency meredam penurunan frame time serta situasi bottleneck GPU yang terjadi dalam game nyata

Proyek pengukuran latensi input serupa

1 komentar

 
GN⁺ 3 jam lalu
Pendapat Hacker News
  • Hal bagus dari Linux adalah analisis seperti ini bukan hanya bisa dilakukan, tetapi juga benar-benar mengarah pada perbaikan ekosistem. Hasilnya disampaikan kepada pengembang perangkat lunak grafis dan pengelola paket distribusi, tetapi di Microsoft jalur perbaikan seperti ini tampaknya sulit diharapkan
    Setelah lama memakai Windows, saya baru-baru ini pindah ke Linux, dan saya suka bahwa KDE Plasma terasa lebih responsif daripada Windows 11, serta ketika ada masalah saya bisa memperbaikinya sendiri. Jika sudah lama tidak mencoba desktop Linux, saya merekomendasikan Bazzite, Fedora yang disesuaikan untuk gaming; bahkan jika tidak bermain game, ini memungkinkan Anda menyiapkan desktop yang matang dengan cepat

    • Semoga makna itu benar-benar berujung pada perbaikan nyata. Saya memakai Linux sebagai sistem operasi utama dan menyukainya, tetapi lingkungan desktop dan konfigurasi di sekitarnya menjadi jauh lebih rumit, sementara kualitasnya justru memburuk dibanding dulu
      Dulu kita bisa mengubah apa pun sesuai keinginan dengan satu berkas konfigurasi yang intuitif, tetapi sekarang, meski ada banyak lapisan abstraksi untuk tema, ikon, mode terang, dan mode gelap, sulit menemukan kombinasi yang benar-benar bekerja. Di mode terang muncul teks abu-abu di atas abu-abu terang, di mode gelap muncul teks hitam di atas latar hitam, dan tergantung tema seperti Adwaita, bahkan penampil PDF kadang tidak bisa menentukan warna teks dan latar dengan benar
      Tidak ada tema yang membuat scrollbar cukup terlihat, dan tidak ada yang membedakan jendela aktif dan tidak aktif dengan warna yang jelas. Bahkan Windows 3.11 menangani scrollbar, penanda jendela aktif, dan kustomisasi warna dengan lebih baik; jadi sebelum semuanya dirancang secara berlebihan, hasilnya justru lebih baik
    • Microsoft juga sepertinya bisa mengumpulkan data telemetri dari jutaan perangkat dengan satu pengaturan dan menyampaikannya kepada pengembang perangkat lunak grafis
      Intel(https://www.techpowerup.com/312122/psa-intel-graphics-driver...) dan Nvidia(https://nateshoffner.com/blog/2017/05/disable-nvidia-telemet...) juga mengumpulkan data semacam ini dari pengguna yang menyetujuinya. Namun keduanya berbasis opt-in, jadi mungkin tidak banyak data dari gamer yang sangat antusias
    • Sebagian memang benar-benar membaik, tetapi ada juga bidang yang membutuhkan kolaborasi skala besar yang tidak bisa ditangani oleh para penggemar atau perusahaan kecil. Contohnya menerapkan koreksi warna yang konsisten ke semua aplikasi, atau mendukung fitur printer tingkat lanjut dengan benar
      Ada banyak perubahan bertahap, tetapi sering kali selama bertahun-tahun terjebak di optimum lokal. Meski begitu, bagus bahwa cara kerja internalnya relatif mudah dilihat, dan saya tidak begitu paham mengapa Windows dan macOS harus selalu bersifat closed source
    • Di Windows pun dimungkinkan melakukan patch pada pemanggilan API kernel, mengganti pembuatan objek COM, memasang driver filter yang mencegat permintaan perangkat, hingga mengganti DLL di ruang pengguna. Intervensi yang kuat dan berbahaya semacam ini bisa dilakukan sampai-sampai ketika mencari API tertentu, forum blackhat atau panduan menulis exploit muncul; kadang saya bertanya-tanya mengapa hal seperti itu diizinkan
    • Hal yang lebih bagus lagi adalah sebagian besar stack teknologinya open source, sehingga kita juga bisa berkontribusi langsung
  • Beberapa bulan lalu saya mengganti sistem operasi utama sekaligus lingkungan gaming saya ke Fedora, dan secara umum terasa lebih responsif daripada Windows; pengukuran ini menjawab sebagian rasa penasaran saya tentang latensi input dalam game
    Baru-baru ini saya pindah ke Hyprland berbasis Wayland, jadi saya penasaran bagaimana hasilnya akan berbeda, dan karena popularitasnya sudah meningkat, saya berharap ini diuji lagi. Saya juga sempat mempertimbangkan Gamescope, tetapi ada kabar bahwa itu tidak bekerja baik di Nvidia, dan baru kali ini saya tahu ada yang disebut kernel yang dioptimalkan untuk game. Dalam game fighting kompetitif, latensi input sangat penting, jadi saya ingin mendengar cerita dari orang yang pernah melakukan optimasi serupa

    • Perbedaan latensi input pada semua pengujian kecuali XWayland sangat kecil sampai tidak bisa dibedakan manusia, dan kalau ada yang bisa menyadari selisih 3ms pada XWayland pun saya akan terkejut. Pada monitor yang lambat, perbedaannya bisa lebih besar, tetapi perbedaan antara protokol Wayland dan X11 itu sendiri sangat kecil, dan sepertinya ada batasan pada implementasi XWayland
    • Peningkatan frame per second dari mengganti kernel umumnya sangat kecil, jadi apakah sepadan dengan usahanya tergantung penilaian masing-masing. Perbedaan utamanya ada pada scheduler yang memprioritaskan proses yang berjalan singkat dan intensif, alih-alih membagi waktu CPU secara merata
      Untuk game, saya menyukai Hyprland, dan pengaturan detail seperti variable refresh rate serta tearing melalui Gamescope lebih mudah dibanding saat memakai AwesomeWM di X11. Konfigurasi Lua juga terasa familier bagi saya yang dulu memakai AwesomeWM
    • Konfigurasi menjalankan Gamescope dari TTY terpisah lalu langsung memulai Steam atau Heroic Launcher bekerja dengan sangat baik. Karena saya toh bermain dalam layar penuh, window manager tidak diperlukan, dan masalah HDR juga teratasi, tetapi tombol volume dan kecerahan jadi tidak berfungsi
    • Di OpenSUSE juga mirip, tetapi kelemahan Wayland adalah streaming game. Sunshine/Moonlight memang bisa berjalan, tetapi latensi input dan artefak tampilan cukup terlihat, jadi untuk streaming saya bolak-balik antara X11 yang lebih baik dan Wayland. Saya berharap seiring waktu nanti hanya perlu memakai Wayland
  • Karena pengujian dilakukan dengan layar 500Hz, banyak masalah yang muncul pada layar dengan refresh rate rendah mungkin tertutupi. Fakta bahwa XWayland 3ms lebih lambat bisa berarti pada refresh rate ini ia tertinggal satu frame
    Jika diuji pada 120Hz atau 60Hz, perbedaan kecil pada timing eksekusi dan efek besar berupa keterlambatan satu frame penuh mungkin bisa dibedakan dengan lebih jelas

  • Di bagian akhir tulisan, penulis heran mengapa Wayland dianggap lambat, tetapi hasil XWayland bisa jadi justru alasannya. Ada kemungkinan pengguna yang menjalankan game X11 di Wayland merasakan latensi yang bermakna. Akan bagus jika ada lebih banyak pengukuran nyata seperti ini di berbagai bidang

    • Yang hasilnya buruk hanya XWayland, dan selisihnya pun hanya beberapa milidetik, jadi sulit dipercaya manusia bisa merasakannya. Kalau 10–20ms masih masuk akal, tetapi beberapa milidetik terasa meragukan
      Penulis sudah menyingkirkan variabel campuran lain dengan baik, tetapi pengguna yang merasa Wayland lambat mungkin awalnya memakai lingkungan yang tidak dioptimalkan, lalu saat beralih ke konfigurasi latensi rendah, pengaturan terkait ikut dibenahi
    • Saya kira Wayland selalu memiliki latensi satu frame lebih besar daripada Xorg untuk mencegah tearing, jadi penasaran apakah sekarang sudah berubah. Jika demikian, refresh rate yang sangat tinggi mungkin telah mengecilkan efek itu
    • Saya sudah memakai Linux sejak pertengahan 1990-an, tetapi sama sekali tidak bisa membedakan X11 dan Wayland, dan tidak tertarik dengan perdebatannya. Ini terlihat seperti pengulangan debat Vim vs Emacs atau GNOME vs KDE, sehingga sekarang ketika melihat keluhan terkait ini saya langsung menutup halamannya
    • Tidak bisa menguji satu kompositor Wayland saja lalu berbicara tentang performa semua kompositor Wayland. Khususnya ekstensi Wayland yang diperlukan untuk menangani perangkat input (https://wayland.app/protocols/) sangat berbeda antarimplementasi
      Berbeda dengan X11, di mana Xorg yang praktis menjadi implementasi referensi standar di mana-mana berperilaku mirip, perbedaan antarimplementasi Wayland itu besar. Bisa saja ada kompositor yang lebih lambat daripada KDE Plasma yang dipakai dalam pengujian, dan bisa juga ada yang lebih cepat
    • Untuk menilai Wayland cepat atau lambat, dibutuhkan informasi lingkungan lengkap seperti versi game, server display dan pengaturannya, pengaturan game, kemampuan monitor dan kartu grafis, versi driver, dan sebagainya
  • Istilah latensi input Wayland itu sendiri mencampuradukkan lapisan yang berbeda, seperti kelancaran animasi HTTP. Yang diukur tulisan ini adalah Xorg, KWin, dan XWayland, sedangkan implementasi X11 dan Wayland lain bisa memiliki karakteristik berbeda
    Namun latensi tambahan XWayland tampak cukup besar sehingga mencurigakan jika dianggap sekadar biaya tambahan biasa

    • Tulisan lain mencurigai driver Nvidia sebagai penyebab: https://davidjusto.com/articles/m2p-latency/#results
    • Perlu diuji ulang juga di GNOME. Saya belum menyelaminya secara mendalam, tetapi kompositor Wayland GNOME tampaknya lebih cepat dan dirancang lebih cermat daripada KWin
      Khususnya Emacs dalam mode pgtk berjalan jauh lebih baik di GNOME, tetapi di KWin ia memakai banyak CPU saat menggulir dan kadang sedikit tertunda pada resolusi tinggi
    • Logika seputar Wayland kadang menjengkelkan. Pertama orang mengatakan X sudah lama dijadwalkan untuk ditinggalkan, jadi beralihlah ke Wayland sebagai masa depan; lalu ketika pengguna mengatakan ada yang rusak atau menjadi lebih buruk, jawabannya adalah Wayland hanya protokol dan itu salah implementasi. Padahal bagi pengguna, semuanya sudah berjalan baik di X
  • Akan sangat menarik juga melihat hasilnya jika dibandingkan dengan Windows pada perangkat keras yang sama

  • Di Breaka Club, mereka menangani masalah ini langsung saat mengajar coding kepada anak-anak dengan Overcooked 2! yang dimodifikasi
    Karena sulit memasang mod di perangkat sekolah, mereka men-streaming OC2 yang sudah menyertakan mod melalui WebRTC, dan anak-anak bermain dari Mobile Safari di iPad dengan gamepad di layar. Instance game berjalan dalam container Docker di Kubernetes/k3s di atas perangkat keras Nvidia lama, melewati internet dan jaringan sekolah, sehingga mereka mengurangi latensi total dengan transfer tanpa salin seperti NVEnc dan DMABuf
    Saat ini mereka mengalami biaya tambahan input XWayland, tetapi karena inputnya berupa perangkat virtual, polanya bisa berbeda. Optimasi end-to-end sulit, dan performa saat ini sudah pada tingkat yang dapat diterima. Video coding OC2: https://www.youtube.com/watch?v=ITWSL5lTLig
    Lisensi OC2 dibeli dalam jumlah terbatas dan dialokasikan satu saat pod dimulai; jika semuanya sedang dipakai, anak-anak memainkan game lain

  • Saat memakai rendering komposit di X11, jika jendela layar penuh mengirim hint pembatalan redirect ke kompositor, komposit dapat dihentikan selama tidak ada elemen lain yang digambar di layar, dan swapchain aplikasi dapat diteruskan langsung ke layar. Ini pada dasarnya cara yang optimal, sehingga sulit diperbaiki lebih jauh
    Jika jendela lain muncul di atasnya atau kompositor menilai tidak bisa meneruskan langsung, muncul tahap perantara yang mengomposit jendela aplikasi dan elemen lain ke buffer sementara. Jika pembatalan redirect rusak, misalnya jendela dibuat 1 piksel lebih kecil daripada tinggi layar, atau jika memakai XWayland, latensi bisa meningkat; ini adalah keterbatasan mendasar, sehingga masalah serupa juga terjadi pada kompositor sistem operasi lain
    Wayland juga telah mengeksplorasi display planes tempat perangkat keras GPU mengomposit beberapa lapisan secara langsung. Dengan ini, game dapat merender pada frame rate maksimum, sementara jendela di atasnya digambar pada plane terpisah dan dikomposit tanpa efek samping, tetapi saya tidak tahu apakah ini digunakan di lingkungan produk nyata

  • Konsol cenderung menargetkan jumlah frame per detik keluaran yang tetap dan resolusi dinamis, sedangkan PC cenderung mengunci resolusi dan membiarkan jumlah frame per detik serta interval waktu frame bersifat dinamis. Saya penasaran apa hubungannya dengan latensi
    Khususnya dalam game kompetitif, orang menargetkan jumlah frame per detik yang jauh melampaui refresh rate display, tetapi saya tidak yakin apakah itu benar-benar bermanfaat atau hanya ilusi

    • Dari sudut pandang saya yang bekerja di bidang rendering, jumlah frame per detik yang tinggi membantu dengan cara yang khas. Posisi render objek terutama ditentukan pada saat rendering frame dimulai, jadi makin sering frame dibuat, objek yang terlihat di layar makin dekat dengan posisi aktualnya saat ini
      Intinya bukan melihat lebih banyak frame, melainkan melihat informasi yang lebih baru. Rendering juga bisa mulai ditunda agar selesai tepat sebelum refresh layar, tetapi jika timing-nya meleset sedikit saja akan terjadi stutter parah, dan waktu eksekusi GPU serta waktu CPU mengirim pekerjaan tidak deterministik
    • Jumlah frame per detik yang melampaui refresh rate tidak sepenuhnya tidak berarti, tetapi memang ada pemborosan sumber daya. Itu karena setiap frame yang ditampilkan mencerminkan state game yang lebih mendekati kondisi terbaru
      Idealnya, tanpa membuat frame yang tidak perlu, rendering dimulai tepat sebelum refresh layar, tetapi jika deadline terlewat, akan muncul stutter yang sangat mengganggu
    • Game PC juga sering mendukung resolusi dinamis. Konsol biasanya menargetkan 60fps karena kebanyakan TV memang memiliki refresh rate seperti itu dan semua pengguna memakai konfigurasi hardware yang sama atau hanya beberapa macam
      Frame baru bisa masuk di tengah proses scan layar sehingga menimbulkan tearing, tetapi di bawah garis batasnya akan ditampilkan piksel yang lebih baru. Jadi dalam satu frame monitor, beberapa frame render bisa tercampur, dan meski tidak sebagus display variable refresh rate dengan refresh rate tinggi, ini tetap mengurangi latensi. Pada game yang gerakan bukan faktor penting, VSync sering dipakai untuk menyelaraskan frame dengan refresh rate dan menghilangkan tearing
    • Kalau itu ilusi, berarti ilusinya cukup kuat sampai pemain kompetitif rela mengorbankan banyak detail dan resolusi demi mengejar jumlah frame per detik yang sangat tinggi. Saya juga bisa melihat perbedaannya, tetapi karena diminishing returns, biasanya saya memilih resolusi tinggi dan grafis yang lebih baik
      Beberapa game menyesuaikan resolusi secara real-time untuk menjaga jumlah frame per detik yang stabil. Di PC, sejak awal game bisa dijalankan pada spesifikasi yang jauh lebih rendah dari target aslinya, jumlah frame per detik yang rendah lebih diterima secara budaya, dan jika tidak suka orang bisa melakukan upgrade. Konsol tidak punya jalur upgrade dan harus dioptimalkan untuk satu konfigurasi, sehingga sebelum performa turun terlalu jauh, menurunkan resolusi adalah pendekatan yang lebih cocok
    • Di inti sebuah game ada loop besar yang berjalan setiap frame. Jika frame dibuat lebih cepat daripada refresh rate display, refresh layar berikutnya lebih mungkin memakai frame yang lebih baru, sehingga latensi input berkurang
      Ini bukan berarti game menerima lebih banyak event input, tetapi input bisa diproses dan direfleksikan lebih cepat. Ini bukan ilusi, tetapi diminishing returns-nya besar, dan efeknya bergantung pada frame queue, VSync, variable refresh rate, bottleneck CPU atau GPU, serta struktur loop input dan simulasi
  • Penulis tampaknya sejak awal ingin menyingkirkan kemungkinan ilusi, tetapi bukankah latensi pada akhirnya dinilai dari rasa dan pengalaman penggunaan? Menurut saya pribadi, bagaimana rasanya bagi pengguna adalah ujian akhir; meski data berguna untuk mendiagnosis dan memperbaiki latensi aktual, dalam kebanyakan UI/UX tidak masalah mengandalkan preferensi dan persepsi subjektif
    Menyertakan penilaian yang kurang teknis seperti rating bintang juga bisa mencegah pengujian dan pengumpulan data terlalu terjebak dalam metodologi. Dalam pengujian yang dirancang sangat presisi, ada kemungkinan kondisi penurunan performa yang sering muncul dalam penggunaan sehari-hari pada lingkungan tertentu justru terlewat

    • Sebagai pemain rhythm game di level nasional, saya sulit setuju. ITGmania mengukur akurasi dalam satuan 0,1ms, dan jika latensi hardware berubah-ubah antar sesi atau di tengah sesi, skor akan hancur; lingkungan yang tidak konsisten sangat menyebalkan. Latensi tidak boleh diperlakukan sebagai sekadar perasaan atau suasana
    • TV TFT pertama memiliki latensi input 2 detik, sehingga tidak bisa dipakai bermain game, dan itu tidak ada hubungannya dengan perasaan. Latensi 10ms saja sudah menimbulkan dampak yang bisa diukur: https://www.youtube.com/watch?v=5qjSGEOEaXo
    • Dalam situasi yang paling penting, ini bukan ilusi. Jika dua pemain FPS dengan kemampuan sama berhadapan, lalu latensi sistem salah satunya 4ms dan yang lain 5ms, meski masing-masing tidak bisa merasakan perbedaan antara dua lingkungan itu, pihak 4ms secara statistik lebih unggul