Czy napotkaliście sytuację, w której aplikacja C++ opengl działa szybciej i płynniej, gdy jest wykonywana z visual studio? Gdy wykonywany normalnie, bez debuggera, uzyskuję mniejszą liczbę klatek na sekundę, 50 zamiast 80, i dziwne opóźnienie, gdzie fps nurkuje do około 25 klatek na sekundę w każdej 20-30 klatce. Czy istnieje sposób, aby to naprawić?C++/aplikacja opengl działa płynniej z dołączonym debugerem
Edytuj: Używamy również wielu list wyświetlania (utworzonych za pomocą glNewList). A zwiększenie liczby list wyświetlania wydaje się zwiększać opóźnienie.
Edytuj: Problem prawdopodobnie wynika z błędów stronicowania. Dostosowywanie zestawu roboczego procesu za pomocą metody SetProcessWorkingSetSizeEx() nie pomaga.
Edit: przypadku niektórych dużych modeli problem jest łatwy do wykrycia z wykorzystaniem GPU pamięci procexp użytkowych za. Wykorzystanie pamięci jest bardzo niestabilne, gdy istnieje wiele wywołań glCallList na klatkę. Nie dodano nowej geometrii, nie załadowano tekstur, ale alokacja pamięci gpu waha się w granicach -20 MB. Po chwili staje się jeszcze gorsza i może za jednym razem przydzielić około 150 Mb.
Czy korzystasz z trybu pełnoekranowego, czy nie na pełnym ekranie w debugerze? To wskazywałoby na włączenie synchronizacji V. – stonemetal
Nie na pełnym ekranie, ale zmaksymalizowany. Synchronizacja V powinna być wyłączona w obu przypadkach. Czasami dostaję fps-stawki powyżej 100 i wciąż w tyle. – AareP
powinieneś użyć czegoś takiego jak Process Explorer, aby zobaczyć, które biblioteki DLL zostaną załadowane w obu przypadkach i czy ta sama biblioteka DLL zostanie wczytana ze ścieżek różnicowych – PeterT