@@ -1602,6 +1602,7 @@ Betik powermetrics'i (CPU/GPU watt, termal basınç; parola bir kez) ve oyunu
16021602| ` thread.csv ` | saniyede bir thread başına kullanıcı/sistem süresi |
16031603| ` ornek.bin ` | 1 ms'de bir konuk, 4 ms'de bir ana thread: PC + çerçeve zinciri (` thread_suspend ` → durum → ` resume ` ; askıdayken kilit/malloc yok) |
16041604| ` ekran/ ` | 2 sn'de bir ~ 480 px JPEG (GPU kopyası, arka planda yazılır) |
1605+ | ` sicaklik.csv ` | saniyede bir CPU/GPU sıcaklığı, iki fan devri, SMC sistem gücü (` tools/smcoku.c ` , sudo gerekmez; ` oturum.sh ` derler) |
16051606
16061607Ek yük (120 fps yarış, ` ps -M ` ): konuk thread +%1.6, süreç +%5 (çoğu
16071608örnekleyicinin kendisi); fps, en uzun kare ve sapma değişmiyor.
@@ -1837,3 +1838,116 @@ Yeni anahtarlar:
18371838| ` FBZINCIR=0/2 ` | son işlem zinciri birleştirmesini kapat / birebirlik doğrulaması |
18381839| ` FBZCTRL=1/2 ` | (` FBZINCIR=2 ` ile) yardımcıyı normal boru hattıyla çalıştır / kendisiyle karşılaştır |
18391840| ` SKIPPS=… ` + ` ABTEST=SKIPPS ` | o ps'lerin bedelini koşu içinde ölç (yalnız KAPALI dilimlerde atlar) |
1841+
1842+
1843+ ## 2026-10-20 – 10-24: ısınma, ses perdesi, kariyer kaydı
1844+
1845+ ### Kapasite ölçümü: GPU'nun gerçek payı
1846+
1847+ Oturumlarda GPU "%98 dolu" görünüyordu, ama bu sınırlı (120 fps) koşuda DVFS
1848+ saatini de içeren bir doluluk. Deterministik ölçüm için yeni üç anahtar:
1849+ ` VCLOCK=8333 ` (oyun saati kare başına sabit 8.333 ms), ` NODRAW=1 ` (ekrana sunmaz,
1850+ vsync beklemez), ` LIMFREE=<kare> ` (o kareden sonra oyunun 120 fps sınırlayıcısı
1851+ kapalı; menüde kullanmayın). GPU en yüksek saatte %100 çalışır, kare başına
1852+ meşgul süre tekrarda ±%0.2. ` PENCERE ` satırı IOReport'tan GPU doluluğunu ve
1853+ "ms/kare @1296 MHz" değerini yazar; ` PASSPROF_CSV=<yol> ` kare başına geçiş
1854+ süreleri. Özellik bedeli aynı koşu içinde ` ABTEST=<AD>,32,4 ` ile (komşu dilim
1855+ çiftleri). Tuzak: Quick Race kapasite koşularının ~ 1/3'ünde araba yavaş kalıyor
1856+ (` sahne arasi kopya ` sayısı ~ 1700 yerine ~ 5500 olmalı) — o koşular geçersiz.
1857+
1858+ ### HD: neden hep sıcak (86 °C)
1859+
1860+ Sıcaklık ve fan artık ölçülüyor (` sicaklik.csv ` ). Bulgu: yükte fanlar
1861+ ~ 2300/2500 dev/dk'da sabit kalıyor, sıcaklık saniyeler içinde GPU gücünü
1862+ izliyor; GPU sürüşün %50-80'inde en yüksek saatte olduğu sürece 86-90 °C.
1863+ Quick Race kapasite dökümü (en yüksek saatte 8.40 ms/kare, sınır 8.33):
1864+
1865+ | kalem | ms/kare |
1866+ | ---| ---|
1867+ | MSAA 2x (G-tamponsuz bedeli 0.9) | ~ 3.0 |
1868+ | ↳ hareket bulanıklığı bölünmesi (MS renk+Z+G sakla/yükle, +176 MB/kare) | ~ 1.7 |
1869+ | ışın izleme (çekirdek 2.0) | ~ 2.7 |
1870+ | oyunun kendi tam çözünürlük son işlemi (normal sürümde de var) | ~ 2.3 |
1871+
1872+ Normal sürüm aynı sahnede 3.0 ms/kare; gerçek oturumda yarışta CPU 2.82 +
1873+ GPU 3.62 = ** 6.45 W** (16 Ekim v1: 9.17 W), en yüksek 70 °C, fanlar hiç dönmedi.
1874+ Isınma HD'nin eklediği MSAA + ışın izlemenin bedeli; kullanıcı görüntüden
1875+ vermemeyi seçti (MSAA yerine son işlem kenar yumuşatma reddedildi).
1876+
1877+ ### HD: ışın izleme sabit deposu, mekânsal gruplar
1878+
1879+ Sabit depo tek yapıdan (30 karede bir +5 ms sıçrama) önce 8 zaman sıralı yuvaya
1880+ geçmişti: yuvalar aynı bölgede üst üste biniyor, ışın çekirdeği +%48, oturumda
1881+ 12 ms üstü kare %1.5 → %5.1 (regresyon). Şimdi (` metal.m ` "SABIT DEPO:
1882+ MEKANSAL GRUPLAR + YENI"): depo iki yarı (ping-pong), canlılar en fazla 12
1883+ mekânsal gruba (~ 16K üçgen) bölünür; birleşmede GPU kopyası + kare başına BİR
1884+ grup kurulumu, hepsi bitince tek karede değişim. Birleşme sıçraması yok.
1885+ Ayrıca ** konum denetimi** : aynı modelin kopyaları (direk, palmiye) başka sırayla
1886+ çizilince anlık yapının refit'i ağacı bozuyordu (çekirdek 1.5 → 15-25 ms);
1887+ çizimin VS matrisinden dünya ötelemesi son tam kurulumla karşılaştırılır,
1888+ 4 birimden fazla kayarsa baştan kurulum (` HD_RT_REFIT_MOVE ` ).
1889+
1890+ ### HD: hareket bulanıklığında arabalar MSAA'sız kalıyordu
1891+
1892+ Hızlı sürerken oyun uzak sahneyi çizip ekranı kopyalıyor, bulanıklaştırıp
1893+ harmanlıyor, SONRA arabaları ve yakın sahneyi çiziyor. HD bu ilk kopyayı sahne
1894+ sonu sayıyordu: arabalar MSAA'sız ve ışın izlemesiz. ` metal.m ` "SAHNE ARASI
1895+ KOPYA": böyle bir kopyada sahne çok örnekli devam eder (` HD_MBFIX=0 ` eski).
1896+ Bedeli hızlı sürüşte ~ +1.5-2 W GPU; kullanıcı düzeltmeyi korumayı seçti.
1897+ Denenip reddedilen: bölünmede yansımaları erken birleştirip G'yi taşımamak
1898+ (` ABTEST ` : +%7.5 iş).
1899+
1900+ ### HD: ayrı G-tamponu geçişi (` HD_GSEP ` )
1901+
1902+ Sahne MSAA geçişi artık G-tamponsuz; yansıyan çizimler orada oyunun kendi
1903+ gölgelendiricisiyle (varyantın c0'ı ile birebir aynı). Sahne bitince tek
1904+ örnekli bir G geçişi yalnız opak yansıma varyantlarını yeniden çizer (Z ikizi,
1905+ ` <= ` testi, eğim sapması -1). ` ABTEST=GSEP ` : GPU işi -%5.5, enerji -%5.9, DRAM
1906+ -28 MB/kare; doğrulama katmanı temiz, menüde fark ≤ 4/255. Tek fark: yol üstü
1907+ çıkartmalara (başlangıç çizgisi) artık ışın yansıması eklenmiyor. Ölçülüp
1908+ varsayılan KAPALI bırakılanlar: ` HD_RT_FAR ` (ışın mesafe sınırı, -0.1 ms) ve
1909+ ` HD_RT_BMIN ` (yansıma ağırlığı eşiği, görünmez eşikte -%0.8).
1910+
1911+ ### Ses: müzik 40-50 sn %3 yavaş/hızlı çalıyordu (2026-10-22)
1912+
1913+ Kullanıcı: "arada bir şey oluyor, o andan itibaren müzik daha ağır akıyor"
1914+ (hoparlörde de). ` SNDMUTE=1 ` (yeni: karıştırma ve servo çalışır, aygıta
1915+ sessizlik gider) + ` SNDCSV ` ile Quick Race 3 dk: her yükleme/takılmada oyunun
1916+ yazma payı yeni bir düzeye oturuyor, ` audio.m ` 'deki yazma imleci servosu bunu
1917+ hata sanıp hızı kelepçeye (±%3) itiyor ve 40-50 sn orada kalıyordu; çağrıların
1918+ %95'inde hız ±%1'den fazla sapıyordu. Neden kapanmıyordu: oyun yazdığı yeri
1919+ bizim bildirdiğimiz GERÇEK oynatma imlecine göre seçiyor (` GetCurrentPosition `
1920+ → ` audio_cursors ` ), çalma hızı değişince üretim de değişir. Servo varsayılan
1921+ KAPALI (` SNDPLL=1 ` eski): sapma %0.56 (yalnız takılma anları), sessiz okuma
1922+ aynı, imleç aşımı 4 → 0.
1923+
1924+ ### Kariyer: profil adı ve kayıt (2026-10-24)
1925+
1926+ O güne kadar hiç profil kaydedilemiyordu; zincir beş ayrı Win32 eksiğiydi:
1927+ metin girişi ` WM_CHAR ` ile geliyor (üretmiyorduk; ` metal.m ` karakter halkası →
1928+ ` PeekMessageA ` ), ` GetFullPathNameA ` yoktu, ` FindFirstFile ` özniteliği hep dosya
1929+ diyordu (profiller KLASÖR olarak aranıyor; joker deseni de yok sayılıyordu),
1930+ ` FileTimeToLocalFileTime ` /` FileTimeToSystemTime ` yoktu (kayıt varken çökme),
1931+ ` RemoveDirectoryA ` /` GetTimeZoneInformation ` eklendi. Kayıtlar her pakette
1932+ ` ~/Library/Application Support/NFSU2 Kayitlar ` ; testlerde MUTLAKA
1933+ ` NFSU2_SAVEDIR=<karalama> ` . Test: ` AUTOTEXT='1650:\b\b\b\bTalha\n' ` ile isim
1934+ yazma, ` FILEOPLOG=1 ` dosya işlemleri.
1935+
1936+ ### Sistem kısayolları ve Space geçişi donması
1937+
1938+ 0.54 sn'lik tek tük donmalar oyunun değil: Ctrl+ok macOS masaüstü değiştiriyor
1939+ (` FullscreenGameMode=0 ` , sistem günlüğünde görünür). Oyun öndeyken Space /
1940+ Mission Control kısayolları kapatılır (` SLSSetSymbolicHotKeyEnabled ` ), arkaya
1941+ geçince ve çıkışta açılır; küresel ve SIGKILL'den sonra kapalı kaldığı için
1942+ aynı ikiliden doğan bir bekçi süreç çökmede geri açar (` tests/boot.c ` ).
1943+ Cmd+Tab, Spotlight, ekran görüntüsü kısayollarına dokunulmaz. ` NFSKISAYOL=0 `
1944+ kapatır.
1945+
1946+ ### Yakalama kısayolu
1947+
1948+ Oyun içinde ** Cmd+Shift+D** : sonraki kare PNG + ` DRAWLIST ` + ` DRAWSUM `
1949+ (` PERFLOG ` dizinine, yoksa ` ~/Library/Logs/NFSU2/ ` ). Otomatik testle
1950+ üretilemeyen sahneler (kariyer yarış sonu) için. Test kancası
1951+ ` YAKALAKARE=<kare> ` . Açık madde: kariyerde yarış sonu sahnesi (sonuç panelinin
1952+ arkası) kullanıcıda siyah kalıyor; Quick Race drag kaybında aynı sahne doğru.
1953+
0 commit comments