1 poin oleh GN⁺ 2024-11-01 | 1 komentar | Bagikan ke WhatsApp

Pembaruan driver GPU Apple M1/M2

  • Driver grafis kernel untuk GPU Apple M1 dan M2 ditulis dalam Rust, dan mendapat perhatian karena telah mencapai kesesuaian terhadap berbagai standar grafis.
  • Di X.Org Developers Conference (XDC) 2024, Alyssa Rosenzweig menyampaikan pembaruan tentang status driver dan jenis game yang dapat didukung.
  • Rosenzweig melanjutkan tradisi presentasi dengan kostum penyihir di XDC sejak 2019.

Pembaruan dan tessellation

  • Pada XDC tahun lalu, dilaporkan bahwa driver telah mencapai kesesuaian OpenGL ES 3.1.
  • Saat ini driver telah mencapai kesesuaian OpenGL 4.6, dan pembahasan berlanjut ke tessellation shader.
  • Hardware tessellator pada GPU Apple kekurangan fitur untuk mengimplementasikan standar OpenGL, Vulkan, dan Direct3D, sehingga sulit digunakan.
  • Driver mengimplementasikan tessellation melalui perangkat lunak, dengan mengonversi kode reference tessellator milik Microsoft ke OpenCL C untuk digunakan.

Vulkan dan game

  • Driver GPU Honeykrisp M1/M2 telah mencapai kesesuaian Vulkan 1.3.
  • Untuk kompatibilitas dengan DirectX, Windows, dan CPU x86, digunakan driver DXVK dan Wine untuk menerjemahkannya ke Vulkan.
  • FEX-Emu digunakan untuk menerjemahkan dari x86 ke Arm64, dan mesin virtual dipakai untuk mengatasi perbedaan ukuran halaman memori.

Performa dan menjalankan game

  • Driver dapat menjalankan berbagai game, dan performanya sedikit di bawah akselerasi hardware tetapi tetap pada tingkat yang praktis.
  • Game kelas berat memerlukan RAM 16GB atau lebih, sementara beberapa game dapat berjalan bahkan pada sistem 8GB.
  • Dukungan ray tracing saat ini berprioritas rendah, dan ada rencana untuk mulai mengerjakan GPU M3.

Ringkasan GN⁺

  • Driver GPU Apple M1/M2 ditulis dalam Rust untuk memberikan stabilitas dan performa yang tinggi.
  • Driver ini sesuai dengan berbagai standar grafis, dan implementasi tessellation berbasis OpenCL menjadi hal yang menarik.
  • Melalui kompatibilitas Vulkan dan DirectX, berbagai game dapat dijalankan, dan penyelesaian masalah ukuran halaman memori dengan mesin virtual terasa unik.
  • Artikel ini bermanfaat untuk memahami tantangan dan solusi dalam pengembangan driver GPU modern, dan proyek dengan fungsi serupa yang direkomendasikan antara lain DXVK dan Wine.

1 komentar

 
GN⁺ 2024-11-01
Komentar Hacker News
  • Ada pendapat yang menekankan bahwa dia adalah seorang penyihir
  • Ada pendapat yang mengungkapkan keterkejutan karena banyak bagian yang hilang di hardware dan emulasi digunakan secara luas
  • Ada pendapat bahwa orang sudah terlatih untuk mengharapkan artikel seperti "penghentian dukungan dan akuisisi"
  • Ada pendapat yang penasaran apakah M3/M4 akan memerlukan driver yang sepenuhnya berbeda
  • Ada pendapat yang bertanya-tanya apakah membagikan tautan /SubscriberLink/ itu tidak etis
  • Ada pendapat bahwa akan lucu jika dimulai dalam bahasa Prancis, sekaligus sangat mengesankan
    • Ada pendapat bahwa file tessellator.cl adalah file paling membingungkan dalam kariernya
    • Ada pendapat yang menyatakan keterkejutan bahwa presenternya berusia 23 tahun, serta bahwa kebingungan dalam karier tidak berkurang seiring waktu
    • Ada pendapat bahwa pekerjaannya sangat mengesankan, dan bahwa pernyataannya soal 2.000 baris kode C++ yang sulit dipahami patut diperhatikan
  • Ada pendapat bahwa karya Alyssa R dan Asahi Lina luar biasa
    • Ada pendapat bahwa ada banyak bagian yang sulit dipahami jika tidak terbiasa menangani kode driver
    • Ada pendapat bahwa pekerjaan hardware sangat spesifik sehingga orang berharap itu bisa ditulis dengan lebih mudah
    • Ada pendapat yang menikmati keseruan gaya lama seperti kostum penyihir
  • Ada pendapat bahwa Alyssa adalah sosok yang luar biasa, dan orang itu ingat artikel pertama tentang dirinya saat dia mulai mengerjakan GPU pada usia 17 tahun
    • Ada pendapat bahwa sungguh menakjubkan ada orang yang mampu melakukan apa yang dia lakukan
  • Ada pendapat yang mencari tautan tentang fakta bahwa driver tersebut ditulis dalam Rust