Selamlar herkese,
Ben lise 10. sınıf öğrencisiyim. Intel Core i5-10210U işlemci, 4 GB RAM ve Intel UHD entegre grafik kartına sahip oldukça düşük sistemli bir laptop kullanıyorum. Mount & Blade II: Bannerlord gibi oyunları en düşük ayarlarda 1280x768 çözünürlükte ancak 20 FPS civarında oynayabiliyordum.
Bu performans sorununu çözmek ve benim gibi düşük sistemli bilgisayarı olan arkadaşlara yardımcı olmak amacıyla **Universal Borderless Upscaler (UBU)** adında bir performans aracı geliştirdim.
### Projenin Mantığı Nedir?
Yazılım, oyunu çok düşük çözünürlüklü pencereli modda çalıştırarak (Örn: 800x600 veya 400x300) işlemci ve ekran kartı üzerindeki yükü hafifletiyor (böylece FPS uçuyor). Ardından saf Win32 API ve DirectX 11 kancaları kullanarak her kareyi yakalayıp, GPU üzerinden ekranın tam boyutuna çerçevesiz tam ekran (borderless) olarak ölçekliyor.
### v2.1 Sürümünde Neler Yaptım?
- Intel UHD sürücülerinin kilitlenmesini önlemek için PrintWindow yerine optimize edilmiş GDI BitBlt hattına geçtim.
- DXGI Desktop Duplication API entegre ettim ve takılmaları önlemek için zaman aşımını 4ms'ye çektim.
- Mouse koordinatlarının taşmasını engellemek için fare hareketlerini sanal bir katmanda toplayıp işletim sistemine oranlayarak aktaran bir sistem yazdım.
- Kısayollar: `Alt + Shift + Z` (Aç/Kapat), `Alt + Shift + 1/2/3` (Nearest Neighbor, Bilinear, Smart Sharpen keskinleştirme modları) ve `Alt + Shift + V` (VSync Aç/Kapat).
### Bilirkişilerden İstediğim Yardım (Kilitlenme Sorunu 🐛)
Proje MinGW-w64 (`build.bat`) veya CMake ile sorunsuz derleniyor. Ancak bir oyunda `Alt + Shift + Z` kısayoluna bastığımda, arayüz katmanı başarıyla oluşmasına rağmen ekran yakalanan ilk karede donup kalıyor. Arka planda oyunun sesleri gelmeye devam ediyor. Muhtemelen render döngüsü ana iş parçacığını (thread) kilitliyor ya da GDI kaynakları Intel GPU üzerinde döngüyü yenileyemiyor.
Bu projeyi bitmiş static bir kod olarak bırakmak istemiyorum. Tamamen açık kaynaklı, GitHub topluluğuyla birlikte büyütülebilecek ve geliştirilebilecek bir proje olmasını hedefliyorum. Win32 thread yapısına, grafik programlamaya veya DirectX 11'e hakim olan bilirkişiler kodlarımı inceleyip destek olabilir mi?
**GitHub Kaynak Kodları:**
https://github.com/kudiron/UniversalBorderlessUpscaling
**Hazır Derlenmiş Sürüm (v2.1 .exe indirme linki):**
https://github.com/kudiron/UniversalBorderlessUpscaling/releases/tag/v2.1
Kodlardaki thread veya yakalama kilidini çözebilecek her türlü Issue bildirimine ve Pull Request'e açığım. Şimdiden destek veren herkese çok teşekkür ederim!
İlgi Alanları: Yazılım
Son Giriş: 6 gün önce
Son Mesaj Zamanı: 2 hafta
Mesaj Sayısı: 2
Gerçek Toplam Mesaj Sayısı: 2
İkinci El Bölümü Mesajları: 0
Konularının görüntülenme sayısı: 0 (Bu ay: 105)
Toplam aldığı artı oy sayısı: 0 (Bu hafta: 0)
En çok mesaj yazdığı forum bölümü: Yazılım Genel






Yeni Kayıt
Özel Mesaj

Görüntülenme
2 Yanıt
0 




