Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

144

Üstün
Katılım
15 Aralık 2023
Mesajlar
4.557
Makaleler
1
Çözümler
13
Beğeniler
8.187
Merhaba. Next.js 16 & Tauri uygulamamda Linux Wayland oturumumda GBM buffer size 800x600 Geçersiz argüman hatası oluşuyor.

Whisper Weather adlı bir hava durumu uygulaması yapıyoruz. Dev profilinde bile,
Aldığımız hata şudur:

Bash:
Failed to create GBM buffer of size 640x480: Geçersiz argüman

OS: Arch Linux

Oturum: KWin (Wayland)

X11 fallback zorlaması bile çözmedi.

Bu sorunu bilen var mı?
 
Çözüm
Öncelikle uygulamanızı WebKit'in "Kompozisyon Modu"nu kapatarak çalıştırmayı deneyin. Bunu, uygulamanızı çalıştırırken WEBKIT_DISABLE_COMPOSITING_MODE=1 çevre değişkenini kullanarak yapabilirsiniz. Örnek olarak npm için:

Kod:
WEBKIT_DISABLE_COMPOSITING_MODE=1 npm run tauri dev

Bu şekilde probleminizi çözerseniz, bu argümanı package.json yardımıyla kalıcı olarak projenize ekleyebilirsiniz:

JavaScript:
//package.json
"scripts": {
  "dev": "npm run tauri dev",
  "tauri": "tauri",
   //Çevre değişkenini içerecek şekilde tauri betiğini değiştirin:
  "tauri:dev": "WEBKIT_DISABLE_COMPOSITING_MODE=1 npm run tauri dev"
}

Eğer işe yaramazsa, aynı çözümü WEBKIT_DISABLE_COMPOSITING_MODE=1 çevre değişkeni yerine, WEBKIT_DISABLE_DMABUF_RENDERER=1 çevre değişkenini kullanarak uygulayın. Örneğin:

Kod:
WEBKIT_DISABLE_DMABUF_RENDERER=1 npm run tauri dev

Bunun da işe yaramaması takdirde, GDK Backend'inin XWayland'ı kullanmasını sağlamayı deneyebilirsiniz. Bunu, yukarıda bahsettiğim çözümle benzer şekilde, uygulamanızı GDK_BACKEND=x11 çevre değişkenini kullanarak yapabilirsiniz. Örneğin:

Kod:
GDK_BACKEND=x11 npm run tauri dev

Hatta, bu iki çözümü şu şekilde kombine de edebilirsiniz:

Kod:
WEBKIT_DISABLE_COMPOSITING_MODE=1 GDK_BACKEND=x11 npm run tauri dev
Öncelikle uygulamanızı WebKit'in "Kompozisyon Modu"nu kapatarak çalıştırmayı deneyin. Bunu, uygulamanızı çalıştırırken WEBKIT_DISABLE_COMPOSITING_MODE=1 çevre değişkenini kullanarak yapabilirsiniz. Örnek olarak npm için:

Kod:
WEBKIT_DISABLE_COMPOSITING_MODE=1 npm run tauri dev

Bu şekilde probleminizi çözerseniz, bu argümanı package.json yardımıyla kalıcı olarak projenize ekleyebilirsiniz:

JavaScript:
//package.json
"scripts": {
  "dev": "npm run tauri dev",
  "tauri": "tauri",
   //Çevre değişkenini içerecek şekilde tauri betiğini değiştirin:
  "tauri:dev": "WEBKIT_DISABLE_COMPOSITING_MODE=1 npm run tauri dev"
}

Eğer işe yaramazsa, aynı çözümü WEBKIT_DISABLE_COMPOSITING_MODE=1 çevre değişkeni yerine, WEBKIT_DISABLE_DMABUF_RENDERER=1 çevre değişkenini kullanarak uygulayın. Örneğin:

Kod:
WEBKIT_DISABLE_DMABUF_RENDERER=1 npm run tauri dev

Bunun da işe yaramaması takdirde, GDK Backend'inin XWayland'ı kullanmasını sağlamayı deneyebilirsiniz. Bunu, yukarıda bahsettiğim çözümle benzer şekilde, uygulamanızı GDK_BACKEND=x11 çevre değişkenini kullanarak yapabilirsiniz. Örneğin:

Kod:
GDK_BACKEND=x11 npm run tauri dev

Hatta, bu iki çözümü şu şekilde kombine de edebilirsiniz:

Kod:
WEBKIT_DISABLE_COMPOSITING_MODE=1 GDK_BACKEND=x11 npm run tauri dev
 
Son düzenleme:
Çözüm
Öncelikle uygulamanızı WebKit'in "Kompozisyon Modu"nu kapatarak çalıştırmayı deneyin. Bunu, uygulamanızı çalıştırırken WEBKIT_DISABLE_COMPOSITING_MODE=1 çevre değişkenini kullanarak yapabilirsiniz. Örnek olarak npm için:

Kod:
WEBKIT_DISABLE_COMPOSITING_MODE=1 npm run tauri dev

Bu şekilde probleminizi çözerseniz, bu argümanı package.json yardımıyla kalıcı olarak projenize ekleyebilirsiniz:

JavaScript:
//package.json
"scripts": {
  "dev": "npm run tauri dev",
  "tauri": "tauri",
   //Çevre değişkenini içerecek şekilde tauri betiğini değiştirin:
  "tauri:dev": "WEBKIT_DISABLE_COMPOSITING_MODE=1 npm run tauri dev"
}

Eğer işe yaramazsa, aynı çözümü WEBKIT_DISABLE_COMPOSITING_MODE=1 çevre değişkeni yerine, WEBKIT_DISABLE_DMABUF_RENDERER=1 çevre değişkenini kullanarak uygulayın. Örneğin:

Kod:
WEBKIT_DISABLE_DMABUF_RENDERER=1 npm run tauri dev

Bunun da işe yaramaması takdirde, GDK Backend'inin XWayland'ı kullanmasını sağlamayı deneyebilirsiniz. Bunu, yukarıda bahsettiğim çözümle benzer şekilde, uygulamanızı GDK_BACKEND=x11 çevre değişkenini kullanarak yapabilirsiniz. Örneğin:

Kod:
GDK_BACKEND=x11 npm run tauri dev

Hatta, bu iki çözümü şu şekilde kombine de edebilirsiniz:

Kod:
WEBKIT_DISABLE_COMPOSITING_MODE=1 GDK_BACKEND=x11 npm run tauri dev
Teşekkür ederim.

Şunu denemiştim. Hata gidiyordu, ama performans düşüşleri oluyordu.

JavaScript:
WEBKIT_DISABLE_DMABUF_RENDERER=1 yarn tauri dev

Diğerilerini de deneyeceğim.

Öncelikle uygulamanızı WebKit'in "Kompozisyon Modu"nu kapatarak çalıştırmayı deneyin. Bunu, uygulamanızı çalıştırırken WEBKIT_DISABLE_COMPOSITING_MODE=1 çevre değişkenini kullanarak yapabilirsiniz. Örnek olarak npm için:

Kod:
WEBKIT_DISABLE_COMPOSITING_MODE=1 npm run tauri dev
Teşekkür ederim. Yarn tauri dev olarak değiştirdim ve bu çözdü. Ancak performans düşüşü oluyor sayfalarda. Asıl sorun olan GBM hatası almadık.
 
Son düzenleme:
Teşekkür ederim.

Şunu denemiştim. Hata gidiyordu, ama performans düşüşleri oluyordu.

JavaScript:
WEBKIT_DISABLE_DMABUF_RENDERER=1 yarn tauri dev

Diğerilerini de deneyeceğim.


Teşekkür ederim. Yarn tauri dev olarak değiştirdim ve bu çözdü. Ancak performans düşüşü oluyor sayfalarda. Asıl sorun olan GBM hatası almadık.
Yüksek ihtimalle NVIDIA ekran kartı kullanıyorsunuz? Eğer öyleyse:

Tauri üzerinde uzun bir süredir NVIDIA sürücüleri ile webkitgtkkütüphanesini kullanmanızı etkileyen bir sorun mevcut. Bundan dolayı bu "workaround" ile problemi çözebiliyoruz.

Eğer yaşadığınız performans sorunu, geliştirme ortamınızı ve sizi gerçekten etkiliyorsa, bu sorunu WEBKIT_DISABLE_DMABUF_RENDERER=1 ve WEBKIT_DISABLE_COMPOSITING_MODE=1 dğeişkenleri yerine __NV_DISABLE_EXPLICIT_SYNC=1 çevre değişkeniyle önlemeniz de mümkün. Eğer sadece __NV_DISABLE_EXPLICIT_SYNC=1 değişkenini kullanarak yaşadığınız "GBM hatası"nı önleyebiliyorsanız, performans sorunlarınızın da çözülebileceğini düşünüyorum bu şekilde. Fakat bazen uygulama arayüzünde Glitch'lenmeye tanık etmeniz de mümkün bu yöntemle beraber.

Şimdilik benim tavsiyem bu çözümü de deneyip, hangisinin daha iyi çalışıp çalışmadığına karar verip, Tauri'yi öyle kullanmaya devam etmeniz.
 
Son düzenleme:
Yüksek ihtimalle NVIDIA ekran kartı kullanıyorsunuz?

Tauri üzerinde uzun bir süredir NVIDIA sürücüleri ile webkitgtkkütüphanesini kullanmanızı etkileyen bir sorun mevcut. Sorununuzu bu şekilde çözebilmemiz de bununla alakalı.

Eğer yaşadığınız performans sorunu, geliştirme ortamınızı ve sizi gerçekten etkiliyorsa, bu sorunu WEBKIT_DISABLE_DMABUF_RENDERER=1 yerine __NV_DISABLE_EXPLICIT_SYNC=1 çevre değişkeniyle önlemeniz de mümkün. Eğer bu değişkeni kullanarak yaşadığınız "GBM hatası"nı önleyebiliyorsanız, performans sorunlarınızın da çözülebileceğini düşünüyorum bu şekilde. Fakat bazen uygulama arayüzünde Glitch'lenmeye tanık etmeniz de mümkün bu yöntemle beraber.

Şimdilik benim tavsiyem bu çözümü de deneyip, hangisinin daha iyi çalışıp çalışmadığına karar verip, Tauri'yi öyle kullanmaya devam etmeniz.
Evet doğru tahmin ettiniz. NVIDIA kartı kullanıyorum.