Mark24 napisał(a):
rotfl tczewiak doczytaj najpierw a potem uskuteczniaj swoja blazenade.
Gry na konsole nie pisze sie podobnie jak na PC - pisze sie identycznie. Tylko najpierw silnik gry dostosowuje sie do sprzetu przepisujac procedury by odwolywaly sie zamiast do ktorejs z warstw programowych bezposrednio do sprzetu. To poprawia wydajnosc nawet kilkunastokrotnie.
Dowody: wez sobie dowolny tytul z bazy ok. 2000 gier PS3 i odpal na PC z 256MB RAM uzyskujac identyczny performance.
ijtiowcy z zerowym common sense. za moich czasow byli jeszcze prawdziwi programisci zapalency - teraz jak widze puszaca sie gimbaza - doktoryzuj sie ze znacznikow jeszcze.
Lol. Pierdolisz jak potluczony.
PS3 miało dwie biblioteki. libgcm i cos bazujace na OpenGL czego nikt nie uzywal.
PS4 ma jedna biblioteke. libgcm.
Xbone ma API bazujace na DirectX. Pomijam fakt, ze tam siedzi Windows.
libgcm, to poziom abstrakcji mniej-wiecej taki sam jak Mantle.
Nikt nie pisze shaderow w assemblerze GPU. Bo i po chuj. Nawet sredni kompilator zoptymalizuje kod napisany w HLSL lepiej, niz programista, ktory bedzie go probowal pisac asm GPU.
Nikt tez nie pisze bezposrednich optymlizacji CPU w asm, bo tak jak wyzej, kompilator zrobi to lepiej.
Wszystkie inne interakcje z hardware przebiegaja za posrednictwem API.
Roznica pomiedy konsola a PC, jest tutaj taka, ze w Windows poziom abstrakcji tego API jest bardzo wysoki. Nie dlatego, ze tak trzeba (bo jak Mantle pokazało nie trzeba), tylko dlatego, ze dominujacym API jest DirectX, a Microsoft, bardzo nie lubi dawać bezposrednigo dostepu do sprzetu, bo sie boja ze programista go rozjebie (;.
To prowadzi nas do kolejnego punktu. Jeśli wydajnosc gry (tudziez innej aplikacji), ze zlockowana na GPU (czyli, ze GPU jest waskim gardłem), to chocbys pisał w ASM bezposrednio do karty grafinczje, nic ci to nie pomoze. Kiedy dane juz trafia do karty graficznej to jednym waskim gardłem jest karta graficzna. I chociazby z tego powodu to na PC gry moga byc w 1440p miec 60fps i miec modele zlozone z milionow trojaktow. Bo GTX 780, zjada to co jest w konsolach na podwieczorek.
W przypadku PC waskim gardłem jest CPU, a konkretnie DirectX 11, ktory jest jednowatkowy (wbrew temu co mowi MS), i ktory nie pozwala na manualne zarzadzaniem kontekstem aplikacji, jej pamiecia i tym co akurat ma byc przesłane do GPU. To powoduje, ze jak jest wiecej jak kilka tysiecy uniklanych obiektow do wyrenderowania, to jest czkawka..
Konsole tego problemu nie maja, bo ich API, pozwala na praktycznie wszystko
.
Kiedy wyjdzie OpenGL Next (i kiedy mainstreamowe silnik beda mialy support dla OpenGL 4.4+) i DirectX 12, to PC tez tego problemu nie bedzie miało.
in b4. Zroznicowanie (huehueheue, trzech producentow...) hardware nie ma tu absolutnie nic do rzeczy. NIC. Wszystkie wspolczesne GPU obsluguja podobne technologie jak sparse resources (textures), bindless textures. Zadaniem API powinno byc tylko i wylacznie zapewnienie wspolnego interfejsu do ich dostepu. Czyli dokladnie to samo co jest w konsoli. Narzut wydajnosci z powodu wprowadzenia kilkunastu dodatkowych linijek kodu, jest smieszny nie godny uwagi.