To jest bardziej otwarte pytanie, ale mam nadzieję, że uzyskam dobry wgląd w to, jak uniknąć tego problemu.
Podczas grania w gry w systemie Windows może być konieczne użycie klawisza ALT-TAB. Niektóre gry nie mają problemów, inne nie są takie proste: mogą wymagać WIEKU, aby się wycofać i ponownie włączyć. Niektóre są nawet podatne na awarie lub dziwne zachowania, takie jak zniekształcenie grafiki lub jąkanie.
Zastanawiam się tylko, co powoduje takie zachowanie? Czy to bardziej DirectX czy OpenGL? Czy jest to spowodowane tym, że Gry są „sprytne” i buforują / czyszczą pamięć podręczną przy każdej zmianie ustawień ekranu? (Zakładam, że dostają jakiś sygnał, kiedy ALT-TAB?)
Nie mam własnych problemów, ale chciałbym wiedzieć, czego unikać i która „sprytna” sztuczka może powodować tego rodzaju okropne wrażenia klientów?
źródło
Odpowiedzi:
W niektórych sytuacjach ALT-TAB spowoduje utratę urządzenia DirectX. W przypadku zagubienia urządzenia wszystkie zasoby GPU (wierzchołki, tekstury, moduły cieniujące itd.) Należy uznać za nieprawidłowe i nie można ich ponownie użyć. Odniesienie do MSDN tutaj .
Te utracone zasoby należy zwolnić, a następnie odtworzyć po przywróceniu urządzenia. W przypadku większości gier przywracanie tych zasobów wymaga ponownego załadowania dużej ilości danych z dysku - często ta sama procedura ładowania, co na początku gry / poziomu.
Co można zrobić, aby tego uniknąć?
źródło
W Direct3D urządzenie może się zgubić, gdy ALT-TAB zniknie z okna pełnego ekranu. Jeśli tak się stanie, musisz zwolnić i przywrócić zasoby oraz zresetować urządzenie. Może to być trudne do zrobienia poprawnie, w zależności od złożoności gry lub lenistwa programistów (cześć Valve!). Nie sądzę, że OpenGL ma ten sam problem, ponieważ sterownik jest odpowiedzialny za utrzymanie kontekstu OpenGL dla ciebie, ale nie jestem pewien.
Na StackOverflow znajduje się pytanie o najlepsze praktyki obsługi ALT-TAB w aplikacji DirectX, która zawiera przydatne linki z MSDN i innych źródeł.
źródło
Może to być dostępna ilość bezpłatnego pamięci RAM. Jeśli jest za nisko, podczas gry gra Windows ukrywa większość swoich usług w obszarze wymiany (tzn. Pobiera większość danych załadowanych do pamięci RAM i zamiast tego umieszcza je w specjalnym obszarze dysku twardego) w celu gry mieć jak najwięcej dostępnej pamięci RAM.
Następnie, gdy Alt + Tab z gry do systemu Windows, te usługi muszą zostać załadowane do pamięci RAM, aby działać, więc pobierze dane gry z pamięci RAM, zapisze je w zamianie i wyciągnie dane systemu Windows z zamiana na RAM.
I jak wiadomo, zapis na dysk twardy może zająć WIEK w porównaniu z pamięcią RAM. To samo dzieje się także po wyjściu z ciężkiej gry. Dlatego posiadanie wystarczającej ilości pamięci RAM dla gry i okien może być naprawdę wygodniejsze.
źródło