Joe Monster
Szukaj Pokaż menu
Witaj nieznajomy(a) zaloguj się lub dołącz do nas
…BO POWAGA ZABIJA POWOLI

Forum > Grajdołek Mistrzów > Patrzyłem sobie po Steamie i taką nowinkę techniczną wypatrzyłem
szatkus
szatkus Superbojownik od 18 kwietnia 2006 | Tam, gdzie jeździ Tramino | GG: 19*443^2
2018-07-25 20:28:30 Zgłoś


Nie mówię, że to źle, ale jestem ciekaw jak dobrze to działa i czy wiele pomaga. Jak bardzo obsysają kompilatory w sterownikach (Nvidia chyba bazuje na LLVM)?

--
Hej, a może by tak wstawić swoje zdjęcie? To łatwe proste i szybkie. Poczujesz się bardziej jak u siebie.
salival Little Princess od 18 sierpnia 2005 | Staines-Upon-Thames
2018-07-26 11:09:15 Zgłoś
:szatkus to zależy. W takim Rise of the Tomb Raider to jest ponad 10000 pipeline'ów. To nawet nie chodzi o same shadery, bo te są tylko częścią całego rurociągu. Zmienisz jedną rzecz w pipeline i rekompilujesz moduły shaderów ( np. depth test on/off ). Rzeczywiście jest to czasochłonne natomiast nie na tyle, by nie dało się grać. Poza tym wiele gier ma wewnętrzny cache ( Vulkan nawet przychodzi z VkPipelineCache, który może być zrzucony na dysk ). Ok. Może się przydać, gdy reinstalujemy grę, ale twórcy gier i tak muszą zawsze brać pod uwagę fakt braku takiego cachu, więc shadery i pipeline'y kompiluje się dużo wcześniej i na osobnych wątkach. Poza tym przy OpenGL nie będzie to aż taki "win", bo całego pipeline'u nie zrzucisz. Możesz jedynie zrzucić moduły shaderów. Natomiast jak tylko wrzucisz "glEnable/glDisable" i czy inną funkcję zmieniającą stan pipeline'u, to driver najprawdopodobniej zrekompiluje shadery. Prawdziwa kompilacja nie odbywa się zwykle przy glCompileShader i glLinkProgram ( a już na pewno nie wtedy, gdy używamy program pipeline ). To driver decyduje kiedy taka kompilacja nastąpi i programiści nie mają na to żadnego wpływu poza zminimalizowaniem zmian stanów i uczynienie operacji bardziej przewidywalnych ( im driver wie więcej o tym co chcemy zrobić, tym lepiej zaplanuje pracę ).

Innymi słowy moje zdanie jest takie, że jest to feature zupełnie zbędny. OpenGL i tak zrobi co chce, a Vulkan pozwala programistom zaplanować wszystko i stworzyć taki cache lokalnie ( włącznie z dziedziczeniem pipelineów, co również przyspiesza wszystko, choć dziedziczenie może niedługo zostać porzucone ).
Ostatnio edytowany: 2018-07-26 11:09:35

--
Hej, a może by tak wstawić swoje zdjęcie? To łatwe proste i szybkie. Poczujesz się bardziej jak u siebie.
salival Little Princess od 18 sierpnia 2005 | Staines-Upon-Thames
2018-07-26 11:21:49 Zgłoś
Jeszcze jedna rzecz. Problemem nie jest sama kompilacja. Kompilatory są dosyć zaawansowane i naprawdę nie trwa to tak długo. Większym problemem jest decyzja kiedy kompilować. Problemem będzie, gdy nagle GL odpala kolejkę komend i za każdym razem, gdy zmienia się stan będzie musiał rekompilować pipeline. Zwykle driver próbuje przewidzieć co za chwilę się stanie i zwykle próbuje grupować takie operacje jak rekompilacje. Przez to zdarza się, że z pozoru niewinna zmiana stanu wymusi rekompilacje jednego programu, ale np. 20 pipeline'ów ( jeden program w 20 wariantach ). Wynika to z faktu, że shadery są po prostu częścią pipeline'u i kompilacja, gdy znany jest konkretny stan, może wprowadzić optymizacje itd. Jest to dosyć skomplikowane. Natomiast w przypadku Vulkana shadery prekompiluje się do SPIRV. Nie ma wbudowanego kompilatora runtime ze źródeł, bo Vulkan nie ma zdefiniowanego języka shaderów. Dopiero SPIRV kompiluje się do kodu GPU. Przy OpenGL jedyne co można przyspieszyć, to właśnie kompilacja ze źródeł i później załadować taki program za pomocą glProgramBinary(). Tylko że to nadal nie jest finalna wersja ( bardziej jest to odpowiednik SPIRV ). No i nie znam silnika, który by już z tego nie korzystał.

--
arabek
arabek Superbojownik od 13 lipca 2005 | ʃtʃɛtʃin floting gardeł
2018-07-26 15:40:59 Zgłoś
https://www.phoronix.com/scan.php?page=article&item=radeonsi-shader-cache&num=2

--
Hello world! Thanks for creating me. I'll keep an eye on your stuff. Love, Gary.
Pajonk78
Pajonk78 Superbojownik od 4 stycznia 2006 | Często-się-chowa. | GG: 1061682
2018-07-27 17:51:49 Zgłoś
Ja piermandolę: po tej poprawce chce mnie szlag trafić - po uruchomienia kompa, na samym środku ekranu wyskakuje mi okno znajomych Steam - nijak nie widzę opcji, aby tak się nie działo. Co więcej nie widzę również opcji logowania się jako niedostępny. Ktoś/coś?

--
Jeśli wydaje Ci się, że wiesz już wszystko to masz absolutną rację... wydaje Ci się. ;)
Blackout
Blackout Superbojownik od 15 listopada 2004 | Whitestock
2018-07-29 16:56:52 Zgłoś
:pajonk78
Zamknij te okno czatu.
Wywołaj klienta steam
Kliknij friends -> view friends , wykoczy okno czatu.
Wyłącz okno czatu.
Zamknij całkowicie steam.

Wykonane.

--
I've felt the hate rise up in me ....
Pajonk78
Pajonk78 Superbojownik od 4 stycznia 2006 | Często-się-chowa. | GG: 1061682
2018-07-29 20:44:48 Zgłoś
:blackout o ja piermandolę: za wuja bym na to nie wpadł. Dziękówa!!

--
Jeśli wydaje Ci się, że wiesz już wszystko to masz absolutną rację... wydaje Ci się. ;)
Forum > Grajdołek Mistrzów > Patrzyłem sobie po Steamie i taką nowinkę techniczną wypatrzyłem
Aby pisać na forum zaloguj się lub zarejestruj