[#1] ChangeTaskPri
Mini-demo na MorphOSa, które wydziubałem na Decrunch 2017 działa z zapasem prędkości i właściwie na G4 1,67GHz ma około 60 fps w 1440x960. Ale czasem, przy długich, jednostajnych przelotach kamery (np. nad tym ołówkiem - jeżeli ktoś oglądał) trafiają się lekkie zatrzymania. Zbadałem to - nie wynikają one z braku mocy CPU/GPU czy źle działającej pętli głównej. Okazuje się, że inne zadania w systemie trochę czasem “przeszkadzają”. Demo uruchamia się z priorytetem -1. Jeżeli po odpaleniu dema ustawię (przy pomocy ChangeTaskPri) priorytet na 0 jest już bardzo dobrze. A jak ustawię na 1 to jest lepiej niż idealnie (a system nadal jest "używalny"). :)

No i teraz pytanie. Co z tym zrobić? Chcę zostawić system działający w tle (w końcu produkcja działa też na oknie) ale jednak oglądając demo całkiem słusznie możemy oczekiwać, że to właśnie ono będzie najważniejsze dla systemu. Macie pomysł jak kulturalnie ustawić priorytet zadania? Tak po prostu odpalić komendę ChangeTaskPri w skrypcie odpalającym demo? Czy może robić to w samym demie? A może dać taki parametr w oknie ustawień dema (coś takiego będzie w finalnej wersji)? Może zmieniać priorytet w zależności od tego czy okno/ekran dema jest aktywne albo nieaktywne?

Ostatnia aktualizacja: 20.06.2017 20:01:51 przez MDW
[#2] Re: ChangeTaskPri

@MDW, post #1

Może zmieniać priorytet w zależności od tego czy okno/ekran dema jest aktywne albo nieaktywne?

Ja optowałbym za tym rozwiązaniem. Pod Amiga OS byś wyłapał wydarzenia IDCMP_ACTIVEWINDOW i ustawił za pomocą funkcji SetTaskPri().

Na MorphOSie nie wiem czy to działa identycznie.
[#3] Re: ChangeTaskPri

@MDW, post #1

A dlaczego po prostu nie zostawisz domyślnego priorytetu 0? Skąd się bierze ten –1?
[#4] Re: ChangeTaskPri

@Hexmage960, post #2

Działa tak samo. :) Wydarzenia o aktywacji okna przekazuje mi biblioteka SDL i je obsługuję więc to tylko kwestia ustawienia priorytetu po złapaniu tego eventu.
[#5] Re: ChangeTaskPri

@Krashan, post #3

A dlaczego po prostu nie zostawisz domyślnego priorytetu 0? Skąd się bierze ten -1?

Dopiero jak to napisałeś to zerknąłem w globalne preferencje SDL. Jest tu zaznaczone "Low CPU priority". Jak odznaczyłem i uruchomiłem swój program to dostał on priorytet 0.

Ostatnia aktualizacja: 20.06.2017 21:08:30 przez MDW
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem