yusufklncc

Üstün
Katılım
8 Ocak 2024
Mesajlar
662
Makaleler
9
Çözümler
16
Beğeniler
1.176
IMG_0303 2 Medium.webp
IMG_0304 2 Medium.webp

​
Merhaba,

Bir süredir üzerinde çalıştığım bir projeyi paylaşmak istedim. Sistemim i7-14700K, Z790 ve Intel Arc B580; macOS Sequoia 15.8.1'i OpenCore ile kullanıyorum. Bildiğiniz gibi Intel Arc kartlar için macOS sürücüsü yok. Bu yüzden B580 için kendi sürücü yığınımı yazdım. Yapı Linux'taki açık kaynak Intel sürücülerine (xe ve Mesa) dayanıyor:

Intel Arc B580'de çalışanlar:
  • Tam masaüstü hızlandırma: 2560×1440 @ 180 Hz
  • FreeSync / değişken yenileme hızı (48–180 Hz); Ayarlar'da "Değişken" seçeneği de çıkıyor
  • Metal ve OpenCL. Geekbench GPU testinde OpenCL ~83 bin, Metal ~84 bin puan (Hala geliştiriyorum final skorlar değil.)
  • Donanımsal video çözme: AV1, HEVC, H.264.
UHD 770 (iGPU):
  • Ekransız (headless) modda çalışıyor, ekran B580'de. Ama B580 öncesi bunu çalıştırdığım için bunda da her şey çalışıyor. Tek fark bu WhateverXe forku sayılır.

Proje henüz deneysel ve şimdilik yalnızca B580'i destekliyor. Kararlı hale gelince kaynak kodunu paylaşmayı düşünüyorum. İleride belki diğer Arc/Xe kartlara da destek eklenebilir. Elinde bu kartlardan biri olup test etmek isteyen varsa yazabilir müsait olduğum vakitlerde üzerine çalışabiliriz.
 
Hocam bu çalışanlar kısmını bir video olarak da paylaşırsanız çok harika olur. Hayır sorgulamak için söylemiyorum. Bilakis zor bir işi başarmışsınız. Biraz şovunu yapın :) Özellikle donanım hızlandırma render vs de oluyorsa mükemmel. Elinize emeğinize sağlık, başarılar dilerim.
 
Eline sağlık. Geekbench/OpenCL bench dışında decoding/render veya oyun/Safari olarak kararlılık denemeleri de yaptın mı? Derlediğin sürücü B580 esaslı mı yoksa Arc serisi için de geçerli olacak mı?

Ek olarak WEXE'yi önerir misin? Mobil için de geçerliliği var mı?
 
Teşekkürler. Madde madde cevapları vereyim ben en iyisi özet şeklinde.

Kararlılık testleri (Geekbench dışında)

Geliştirme sürecinde devamlı ve yoğun şekilde testler gerçekleştiriyorum. Günlük kullanıma neredeyse hazır bile diyebilirim hiç destek olmadığı haliyle kıyaslayınca. Bundan sonrası daha derin yazım bug tespitleri devamlı testler eksik parçaların geliştirilmesi gibi süreçler. Biraz madde madde özetlemem gerekirse:
  • Vulkan uyumluluğu: Yaklaşık 22.300 test geçti; çökme, zaman aşımı ya da GPU sıfırlaması yok. Hâlâ geliştirme devam ediyor bazı noktalarda.
  • Video decode (VideoToolbox): H.264, HEVC 8/10 bit ve AV1 8/10 bit, 1080p ve 4K'da çıktılar yazılım decoder'ıyla birebir aynı. 5 dakikalık 4K AV1 decode ve encode testleri hatasız.
  • Video encode: H.264, HEVC ve AV1 donanım encode çalışıyor. Kalite H.264'te x264'e yakın, HEVC'de makul. AV1'i tarafında halen iyileştirmeler devam ediyor.
  • Oyun: Minecraft (yerel Vulkan yolu) aynı sahnede 1300-1500 fps veriyor şu an. Windows'ta 1580-1600. Wine üzerinden DirectX 11/12 ve Vulkan da çalışıyor. Ancak halen geliştirmeye açık.
  • Tarayıcılar: Chrome, Electron uygulamaları ve masaüstü tam donanım hızlandırmalı; WebGL, WebGPU ve video da dahil. Ama Safari'de WebGL henüz yok çünkü Safari'nin GPU süreci yalnızca sistem bölümündeki sürücüleri yüklüyor, bunun için isteğe bağlı bir "sistem bölümüne kurulum" bileşeni opsiyon olacak OCLP gibi. Yamalama gerektirecek.
B580'e mi özel, tüm Arc serisinde çalışır mı?

Şu an B580'e (Battlemage, BMG-G21, Xe2) özel. AMA sürücü; çekirdek kısmı, framebuffer, Mesa Vulkan (ANV) ve Metal-Vulkan katmanından oluşuyor. Çekirdek tarafı Linux'un xe sürücüsünü birebir takip eden, sıfırdan yazılmış bir sürücü. Yani:
  • B570: Aynı çipi (BMG-G21) kullandığı için büyük ihtimalle küçük eklemelerle çalışır. Ama test etme imkanım bulunmuyor.
  • Alchemist (A380/A580/A750/A770): Farklı bir nesil (Xe-HPG). Linux'un xe sürücüsü bu nesli de destekliyor, yani teknik yol aynı. Ama nesle özel işler var: firmware, donanım düzeltmeleri, ekran motoru, video motoru.
  • Intel iGPU'lar (Lunar Lake, Meteor Lake, Arrow Lake): Lunar Lake de Xe2, GPU çekirdeğinin önemli kısmı ortak. Ama VRAM olmaması, laptop paneli (eDP) ve güç yönetimi ayrı iş.

    Yani kısaca imkansız değil ancak mimarilerin benzerliğinin fazla ve az olmasına göre desteğin getirilme zorluğu da değişiyor. Bu destek yelpazesi için bi yandan bilgi toplama aracı da geliştiriyorum sürece katkısı olması açısından. Ama nihai amacım yelpazeyi genişletmek zaman içinde. Sadece bu donanımlara sahip test gönüllülerinden yeteri kadar geri dönüşe ihtiyacım var.
Daha somut gerçekçi aşamaları listelersem:
  1. B580'i sağlamlaştırmak. Çünkü burada ne kadar optimize durumdaysam dolaylı açıdan diğer grafik birimleri ve mimarilerde de uğraşım az olacak.
  2. B570 ve diğer BMG-G21 kartlar.
  3. Lunar Lake gibi Xe2 iGPU'lar.
  4. Alchemist ve Meteor Lake / Arrow Lake.
Ama dediğim gibi 2, 3 ve 4. adımları, o donanıma sahip test kullanıcıları olmadan yapamam. Ha B570 ve G21 kartlarına hiç erişimim olmazsa başka kartlar olursa önden tabi onları değerlendiririm.

WhateverXe konusu

Evet, Tiger Lake, Alder Lake ve Raptor Lake iGPU'lar için öneririm. WEX, Apple'ın kendi Tiger Lake sürücüsünü bu iGPU'larda çalıştırıyor; laptop panellerini de destekliyor. 0.6.0 sürümüyle Alder Lake ve Raptor Lake laptoplar da eklendi. Yani mobilde geçerli, hatta asıl hedefi laptoplar. Bizim makinede de UHD 770 (Raptor Lake) iGPU'yu WEX ile kullanıyoruz. Ama WEX mevcut haliyle benim UHD 770'imde sorunsuz çalışmıyor dolayısı ile yerel fork'um var. Repo sahibi issue ve PR kabul etmediği için bunlar ben de. Upstream'e zamanla fixleri gelir sanırım.

Bu arada WEX, Meteor Lake, Arrow Lake ve Lunar Lake'i (Xe-LPG ve Xe2) kapsamıyor; geliştiricisi bunları planlamıyor direkt. Zaten bu yola çıkma sebebim biraz da oydu.

NootedGreen projesi ve forkları da var. Yakın zamanda 13620H yerleşik grafik birimini çalıştırma deneyimim oldu.