Duyurulalı kaç gün oldu ama forumda umursayan olmadı nedense.![]() Microsoft tekelenin kırılmasının imkansız olduğunu düşündüğümüz için muhtemelen. Bu yeni OpenGL biraz umut verici aslında. Bir tarafta sadece Win 10'a özel DX12, bir tarafta sadece bazı AMD kartlarda çalışan Mantle(ki öldü diyebiliriz, hiçbir anlamı yok şu haliyle). Vulkan ise işletim sistemi ve grafik işlemcisi bağımsız bir şekilde her yerde kullanılabilecek. Buna kim destek verecek demeyin alttaki resimde firmaları görebilirsiniz. Önemli bir çok firma var, boş bir teknoloji gibi görünmüyor. < Resime gitmek için tıklayın > |
Adamın yazdıklarını açıklar mahiyette genişleterek yazdım. Kısım kısım herkesin okuyabileceği kaynak gibi bişey olabilir gibime geliyor. Sonradan editlenebilir düzeltilebilir katkısı olan da olursa. İmla, üslup vs. pek umursamdan yazıyorum, rahatsız olan editlerse böyle yaz derse bende editlerim. En başta yazayım, çok uzun oldu. Kendi bildiğim ettiğim şeyleri de aralarına açıklama olarak ekledim. Hemen herşey birebir örtüştüğünden, kendi hastalıklı fikirlerini doğrularla harmanlayıp bize yedirmeye çalışıyorsun'luk bi durum yok yani Alıntı yapılarak soru sorulursa daha çok faydası olur. Benim veya başkalarının dillendirip durduğu şeyleri topluca bi arada düzgün ifade ile özetlemiş. Zamanında Nvidia-Dx driver takımında stajer olarak çalışmış. Vista-Dx10 geçişindeki ve sonrasındaki sorunlarla ilgilenmiş. Görevi Vistada sorunlu olan oyunları driver tarafına yansıtılmış halini incelemek, parçalara ayırmak, onları işlemek ve neden sorunlu olduğunu bulmak imiş. Kendisi driver takımında yer aldığından dışarıdan hiçkimsenin erişemeyeceği ayrıcalığa sahip olmuş oluyor, çünkü profiler-debugger araçları ile biz sadece driverın GPU'dan aldığı cevaplara göre(ve kendi içinde neyi kısıtladıysa) bize bişeyler gösteriyor. Oysa driver tarafında erişimi olan birisi, benim dx kodumun driver tarfında ne yaptığını, donanıma ne komut çıktısı verdiğini görebiliyor (driverın donanıma özel verdiği donanım komutları vs). Doğal olarak da o tarz bi görevde çalışan birisi, adamın söylediği gibi işinde berbat olsa bile inanılmaz bi vizyona sahip oluyor(tabi neredeyse ömrü boyunca da bu sırları taşımak-sızdırmamak zorunda kalıyor). Öğrendiği ilk şeyin neredeyse her oyunun sorunlu-mutlaka ciddi bi kusuru olduğunu söylüyor. Bunu burdan şımarıkça biz de biliyoruz görüyoruz, oyunlarda hep perf sorunu var o bu sorunu var, iyi optimize edilmemiş vs. vs. gibi forum ağzı ile karşılamamak lazım. Çünkü adam ondan bahsetmiyor. Oyunun, kodun, API --> driver --> GPU'da ne yaptığını bilmeden sırf eldeki bi donanımda performansına bakıp optimizesi iyi olmayan oyunlar diye konu açmak ile, adamın driver tarafında görebildiklerinden sonra anlatmak istedikleri tamamen farklı şeyler. Bizdeki, bişeylerden memnun olmamanın bi tür ifadesi. Kafamızda karşılaştırılabilecek kalitede başka bi oyun varsa, ondaki FPS'den hareketle yeni oyunun kötü perf vermesi-sorun çıkartmasına kusur bulabiliyoruz. Veya oyundaki ilave bi detay-kalite seviyesi bizi memnun etmeyecek kadar perf'e darbe vuruyorsa buna şımarıkça laf uydurabiliyoruz. Programcının daha gerçekçi hesap için bulduğu metod gölge detaylarını, sıradan bi yaklaşıma göre bi tık daha yüksek kaliteye taşırken (duvar köşeleri gibi yerlerdeki ambient occlusion detayı gibi) ilave işlem gücü gerektiriyorsa, neredeyse aynı-hiçbi fark yok diyip taşa tutabiliyoruz. Adamın bahsettiği her oyunun sorunlu olma olgusu bunlarla, son kullanıcının anladığı şekilde değil. Oyunlarda sorun olma kısmını, illaki kötü programcı-yetersiz kaynak yüzünden yeterli araştırma-zamana sahip olamama yüzünden olmadığını anlatmak istiyor. AAA yapımların, yani yeterli kaynağa sahip olup üstünde yeterince çalışılmış olması gereken yapımların çıkarttıkları işlerde bile tonla sorun olduğundan bahsediyor. Bilerek, zorlamayla API kurallarını limitlerini aşmaya çalışan yapımcıların neden olduğu hatalardan, normalde düzgün ve sorunsuz çalışan ama çok büyük perf kayıplarına yol açabilen shader sorunlarına kadar bi sürü hatalar var diyor. Bunlar için driverda ayarlama yapıldığını faln söylüyor. İşte oyundaki ayarlara göre driverda devreye giren-çıkan yapılar kurulduğundan faln bahsediyor(belli bi kalite ayarı için render'a eklenen yöntem, çalıştırılan shader'ı da incelemek zorunda kaldıklarından, onlar için de ayrı ayrı driver'a ayar yaptıklarını yazıyor). Daha önce de bahsettiğim gibi, driver-donanım tarafındaki herşey bunların elinde olduğundan, oyunun API(Dx)'den olan taleplerini iyileştirmek hızlandırmak için değişik yeni yöntemler bulup, Dx'in esas yaptırmak istediğini değil de kendi yeni yöntemlerini hack-tricklerini işletiyorlar (programcı en optimal yolları hiçbi zaman kullanamadığı için). Bu şekilde örnekler vermiştim, progrmcı Dx'den a1.b1.c1.d1 şeklinde talepde bulunuyorsa, bu adamlar driver-donanım tarafından buna bakıp, verimli çalışmadığını görüp, Dx'den driver'a gelen a1.b1.c1.d1 talebini a.b.c.d.4.1 şekline çeviriyor ve donanımda bunu çalıştırıyor. Programcı en başından beri donanımda a.b.c.d.4.1 sekline karşılık gelecek Dx kodlama yapısını kullanmadığından (kullanamadığından) kendisine uygun-doğal gelen yolu seçiyor. Bu adamların da yaptığı, dx'den gelen a1.b1.c1.d1 'ı driverda a.b.c.d.4.1'a eşleştirmek. Böylece programcı a1.b1.c1.d1 diye bi yol izlerse, driver onu donanımdaki en verimli haline a.b.c.d.4.1'e çeviriyor. Programcı yata yata iş yapmış oluyor, driver geliştricisi ise küfrede küfür ede programcının hem yeterince araştırmadığı hem de elinde olmayan imkanlar yüzünden yaptığı bilinçli bilinçsiz yanlışları düzeltmeye çalışıyor. İşin nihayetinde, oyun programcısının belli bişeyi amaçlayarak yazdığı kod ile (GPU'da olmasını öngördğü şey ile) gerçekte driverın onu dönüştürdğü şeyler tamamen alakasız bambaşka şeyler. Bundan, benzeri paterni kullanan başka oyunlar da faydalanıyor. Daha doğrusu orjinal hatayı yapan, o yoldan giden programcının izinden giden diğer oyun-programcılar, driverdaki aynı düzeltmeye otomatik maruz kalıyorlar. Bu, yeterince deneyimi olmayan, araştıramayan birisi için, yazdığı kodun en baştan verimli olduğu yanılgısına düşmesine de yol açabiliyor. Çünkü sen orjinal, hatayı ilk yapan programcı ol. GPU firması senin koduna göre driverda düzeltme yaptı. 3 ay sonra bende farklı programcı olarak benzer bi kodu bana mantıklı geldiği için deniyeyim. Driverım faln güncel ise ne görmem lazım? Senin hatalı yolun bende iyi performans gösterecek. Çünkü driver'da iyileştirilmiş bu. Böylece ben hem bu hatalı yolu düzeltmek için çaba harcamayacam, hem en baştan beri hatalı yaklaşımın iyi sonuç verdiği yanılgısına düşecem, hem de bununla ilgili kendi kütüphanemde bunu kullanacam. Ama daha önemlisi o yanlış yaklışım uzun bi süre benim için doğru yol olacak(sonuç, driverdan düzeltilmiş olarak doğru gözükse bile, yani kötü yanlış hatalı yaklaşım ile kodlamam driverdan düzeltilmiş olsa bile)?!?! Üstelik de bu geliştriciler forumlar vs. arasında zamanla yaygınlaşacak ve bi tür temel bulacak. Böylece hatalı yok, driverda düzeltilse bile doğru iyi bişeymiş gibi kabul görecek. Öyle ya kötü bişey yazıyorsun, profile ediyorsun (program ile perf analizi yapıyorsun) sonuç iyi çıkıyor. Bunun daha da kötüsü var. Bunlar hack-trick tabanında driverda yapılan iyileştirmeler. Mesela yukardaki abc 1 1 faln gibi sallama verdiğim örnekteki gibi, belli gruplamalar, GPU'nun cache-donanım kullanımına göre iyileştirmeler vs. amacı taşıyor. Bunların Üstüne daha da vahim olan kısımlar var: Eğer Dx'de yazdığım shader yeterince kötü ise, bu işi yapmanın daha iyi yolu var ama ben onu seçmemiş isem, GPU'da kötü perf veriyor. Bu driver adamları ne yapıyor. Abi bu adam ne etmiş buraya WC'de ...'sa daha kötüsü yazılamaz diyorlar. Bu sefer shader'ın yapacağı işi, eşdeğer başka bi yoldan yapıyorlar. Yani orjinal shader'ın yerine geçecek bi shader yazıyorlar. Bunu da ellerinde oyunun kaynak kodu olmadan yapıyorlar. Ha bunlar driver geliştricisi, Dx'in driver'a olan talebinden hareketle reverse edip orjinal isteği bulabilirler faln denilebilir. Bi yere kadar mümkündür bu. Ama baştan yapılacak işin kodu ellerinde olsa elbet daha rahat ederler. Herneyse adamlar orjinal shader'ın yerine geçecek shader yazıyorlar. Böylece ne oluyor. Önceki paragrafta yazdığımın daha da beter hali oluyor : Sen belli bi paketlemeyi, belli bi işlemi iyi yapamadığın zaman onu iyileştirmeye çalışırlarken, şimdi ise bütün shaderda yaptığın işin eşdeğerini yapıp onu drivera koyuyorlar. Bu nasıl iş yada ne demek!?!? Sen Excel kullanıyorsun, bi macro yazdın. Ben Intel ve Ms olarak donanım ve işletim sistemi detaylarına, Excel'in altyapısına hakimim. Macro'nun, program olarak Excel'de yaptırdığı işlerden hareketle ne içerdiğini bulmaya çalışıyorum. Sonra bu senin yazdığın MAcro yerine assembly ile Intel CPU'suna özel bi programcık yazıyorum. Senin Excel'de çalıştırmaya çalıştırdığın Macro'nun komutlarına detaylarına sahip olmadan, onun yaptırdığı işi reverse edip Macro'yu çözüp, bundan direk olarak donanımda verimli çalışacak bi x86 asm programcığı yazıyorum ve Excel'de senin Macron ile bu asm programcığını eşleştriyorum. Böylece sen ne zman o Macroyu çalıştırırsan, uzun yoldan Exel'in altyapısı onu işleyip işletim sisteminden talepde bulunup, o da cpu'da iş yaptırmak yerine, asm ile direk CPU'da çalıştırıyorum. İşte GPU için bi oyundaki Dx shader'ını driver tarafından bakıp yeniden yazmak böyle bişey. Bunların GPU firması - driver geliştricisi için hem nasıl zahmetli, hemde programcıların yaptığı yanlışları teşvik edici bi düzen olduğu daha da belirgin şekilde ortaya çıkıyor dimi? Adam da bunlardan bahsediyor. İpin kopma noktası bu driverda, oyunlara göre verilen-verilmeye çalışılan ayarlar ve bunların getirdiği devasa çalışma zorluğu. Sonrasında da adam bunun firma tarafına, driver detayı kısmına geliyor. Driverın milyon satır koddan oluştuğunu, bunun donanım API iletişimi için olan altyapı kısmı için olduğunu (esasında PTX altyapısını kastetidyor burda), bunun yani donanımı API öncesinde ortak bi yapı olarak abstract etmenin ne kadar karmaşık zor iş olduğunu yazıyor. Aynı zor işin, bu sefer de API ile bu PTX-Donanım altyapısı için olan bağlantı-iletişim kısmı için de milyon satırlık kod var diyor. Sırf bazı basit işler için bile binlerce satır kodun bunları nasıl yönetmesi için varolduğunu yazıyor (dx9 Clear örneği vermiş. Bende daha önceli dx11'de sırf yarattığın boş siyah bi ekranı resetlemek-sıfırlamak için 1.5ms gibi zaman harcayabildiğinden bahsetmiştim. 60fps hedefine 16.6ms dersen, %8-9 kadar bi zamanı sırf GPU'da bu resetleme işleminin altyapısında harcamak ağır bi yük). Bütün bunlar için ne kadar karmaşık altyapı olduğundan bahsetidiyor. Mühendis olarak işin driver-donanım tarafında olup herşeyi görebilsen bile, bütün bu karmaşıklık içerisinde en iyi erişim şekli-yolunu bulmanın kolay olmadığından bahsediyor (fast-path diye kastettiği şey: API-dx işin içnde değil, driver-gpu seviyesinde iş yapıyoruz. Yani driver koduna ne yaparsak bu donanımda en hızlı işlenme karşılığı bulur olayı. Sen iki şeyi çarpmak istediğinde mesela, bunun GPU'daki kaynaklardaki dağılımı-hiyerarşisi, erşim ihlali, raslantısallık sonucu erişim farkı olması vs. gibi. GPU'da fiziksel olarak çalıştırılacak kodda erişilecek verinin bulunduğu yerin , local memory-cache L1 cache vs. gibi değişmesi sonucu aynı kodu çalıştıran fiziksel ünitelerin bu farklı bellek-cache alanlarına erişip farklı sonuçar üretmesi gibi durumlar, bunları engellemek için senin kurduğun altyapının performansı baltalayabilmesi yani en hızlı erişim işletim yolu olamayabilmesi gibi durumları kastediyor). Bu önceki paragrafta bahsettikleri daha driver-gpu tarafnda. İşin içnde daha API / Dx olayı faln yok. işin içine o da girince, API'lerin donanımlra göre tasarlanamadığı ve erişim detayları bilinmeden, donanımı doğru şekilde abstract etmeden kurulduğundan tonlarca şeyi yanlış yaptıklarından bahsediyor. Bunların da icabına bakmanın düzenleminin düzeltmenin yükü yine driver tarafına kalıp işin sarpa sarmasına ve işyükünün artmasına yol açıyor. Doğal olarak da dünya kadar sorun çıkıyor. Yukarıda hani programcının kötü yaklaşımını kapamak için driverda yapılanlar sonucunda, kötü yaklaşımların programcılar arasında bi nevi benimsendiği kabul gördüğü, yayıldığından da bahsettim ya. Aynısı bu API-driver arasında da var. Bu sefer APIler kurulurken geliştrilirken önceden kabul edilen yanlışlıklardan yanlış yaklaşımlardan tut geliştrici hatalarına kadar herşey driver tarafından kapatılmak düzeltilmek zorunda kalınıyor. Yine yukarda programcının Dx limitlerini zorlayacak, ulaşım-erişim ihlaline yol açacak yaklaşımlarda bulunabildiklerinden bahsetmiştim ya. Çeşitli nedenlerden dolayı bunlar API'nin bunları yeterince yapamaması-eksik bırakması yüzünden GPU'ya iletilmeye çalışmasına da yol açıyor. Böylece, Dx'in mesela eksik kontrolü yüzünden oluşan bi sorunu driver tarafında uğraşıp düzeltmeye patchlemeye çalışıyorlar. Sonrasında da bu API-driver iletişim kısımlarının multithread olarak işlenilmesinin imkansız olmasından ve bunun dezavantajlarından bahsediyor. Yani insanların sırf Nvidia'ya yaranmak için veya sempatisi var diye ama Nvidia D3d'deki multi-threaded render olayını destekleyen driver çıkarttııı, AMD çıkartamadıııı (12.12'de çıkarttı ama bi poka yaramadı), Civ5'de aradaki deli gibi fark bu yüzdeeen (Civ5 'de adamlar sanat eseri yapı kurmuşlar, kendileri yeni dil icat etmişler, isteyen varsa detay aktarırım, ama NVidia'ya çok itimas geçemiyor yine), BF3'de Nvidia bu yüzden daha iyiii (esasında iyi olmasının nedenleri başka) vs. vs.lere gerek yok yani. Sırf Mantle'a veya konsol API'lerinden bahsedilince Nvidia'nın yapmaya çalıştığı şeyleri öne çıkartıp, sırf AMD'ye gıcığız diye Dx'in API olarak temelindeki multi-thread desteğinin olamamasını sorunları yoksaymakla olmuyor bu işler. Adam da ondan bahsediyor temelinde. Kendi içlerinde firmaların, driverın temel işleme yapısında yani CPU tarafıda yapılan alt düzeyli işlerde (işletim sistemi ile iletişimde bulunan / kernel moda geçilen detaylarda yani) ve driver --> GPU tarafında acaip ötesi işler yaptıklarını dünyadaki en iyi driver yazarlarının programcılarının bu işlerde çalıştığını ve bu aşamalarda çok iyi multi-thread altyapısı olduğundan bahsediyor. Dikkatinizi çekerim, burda sadece CPU tarafında API ile tam olarak münasebete girilen kısım değil, onun hazırlık aşamasından ve GPU'ya fiziksel komut aktarım aşamasından bahsediliyor. Yani API'nin istediği işlerin yapılmasından bahsedilmiyor. Sorun olan kısım orada zaten. Driver mesela CPU tarafında bi sıralama işi yapmak zorunda, bunu inanılmaz verimli yapıp GPU'ya yollanmak için hazır edebiliyor. Veya Dx'in işini bitirip al kardeş sana çıktı, bunu donanımında çalıştır dediği şeyi donanıma eşleştirme işini yapan alt seviyeli driver kısımları harika işler çıkartıyor. Ama Dx'in mesela şu buffer'ı yarat, bunu resetle dediği işler için çok büyük olumsuzluklar var ve bunu kastediyor. Bu driver için kasan elemanların sinekten yağ çıkartma adına herşeyi yaptıklarını ama temelinde multithread yapamayan API'den, bütün bu çabalara rağmen anca bi gıdım ilave perf alınabildiğini söylüyor. Örnek olrak da Futuremark'a etkisinin anca %5 civarında olduğunu söylüyor. Zamanında AMD'nin de multi-thread driver olayı için kasıp bundan yeterince fayda göremediği için üstüne fazla gidilmediği de yazılmıştı, ne derece doğru bilmiyorum. Ama 12.12'de sanırım gelen destek ile Farcry3'de bi işe yaramadığını hatırlıyorum(config'den dx11multithreadedrender 1 yapmamıza rağmen). Sonra da oyundan kaldırdılar bunu zaten. Sonraki mesela, Multi GPU olayına API'nin temel olarak destek vermemesi ve daha önce defalarca benim de bahsettiğim gibi bütün işin driver tarafına kalması ve bunun AMD-Nvidia'ya acayip yük bindirmesinden bahsediyor. Kendi gözünle görene kadar bu multi-gpu olayında çıkan hataların inanılmaz miktarda olabileceğini aklın almıyor diyor. Ortaya çıkan bu hataların, GPU firmalarının düzeltmeye çalıştığı hataların yarısından fazlasını oluşturduğunu düşünüyorum diyor. Adam daha üst seviyeli analiz imkanı ve erişimi olmadığından, bunun tam donanım karşılığının ne olduğunu yani donanıma nasıl eşleştrildiğini bilmediğini söylüyor. Ki adam bu kadar şeye erişip görüp bilip API'nin donanımı abstract edememesi yüzünden firmanın yapması gerekenler yüzünden zaten dehşete düşmüş durumda, bi de bunun tam donanım karşılığı-kısmı-olayı var. En fazla uğraştığı PTX kısmı bu adamın. Bunların üstüne, tek başınıza bağımsız olrak bi multi GPU olayını kendi kaynaklarınızla yapmaya kalkarsanız Allah yardımcınız olsun, hele ki bunu GL ile deneyecekseniz diyor. İçine düşeceğini karmaşıklığın haddi hesabı yok, dipsiz kuyudan farksız diyor. Bunları işlemek için bi en hızlı yol var, bi de en kısa-çabuk uygulanan yol var (verimsiz anlamına gelmiyor bu) , bütün bunların detaylarına ulaşıp bilip ona göre multi-gpu tasarımınızı kurmanız gerekir diyor. Yani içinden çıkılacak bi iş olmadığından bahsediyor bu multi-gpu olayının(dx12/Vulkan da nasıl olacak madem iş bu kadar ciddi, programcı bu kısmını nasıl yönetecek şimdilik bilmiyoruz). Bunlar esasında durum tespiti ve yaşadıkları-deneyimleri. Bundan sonra kendi görüşlerine yer veriyor. Bu yeni API'lerin bu tarz problemlere çözüm olup olamayacaklarını bi miktar sorguluyor. Oyunların neden hep sorunlu olduklarını soruyor. Cevabı belli, en yukarda da yazılı, API'ler karmaşık, yaptıkları işler-denetimler-erişim ihlalleri vs. gibi şeylerin kontrolleri mesela D3d 11 için çok iyi, 9 için kötü, GL için rezalet ötesi diyor. Burda Dx11 ile D3d ayrımı yapmış. Dx11 içerisinden geriye uyumluluk feature set ile sağlandığından, dx11 kurulu iken dx9 oyunu, dx11'in bu erişim ihlallerini kontrol denetimlerini sağlayan yapılardan faydalanabiliyor mu bunu bilmiyorum. Eğer bu denetimler feature set olayı ile ilişkili ise, o zman Dx11 içinden Dx9 oyununu çalıştırsak bile adamın bahsettiği şekilde kötü bi denetim-kontrol ile karşı karşıya kalıp driver tarafında bi sürü şeyin düzeltilmesi gerekir anlamı çıkıyor. Eğer değil ise, o zman bi Dx9 oyununu Dx9 içinden çalıştırmaktansa, Dx11 altında çalıştırmanın daha iyi olduğu sonucuna varıyoruz. Ama Dx9 zamanında dx11 olamayacağı için sanırım bunun bi önemi yok artık. Dx11 ile bi sürü erişim ihlali-denetim konttrol detayları düzeltilmiş. Dx11'in perf açısından olmsuz yanları, götürüleri olduğunu da gördüğümüzden, sanki ikinci durum daha mantıklı olabilir (yani Dx11 kurulu iken, dx9 oyunu çalıştırdığımızda, dx9'da olması beklenen bütün ihlal durumları dx11 driverı-kontrol altyapısı tarafından denetleniyor ve hata olmaması sağlanıyor. Dx11 driverı çok sonraları çıktığından ve bi ton şey zaten zaman içerisinde patch edildiğinden düzeltildiğinden, hepsini bi nevi paket gibi destekleyip-otomatik düzeltiyor olmalı). Bi geri dönersek, APIlerin karışık yapısı yüzünden yanlık yaklaşım ile yavaş yol-yöntemleri bilmeden seçiyor olabiiliyor programcılar diyor. Yaptıkları işte kullandıkları yöntemlerde 1 satır kod bile buna yol açabilir. Ama bu hatalı yaklaşımlar driver tarafından patch edildiği için dinamik olarak en hızlı yönteme eşleştriliyor diyor. En yukarıda uzun uzun bahsettiğim yer vardıya, sen programcı olarak mantıklı gelen bi yol kullanıyorsun. Ama gerçekte bu donanımda yavaş çalışan bi yola karşılık gelebiliyor. AMD-Nvidia tek tek sizin oyunun orası burası kötü düzeltin diyemeyeceğinden, bu yanlış yöntemin Dx --->> driver->>donanım tarafındaki iletişimi sırasında driverda düzeltildiğinden bahsetiyor-bahsettim(abcd 11 faln diye yazdığım yerler). Bi de bunun programcılar arasında bi miktar hastalığa da dönüştüğünden bahsettim. Adam da ondan bahsediyor. Bu driver için $$$ ve insan kaynağı gerektiğini, daha da önemlisi deneyimin ve firma içinde altyapının gerektiği kısmına geliyor. AMD Nvidia bu tarz kaynaklara sahip olsa da Intel Qcomm PowerVR tam olarak sahip değil diyor. Bu da, bu tarz eksik kaynak ile GPU geliştrenlerin program-yazılım tarafındaki hatalara çok daha açık kalması olayından bahsediyor İşin belki can acıtıcı yanlarından biri, benim buralarda görece yakın zamanlarda bahsettiğim, benim de görece yakın zamanlarda anladığım nedenlerine kafamın yattığı, benim de çok önceden mesela dx11'e çok iyi olmalı gözüyle bakarken GPGPU---DirectCompute olayı ile bi sürü şeyin yapılabilmesi gerektiğini düşünürken, tek tek sorunlarla karşılaşıp vay be böyle bi engel de mi varmış dediğim çokça şeyin olduğundan, dolaylı olarak adam da bahsediyor. Yani görece yakın zaman içerisinde, kimsenin AMD-Nvidia'dan yeterli yardım almadan, donanımda düzgün sonuç verecek hiçbişey yapmayacaklarını kesinlikle gördük biliyoruz noktasına getiriyor. Dışardan birisi zaten biliyoruz bunu diye ukalaca tavırla bakmamalı buna. Adam, oyun yapımcısının kaynak kod ile AMD-Nvidia'ya gitmeli(yada AMD-Nvidia'dan adam firmaya gitmeli), orada developer-driver(bizde olmayan) ile bu kaynak kodu çalıştırmalı, driverda ne yapıyor nelere karşılık geliyor, donanımda nelere denk geliyor, yukarılarda bahsedilen hızlı yol-yavaş yol-dolambaçlı yol, erişim ihlalleri vs. bunların anca o şekilde görülebileceğinden bahsediyor. Bu tarz destek imkanına da herkes sahip olamıyor. Yine bu, AMD veya Nvidia'nın oyun programına dahil diye her oyunun istifade edeceği bi yol değil. Yani boşuna şu oyun AMD'nin oyun programına dahil, Nvidia eziyooo, zuhaushuh moduna girmeye gerek yok. Adam bahsetmese bile, Daha önce defalarca bahsettiğim Gameworks olayı da tam olarak bu noktada devreye giriyor esasında. Sen programcı olarak zaten en iyi yolu, metodu bulamayacaksın diyorum ben NVidia olarak. Bunun yerine, ben en baştan en iyi yolun hazırlandığı kodu sana vereyim, sen direk olarak bunu kullan diyorum. Programcı yapmak istediği işe göre yeterli buluyorsa Gameworks'deki olayı, kabul ediyor, karşılıklı win-win durumu oluyor. vs. vs. uzatmıyım burayı üstünden çok geçtim dha önce. Multi-thread olayının mevcut API'lerde saçma sapan bi halde olmasından, yeni API'lerde bunun debug- kısmından tut gerekli geliştirme araçlarına kadar sıfırdan tasarlandığından-tasarlanması gerektiğinden bahsediyor (Vulkan için olan GLAVE diye bi debug aracını Graham Sellers tanıttı mesela, youtube'da videosu vardı, çok detaylı inceleme imkanı getirecek). Yeni API'lerde multi-GPU olayının temelden destekleneceğini, yıllar boyunca bunu idare etmenin AMD-Nvidia'nın sırtında bi yük olduğundan bahsediyor. Şimdi ise bu işin bi kısmı temelden programcı-geliştricinin sorumluluğunda olacak diyor. Bu işleri zorlaştıracak diyor. Multi-gpu işinin bi kısmını programcı yaptığından ve yöneteceğinden, bunun driver tarafındaki iyileştirmesi eskiden olduğu kadar kolay patch edilebilir iyileştrilebilir olmayabilir diyor. Eskiden, dx11'de, driver'a hep aynı kötü yöntemler gelirken, şimdi driver deneme-yanılma/tahmin vs. gibi yaklaşımlar ile analizi birleştrip, oyunun ne yapmaya çalışacağını anlamaya çalışıp, ona göre iyileştirmeye çalışacak diyor. Büyük geliştriciler bu işten çok karlı çıkabilirler, AMD-Nvidia ile oturup neyi nasıl yapmalarına dair baya bişey alıp, kurdukları yapının driverın iyileştirmesi ile örtüşmesini sağlayabilirler diyor. Benim bi miktar itiraz ettiğim nokta, eğer programcı en başından beri doğru yolu metodu kullanırsa bütün bu hengameye karışıklığa gerek kalmaz. Driverın da sürekli düzeltmesi, iyi yola sürme gerekliliği azalır. Ama başka konularda defalarca yazdığım gibi, yılların getirdiği bi yük var programcılarda. En yukarıda ve sonrasında yazdığım gibi programcılar bi yol deniyor, bakıyor düzgün çalışıyor tamam diyor. Aslında bu kötü yol ve driver esasında başka bişey çalıştırıyor, senin benim yazdığımızı ve donanımda çalıştırdığımızı sandığımız şeyi değil, kafasına göre iyileştrilmiş halini çalıştırıyor. Ve biz de yıllarca bu yanlış ol yöntemi benimsiyoruz. Ha şu açıdan bakarsan, sadece sonuç-sonuç açısından bakarsan ; ben kod yazdım (kötü de olsa) bana az zamana patladı kazançlıyım, driver bunu düzellti ve doğru-hızlı yolu GPU'da çalıştırdı, yine kazançlıyım. Ben de, oyuncu da, AMD-Nvidia da kazançlı. Herkes kazançlı gibi gözüküyor ama bozuk bi altyapıdaki bozuk ve bilinen bi yolu kullanıp memnun oluyoruz. Ama ilk defa birisi, driverda olmayan, driverın iyileştiremediği yeni bi bozuk yol metod kullanınca bu sistem patlıyor. Çünkü ben,sen programcı olarak bunların nasıl işlediğini hiçbi şekilde göremiyoruz esasında tam olarak. Eğer programcılar, daha doğru yollara girerlerse, driver tarafında kötü'nün iyileştirilmesi kadar iyi'nin de iyileştrilmesi ihtimali olur. Driver geliştricisi kötü yol-kod-erişim yöntemini düzeltmek için kasacağına, yani %5 verim alınan işi %20'ye çıkartmaya çalışacağına, %30 verimle çalışan bi işi %45 verime çıkartmaya çalışabilir bu yeni sistemde-API'lerde. Bu yüzden adamın bu görüşü bence o kadar doğru olmayabilir. Yani ortaya çıkacak iş iyi yaklaşım, daha driver tarafından iyileştrilmeden bile kötü kodun dx11'de driver tarafından iyileştirilmiş halini bile yenebilir. Bu tarz olasılıklar da var çünkü. Yeni API olaylarında yapılcakların bi kısmı da diyor, yukarıda developer driver diye bahsedilen sade AMD-NVidia'nın kendi içinde kullandığı (veya benlki kilit yapımcılara verdiği) driver yapısında sadece AMD-NVidia'nın görebildiği erişebildiği detaylara normal programcının da erişebilmesine imkan verecek olması diyor. Böylece sen dx11'deki bi komutun CPU-sistem belleğinde neyi işaretlediğini, gpu'tarafında tam ne yaptığını, drivera ne talepde bulunduğunu, driverın bunu neye çevirdiğini görebileceksin diyor. Dx11 vs. 'de Programcının ve AMD-NVidia'nın bi tür kedi fare oyunu oynadıklarından bahsediyor. Programcı driverın ne yaptığını tahmin etmeye çalışırken, driver da programcının ne yapacağını tahmin edip yada yakalayıp onu düzeltmeye çalışıyor diyor. Böylece yukarılarda bahsettiğim kötü programlama vs. gibi şeyler hepten içinden çıkılmaz hal alıyor. Çünkü sen gelişmiş programcı da olsan, iyi bi metod kullanmaya çalışıyor da olsan, driverın bunu iyileştirmek adına yapacağı şeyleri tahmin etmeye çalışıp yapmayı istediğin şeyi engellemesini engellemeye çalışabiliyorsun :// Yeni API'ler / driverlar, biraz daha açık olursa bu kedi farke oyunu bu şekilde işlemek zorunda olmaz diyor. Daha önce niye yapılmadığı kısmı var, ondan çok defa bahsettim. Politikalardn, Ms-Khronos-ARB'den, bunların işte kontrolü programcının eline bırakmayı istememesinden faln bahsediyor (dx12'de Ms hala bırakmıyor tam olarak). API'nin GPU'ya yaptırmaya çalıştığı, otomatik olarak kurulan yapıları-hata kontrollerini vs.'leri insanın programcının yapmasının can sıkıcı olabildiğinden faln bahsediyor. Bu noktadan sonra bi miktar eleştri-şüphe-komplo teorisi var. Şimdiki API'lerin otomatik yaptığı-yapmaya çalıştığı şeylerin programcı tarafına çok fazla yük bindireceğinden ve çoğu kişinin bu yük altından kalkmakta zorlanacağından faln bahsediyor. Bu durumda, böyle bi yük varken, bu işten en büyük kazancın middleware tarafında olacağını düşünüyor. Middleware = oyun motoru (Frostbite, UnrealEngine , Cryengine, Unity vs.), hazır kütüphaneler, hazır yapılar vs. Mantle speclerinin-tanımlamlarının Johan Andrson / DICE tarafından hazırlandığını, Vulkan'ın Unity'den Aras'ı, Epic'den Niklas'ı, Valve'den diğer elemanlar ise temeli atıldığını speclerinin hazırlandığını yazıyor ve şüpheli bakıyor. Bu motorların ücretsiz ve düşük yükümlülük yapılmasının altında bu tarz niyetler, yatırım yaklaşımı olduğundan şüphe ettiğini yazıyor. Eğer yeni API'lerin kodlanması üstünde çalışılması çok zahmetli olacaksa, bu API'lerin arkasındaki bu elemanlar kendileri de ona göre motor geliştirdikleri-geliştriecekleri için en büyük faydayı-çıkarı sağlayacaklardır diyor. Bu şühe-komplo teorisi yaklaşımına karşı Aras'ın (Unity) verdiği cevap da var :http://aras-p.info/blog/2015/03/13/thoughts-on-explicit-graphics-apis/ (aşada Explicit APIs and Vulkan kısmına bakın)
Aras, eğer olaya tamamen komplo olayı açısından bakarsan kabul, bu tarz zor API kodlama ortamından motor yapımcıları, araç gereç-geliştirme ortamı yazılımı, destekleyici yazılım vs. yapıp satanların en çok kazançlı çıkmasını bekleyebilrisin diyor. Ama aynı şekilde bakarsan, bi sürü API'nin olması da aynı şekilde motor-middleware geliştricilerinin işine yarayan bi durum diyor. Kendisi demese bile, Epic-Nvidia arası süper mesela, Nvidia da başka bi API çıkartıp gelin herşey bizde yolundan devam edebilir'e getiriyor (esasında Unreal Engine'in bi yere kadar yaptığı da bu). Herkesin faydalanacağı API yerine, olabildiğince herkesi boğacak ve bu tarz motor-middleware'e mahkum etmek aslında daha karlı olur'a getiriyor lafı(gerçi bugün olan yine o). Pratikte diyo, dünyevi meselelere o kadar çok kafamız basmaz bizim diyor. Belki Unity'nin mali durumunun kötü olması haberleri adamı doğruluyordur. Epic-Valve-Frostbite adına konuşamam ama bizde Vulkan tarafı ile daha çok Christophe Riccio ilgileniyor diyor. Christophe Riccio'yu GL ile ilgilenenler tanır bilir. sitesi dehttp://www.g-truc.net/ . GL için adam baya didiniyor. Hemde Unity çalışanı. Christophe 'un açık kaynak ve GL için yaptıklarına uğraşıp didinmesine bakın diyor, sonra da Vulkan için çabalamasına bakın diyor. Unity'ye çıkar olsun diye uğraştığını söylemek biraz haksızlık olur diyor. Bu açıdan bakınca da Aras da haklı. API'yi, donanım komutları kullanmadan (assembly seviyesinde), driverı hafifletip, programcıya daha fazla imkan vermenin başka bi yolu da yok. Var ama onun için de programcının yapacağı işlerin bi kısmını önceden yapmak lazım. O da bi tür abstraction yapmak olduğundan yerine göre imkanları kısıtlamış olur (Apple Metal gibi). Bu yüzden karmaşıklığın artacak olmasını komplo teorisne bağlamamak lazım bence de. Ama hem motorlara, hem kütüphane / geliştirme araçları satanlara faln bi noktaya ve zamana kadar daha çok faydası olabilir orası doğru. Ama insanlar yola gelmeye başladıkça bu işin çok hızlı biçimde başka tarafa evrileceği de açık. Aras'ın yazısının sonunda bahsettiği gibi, Vulkan-Dx12 üstüne oluşturulmuş yarı-abtract edilmiş kütüphaneler faln da oluşmaya başlayacaktır, toplulukların katkısı ile. Örnek olarak XNA vs. vermiş ve haklı da. Son olarak , esas alıntının son kısmına gelirsek, daha önceleri bahsettiğim gibi yeni GPU'lar donanımlar açıkcası yeni bişey getirmiyorlar. Gerçek anlamda yenilikçi yaklaşımlar sergilemiyor diyor adam. Bi 480 ile 980 arasında kullanıcının veya geliştricinin erişebildikleri açısından ne fark var mesela diyor. Temel olarak aynı şeyler devam ediyor, bazı limitler kaldırılmış, bazı imkanları gelişmiş ama aynı kalmaya devam etmiş diyor. Bunda herkesin payı var unutmamak lazım(oyun-inceleme-site-forum-tavsiye-gazlama vs.). MS'nin Dx'in esas yapısının olgunlaşmış olduğunu, temel anlamda stabil bi teknolojisi olduğunu ve esasen görece az çabalar ile idare ettirilebildiğini söylediğini ve esas yapımındaki takımları dağıttıklarından bahsetmiş. GL'in çoğu versiyonunda yapılan şeyleri API'yi onarmak, bugları düzeltmek, sorunlu olan yapının üstüne bi kat daha başka bişey eklemek olduğunu yazmış (480'in GL 4.5'i full desteklediğinden bahsediyor). Yeni API'leri görmemizin sebeplerinden biri de diyor, Johan Anderson'un AMD-Nvidia ile uzun zamandır bıdı bıdı edip kafalarını şişirmesi, ama AMD'Nin bunu bi firsat olarak görüp, donanımın compute yeteneklerinin oluşmasıyla da (GCN'i kastediyor, GCN öncesine göre esnek CPU'umsu yetenklerini yani) bu yola girildi diyor. Gerisi temenniler faln. Umarım yapıcı-olumlu işler olur diyor. Yeni API'lerin doğru yolda doğru adımlar olduğundan , yeni donanımlar için daha uygun olduğundan faln bahsediyor. Bana göre MS ve ARB-Khronos başından beri yanlış temelden hareket etti diyor. İşin temeli-ana yaklaşımı iyi gözüken, kodlaması kolay, donanımı kendi bildikleri anladıkları dikte etmek istedikleri şekilde abstract etmekdi diyor. Karşılığında da bütün tozu halının altına süpürdüler, bütün ağır ve kirli işler arka planda idare edilmek zorunda kalındı. Zaman içinde de döndü dolaştığı yükün çoğu AMD-Nvidia'ya bindi diyor. Kodlama kısmı daha kolaydı, ama debug-analiz, performansı arttırmak için yapılması gerekenler vs. dünyanın işiydi diyor. Önceki msjlarda da bahsettiğim gibi dx11'de ilk kodlama aşamalarının kolay olması, ama iyi perf etmek için, sorunları çözmek için yapılması gerekenlerin, driverın ne yapacağını tahmin etmeye çalışmanın vs. bütün geliştirme süresini uzattığından dolayı aslında Ms'Nin en başta düşündüğü veya olmasını beklediği kadar kolay yürümüyor diyor. Sonunda ise herkesin artık fikir birliğine vardığı yer, kodlaması zor yeni API'lerin günün sonunda bize lazım olması, bize tanıdıkları esneklik diyor. Kodu çalıştırmaya başarabilirsen sorun yok diyor. Şimdiye kadar edindiğim deneyim diyor (dx12-vulkan için) eşşek yükü ile çalışma ve çabalama diyor. Performansı ayarlamak-optimize etmek-geliştirme araçlarını uydurmak ebenin ebesi kadar iş yükü diyor. Bi sürü varsayımda bulunmak gerektiriyor, çokca revizyondan geçmesini gerekritiyor, herhangi bişey çalışır hale gelene kadar bi sürü altyapı kurmak gerekiyor diyor. Ama bi kere çalışmaya başladı mı herhangi bi süpriz vs. olmuyor diyor, ne kurduysan o çalışıyor diyor. Eğer doğru yaklaşım-yol-metod ile oluşturmuşsan takr takr herşey yolunda gidiyor diyor. Eğer bi yavaşlık varsa, suç kesinlikle sende oluyor bu sefer diyor (hani yukarda programcının yanlış yaklaşımından, driverın bunu düzeltmesinden , bunun bi yere kadar kültür gibi yerleştiğinden faln bahsetmiştim). Kendin ettin kendin buldun durumunda olacaksın diyor, benim yaptığım bişeyi driver başka forma çevirdi de acaba o şey donanımda ne yaptrıyor da kötü sonuç veriyor ben nerde hata yapıyorum, driverı nasıl kandırsam vs. vs. dx11'deki gibi bunlarla uğraşmayacaksın diyor. Yavaş çalışıyorsa altyapında kodlarında sorun vardır diyor. Yeni gelştirme araçları bunları sana takr takr gösterecek ve bunların hepsi yaygın erişilebilir sıradan araçlar olacak diyor. Hatanı tak diye bulup, haaa demek sorun buymuş, şimdi işin doğrusunu yapalaım, yapamıyorsak öğrenelim diyeceksin diyor. En son olarak da buna değer diyor. |
Vulkan mantle tabanli bir APIdir.mantle amdde calisiyor iken vulkan nvidia ve intelde calisabilecektir o yuzden mantle basligindan ayirmak istedim.elime pc gecince duzenleyecegim.bir haber basligi degil surekli guncellenecek ve bu sefer herkesin katilimini bekledigim sohbet tartisma basligidir. seklinde sehir disinda telefonla actigim basliktir normalde baska bir arkadas acacakti olmadi.evet artik bir pc edindigime gore basligi simdi nasil istersiniz bilgi desen zaten yeterince var mesajlarda.soru cevap olsun sonra derseniz ki sunlar da olsun ekleriz. soru:Vulkan mantle tabanli mantle amd'nin vulkan da mi amd'nin? cevap:Vulkan OpenGL'yi yapan Khronos isimli firmanin bir nevi yeni OpenGL surumu aslinda ama mantle kullaninca Vulkan demisler alakali olsun diye sanirim. soru:Vulkan icin nasil bir kartimiz olmali cevap:su anda tam belli degil ama piyasadaki 400+ nvidia ve GCN mimari amd kartlarla calisacak ama Vulkan da dx12 gibi tier olacakmis yani 1-2-3 seklinde ama en azindan tier1 destekleyecek belki dx12'den farkli olabilir destek olayi. soru:Vulkan ne ise yarayacak? cevap:mantle'de gordugumuz islemciyi rahatlatma ya da islemci darbogazina yardimci olma yani dusuk islemcilerle kartlari kullanabilme olayi Vulkan'da da olacak ayrica yeni efektler de olabilir directx ne ise yariyorsa bu da onun aynisi API diyoruz dx12 gibi iyi de API ne?buradan bakabilirsinizhttp://forum.donanimhaber.com/m_81317104/tm.htm soru:Vulkan hangi isletim sistemlerinde calisacak? cevap:en onemli olayi bu zaten dx12 win10 isterken Vulkan Linux'ta bile calisacak ama win7 ve 8.1 es gecerler mi ciddi ciddi calisirlar mi iyi olsun diye onu cikinca gorecegiz.ben win10 kurmam diyen biri icin win7'de nvidia ile mantle keyfinden bahsediyoruz tabi Linux olayi da cok guzel ayrica SteamOS var o da Linux tabanli.Linux tabanli sistemlerde dx ile oynadigimiz oyunlar oynanmiyordu artik oynanabilecek tabi oyunun Vulkan destekli olmasi lazim.bazi arkadaslar microsoft'a rakip olamazlar diyebilir ama olur mu olur bence insanlar bir kurtulus alternatif ariyorlardi ve Vulkan bu alternatif olabilir. |
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.
senin gtx 970 konunu takip etmiştim baştan sona çok güzel bilgilendirici bir konuydu taktirde ettim. fakat titanx konusunda da bu konu sahibi arkadaş haklıydı ksr bakma. kimse sana fikrini yazma demiyor zaten senin fikir dediğin aynı bokun laciverti olan konunun aynısını bir daha açmak sanki açılan ilk konudan farklı ne vardı ? aynı haber, içerik aynı bilinenler aynı. aynı şey hakkında 10 tane konu açılması ''fikir özgürlüğü'' değil, konu çöplüğüdür. |
İnsanların bu devirde yanlış baktığı nokta port oyun dediğin yer. Eski konsollardaki gibi tamamen konsola göre oyun yapılıp sonradan PC'ye oyun gelmiyor artık. Tam tersi noktadayıız şu an. Oyun önce genel bi render altyapısı düşünülerek tasarlanıyor. Sonra hedef platformlara uydurulmaya çalışılıyor. Genel yaklaşım, genel render altyapısı diye hep söylediğim şeyler : ışıklandırma altyapısı için bi denklem var, bunu indirgiyor adam, sonra bunu nasıl kodlarım diyor kod karşılığı nedir diyor matematiksel yaklaşımın. Ortaya çıkan şeyi de platformun izin verdiği ölçüde kodluyorlar. Platformun özelliklerine göre uyduruyorlar yani. PC'de bu düşük fps'ye yol açıyorsa, admlar oturup bunu düzeltmek için nesne detaylarıyla oynamaktan, aynı anda GPU'ya daha çok komut yollamak için neler yaparlar onun peşine düşüyorlar. Çünkü PC bu kdarına izin veriyor. Konsol için, unified yapı yüzünden daha çok ram'ı cache + vram olarak kullanıp bi pointer kaydırıp anında CPU'nun GPU'ya komut yollama imkanı olduğundan, bunun da neredeyse sınırsız bi drawcall imkanı verdiğinden, aynı genel render altyapısı konsola bu tarz bi altyapı üstünden uyduruluyor. PC'de, 30 fps'de 1000 tane nesne detayı yüzünden çakılan performansı düzeltmek için mesela daha fazla gruplama yapılmaya çalışıyor ki her GPU iletişiminde daha çok detay-komut vs. aktarılsın. İşte GPU driverı neyi nasıl optimize ediyorsa, onun optimize edeceği şekilde komutları ayarlamaya çalışıyorlar. Konsolda, aynı anda bi sürü nesne detayının sadece bellekte gösterdiği yerin değiştirilmesi ile GPU'ya erişim sağlanıyor, adamlar bunu kullanıp sabit 30fps elde etmeye çalışıyorlar mesela. XB1 için bunu, MS'nin dayatmaları ile ve ESRAM'ın kodlama zorluğu ile yapmak zorundalar. PS4'de de herşeyi kendi başına kurmak zornda olduğun için uğraşıp yapman gerekiyor. Bi sürü oyunun sunumlarında detaylarında bu bahsettiğim şeylerin detaylarını bulabiliriz. Biçok geliştrici ölçeklenebilir, platforma bağlı olmayan bi ana yapı kurma çabasında bu devirde. Bu yüzden konsoldan PC'ye port diye bi olay yok artık. Tam tersi, bundan konsollar zarar görüyorlar. Çünkü o genel yapılar, en başta konsoldaki erişim-kodlama esnekliğine göre yapılmıyor. Önüne gelen Crysis 1 Modlardan bahsediyor ya msela? Kimse onlardaki render detaylarıyla, olası render hatalarıyla, güzel gözüken ama gerçekçi olmayan hesaplama yöntemleriyle ilgilenmiyor dimi? Önemli olan verdiği oluşturduğu algı. Konsollarda, kodlama esnekliği sayesinde işte bu yoldan gidip güzel gözüken, hızlı hesaplanan, platformun suunuduğu özelliklere göre tasarım imkanı var ama kimse bu noktadan devam etme niyetinde dğeil. Çünkü o zman, eski konsollardaki gibi platform bağımlı olacaklar. Konsolu temel alıp konsolda yapılabileceklere göre ana tasarımı yapınca, işte onun PC'de karşılığı yok ve PC'ye uyarlaması çok zor. < Resime gitmek için tıklayın > Bu hep verdiğim örnek. Soldaki hatalı render, bleeding var yani ışık sızması var çünkü. Bu kasıtlı olarak değil, render hatası sonucu oluşuyor. Sağdaki ise adamların çözüm olarak sunudukları ve daha doğru sonuç veren hali. Hangisi daha güzel gözüküyor? Bana göre soldaki. Ama sağdaki daha doğru olan. Aşağıda, bahsettiğim şeylerle alakalı olmayan bleeding sorunları var. Bunlar, başka problemer yüzünden gerçekten istenmeyen şeyler, yukardaki ss gibi güzel gözükmesini sağlamıyor. < Resime gitmek için tıklayın > < Resime gitmek için tıklayın > Konuyla alakalı değil ama eklemek istedim. ilk ss'de Crysis'de farklı bi yaklaşımdan oluşan bleeding sorunu aslında görüntünün güzel algılanmasına yol açıyor. Konsolda mesela, bu soruna yol açan yaklaşımı daha hızlı işleyebiliyor ve donanıma özel kodlayabiliyorsan, bu özel tasarım denen şey olur. Bugün bu yapılmıyor işte. Nerede yazdıysam, değişik oyunların DirectCompute temelinde olan fizik hesaplamaları için nasıl ortak altyapı kurduklarını anlatıyor mesela. PS4 için daha iyi hesap yapacak bambaşka bi alternatif yaklaşım kurmamışlar mesela. Yine Ryse, The Crew gibi oyunlardan bahsedecem ama öyle yani. Ryse'ı adamlar XB1'e göre tasarlamadıklarından çok sonraları bahsettiler. Platforma bağlı olmasını istemedik vs. vs. diye. Crew için, adamlar oyunun ana yapısını kurmuşlar, elemanlar bunu PS4'e aktarmak için sonradan uğraşmış. Yani en başından beri konsollara göre onların yapabildiklerinden en iyi verim alacak şekilde tasarlanmamış bunlar. İletişim altyapısı için elbette konsolda farklı şeyler yapmak gerekiyor ve bu renderın nasıl yapıldığını etkiliyor, ama bundan bahsetmiyorum. Ana yaklaşım hepsinde aynı, sorun orda. Adamlar da insaf be kardeşim, her platform için o platformun verebildiklerinden faydalanacak şekilde sıfırdan ve farklı yaklaşımları olan motor yazmamızı istiyorsun der bunlara karşılık. Onlar da haklılar kendi açılarından. Bu yüzden konsoldan PC'ye oyun port edilecek-ediliyor gözüyle bakmamak lazım artık. dx12 geldikten sonra da özel bi saçmalık olmazsa, PC apayrı bi yola girmiş olacak ilk defa. AMD MAntle'ı nasıl buldu ile, Bunu neleri göze alarak lanse etti diye sormak bence daha doğru. Mantle 'da yapılanlar veya yapılabilecekler, değişik açılardan da olsa oyun yapımcılarının programcıların zaten bildiği ettiği, farklı platformlarda kullanmaya çalıştıkları şeyler. Forumlardan tut seminer panellere sağda solda hep dillendirilen şeylerdi bunlar. İşte eski konsollarda faln kullanılan altyapılar, programcının Sony'nin verdiklerini beğenmeyip ihtiyacı kadarını sağlayan kendi mini-API'sini kurması faln hep yapılan şeylerdi. AMD belki yenilik adına, belki MS'yi sıkıştırmak adına, belki başka çaresi olmadığını düşündüğünden ve MS bi tarafını kımıldatmadığından, belki de GL ile ilgili kimse bişeyler yapamadığından böyle bişey deniyelim demiş olabilir. Donanım-Driver detayına ulaşabilecek birisi zaten konsolda ihtiyacı kadar kurabildiği mini-API'yi daha büyük ölçekli de kurabilir. AMD olmasa Nvidia da yapabilirdi bunu. İşine gelir gelmez ayrı mevzu onlar. Tam cevabı veremeyiz, ama sahip olunan imkanları düşününce yapamayacağını düşünmek bence hata olur. Ha sonrasında ne gelştirme aracı verebildi, ne tam açabildi, ne alın kullanın geliştirin ben hep arkanızdayım diyebildi onlar ayrı mevzu yine. MAdem bu desteği veremeyecekti, niye bu işe girişti, orasını da bilemiyoruz. Bildiğimiz tek şey, bi güzel herkesin ağzına 1 parmak bal çaldı, sonra ben vermiom dedi. Bu da dx12'yi hızlandırıp öne çekmiş hatta erken lanse edilmesini tetiklemiş olabilir. GL 5.0 / Vulkan'a temiz bi temel oldu, o yüzden sağlam teşekkür eden bi sürü insan var, böylece daha da güdüleyici destekleyici bi etkisi oldu. Ms para pulu olsa da belki beceremediğinden belki de yöneticiler bizim baktığımız gibi bakmadığından daha farklı yollara gitmiyordu. Sen Nokia'nın çöküşünü anlayabiliyorsun mesela, eğer komplo vs. yok diye bakarsan, bu hale gelmesinde kilit noktadaki yöneticiler becerememesi etkili oldu dersin. Bu Dx11-12 vs. olayları da buna benzer olabilir. GPU'lar mesela gelişemiyorlar. Maxwell dediğin şey Fermi'nin adam gibi hali. Fermi'nin ilk adı ne zman duyuldu, gt200'lerden ne zman tam geçiş olabildi? AMD, ATI'nin yükünü alıp 6970'e kadar ıkına ıkına devam ettirdi de noldu, bütün sorunlarını görmezden gelmedi mi? GCN'i çıkartıp nasıl ipten döndüğünü çoğu kişi anlamıyor malesef. MAxwell'e Fermi'nin gelşmişi gözüyle bakabiliyorsak, GCN'e de VLIW temelli mimarinin 1 tık yamultulup-düzeltilmişi ama çok farkettireni gözüyle de bakabilriiz. O En başta vazgeçilemeyenler, düzeltilemeyenler yüzünden böyle ağır aksak ilerleniyor. Ben diyim 5 sene sen de 6 sene. E tamam eldeki sonuca bakarsan farklı bi yere gelmişiz, ama hepsi kaba gücü arttıra arttıra, pompalana pompalana gazlna gazlana gelmiş. Bi sürü şeyi elimin tersiyle itip, şunu şöyle bunu böyle en başından yapsanıza be kardeşim diyebilrim. Bugünkü bildiklerimizin yanında geçmişte yapılmayacak işler değildi çünkü bunlar. Yani ne oluyor? Üretim proses teknolojisi burda büyük engeller çıkartıyor. Şu an, geçmiştekinden çok daha farklı sorunlar var. Bu da GPU'ların büyümesini engelliyor. Oysa GPUlar her nesilde başından beri bariz olan sorunlarla gelip, şişirilip büyütülüp sonraki nesle aktarılıp küçültülüp, sonraki nesilde an baştaki hatalar yetersiz yaklaşımlar düzeltiliyor. MS ile alakası ne, MS de belki bu gidişatın bi yere varamadığını görüp, bi dahaki büyük adıma kadar dx11 ile sallantıda gitmeyi amaçlıyor idi. Belki kar maksimizasyonu açısından daha iyi olduğunu düşünüyorlardı. Eski kafalısından örümcek kafalısına bi sürü insan dolu şirketler , dışardna görüldüğü gibi değil hiçbiri. Tamm, MS süper kafalı insanlar ve yöneticiler ile dolu. Xbox'ı niye sçma sapan halde çıkartıyorlar? NEden yukarıda bahsettiğim şeklde oyunları tamamen donanıma özel geliştrilmesini sağlatamıyorlar? Neden bunun için yeterli yazılım altyapısı yok? Yıl olmuş 2015, XB1 çıkalı kaç zman olmuş, ESRAM'ı verimli kullandırtacak otomatik kod iyileştirme araçlarını yeni çıkartıyor. SONY'deki kıdemli baş geliştrici diyeceğin adam, milyonların yapabildiği x86 assembly ile bi iş yapmayı becerdi diye sevinçten twitterda çığlık atıyor. Anca fanatikler oo PS4 %200 hızlanıyor der. PR imaj amacıdır belki. Ama kıdemli geliştricinin kıytırık bi kodu x86 asm ile yapabildiği için çıkartılan yaygara esasında tam bi skandaldır. Adam yazdığı kodu faln paylaşmıştı, rezalet bişi yani, bunu paylaştığı için insan utanır rezil olacam diye. Konumu gereği bunu yapmaması lazım. Ellerinde bi mok olmadığını, Konsolların geliştirme araçları açısından nasıl sıkıntı yaşandığını, konsola yazılım geliştirme araçları hazırlayacakların ne hallerde olduğunu görüyoruz bu sayede. Yani? MS dünyanın parasını harcıyor ama daha kendi konsolunda adam gibi iş yapılabilmesini sğlayacak araç gereç veremiyor. Ee, o zmn Ms'de kim kimin ne yaptığından habersiz mi demez mi insan? Burdan da ben kendi adıma beceremedikleri için hala bu dx11 noktasında debelendiğimizi düşünüyorum. Mesela zmanında kafaları bassa, Crossfire gibisinden kullanımak üzere ikinci bi çip de ekleyip donanım maliyetini üstlenebilirlerdi. Şimdi XB1'de bitane daha GPU olsa ve Dx12 ile ince kodlanıp SFR gibi yöntemlerle CF edilebilse çok daha iyi konumda olabilirdi. Neler var neler yapılabilecek anlatsam yuh bu nasıl para içinde yüzüp bi mok yapamıyorlar noktasına gelir konu. Indie = bağımsız olanlar. İlla bi oyun stüdyosu ile bağlantılı anlaşmalı olmayan, kendi başına geliştirme yapan, genelde AAA sınıfındaki stüdyoların oyunlardan daha az imkanlar ile geliştirme yapanları kastediyor. Bu bağımsız geliştricilerin önemi, büyük stüdyolar kadar aşırı kar kaygısı taşımadan daha farklı şeylere yönelebilmeleri. Süper manyak grafik yapacam gibisinden değil de prosedüral bi evren yaratacam, open world'ün kralı olacak, bitmeyen bi uzay simülasyonu olacak, gezegenlere ineceksin keşfedeceksin fethedeceksin, başka gezegenlere gdieceksin ordan, gezegendeki yapı yüzey canlılar da prosedüral olarak yaratılacak vs. diyen bi bakış açısı ile işe girişip, tamamen herşey görsellik değil oyun kalitesi diyebilen insanlar. Yada büyük bi dağıtıcı ile göbekten organik bağı olmayanlar. EA-DICE ilişkisi gibi mesela. Indie diyince insanların aklına kıytırık oyunlar ve 1-2 kişidn oluşan çöp çamur hüeeghh denilecek oyunlar geliyor da, herşye böggh dememek lazım. Herşeye bu ne la diyecek tiplere bişey anlatamazsın zaten. Yoksa Yager faln gibi geliştricileri de, kontratlı çalışan motor-render geliştricilerini de, level tasarımcılarını vs. hepsini dahil edebilirsin aslında. Oyun sektörünün geldiği yer konusunda haklısın. 3 kuruş deneyim için kaç zman bekletiyorlar dimi insanları? Sonrasında her platforma çıkartıp paraları cukka peşindeler. Doğru düzgün oyun yapayım dediğin zaman, en popüler olanlardan başka yönlere bakman gerekiyor çünkü. O zman da işte farklı geliştriciler devreye giriyor, farklı oyunlardan da bahseden yerlerden, eş dost tavsiyesinden ulaşabiliyorsun. Limit Theory, No Man's Sky, Eve Valkyrie vs. gibi oyunlardan mesela, ana akım popüler oyunlardan ulaşmadan haberdar olma imkanın yok. Bunlar da adamına göre oyunlar. Kimi direk hll olsn adamlara der, kimi 2dk da bu ne la moduna girer. |
Aslında Vulkan'dan bahsetmeden önce OpenGL'in tarihine kısa bir gözatıp Vulkan neden bizim için bu kadar önemli bir görmek lazım. Eski topraklar bilir, OpenGL 90'larda DirectX'in eş seviyede olmasa bile oldukça güçlü bir durumdaydı, Quake 3 örneğinde olduğu üzere grafik efekt manasında çığır açan özellikleri vardı. Ancak Microsoft'un DirectX'i "kendine has yöntemlerle" öne çıkarması sonucu (IE-Netscape örneğinde olduğu üzere) OpenGL gittikçe daha az oyun geliştirici tarafından tercih edilir oldu. Hatta aynı etkiler profesyonel yazılım dünyasında da yaşandı, çoğu 3D program OpenGL arabirimini kullanırken Vista sonrasında yavaş yavaş DirectX'e geçti. Dolayısıyla günümüzde oyunlar olsun, profesyonel yazılımlarda olsun DirectX hegemonyası yaşanıyor maalesef. Maalesef dememin sebebi Microsoft'un bu durum sebebiyle yıllardır DirectX'i geliştirmek için kılını bile kıpırdatmamasından kaynaklanıyor. Tabi ne zaman Mantle geldi (rekabet geldi) Microsoft adım atmak zorunda kaldı. Şimdi OpenGL'in varisi konumundaki Vulkan girişimi bu nedenle DirectX dünyası için de çok önemli, çünkü rekabetin olmadığı yerde hem donanım hem de yazılımsal olarak olan biz müşterilere oluyor. Vulkan'ın bizim için bir önemli yanı da PC'lerde oyun platformu olarak ilk kez Microsoft'a ciddi bir rakibin geliyor olması. Steam'in Linux bazlı SteamOS girişimi maalesef istenilen sonuçları verememiş ve hızlı bir başlangıç yapamamıştı, oysa şimdi Vulkan'la çok daha gelişime açık ve Windows'a gerçek bir rakip konumuna gelebilirler. Vulkan'ın Windows dışı platformlarda da yüksek performans vaadediyor oluşu Linux'u sonunda bir oyun platformu haline getirebilmek için en önemli etken şu anda. Vulkan'ın GDC 2015'teki sunumuna dönersek öncelikle Khronos Group'un sunumunu paylaşalım: Videoyu izlemek için tıklayınız Khronos Vulkan'la ilgili web sayfasında şu pdf'i yayınlamış: https://www.khronos.org/assets/uploads/developers/library/2015-gdc/Khronos-Vulkan-GDC-Mar15.pdf |
XB1'e geliştirme yapmak kolay değil zaten. ESRAM herşeyi karıştırıyor. ESRAM'ın büyüklüğü de yeterli değil zaten. PRogramcı uzun uzadıya bellek erişim paternlerine göre analiz edilmesi gerekiyor. Onu kolaylaştırmak için araç gereç getirmişler GDC'de onun tanıtımını yaptılar. İşte neymiş, dx12'nin SFR kullanımına benzer XB1'de bellek erişimi DDR3 + ESRAM'ı aynı amaç için kullanırken bölerek kullanma imkanı olacakmış (aynı render target verisinin bir kısmı ddr3 bir kısmı esram'da duracakmış). Bunu şimdilik hemen kullanacak olanlar yokmuş ama dx12 bu tarz imkanlar verdiği için çok şanslıymışız. beeh beeh beeh. Yani konsol yapıyorsun, programcıyı dx11'yi bypass edip kendin GPU'ya erişemezsin diyorsun, her taraftan kısıtlıyorsun, ondan sonra da belki en başından beri olması gereken özellikleri lütuf gibi sunuyorsun. Ms kafayı düzeltmezse daha çok çeker. Sade PC'ye özel olacak oyunlar için sorun yok. Şimdi çok daha esnek olacak geliştrici. Bi sürü imkana kavuşacak. Yönetmesi daha zor, ama yeterli araç gereç olduktan sonra, yeterli ve kaliteli materyale sahip olduktan sona bi indie geliştricisi bile çok güzel işler yapabilecek olmalı PC'de. PS4 için de bu imkan var ama PS4 yine daha zor. Sırf bu konsolların daha zor olması yüzünden sade PC'yi hedefleyen indie geliştriciler var mesela. Dx12 kadar Vulkan da bu açıdan önemli bi konumda bence. Indie geliştriciler, profilleri çok çeşitli de olsa, yeterince hızlı gelştirme araç gerecine sahip olabiliyorlarsa hızlı ve iyi işler yapabiliyorlar. Vulkan için çıkacak her yeni araç dx12'ye karşı bi adım da güçlenmesini sağlayacak. Bi de alakasız olarak, insanların zaman içerisinde gördüğü ettiği şeyler yüzünden deneyim kazanıp, eskiden ooo CGI dediği şeylere yakın şeyleri oyunlarda görebilmesi yüzünden, yerine göre fazla burnu havadalık yapabiliyorlar. Bi adamın bahsettiği şeylerden sonra filmlardeki görsel efektlere dikkatlice bakınca, o efektin yeteri kadar doğru ışıklandırma yapamadığını, render hatası içerdiği, işte parlamanın ekranda post process gibi işlendiği, işte gölge detayının ışıklandırma detayının doğru olmaması gibi bi sürü durumla karşılıaşabiliyoruz. Bu dx12 / Vulkan / Mantle'da daha çok bağımsız nesne render edebilme olayı, en basitinden sahne karmaşıklığını GPU'nun verimli işleyebileceği şekilde arttırma imkanı da veriyor. Aynı zamanda nesne sayısı var bunların bağımsız detaylarının işlenme şeklini de. Bu, sistem elverdiği ölçüde bi geliştricinin bi sürü bağımsız detayı fps çakılmadan eklemesine imkan verecek gibi duruyor. Dediğin gibi olmaz umarım. Çünkü şu an Windows ve XB1'e tam olarak ortak geliştirme yapılmıyor olsa bile kod altyapısını ana yaklaşımı benzer kuruyorlar. Ubisoft Montreal'in onlarla ilgili sunum detayları faln var.Fizik için mesela DirectCompute 'u Windows ve XB1'de nasıl kullandıklarını vs. anlatıyorlar. İkisi de hemen hemen aynı altyapıya sahip. İkisi de benzer kısıtlamalara sahip. İkisini de birbirinden alakasız şekilde kurmuyorlar. PS4 versiyonu daha esnek olsa da, XB1 ve Win versiyonuna göre çok egzantrik yollardan bilmem kaç kat daha iyi yapalım çabasına da girmiyorlar. İlerde bu durum, Win-XB1'in daha çok ortak nokta ile daha geliştrilmesine yol açacak. Bi nevi XB1 bütün platformlar için belirleyici konumuna gelebilir bu yüzden(kısmen şimdi de öyle). Öbür taraftan dediğim gibi bi indie geliştricisi PC'yi görece daha kolay geliştirme imkanları yüzünden konsollara tercih edebiliyor bugün. Dx12 ile bunun daha da artabilme ihtimali var. Sade indie olarak değil, pc'deki hedef donanımı yüksek dx12' için yeterli araç gereç kullanıp daha iyi işler yapabilecek bi dünya geliştrici var. Eğer Vulkan yeterli araç gereç , geliştrme altyapısı, yeterince yardımcı dökümantasyon vs. gibi şeylerle gelebilirse, avantajlarına göre o tarafa doğru da kayma olabilir. |
Mobil GPU sınıfındaki PowerVR Rogue üzerinde çalışan ilk Vulkan demosu (deneysel sürücülerle, sanırım alpha bile değil): Videoyu izlemek için tıklayınız |
Dx11'de şu var : 100 tane nesne çiz diyorsun, bunun altyapısıyla driver ilgileniyor. Dx12'de de bu var : O 100 tane nesnenin çizilme altyapısını kendin kuruyorsun. Böyle bakınca dx11 oyunu daha hızlı geliştrilebilir gibi dimi? Eğer amaç sadece 100 tane nesne ise, yani sistemi zorlamyacak kadar bi yük ise esasında neyle yaptığının önemi yok. Sorun, 100 tanecik nesne oyun ortamını kurmak için yeterli değil. nesne sayısı arttıkça bunların işlenmesi için gerekenlerin GPU'ya aktarılamsı sistemi boğuyor. O zaman da dx11 oyunu için adam oturup nereden nasıl bi yol bulurum da 1000 nesneyi bu sahnede oynatabilirim peşine düşüyor. Yukarda altyapıyla driver ilgileniyor dedim ve burdan dx11 oyun daha çabuk yapılabilir sonucu çıktı ya. Bu sefer de elimizde performans sorunu oldu, çünkü dx11'de bu iş yürümüyor. Driver altyapısının hazırladığı şeyler yüzünden kazandığın zamanın çok daha fazlasını, oyunu dx11'de doğru düzgün işleyebilecek hale getirmek için harcıorsun. Dx12, altyapıyı kendin kurman gerektiğinden zaman alıcı gözükse de, dx11'de perf sorunu yaratıp aşmak için ilave zamana ihtiyaç duyduğun şeyleri ortadan kaldırıyor. Böylece en başta biraz daha fazla zaman harcasan da amacına uygun yapıyı kurmuş oluyorsun. Şimdi sen geliştricisin. Hedefin şu an dx11 oyunlarındaki kadar bi kalite. Bugün bunun için en az 6 ay uğraşmaları gerekiyorsa, sen dx12 ile 3 ayda hazır edebileceksin. Ne olacak bu durumda? Bugünkü şartlarda kabul edilebilecek kaliteyi sunup (dx11 oyunlarında, şimdilerde gördüğümüz) çabucak ürünü pazara sunabileceksin. Ne extradan perf iyileştirmesi için nede tasarım aşamasında ya nerden 3 kuruş daha perf çıkartırızın çok fazla peşine düşmeyeceksin. Hatta hepten sallapati iş yapsan bile, özel bi bug patch gerekmediği sürece oyun o yata yata hazırlanmış hali ile bile dx11'den daha iyi perf verebilecek. En basit halinde bıraksan bile dx11'den daha verimli çalışacak. Yani sen ne kadar yatarsan o kadar çabuk piyasaya sunabilir hale geleceksin, perf ve kalite de dx11 seviyesinde olacak. Endişe ettiğn kısım burası senin. Dx12 Dx11'den geliştirme yapısı anlamında daha zor ve zaman alıcı. Ama toplam zaman ve bütün o zaman boyunca harcayacağın emekler için daha azını istiyor. Bu yoldan gitmek isteyecek bi sürü açıkgöz çıkacaktır. Bu açıdan bakınca, yani hızlı geliştrilip kalite artışı elde edilmeyen ve perf açısından da yine 40fps de gezinen oyunlar için haklısın. GEtirisi sadece oyun yapımcısına olacak. Oysa Dx9 >> dx11 için oyun yapımcısının ilave çabaya ihtiyacı vardı(dx9'daki sabit fonksiyonların dx11'de komutlarla düzenlenen programlanabilir fonksiyon olamsı yüzünden / sabit donanım yerine ALU'da işlenebilen komutlara dönüşmesinden). Dx12'ye sadece bu açıdan bakarsan yapımcının cebini doldurup bişey farketmeyecek dersen haklısın. Geri kalan olasılıklar olumlu şekilde kullanılabileceği durumlardan ibaret. Yeterli zaman harcayıp, dx11'de olamayan yapılar kurup, 40fps'de gezinecek olan performansın 60larda gezinmesi için uğraşabilecekler. Aynı anda farklı efektinden tut, dx11'de altyapının yetişemediği ışıklandırma detaylarının eklenip kalitenin artmasına kadar farklı olumlu olasılıklar da var. Vulkan hakkında 1 tık daha az detay var, ama tanıtım-detay-açıklananlardan hareketle geçmişten çok daha iyi durumda GL. Geliştrme araçlarının geliştirme için çok ciddi bağlılık-çaba da var. Eğer saçma bişey olmazsa bu defa çok farklı olacak GL'in durumu. İkisine de Mantle muamelesi yapabilirsin kabaca. Ama şimdiye kadar kimsenin Mantle üstünde herhangi bi iş yapmadığını, BF-Thief'in MAntle'ın ne olduğunu gösteren portlar değil, sadece ucundan, dostlar alışverişte görsün hesabıyla hazırlandığını, yani Mantle'a özel hiçbişey yapılmadığını akılda tutarak bu muameleyi yapmak lazım. BF için deflarca yazdım John'un kendisi shaderların dx versiyonundaki shaderlar olduğunu cevapladı. AMD'nin verdiği araçlar ile BF'nin dx11 için yapılmış shaderlarını Mantle'a olduğu gibi aktardılar. MAntle ile yapılabilecek bi sürü alternatif yolun peşinden gitmediler. Yani aynı işi görüntüyü verecek değişik yaklaşımlara Mantle izin verirken, yani render olayını farklı yoldan imkan verirken, kimse bunlarla uğraşmadı. Bu yüzden dx12-vulkan için Mantle'a bakıp onlar da bi mok olmayacak gözüyle bakmamak lazım. Çünkü Mantle ile ilgili gördüğümüz bişey yok daha. 3 kuruş CPU'yu hızlandırmış faln diyip geçmemek lazım. O 3 kuruş hızlandırma olayı işte, daha farklı render altyapısı kurduğun zaman çok çok farklı şeyler vermeye müsait. Ama bu, yukarda bahsettiğim, dx12'yi hızlı geliştirme ve bi an evvel pazara fazla optimize edilmemiş, şimdiki oyunlar kalitesinde ve performansındaki oyunları hazırlayıp, yata yata yaptıkları oyundan 3 günde para kazanmaya çalışacakların olmayacağı anlamına gelmiyor. Sırf bunlara bakarak da yeni kart gerekti dememek lazım.EE ne farketti o zman? Olaya bu bahsettiğim şekilde yaklaşacak oyunlar açısından bakarsan bişey farketmedi. Amacı 3 günde ürün sürmek değilde doğru düzgün iş yapmaya çalışanlar da olacağından, aralardaki farklar çok net gözükebilir olacak. |
.45 ACP'ye cevap yazmam lazım öncelikle, kısa özet, ucundan değin geç yapmak da istemiyorum uzuyor. Okumak istemyen zaten okumaz orası ayrı da, görünce çabucak kart mevzuuna cevap yazayım dedim. dx12 ile ilgili Tier1 2 3 / feature set ile ilgili detaylardan bahseten sunum-sızıntılar vardı. Bu forumda da Father Torque'un açtığı dx12 başlığında ss ler de var sanırım bu tier / feature set için gpuları sınıflandıran.http://forum.donanimhaber.com/m_103449438/tm.htm Fermi-Kepler'de esnek rasterizer altyapısı olmadığını biliyorum, ordan hareketle conservative rasterization'ın tam olarak uygulanamayabileceğini, uygulanırsa çok fazla perf kaybına uğrayabileceğini uzun zamandan beri savunma-tahmin etme aşamasındayım. Buna ipucu olarak da MFAA-AGAA gibi yöntemlerin Kepler'e gelip gelmemesi ışık tutucu olabilir diyordum. MFAA NVidia'nın MAxwell ile ilgili hem PR malzemesi, hemde daha esnek rasterizer altyapısını GPU'ya koyup orda öyle yatması durması dışında, adamlar hemen pratik bi amaca hizmet edebileceğini de göstermiş oldular. Programcının rasterizer altyapısını farklı-sırasız erişim ile farklı amaçlarla kullanması bugün rastlanan bişey değil. Yani AMD-Intel de bu tarz direk kısıtlama yok diye, egzantrik bi özellik olarak bak nasıl kullanabiliyoruz gibisinden getirdikleri işe yarasın yaramasın yeni bi özellik yok. AMD GCN'i ilk çıkarttığında atıyorum zortungen AA diye farklı bi rasterizer kullanımına dayalı metod oluşturabilirdi belki, ama akıllarına gelmedi belki (yada GCN donanımı esnek rasterizerı bu şekilde kullanmaya müsait değil). Ama Nvidia Kepler'deki yapıyı esnetince, detaylarını saklayarak MFAA'yı ortaya çıkartmış(AGAA'nın nasıl çalıştığından daha detaylıca bahsediliyor mesela). İyi bi yaklaşım bu Nvidia adına, esnek donanımı hemen işe yarar bi özellikle birleştimek adına. Yani tek başıma iyi bi temelden varsayımda bulunduğum kadar, sonradan çıkan detaylar da hem öyle hem böyle noktasına getirdi. Yani Kepler-Fermi açısından dx12'nin desteklenmesi için Maxwell'den farklı olacağı noktalarla ilgili. (burda yazılanlar silindi ://) Ms'nin dx12 sunumunda da bahsettiğim şeylerin detaylarını anlatıyor. Açıkçası Fermi'-Maxwell arasının desteklenme şekli bi miktar düşündürüyor beni. Bunların kaynak tahsis ve yönetim esneklikleri çok farklı, AMD'nin ise tamamen apayrı(AMD'nin ki daha gelişmiş esnek). Sağdan soldan bakınacak araştıracak olan varsa resource binding ve bindless ile ilgili bu bahsettiklerim (yada sildiklerim). Bu noktadan sonra programcının neyi nasıl kullanmak isteyeceği önemli. Fermi'yi dışlayarak iş yapmaya kalkabilecekler mi, yoksa dx12 buna imkan vermiyor mu bunun detayını şimdilik bilmiyorum. Yani umarım Fermi'yle limitli kalınılırsa da programcının kurmak isteyeceği yapı yeterince esnek olabilir. Dx12 için bi anda seni yükseklerde uçarken suratı düşmüş gibi gördüm bu son yazdıklarınla dememek lazım yine de. Sırf Fermi üstünden hareket edip bile yapılabilecek baya şey var. Ama yine de kafa kurcalamıyor değil. Bu, daha önce yazdıklarım boşa gitti vs. anlamına da gelmiyor elbette. Dx12 'nin gelmesine var baya. O zmana kadar donanım satışları vs. göre programcının bakış açısından dx12-Fermi tarafından ne kadar limitleniriz'e kadar bi sürü detay elde etmiş oluruz. Kepler- Fermi'nin kesiştikleri çok yer olduğundan ve dx12, Kepler ve sonrasındaki Nvidia'nın yolunu tam olarak benimsemediğinden, Kepler iyi Feri kötü değil diyeceğimiz bi noktada da olabilir. Bu da geliştricinin programcının kendilerini kıstılamayabilecekleri anlamına da gelebilir. Konu esasında Vulkan iken ha bire Dx12 üstünden gidiyoruz farkındayım da, şimdilik öyle işte, kusura bakılmasın. Alakasız olarak bu Stardock'un Ashes of Singularity oyununu şimdiki MMO-RTS'ler ile karşılaştırmak için hafif tanıtım videosuna bakınabiliriz sanırm.http://www.youtube.com/watch?v=t9UACXikdR0 Edit :@Father Torque gamedev'de aklı başında, hem bu işten ekmek yiyen hem insanlara yardımcı olan, hemde fikirleri objektif olabilen insanlar var. Fikir edinmek için çok iyi yerdir, saolasın eklediğin için. |
Timothy, Andrew gibi Mantle için etmediği laf bırakmayıp GL'den başka bişeye gerek yok hepsi GL'de şu şekilde yaklaşırsan yapabilirsininden tut GL 4.5'e, ordan bindless pull'dan AMD'nin tex / tarama / pattern yapısına bilmemneye kadar ağzından tükürükle laf edenler, şimdi GL'in eski sorunlu hali terkedilip bambaşka bi temelden devam ederken ve Vulkan'ın en baştaki destekcilerden olunca, insanın gidip kardeşim etmediğniz laf kalmadı şimdi tek tek tükürdüğünüzü yalamıyor musunuz temel anlamda diyesi geliyor. |
Milleti AGD durumuna sokma dostum. ![]() Mantle bir adımdı. İyi veya kötü sonuçta işe yaradı. En azından M$ hantalını-ben bilirimcisini kıçını kıpırdatmaya zorladı. Daha önce birkaç yazımda değinmiştim. Mantle Linux ve Mac ortamına aktarılabilir mi diye. Bu olursa oyun için DX tekelinden (ve Winden tabii) kurtulabiliriz mi diye. Yapılırsa mükemmel olur ama AMD için bunu tek başına yapılması zor görünüyor demiştim. Galiba köprülerin altından epey sular akmış bu arada. Vulcan yeni bir şey ama Mantleye göre çok daha geniş olanaklar vaadediyor. Daha geniş ekosistem ve ortak kodlama altyapısı, çok daha güçlü destekçiler gibi. Sorun belirttiğin gibi bunun da cılkının çıkıp çıkmayacağı. Yani yeni bir OpenGL fiyaskosu olur mu ? M$ işin içinde olsaydı sanırım bunu da bozmak için elinden geleni yapardı. Ama şimdilik yok görünüyor, inşallah değişmez. Üstüne üstlük destekçi firmalar oldukça etkileyici. Birçoğu da DX-M$ tekeline bir şekilde yan bakan firmalar. AMD-NVIDIA-Intel-Imagination vb grafik alanında adı geçen tüm firmalar var. Yine Intel-AMD-Mediatek-Samsung-Qualcomm-Apple-Arm vb gibi işlemci alanında sözü geçen firmaların da geneli burada. Valve-steam-apple-vmware-unity-epic-blizzard-ea vb ciddi yazılım--oyun firmaları da var. Üzerine sony-pixar-lucas-oculus-code-conti vb bir çok çevre birimi ve yazılım üreticisi da dahil. Qualcomm vb içindeki adreno zaten eski AMD GPU, mediatek de Radeon içerecek deniyor. Mediatek bunu yaparsa başka arm üreticileri de gelir. Yani ekip çok sağlam ve etkileyici görünüyor. DX tekelinin vede kısıtlayıcılığının kırılmasından tamamı fayda görecek firmalar bunlar. Linux söz konusu olursa oyun-yazılım ekosisteminin genişlemesi için Suse-debian-red hat vb büyük dağıtımlar da buna yabancı kalmaz. Sorun işin nasıl yapılacağı. herkes kendi tarafına yontmaya başlarsa (özellikle lisans cimrisi NVIDIA, apple, samsung gibi devler) yine bir OpenGL fiyaskosu çıkabilir ortaya. Ancak AMD-Valve-Imagination-Qualcomm-Epic-Ea-Blizzard-Mediatek birlik oluşturabilirse diğerleri saptırmaya çalışsalar da hedefe ulaşabilirler ve diğerleri de uymak zorunda kalır. İşin iyi yanı burada. Bu firmaların AMD-Valve izinden sapmak için iyi bir nedenleri yok. (Intel-NVIDIA parası dışında tabii) hatta Apple bile OpenCL yüzünden üst seviye sistemlerinde AMD kullanmaya başladığı için ikilik çıkarması pek beklenen bir durum olmaz. Vulcan gibi kendi sistemlerinin önünü açacak (oyun/donanım vb) bir API çıkarına gözüküyor ve Apple para ile saptırılamaz. Sorun senin dediğin ikinci konuya kilitleniyor. Yani M$ dingilinin DX için şunu istiyorum, donanım da şöyle olacak diye diretmesi/zorlaması gibi bir durum olup olmamasında. Ancak bu durum ana grubu olumsuz etkileyeceğinden özellikle AMD-Valve vb kesim buna pek izin verecek gibi değil. Bahsettiğin gibi ideal bir yapı olursa işte o zaman Vulcan işi kotarır. Yani küçük ve hafif bir motora sahip API. Sadece bana şu lazım, bu özellik var, bunun için şu girdiyi şöyle alırım, şu çıktıyı şöyle veririm gerisi kod ve donanım için esnektir diyen bir yapı. Kısaca sadece girdi ve çıktı biçimi ile ilgilenen, hem kod, hem donanım hemde kendi iç yapısında modüler-bağımsız olan ve kullanıcıları en az kuralla sınırlayan bir yapı. Bu olursa AMD için esas sorun olan kod ve yazılım geliştirme ortamı (bileşenler-kütüphaneler-arayüzler-debugger-profiler vb) yükü de birçok firma arasında dağılacak ve hızlı bir şekilde olgunlaşacaktır. Her firma farklı bir teknikle yapsa da sadece girdi-çıktı biçimi ile sınırlanan bir kapalı sistem yapısı sorun yaratmayacaktır. Girdi-çıktı doğru olduğu sürece kodun-apinin-donanımın neyi nasıl yaptığının önemi kalmayacaktır. (kapalı modüler sistem) Bu ise firmalara inanılmaz bir esneklik ve harekat alanı yaratacak, herkes kendi bildiği en iyi şekilde yapacaktır işini. Bu kadar ciddi firmanın bu kadar büyük avantajları, elde edecekleri serbestliği-esnekliği göz ardı edeceklerini pek düşünmüyorum. Hem yazılım hem donanım olarak verebilecekleri max güce ulaşabilecekken kısıtlı-zorlayıcı bir standarda bağlı kalmak ve perf kaybına katlanmak istemeleri pek mantıklı olmayacaktır. AMD Valve ve Apple ile birlikte bile bunu başaramazlar. Ancak şu anki destekleyici firmalar genelde sektörde adı geçen büyük ve öncü firmalar. Bunu gören daha küçük diğerleri de gelecektir kanımca. Görünen o ki Vulcan şu an bile Mantle'den daha büyük umut vaadediyor. Gerçekleşme olasılığı da yüksek görünüyor. İnşallah yeni GL olmaz. |
Vulkan için de Dx için de şimdilik bilmiyorum. Dx için yok sanırım. Vulkan için tam nasıl olacak herşeyi belli değil daha. Ama Vulkan'a Mantle + GL 4.4 ve GL 4.5 üstünden yaklaşırsak, GL 4.5'de Dx'e göre çok büyük hızlanmalar olduğunu gösterdiklerinden, Vulkan'ın daha esnek ve donanımı şöyle belirle ben anca bunda çalışırım vs. gibi dertleri sıkıntıları daha az olabilir. GL 4.5'in Fermi'de çalışabildiğinden hareketle Vulkan da iyi olacak dememek lazım gerektiğini biliyorum mesela. GL 4.5 için Nvidia'nın baya bi dürtüğü mürtüğü gazı vardı mesela (sırf AMD'den ve Khronosdaki görevinden Graham Sellers var diye eşit mesafede gidiyormuş gibi bakmamak lazım bence). Olmayacak duaya amin dedirtmeye çabaladılar. Kimse GL kullanmazken, GL'in kendi sorunları varken, Dx'den 18 kat farkımız var gelin diğer sorunları görmeyin yoluna girdiler. Şeye benziyor bu, Nvidia'nın 2010'larda çıkarttığı GL extensionlar ile bakın biz neler yapabilioz, alın bizim kartı gelin Nvidia GL'e (Nvidia'nın GL extensionlarını kullanın), bakın nası uçup kaçıosunuz vs. vs. 'ye getirdiler de noldu sanki o zmanlar dimi? Yukarıda laf sokulacaklar listesinde Graham Sellers da var da, oha artık ona da mı laf edion bre densiz noktasına gelmesin diye bişey yazmadım. Videoda bayıla bayıla anlatmasını biliyor da, 1 sene önce artık sigortası atmış vaziyette ağzından köpükler saça saça bi susun lam ne derdiniz var GL ile , ortalıkda dolaşıp konuşup duruyorsunuz bre zındıklar, sizin gibiler yüzünden memleket gelişmiyor (GL ilerlemiyor) gibiisnden herkese dalan da O idi. MAntle zaten adamın tepesini 1 kere attırmış, hani hiç mi haberi olmaz yani. AMD şirket içinde Mantle'ı öyle bi gizlikte mi hazırladı ki hemen hiç kimsenin haberi olmadı? NEyse zaten konu da bu değil. Bi geri dönersek, AMD GL 4.5'e driver çıkartamadı daha. Şimdi bu AMD'nin kaynaklarını hiçkimsenin , neredeyse istisnasız hiçkimsenin kullanmadığı GL 4.5 için bi çabaya girişmek istememesi yüzünden miydi (GL 4.5 anonsu lansmanı Ağustos 2014). Yoksa işte Mantle olayları faln vardı ve bu daha acildi, bu yüzden mi GL 4.5 olayına girişmediler? Graham Sellers'ın MAntle'a, yapılan yorumlara bozuk atması bu gizlilikle mi alakalıydı acaba? Şu an bile AMD, GL 4.5'in %42'sini destekliyor, geliştirme orda kaldı. Büyükk ihtimalle de olduğu gibi bırakacaklar. Nvidia Fermi 'den sonra %100 destekliyor. GL 4.4, AZDO dedikleri (approaching zero driver overhead dedikleri, işte GL driverında altyapısnda çok az gecikme ile GPU iletişimi kurmak için yapılan şeyler) 2013'den kalma. AMD ona %100 destek veriyor(GL 4.4 AMD'de evergreen-5xxx serisi dahil 6xxx 7xxx R serisi şeklinde destekli). MAntle olayına sonradan girişmiş olmalılar ki GL 4.5'i yarıda bıraktılar. Yoksa o da %100 desteklenirdi diye düşünüyorum. Bunların Vulkan ile alakası, Vulkan'ın sanki daha olması gerektiği gibi yaklaşacakları daha Ms'nin aksine donanıma dikte etme amaçları varmış gibi görünüyor. GL 4.4 4.5 üstünden hareket edersek, Vulkanın daha gelişmiş olacağını yoksaymasak da, sanki eski kartlara da uydurulabilirmiş gibi geliyor. Vulkanın içini doldurmadıkları daha baya noktası var. Onlar belli oldukça anlaşılır. Ms'nin Dx12 Tier olayında, benim görüşüme göre Tier1 ile yapılabilecekler var. Diğerleri ile ne kadar fazlası yapılabilir bilmiyorum. Veya Tier1 limitindeki bi yapıyı kocaman bi yapıya dönüştürüp yetmeyen kaynağı GPU'da sanal olarak adreslemeye çalışmak için kullanabilirler mi diye bi varsayım var. Buna driverda, programcının yönetebileceği ve bellek transferi isteyen yaklaşım da kurabilirler. Bi yere kadar Tier 1 ile yapılabilecekler ciddi ciddi kısıtlama oluşturmamalı gibi geliyor yani. Yazılımla bi çözüm derken, illaki programcının yaklaşımı etkili burda. Ama driver'da da adamların yapabilecekleri şeyler var sanki. |
Turkiye'nin en iyi donanim forumu iddiasinda olan bir yerde bu konu hakkinda bu kadar az kisinin fikri olmasi bence utanc verici.basligi baska biri acsaydi insanlari kiskirtabilirdi ya da millet bos bulup birbirine sarkabilirdi ama konu simdiye 2 sayfaydi.benim derdim kaos ciksin degil ama en azindan bu vulkan is yapar mi sizce yararli mi gereksiz mi bir fikir yazmak zor degil.tamam konu karisik ve son attigim mesajla iyice corba ettim ama olmadi gormezden gelin o mesaji.evimde bile degilim bu konuyu hepinizden iyi bilen biri degilim vardir illa orijinal gorusu bilgisi olan insanlar.bu konu onemli ama yeni kart almaya merakliyiz diyorsaniz bosverin boyle seyler dusunmeyin dx12 ve win10 "eminim" gulluk gulistanlik olacak. |
Ne olursa olsun AMD mantle ile büyük bi olayı tetikledi. Mantle korkusu olmasaydı belkide dx12'nin esamesi bile önümüzdeki birkaç sene okunmayacaktı. Manlte firmalara hem zorunluluk hemde nasıl başlamaları gerektiği konusunda bir ders verdi. Birde amd karltarında kasa abanmaktan bıktı, nvidia gibi yazılımla nasıl çözeriz olayını düşünürken akıllarına bu mantle olayı gelmiş olabilir. Tüm bu gelişmelere rağmen benim ümidim sıfır (evet saçma ve fazla karamsarım) heleki eski seri kartlara dx12'nin pek bir getirisi olacağını hiç zannetmiyyorum. Her türlü yolunu bulup mevcut grafiklerle (yani grafiklerde pek bir geliştirme yapmadan veya yapamadan) kartların anasını ağlatacaklardır. oyunlarda texturelere abanmaktan başka birşey yapmıyor adamlar. ne mimiklerde nede fiziklerde senelerdir gelişme yok her oyun birbirinin kopyası nerdeyse. Bunun en büyük nedenlerinden biriside popülerite, fanboyluk. Misal nvida-amd-intel üçlüsü ufacık geliştirmeler ile milyarlarca dolar kazanıyorlar (gerçi amd pek kazanamıyor zaten bu olayı tetikleyende bu sanırım) ve insanlar bunlara tapıyor adeta eleştirilmesine müsade etmiyor. Bu kısır döngü telefonlarda, oyunlarda, işletim sistemlerinde, programlarda, donanımlarda hatta konsollarda bile hepsinde mevcut. Günümüzde küçücük bir değişiklik yapıp ''YENİ, ÜBER, SÜPER'' diye reklamlarla insanları kekliyorlar. İşletim sistemine yeni çöp kutusu ikonu koymuş adamlar bunun bile reklamını ballandıra ballandıra yapıyorlar (ne büyük bir gelişme). Her yıl aynı oyunlar farklı hikayelerle ( yeni, özgün hiçbirşey olmadan) çıkartılıyor. Cep telefonları birbirilerinin kopyası özgün gelişme yok. Donanımlar %10 performans artışını marsta koloni kurmuşlar gibi lanse ediyorlar. Yani bu devran dx12 ilede değişmez ![]() |
Dostum, AMD için başka bir çare kalmamıştı. DX11 hantallığı ve tek çekirdeğe aşırı bağımlı oluşu AMD açısndan çok dezavantaj yaratıyordu. AMD geçmişte de kod desteği ile ilgili büyük sıkıntılar yaşadı. MMX'ten daha iyi olan 3dNow için iyi destek verememişti mesela. Oysa M$ burnu hemen DX içine entegre etmişti. (MMX etmedi) Yine SSE karşısında çok çok daha iyi olan 3Dnow+ için de aynı sorun oldu ve 3Dnow+ ilerde lisans ile SSE2 içinde eridi. Athlon64 X2 çıktığında yine yeterli destek veremedi. Ortalıkta sıradan kullanıcıya yönelik çok çekirdek kod-uygulama yoktu ve bu yüzden X2 işlemciler gücünü gösteremedi. (FX de aynı oldu nispeten) Oysa şimdi çok çekirdek sayesinde X2-4400+ ve üstü ile hala idare edenler varken zamandaşı pentiumlar çoktan gömüldü. FX için de aynı durum var. Grafik-media-stream-db vb için dehşet fark yaratabilen komut setleri var FX içinde. Yine kod desteği eksikliğinden kullanan uygulama yok denecek kadar az. Mantle de farklı değil. AMD herhalde geçmişini ve gücünü biliyor ve mantle için çok iyi destek veremeyeceğini kestiriyordu. Ancak DX11-tek çekirdek zaafiyeti nedeni ile birşeyler yapmaya da mecburdu. Çok çekirdekte (render vb) I7 ile kapışan FX8 işlemciler DX yüzünden toplamda çok daha zayıf olan I5 hatta bazen I3 serisine geçiliyordu. Kaçacak yeri yoktu. Ya güçlü çekirdek ama eski phenom mimarisine dönecekti, ki kısa zamanda bunu yapması zaman-maliyet açısından boyunu aşıyordu. Bunu ZEN olarak zamana yaydı. Elinde kalan tek çareye sarıldı. DX11 için tek çekirdek zaafiyetini giderecek rakip bir API. Sonuçta mantle başarılı olsa AMD kazançlı çıkacaktı, başarısız olsa kendi açısından kaybedecek bir şeyi yoktu ve en azından M$ hantalını zorlayacak yine kazançlı çıkacaktı. Beklendiği gibi de oldu. Mantle zorlaması ile nihayet M$ kıçını kaldırdı da DX12 (ki bildiğin mantle klonu gibi verilere göre) için birşeyler yaptı. İlk testlerde de AMD kartlarının büyük fayda gördüğü ortaya çıktı. Daha önce yazmıştım. Mantle ya kendi başarılı olacak ya da DX adam olmak zorunda kalacak diye. DX adam olma yoluna girmeyeydi mantle başarılı olurdu ki başarısız da sayılmaz. Çok daha iyi bir şey için altyapı oldu. Ayrıca mantle ile veya DX12 ile AMD istediğini de aldı sonuçta.
Bu durum da M$ için alışılmadık bir şey değil ki. Para her şeyi çözmüyor. M$ tarihi bir bakıma fiyaskolar tarihi zaten. Win bile böyle. M$ ne zaman kafasının dikine gidip ben bilirim dese saçmalamıştır zaten. Küsküyü yiyip milleti dinleyince de kaynak genişliği ile güzel işler yapmıştır. Win 1-2-3 facia iken küskülenip OS/2 aşırması Win 3.1 ile belini doğrultmuştur. Diklenip W95 saçmasını yumurtlamış, kalaylanınca Win98 SE gibi hala işe yarar bir şey çıkarmıştır. Yine WinME gibi akılalmaz faciadan sonra zoru görünce efsane WinXP gelmiştir. Benbilirimci Vista ve Win8 fiaskolarından sonra söylenenleri dikkate aldığı Win7 ve win10 gibi güzel işler çıkmıştır. Diğer alanlar da böyle. Zune saçmalaması mesela. Surface mesela. Exceli adam etmek için çaldığı Quattro Pro kodları mesela. Turbo Vision esintili NET mesela. Word için yürüttüğü WP mesela. VB dandiğinden sonra Delphi zoruyla adam ettiği dili mesela. Java-delphi yürütmesi C# mesela. Neticede M$ kimseyi dinlemeden, ben büyüğüm, en iyisini ben bilirim köleler mantığı ile yaptığı tüm işlerde çuvallamıştır genelde. Ya başkasının zorlaması ile (DX12-Win gibi) yada fiyaskosunu örtmek için yaptığı esinlenme-çalıntılarla yaptığı işler adam gibi olmuştur genelde. XBox 360 gibi çok iyi bir ikinci nesilden sonra yine saçmalayan Xbox one gibi. Dediğin gibi para-büyüklük her şey değil. Piyasayı-değişimleri-beklentileri analiz edemezsen saçmalarsın, hatta batarsın. Nokia gibi, zamanında Apple gibi, SUN gibi, Silicon gibi, hatta IBM gibi. Dinamizm yoksa gerilemeye mahkumsun.
Bununla ilgili epey tantana koptu internet ortamında. Özellikle kod-programlama sitelerinde filan epey dillendi. Genelde bu sitelerde (özellikle asm için) epey dolandığımdan bakmıştım. Beni tanırsın, grafik alt kütüphaneleri-donanım dilleri (AMD IL vb) gibi konularda bilgim sıfıra yakındır. Esas ilgi alanım işlemci iç yapısı ve asm programlama olunca göz atmadan duramadım. İşin grafik algoritması ile ilgili bir halt anlamadım ama ASM kodu takdire şayandı. ![]() ![]() ![]() ![]() Nuhu nebiden kalma komut setleri ve programlama teknikleri ile iş yapmaya çalışmış adam. Utanmasa standart 54 komutluk 8086 seti ile yazacakmış neredeyse. Yeni teknik-komut seti baharat kabilinden özenle kullanılmış. ![]() ![]() Dediğin gibi PS4 için donanıma direkt erişecek alt seviye ASM kodu yazacak adamların seviyesi buysa vay halimize. Bir de bu adam yetkili. Sonra da niye iyi geliştirme aracı-bileşen-örnek kod çıkmıyor konusunda sonuna kadar haklısın bu durumda. Vay ki vay. Sanırım millet çok fazla üst seviye dillere, RAD ortamlarına, hazır geliştirme araçlarına bel bağlamış gibi bir durum var. Donanım-ASM konusunda Sony bile iyi adam bulamadı ve kıytırık kodla reklam yapıyorsa nereye gidiyoruz diyebiliriz. Hepsini Apple-Google filan almadı ya bu asmcıları. Valla sony asm kodlayıcı bulamadı ise ben talibim. ![]() Örnek diye gösterdiklerinden iki üç kat iyi asm kodu yazarım şu halimle. Saygıyla duyurulur. ![]() |
Sürücü yapım/geliştirme işlerinde çalışan bir yazılım mühendisinin gözünden Dx11 ve yeni Mantle/Dx12/Vulkan karşılaştırması. Uzun olduğu için çevirmeye üşendim ancak yeni API'lerin getirdiği kolaylıklar ve yenilikler hakkında güzel bilgiler içeriyor:
http://www.gamedev.net/topic/666419-what-are-your-opinions-on-dx12vulkanmantle/ |
linux devrimi diyorsunuz.tabi bu konu onemli bugune kadar win-dx bagimliligi ve linuxta oyun sorununa ciddi bir cozum bulamadilar ama vulkan bu is icin simdiye kadar yapilmis en ciddi adim.linuxcu kardeslerimizin yanindayiz peki bu icadin bize ne faydasi var amd intel nvidia kullanicilari icin?daha once bahsettim win10 bagimliligi olmayacak win7'de yok mu mantle harici bir sey dedigimiz zaman imdadimiza yetisiyor belki bu o kadar onemli degil win10 kuramayani dovuyorlar ancak bence bu olayin en guzel yani vulkan kartlarimizi daha iyi destekleyebilir.dx12 level olacakmis bu karti su level bu karti bu level diye ve vulkan da ayni sekilde.su anda nvidia 900 serisi dx12 olarak gorunuyor ama ben 12.1 diye de bir sey gordum yani su anda kimsenin elinde full+full dx12 kart olmayabilir ve bize yeni kart aldirma durumunda birakabilirler.vulkanda eger su anda mevcut kartlar ya gelin guzel bir level ayarlariz yaparsa olay paraya dayanir ve vulkan para verip de alacagimiz bir sey degil.belki sp1 ciktiktan sonra yani bir sure sonra win10'a gececegiz belki elimizdeki kart isimizi goruyor bir iki sene daha kullanmak istiyoruz bu durumda vulkan kullanabiliriz yeter ki cok oyunda destek olsun.mantle'deki deneme yanilma sacmaliklarini da bize yasatmayacaklarini dusunuyorum cunku mantle altyapisi ama bitmis mantle altyapisidir yoksa bizim bildigimiz bf4'teki sorunlu mantle degildir.ocak 2014ten bu yana deneme surecini astik artik daha ciddi gorsel fark da olan bir API bekliyorum ben sahsen.dx12 oturur bir kac sene sonra herkes kartini yenilerse dx12 kullaniriz kaybedecegimiz bir sey yok bu gecis surecinde guzel bir adim vulkan.peki dx12 fiyasko olursa(msnin paso xbox oyunlari icin kullanmasi) ya da cok guzel olursa vulkan ile dx12 arasinda bize secim yaptiracak ne fark olacak cunku ikisi de mantle temelli ve diyelim kimsenin kart alma zorunlulugu yok 3 sene sonra herkeste var.iste bu farki verecek bir seyinin olmasi lazim vulkanin uzun omurlu olmak istiyorsa ama dx12 gecis doneminde pc oyuncularina yardimci olsun esas amaci linux'ta oyun oynatmak niyetiyle cikariyorlarsa bence yanlis yapiyorlar cunku linuxun onemli oldugu kadar pcde dxe alternatif olmasi bence cok onemli bir konu.biraz daha bilgi gelsin konu anlasilsin ilerde gorecegiz olayi simdilik ben genel gorus almak istiyorum.soru da sorabilirsiniz. |
konsol bilgisi saglam degildir insanlarin ESRAM nedir diye yazinin en basinda kalmis olabilirler soyle soyleyelim xbox1 icin oyun yapmak zor ve ms'nin mantiginda ilerde cok kolay olacak gibi gorunmuyor.konsol bolumunu ilgilendirir ama oyunlar artik daha bir ortak benzer cikmaya basladi yeni konsollarda x86 amd donanimlari kullanildigi icin ve konsollara oncelik veriyorlar malum orijinal korsan oyun satis olayi yuzunden dolayisi ile konsollar da bizi ilgilendiriyor biraz.pc'ye oyun yaparken dx12 gelistirmede sorun yok diyorsunuz bizim korkumuz zaten port oyunlar yoksa delikanli gibi pc'ye gelsin bir sekilde oynuyoruz zaten.gta4 watch dogs facialari yasamak istemiyoruz.geldik vulkan'a demek ki ne kadar kalite ya da kotu api olursan ol butun mesele gelistiricilere verdigin araclarda bitiyor ne kadar cok olursa o kadar iyi.gelistiricileri ayri ve daha once dedigim gibi bunlar rekabet yaparsa daha cok arac gelistirebilirler demektir. bir satir atlayalim su anda gordugumuz bazi grafiklere wow diyoruz ama mantle öldü kabul etmeyelim dx12 vulkan mantle ile daha dogru daha guzel daha detayli burayi sizin yazdiginiz gibi yazdim yorumum yok yeni apiler bos degil diyorsunuz zaten ucu de mantle tabanli ben hala bu amd bu mantle'yi nasil icat etti sorusunda takildim madem ms bu islerin adami o kadar parasi var dx11 garabetini yapacagina bunu yapmamasinin politik sebepleri mi var yazilim dayat sat donanim dayat sat gibisinden? ms para kazandigim yerden calisirim xbox1'de kullanirim ben bu dx12'yi xbox1'e cikmiyorsa o oyun beni ilgilendirmez yapar mi yapar yani bu ms cok da serefli bir firma degil oyle pc oyunculugu gelissin gibi dertleri yok.dx12'nin kelegi olursa bu olur ama vulkan'da secmece olmaz vulkan'in da kelegi az oyunda desteklenmesi olur ama biz simdiden hangisi iyi olur diye tartisiyoruz.bizim kartlarimiza adam gibi destek level neyse versinler bazi oyunlarda olsun ki bu destek dx11'den her turlu iyidir ikisi de. indie gelistirici ne demek ben de bilmiyorum hocam ama sunu anladim gelistiriciler icin kolay gelistirme imkanlari cok onemli bir sey ama bir oyunu yaparken duygusal yaklasiyorlar patlama olsun parlak kaplama olsun sacma sapan bir konu olsun yani oyunu bir sanat gibi ya da gelistirmesi cok guzel bir proje olarak yapmiyorlar ve mobilde meyve patlatiyorsun milyon dolarlari goturdu adamlar simdi bence herkes mobil oyun yapmaya ugrasiyor pc'de korsan kullanim varken dunyanin parasini dokup oyun yapanlar isimlerini devam ettirmeye calisanlar sadece onda da ubisoft oyunlarini gorduk erken cikmis hata dolu.pc oyunculuguna katkisi olacak ismi ne olursa olsun her seyin yanindayiz desinler ki size kral oyun ama orijinal alin onu da yapacagiz bu konuda da gelismeler var eskisi gibi degil bunun da sebebi steam ve indirimler yani biz orijinal almayiz demiyorduk pahali diyorduk ucuz olunca alabiliyoruz.bu belki ayri bir baslik konusudur ama online oynanan oyuna para verilir hikayeli oyuna verilmez anlayisi da var malesef.life is strange isminde verdigin cevaplara gore konunun degistigi bir oyun var mesela o oyunu 5 episode korsan oynamayi nasil dusunuyorlar mesela?onceki episodelerde ne yaptigini bir sonraki tek oyun gibi verdikleri korsan oyuna nasil tanitacaksin gercekten merak ettigim bir konu.kisacasi adamlardan bir seyler bekliyorsak bizim de bir seyler yapmamiz lazim. |
Vulkan için şimdiye kadar olmamış, görülmemiş bi biçimde herkes uyum içinde çalışıyor. Direk olarak lazım olan esas alanlar hedeflenip onların üzerine gidiliyor (debugger'ından araortam formatına, tam detaylı spec.lerine kadar).
Ms'nin dx9, konsol ve desteği ile geliştirme araçlarının daha işlevsel olması ipi kopardı götürdü zaten.
Dx12, MS'nin daha önceden olmadığı kadar bi baskı tehdit altında olacak(2000'li yıllarda şimdikiyle karşılaştırılabilecek yapılar yoktu, o yüzden dahil etmemek lazım). Vulkan için birileri çıkar başka bi taraftan aşağıyı bi güzel dinamitler, orasını bilemeyiz. Ama şimdiki ortak çalışma gruplarının geçmiş ile alakası yok.
Kafa kurcalayan, detayının belli olmadığı ve mesela GLSL yapısı değişecek mi, shading altyapısını tamamen değiştirecekler mi, başka bi shading dili-yapısı için ne-nasıl yapacaklar, bunları yaparlarken geçmişteki gibi çıkar çatışmaları olacak mı? Bunların detayları belli değil. Ama GL 4.5 ile yapılabilecekleri tamamen kenara atıp yeni başlangıç için herkes ortakça peşinden koşarken, bu sefer olabilir gibi geliyor.
Dx12'de Ms donanım üstünde dikte edici konumunu değiştirmeyip, dx12'nin speclerini değiştirip donanımları bi anda uyumsuz yapablme gücünü elinde tutuyor. Oysa olması istenen Dx'in ben şunu bunu isterim, eyyy GPU firması, donanımda bunu nasıl yaparsan yap demesi ve gerisine karışmamasıydı. Tersi olduğundan, şu özelliği şöyle istiyorum ve donanımında da bunu böyle yapacaksın diyor.
Vulkan bu noktada tamamen olması istenen şekilde ilerliyor gibi şimdilik.
Ms'nin XB1 için bütün derdi, Dx11'de yapamadığı PC ile ortak geliştirme olayını başarmak (pardon, Dx9 Win7 öncesi ve X360'da da bunu istiyorlardı. Basiretsiz yönetici heryerde var önemli değil. Bilmem kaç seneye patladı sadece). Dx11 de ıkındılar ıkındılar olmadı. Dx12 için çok daha fazla ortak geliştirme imkanı verecek. E tabi PC'yi konsol seviyesine getirip sonra insanların XB1'e vuşşş harika demelerini beklemek olmaz. Bakalım bu yoldan yan mı çizecekler, yoksa tek programlama bakışı , geliştirme ortamı , tek appstore mantığını yürütebilecekler mi? Bu yol çok daha karlı mı olacak, yoksa yine aynı haltı yiyip ellerine yüzlerine mi bulaştıracaklar? Bilmem kaç milyar dolar arge için harca, doğru düzgün yazılım altyapısı hazırlamaktan aciz ol. Yıllllaaar önce kendi çip iletişim altyapılarını(API) kuran Japon konsol yapımcı-geliştricileri nasıl gülüyordur :(( Yine pardon, o Japon konsol yapımcıları da kendi sonlarını getirmişlerdi. Herkesi düdüklemeye çalışmayan geliştricilerinden , bu işlerden anlayan aklı başındaki insanlara kadar homurdanıp duranlardan başka ses gelmeyince iş bu yoldan devam etti edecek zaten.
XB1'e dx12 getirip çağ da atlatamıyoruz, bari bol bol daha kolay yapılabilen oyun getirelim de bu konsol işi gittiği yere kadar devam etsin? Bilmem kaç sene sonra bi konsol daha çıkartırsak söz, bu sefer herşeyini adam gibi yapacaz, mı?
Daha açık hali yok Mantle'ın, açılayacak da. SDK dedik o yok, Mart'ın later'ında dediler , vakti gelmemiş demek daha.
Mantle = Vulkan'ın kendinden donanıma göre driverı olan hali gibi bakabiliyor muyuz şimdilik? Peki şu an Dx11 için olan Dx shader'larını MAntle'a aktarmaya yarayan altyapıyı Dx12 için de sunacak mı AMD? DX12'de CPU---> GPU emir iletimi Mantle'dan daha hızlı, ama MAntle'ın GPU'da yaptığı iş de Dx12'den daha hızlı gibi şimdilik. O zman Dx12 oyununun, iyileştirilmiş Mantle versiyonu ile 3-5 kuruş daha fazlasını ortaya koyma ihtimali olamaz mı? AMD-Oyun geliştricisi bunun altına girer mi? Ana çatısı Dx12'ye benzeyen (dx11 -->> MAntle'ı yapmak kolay değil), AMD'nin Dx12 shaderlarını da kullanmasına imkan veren araç ile bazı oyun yapımcıları Dx11'de düşünmedikleri Mantle versiyonunu dx12 içn düşünürler mi? AMD herşeye yetişemeyecek kadar kaynak sıkıntısı yaşarken oyun yapımcısına destek de verir mi?
Dx12'den veya Vulkan'dan ne beklenmesi gerektiğini bilmeyen varsa, benim fikrimdir saygı duyman gerekir, ben bi halta yarayacağına inanmıyorum şeklinde yaklaşmak demek = eksik bilgim var ve bunu kabul ediyorum ama buna rağmen istediğimi söyleyebilmeliyim demek. Bu ne demek, adı benden gelmez.
Bu mesaja 1 cevap geldi. Cevapları Gizle