1 poin oleh GN⁺ 2023-08-23 | 1 komentar | Bagikan ke WhatsApp
  • Driver Linux kini tersedia untuk menjalankan aplikasi OpenGL ES 3.1 sesuai standar pada GPU keluarga M1·M2
  • Driver gratis dan open-source berbasis reverse engineering dari Asahi Linux adalah satu-satunya implementasi OpenGL ES 3.1 yang lulus uji kesesuaian Khronos pada perangkat keras grafis M1·M2
  • Sertifikasi dilakukan melalui kelulusan uji resmi, pengajuan ke Khronos, dan masa peninjauan 30 hari, dengan entri terdaftar untuk M1, M1 Pro/Max/Ultra, M2, dan M2 Pro/Max
  • OpenGL ES 3.1 memperbarui dukungan eksperimental OpenGL ES 3.0·OpenGL 3.1 yang dirilis pada bulan Juni, serta menambahkan compute shader dan operasi atomik gambar
  • M1 tidak memiliki instruksi khusus untuk operasi atomik gambar, sehingga diakali lewat perhitungan alamat; kemudian ditemukan instruksi bit interleave yang memangkas 10 instruksi menjadi 1

Sertifikasi kesesuaian OpenGL ES 3.1 untuk M1·M2

  • Driver dengan sertifikasi kesesuaian OpenGL ES 3.1 untuk GPU keluarga M1·M2 kini tersedia
    • Kompatibel dengan aplikasi OpenGL ES 3.1
    • Dapat digunakan dengan instalasi Linux
  • Pengguna Asahi Linux yang sudah ada dapat memperoleh driver terbaru lewat perintah upgrade sesuai distribusi
    • Fedora: dnf upgrade
    • Arch: pacman -Syu
  • Driver grafis gratis dan open-source berbasis reverse engineering tersedia di asahi/mesa
  • Driver ini adalah satu-satunya implementasi bersertifikasi kesesuaian OpenGL ES 3.1 di dunia untuk perangkat keras grafis keluarga M1·M2
    • Telah lulus puluhan ribu pengujian untuk membuktikan akurasinya
    • Diakui oleh lembaga standar industri

Prosedur Khronos dan keluarga chip yang terdaftar

  • Untuk memperoleh sertifikasi kesesuaian, implementasi harus lulus conformance test suite resmi
    • Test suite dirancang untuk memverifikasi semua fitur dalam spesifikasi
    • Hasil pengujian diajukan ke badan standardisasi Khronos
    • Jika tidak ada masalah selama masa peninjauan 30 hari, implementasi menjadi bersertifikasi kesesuaian
  • Di situs web Khronos, driver berikut terdaftar sebagai implementasi bersertifikasi kesesuaian
  • Pencapaian ini tidak berhenti pada OpenGL ES saja
    • Ini merupakan implementasi bersertifikasi kesesuaian pertama di seluruh standar grafis untuk M1

Kesenjangan antara driver vendor dan API standar

  • Driver M1 dari vendor belum memperoleh sertifikasi kesesuaian untuk API grafis standar apa pun, termasuk Vulkan, OpenGL, maupun OpenGL ES
  • Pada lingkungan M1·M2 yang tidak menggunakan Linux, tidak ada jaminan bahwa aplikasi berbasis standar akan berjalan
  • Dalam kasus Vulkan, MoltenVK melapiskan sebagian Vulkan di atas driver proprietari
    • Driver proprietari tersebut tidak memiliki sejumlah fitur inti
    • Aplikasi Vulkan yang valid bisa rusak
    • Ini menjadi hambatan bagi pengembang dan pengguna yang belum memindahkan komputer M1·M2 ke Linux
  • Pengembangan driver Asahi Linux bertujuan agar perangkat lunak standar dapat berjalan tanpa hack khusus M1 atau porting khusus
    • Tidak puas dengan driver proprietari, API proprietari, dan penolakan terhadap implementasi standar
    • Memandang implementasi standar terbuka yang sesuai spesifikasi sebagai arah yang sehat bagi ekosistem

Fitur tambahan utama di OpenGL ES 3.1

  • OpenGL ES 3.1 memperbarui dukungan eksperimental OpenGL ES 3.0 dan OpenGL 3.1 yang dirilis pada bulan Juni
  • Fitur tambahan utamanya adalah compute shader
    • Terutama digunakan untuk mempercepat komputasi umum di dalam aplikasi grafis
    • Gim 3D dapat menjalankan simulasi fisika di compute shader
    • Jika hasil simulasi langsung dipakai untuk rendering, jeda akibat sinkronisasi antara GPU dan simulasi fisika CPU dapat dikurangi
    • Hasilnya, gim dapat berjalan lebih cepat

Mengapa operasi atomik gambar diperlukan

  • Versi OpenGL ES sebelumnya memungkinkan aplikasi membaca gambar untuk ditampilkan di layar
  • ES 3.1 memungkinkan aplikasi melakukan penulisan ke gambar biasanya dari compute shader
    • Ini mengurangi batasan untuk menyesuaikan algoritme pemrosesan gambar dengan pipeline 3D fixed-function
  • GPU adalah arsitektur paralel masif yang menjalankan ribuan thread sekaligus
    • Jika dua thread menulis ke lokasi yang sama, hasilnya bisa berbeda tergantung urutan eksekusi
    • Situasi ini disebut race condition
  • Akses memori atomik adalah solusi dasar untuk menangani race condition
    • Perangkat keras khusus dalam subsistem memori menjamin hasil yang konsisten untuk operasi terpilih tanpa bergantung pada urutan thread
    • Perangkat keras grafis modern mendukung berbagai operasi atomik seperti penjumlahan
  • Ekstensi OpenGL ES OES_shader_image_atomic menambahkan operasi atomik pada piksel gambar
    • Ekstensi ini wajib di ES 3.2
    • Misalnya, compute shader dapat menaikkan nilai piksel (10, 20) secara atomik

Cara implementasi operasi atomik gambar di M1

  • GPU lain menyediakan instruksi khusus untuk operasi atomik gambar sehingga implementasi driver menjadi sederhana
  • M1 tidak memiliki instruksi perangkat keras khusus untuk operasi atomik gambar
    • Ada operasi atomik non-gambar
    • Ada juga fitur gambar non-atomik
  • Karena itu, alih-alih melakukan operasi atomik langsung pada piksel, alamat memori piksel dihitung lebih dulu lalu operasi atomik umum dilakukan pada alamat tersebut
  • Jika gambar disusun secara linear di memori, perhitungan alamatnya sederhana
    • Koordinat Y dikalikan dengan stride, yaitu jumlah byte per baris
    • Koordinat X dikalikan dengan jumlah byte per piksel
    • Kedua nilai dijumlahkan untuk mendapatkan offset byte dari piksel pertama
    • Offset ditambahkan ke alamat piksel pertama untuk memperoleh alamat akhir
  • Namun dalam praktiknya, gambar biasanya tidak disusun secara linear
    • Perangkat keras grafis modern melakukan interleave koordinat X·Y untuk meningkatkan efisiensi cache
    • Susunan piksel di memori tidak mengikuti baris, melainkan kurva yang mendekati spiral

Optimalisasi bit interleave dan pencarian instruksi tersembunyi

  • Menginterleave koordinat X·Y dengan masking dan shifting satu bit demi satu bit tidak efisien
  • Algoritme manipulasi bit yang terkenal mencampur kelompok bit untuk memparalelkan masalah
    • Mengimplementasikan algoritme ini dalam kode shader meningkatkan performa
  • Dalam praktiknya, hanya 7 bit terbawah atau kurang dari tiap koordinat yang di-interleave
    • Koordinat X·Y dapat dimasukkan ke 16 bit bawah dan atas dari register 32 bit agar diproses sekaligus dengan instruksi 32 bit
    • Jumlah instruksi dapat dikurangi setengahnya
    • Instruksi gabungan shift-and-add milik GPU juga dimanfaatkan
  • Dengan menggabungkan teknik-teknik ini, interleave dapat dilakukan dengan 10 instruksi assembly GPU M1
  • Setelah itu, kemungkinan adanya instruksi bit interleave khusus pun diteliti
    • PowerVR memiliki instruksi shuffle shfl
    • Karena GPU M1 mengambil beberapa elemen dari PowerVR, kemungkinan adanya instruksi serupa ikut diperiksa
    • Compiler proprietari tidak memakai instruksi tersebut saat mengompilasi shader uji, sehingga reverse engineering sulit dilakukan hanya dari pengamatan hasil kompilasi

Memastikan instruksi interleave lewat dugaan dan verifikasi

  • Dougall Johnson menebak kandidat berdasarkan encoding instruksi yang sudah diketahui
  • Instruksi pembalikan bit memiliki field 2 bit untuk menentukan operasi dengan nilai 01
    • Instruksi menghitung jumlah bit yang diset memakai 10
    • Instruksi mencari bit set pertama memakai 11
    • Instruksi manipulasi bit kompleks yang diketahui memakai tiga nilai tersebut
  • Nilai tersisa 00 adalah nilai tak dikenal yang belum teramati
    • Jika instruksi interleave memang ada, kemungkinannya mirip dengan instruksi pembalikan bit tetapi dengan opcode 00
  • Tiga instruksi yang diketahui hanya memiliki satu sumber input, tetapi instruksi interleave membutuhkan dua sumber
    • Instruksi GPU M1 biasanya mengenkode posisi sumber secara konsisten
    • Pada instruksi aritmetika dua-sumber ada ruang kosong di tempat sumber kedua biasanya berada, dan itu diduga sebagai sumber kedua
  • Verifikasi dilakukan dengan memodifikasi compiler agar operasi integer dua-sumber seperti perkalian diganti dengan encoding interleave yang diperkirakan
    • Operasi itu dipakai dalam compute shader
    • Shader uji memeriksa apakah instruksi tak dikenal mengembalikan hasil interleave untuk setiap kemungkinan input
    • Karena instruksi menerima dua sumber 16 bit, ada sekitar 4 miliar input
    • Berkat dukungan compute baru di driver, GPU M1 dapat memeriksa seluruh input dalam waktu kurang dari 1 detik
  • Pada akhirnya, assembly tervectorisasi 10 instruksi digantikan dengan 1 instruksi interleave
    • Pendekatan ini cepat dan juga lulus uji kesesuaian

1 komentar

 
GN⁺ 2023-08-23
Komentar Hacker News
  • Karena Apple bekerja sama dengan nVidia, Adobe, Autodesk, Microsoft, dan lainnya untuk format adegan OpenUSD untuk rendering/animasi/CAD/3D, saya penasaran apakah dukungan OpenGL·Vulkan akan membaik
    Jika inti OpenUSD adalah “satu format file yang dirender secara konsisten di mana saja”, ada kemungkinan Apple akan menggunakannya sebagai cara untuk menarik lebih banyak perusahaan perangkat lunak 3D ke macOS
    Ke depannya tampaknya ada dua jalan: Apple mengikuti standar OpenGL/Vulkan yang sudah ada dan kuat dalam pipeline produksi film·game, atau sebaliknya mendorong Metal lebih keras untuk membawa dunia ke Metal + macOS
    Hati saya berharap yang pertama, tetapi firasat saya mengatakan Apple akan mengejar yang kedua dengan sekuat tenaga, dan bukan hanya Apple—nVidia, Autodesk, Adobe, dan Microsoft juga cenderung tidak menyukai standar yang tidak mereka kendalikan

    • Saya ingin menambahkan nuansa kira-kira “Apple menyukai standar terbuka ketika posisinya lemah”
      iMac dan OS X awal sangat menonjolkan standar seperti USB, JPEG, MPEG, mp3, PostScript, TCP/IP bawaan, dan .rtf, dan Jobs juga menekankan hal itu
      Setelah pulih dari ambang kehancuran, mereka kembali mulai melakukan “penambahan nilai”, dan iPhone pada awalnya juga ditekankan sebagai perangkat HTML, alih-alih Flash yang proprietari dan buruk atau “HTML mobile” yang belum matang
      Bahkan sekarang, di area yang kekuatan pasarnya lemah, mereka mendukung standar yang tidak mereka kendalikan seperti H.264, Matter/Thread
    • Apple memang mendukung banyak standar terbuka, tetapi tampaknya lebih tepat mengatakan bahwa mereka “tidak ingin bergantung pada standar yang tidak mereka kendalikan”
      Karena mereka menggabungkan perangkat keras dan perangkat lunak secara erat untuk menciptakan pengalaman pengguna yang mereka inginkan, dapat dipahami bahwa mereka ingin menerapkan standar yang sampai batas tertentu bisa mereka kendalikan agar pengalaman itu tidak ditentukan pihak lain
      Bahkan untuk standar industri yang arahnya belum benar-benar mapan seperti USB-C, jika bergerak lebih dulu Apple dapat memengaruhi arahnya, jadi ada kalanya Apple mengadopsinya
    • OpenUSD adalah cara untuk mengemas dan menspesifikasikan data yang akan dirender, terpisah dari API apa yang dipakai aplikasi untuk akselerasi rendering
      Sebagian besar seperti Adobe, Autodesk, Blender, dan lainnya sudah mendukung backend berbeda untuk tiap sistem operasi, dan di macOS itu juga mencakup Metal
    • Saya rasa Apple tidak akan kembali ke OpenGL
      OpenGL sudah terlalu tua, memakai driver yang bagus pun hampir seperti mimpi buruk, dan bahkan menulis kode aplikasi berperforma tinggi juga sulit, jadi saya tidak terlalu menyayangkannya
      Meski begitu, saya berharap mereka mendorong Vulkan daripada membuat Metal, tetapi di luar Linux, Vulkan umumnya hampir seperti warga kelas dua; walau begitu, sebagai target, ia masih warga kelas dua yang cukup layak
      Dari sudut pandang dukungan game atau Steam, banyak game menyerahkan penanganan API kepada engine, dan jika sebuah tim punya kapasitas menangani API secara langsung, kemungkinan MoltenVK pun sudah cukup selama mereka tidak memakai fitur yang sangat mutakhir
      Sepanjang hidup saya banyak memakai OpenGL demi lintas platform, tetapi karena global state, fungsi-fungsi yang seharusnya tidak digunakan, jebakan, header ekstensi raksasa, dan debugging yang sulit, itu benar-benar API yang buruk; Vulkan memang bertele-tele, tetapi dalam banyak hal justru lebih mudah
    • Situasi Metal/Vulkan/OpenGL memang disayangkan, dan motivasi Apple sulit dipahami
      Namun Mac yang saya pakai sekarang terhubung ke berbagai periferal dan monitor besar hanya dengan port USB-C memakai protokol standar
      Secara umum Apple tampaknya lebih menyukai standar terbuka jika standarnya sudah cukup memadai; dulu ketika USB2 belum bisa melakukan banyak hal yang dilakukan Lightning, mereka membuat Lightning, tetapi ketika USB-C muncul, mereka langsung menerimanya di Mac dan iPad, sementara di iPhone sayangnya masih menunda-nunda
  • Asahi dan Alyssa adalah raksasa reverse engineering, dan pekerjaan mereka nyaris sulit dipercaya
    Saya kira besar kemungkinan Apple pernah mencoba merekrut mereka, atau sudah mencoba tetapi ditolak

    • Alyssa sudah terikat kontrak dengan Valve
      Bisa dibilang Valve punya alasan bisnis yang lebih besar daripada Apple untuk memanfaatkan kemampuan ini
    • Saya rasa Apple sudah pernah mencoba, tetapi ditolak karena NDA dan klausul nonkompetisi, atau HR mereka tidak mampu menilai profil orang-orang ini dengan benar
    • Perekrutan bukanlah tawaran yang terlalu bagus
      Biasanya karyawan dibayar rendah dibandingkan keuntungan yang mereka hasilkan, terutama di TI
      Orang berbakat lebih baik mendirikan badan usaha dan menjual layanan dengan harga yang pantas, tetapi di beberapa negara, perusahaan-perusahaan besar melobi pemerintah untuk menutup jalan seperti ini
  • Trik operasi atomik itu sangat memuaskan, dan menyimpulkan instruksi swizzle dari silsilah PowerVR juga sangat mengesankan
    Saya rasa para engineer Apple pun akan belajar dari sini, atau setidaknya sangat menghargai kecerdasannya
    Ini mengingatkan saya pada masa lalu ketika Accolade melakukan reverse engineering perangkat keras video Sega Genesis; para engineer menjadikan dokumentasi Texas Instruments TMS9918 VDP yang tersedia publik sebagai titik awal untuk menyimpulkan VDP turunan 9918 pada Genesis (Mega Drive)

    • Apple punya dokumentasi internal untuk chip mereka sendiri, jadi meskipun mereka pasti menghargai pekerjaan ini, mereka bukan berada dalam situasi membuat black box lalu lupa cara desainnya saat menulis perangkat lunak
  • Untuk memperjelas, ini bukan sekadar driver Linux pertama yang mendapat sertifikasi kesesuaian; maknanya lebih besar
    Apple sendiri pun tidak sesuai dengan OpenGL ES 3.1, jadi ini secara harfiah adalah driver OpenGL ES 3.1 pertama yang mendapat sertifikasi kesesuaian untuk seri M di sistem operasi mana pun
    Karena itulah muncul permintaan untuk berdonasi kepada tim
    https://asahilinux.org/support/

    • Saya sangat menyukai apa yang mereka lakukan, tetapi dulu ketika saya mengklik tautan asahilinux dari Hacker News, muncul popup yang mengatakan pembaca Hacker News tidak diterima di situs itu, sehingga saya tidak bisa membaca isinya
    • Saya penasaran apakah ini bisa digunakan di macOS
    • Tautan GitHub di sana mengarah ke marcan, yang memimpin Asahi, tetapi saya terutama ingin mendukung pengembangan driver
      Kalau ada opsi seperti itu, saya ingin tahu di mana bisa melakukannya; kalau tidak ada, nanti saya akan memakai tautan itu saja
  • Jika sekarang mencoba men-debug aplikasi OpenGL macOS yang sudah tidak lagi direkomendasikan, masalah ini jadi sangat jelas
    Karena lapisan abstraksinya tidak mengekspos status OpenGL sebenarnya dengan cara yang bisa dibaca oleh debugger OpenGL lama milik Apple
    Jika tidak punya Mac lama dengan macOS lawas yang OpenGL-nya belum berjalan di atas Metal secara internal, pada dasarnya OpenGL di macOS tidak bisa di-debug dengan debugger bawaan
    Debugger atau aplikasinya langsung crash

  • Ini tampaknya terutama membantu game, dan tidak banyak membantu deep learning
    Daya tarik terbesar Mac M1 adalah kapasitas memori yang besar, dan meski mungkin kurang cocok untuk pelatihan karena tidak bisa didistribusikan ke beberapa kartu, ia bagus sebagai mesin inferensi model besar seperti Stable Diffusion dan LLaMA

    • Dua standar GPU komputasi umum lintas platform terbaru yang secara teori bisa digunakan atau diimplementasikan oleh Apple Silicon adalah SYCL dan Vulkan Compute
      SYCL adalah kerangka pemrograman tingkat tinggi yang netral vendor dari Khronos Group, tetapi dukungan aplikasinya terbatas, dan diharapkan makin membaik berkat dukungan Intel
      Vulkan Compute mengakali masalah lewat compute shader, tetapi saya tidak terlalu tahu kondisi dukungan aplikasinya
      SYCL dapat diimplementasikan di atas OpenCL dan ekstensi SPIR-V OpenCL, tetapi karena ketergantungan vendor yang kuat, jalur ini sebagian besar ditinggalkan kecuali oleh Intel dan Mesa; saat ini SYCL sering diimplementasikan sebagai backend untuk API masing-masing vendor GPU seperti ROCm, HIP, dan CUDA
      Menerapkan pendekatan yang sama ke Metal akan sangat sulit, dan Mesa memiliki dukungan eksperimental OpenCL+SPIR-V untuk Intel dan AMDGPU sehingga secara teori bisa diperluas ke Apple Silicon, tetapi OpenCL di Apple Silicon saat ini sama sekali tidak didukung dan baru sebatas ada di roadmap
    • Benar
      Untuk menjalankan deep learning, diperlukan backend seperti CUDA, ROCm, MPS
      Melatih model PyTorch di server CUDA besar lalu menjalankan inferensi di MacBook Air relatif mudah
    • Bagian compute shader adalah kemajuan yang bagus, tetapi tetap belum menyediakan antarmuka yang diharapkan oleh alat-alat deep learning seperti ini
      Namun eiln telah menulis driver Apple Neural Engine, sehingga perangkat keras khusus dapat digunakan alih-alih GPU, dan nantinya akan digabungkan ke linux-asahi
    • TensorFlow Lite memang mendukung OpenGL ES
  • Ungkapan bahwa Asahi Lina dan dua orang mengalahkan perusahaan besar dengan dana minimal memang keren, tetapi pada kenyataannya ini lebih dekat ke Apple yang tidak peduli daripada benar-benar kalah
    Apple sejak awal tidak ikut dalam perlombaan itu

  • Saya suka eufemisme “dua orang mengalahkan perusahaan besar dengan dana minimal”
    Ini jelas memalukan bagi Apple, dan Apple tidak peduli pada standar atau kepatuhan; mereka ingin orang-orang terkurung di taman tertutup mereka sendiri
    Kalau saya bukan pengembang iOS, saya sudah lama meninggalkan ekosistem Apple
    Saya suka perangkat kerasnya, dan juga menyukai brand yang dulu mengedepankan kreativitas dan berpusat pada manusia seperti Apple era 80–90-an, tetapi perusahaan saat ini tampak membusuk oleh keserakahan di balik video pemasaran yang politically correct

    • Sepenuhnya setuju, tetapi menemukan alternatif yang bermakna nyaris mustahil
      Saat upgrade terakhir, saya mencari alternatif, tetapi untuk keluar dari Apple harus menerima kompromi tanpa akhir
      Untuk pengganti iPhone, saya melihat Pixel dengan harapan Android murni dan dukungan panjang, tetapi cerita soal masalah baterai tidak ada habisnya, dan kematangan software, ekosistem aplikasi, serta stabilitas juga menjadi kendala
      Sulit juga menemukan produk dengan value for money yang mendekati kualitas rakitan, baterai, dan stabilitas MacBook Air M1 model dasar
      Saya juga membaca komik dan majalah di iPad, tetapi di pasar tablet saya sudah bertahun-tahun tidak tahu alternatifnya apa; Apple Watch mungkin bisa ditinggalkan, tetapi perangkat itu memang bekerja dengan baik dan aksesori pihak ketiganya melimpah
      Masa ketika memasang ROM baru setiap hari sudah berlalu, dan sayangnya dalam hal stabilitas serta kemudahan penggunaan, tampaknya sulit mengalahkan Apple
    • Rahasia terbesar industri ini mungkin adalah bahwa dua orang bisa menghasilkan lebih banyak daripada perusahaan terbesar
      Satu-satunya alasan pekerjaan semua orang aman adalah karena tidak ada yang bisa mengetahui secara tepat siapa dua orang itu
    • Sepertinya banyak orang melewatkan bahwa meski Apple relatif mudah saja mengunci laptopnya, mereka tetap membiarkan pintu terbuka agar sistem operasi lain dan pengembangannya dimungkinkan
      Apple membuat silicon sendiri dan membangun seluruh platformnya, jadi sulit menganggap bahwa membiarkan sistem operasi lain berjalan adalah sekadar kesalahan
      Jelas mereka secara sadar membiarkan pintu terbuka untuk pengembangan pihak ketiga, jadi mengecewakan melihat suasana yang menyalahkan Apple
    • Saya tidak berpikir Apple wajib mengimplementasikan suatu standar hanya karena standar itu ada
      Misalnya, untuk mendukung implementasi Vulkan yang berkelanjutan dibutuhkan sumber daya besar dan beban pada jadwal rilis, jadi perlu alasan bisnis
      “Agar tidak memalukan” kemungkinan besar tidak cukup
      Argumen niat baik komunitas mungkin bisa dipakai, tetapi saya rasa Apple tidak akan mengejar simpati dari orang-orang yang menyebut mereka “perusahaan yang membusuk oleh keserakahan di balik video pemasaran yang politically correct”
    • OpenGL adalah spesifikasi yang sekarat, berbasis model pemrograman lama yang buruk, dan uji kesesuaian Khronos juga punya sisi yang aneh dan berlebihan
      Uji kesesuaiannya bukan open source, dan “conformance suite” terpisah yang ada di GitHub berbasis dEQP milik Google, bukan kumpulan pengujian internal Khronos
      Implementasi tetap bisa mendapat “sertifikasi kompatibel standar” meski memiliki bug dan celah yang cukup besar
      Apple hanya menjanjikan dukungan OpenGL 3.1, dan driver OpenGL untuk M1 juga ditulis ulang sebagai lapisan emulasi di atas Metal agar aplikasi lama tetap berjalan, tetapi mereka tidak akan mengimplementasikan versi OpenGL yang lebih baru, dan memang tidak perlu
      Ada banyak kritik terhadap Apple dan masih banyak ruang untuk membuat API serta alat Metal menjadi lebih baik, tetapi tidak memedulikan OpenGL adalah keputusan yang cukup masuk akal dalam konteks ini
  • Menarik bahwa di teks asli kata ‘Apple’ tidak muncul sekali pun, hanya memakai istilah ‘produsen’ dan ‘perusahaan besar’
    Kalau disengaja, saya penasaran apakah alasannya legal

    • Mungkin karena tulisan ini memang bukan tentang Apple
      Fokusnya bukan Apple, melainkan menjalankan Linux dengan benar di arsitektur M1/M2, dan kalau targetnya Microsoft, Amazon, atau Google pun mungkin akan diperlakukan dengan cara yang sama
  • Menonton siaran langsung yang menunjukkan proses pengembangan driver ini menyenangkan, dan ini benar-benar pekerjaan yang luar biasa