Czy ktoś może wyjaśnić te wszystkie opcje programistyczne?


15

Czy ktoś może wyjaśnić te opcje programistyczne?

  • Wymusić renderowanie przez procesor graficzny
  • Wyłącz nieoperacyjne operacje na klipach
  • Force 4X MSAA
  • Wyłącz nakładki HW

Jakie są możliwe efekty, które można zobaczyć w moim urządzeniu poprzez ich wyłączenie / włączenie? [ Uwaga: Znalazłem inne opcje przez Google, ale nie te. ]

Czy ustawienia programisty wpływają na żywotność baterii poprzez zastosowanie niższych prędkości animacji (dokładnie 2x) lub wyższych prędkości animacji (dokładnie 0,5x) kosztem wrażeń użytkownika?

Odpowiedzi:


18

Pamiętaj, że są to opcje dla programistów i mogą być bezużyteczne lub mieć negatywny wpływ na wydajność Twojego urządzenia.

Wymusić renderowanie przez procesor graficzny

GPU jest jednostką przetwarzania grafiki. Jest bardzo podobny do procesora, ale zamiast zgniatać liczby i zajmować się zadaniami systemu operacyjnego i sprzętu, GPU wyświetla informacje graficzne i wyświetla je na ekranie.

Procesor może dobrze przetwarzać instrukcje graficzne, ale zajmuje to więcej czasu niż wykonywanie innych obliczeń i może prowadzić do opóźnień podczas przetwarzania instrukcji graficznych

W Ice Cream Sandwich programiści (lub zaawansowani użytkownicy) mają opcję wymuszenia na aplikacjach korzystania z renderowania GPU, niezależnie od tego, czy ten bit jest włączony czy wyłączony w manifeście aplikacji. Niekoniecznie przyspiesza to działanie aplikacji i może powodować problemy.


Wyłącz nieoperacyjne operacje na klipach

Jest to zbyt techniczne, żebym mógł je szczegółowo wyjaśnić. Zasadniczo do rysowania używa się „płótna”. Kod źródłowy dla Androida zawiera to:

/**
     * Turn on to **debug non-rectangular clip operations**.
     *
     * Possible values:
     * "hide", to disable this debug mode
     * "highlight", highlight drawing commands tested against a non-rectangular clip
     * "stencil", renders the clip region on screen when set
     *
     * @hide
     */
    public static final String DEBUG_SHOW_NON_RECTANGULAR_CLIP_PROPERTY =
            "debug.hwui.show_non_rect_clip";

Możesz go wyłączyć, aby utworzyć nietypowe (nie prostokątne) obszary płótna. Zobacz tutaj, aby uzyskać więcej informacji na ten temat

Jak pisze @ IanNi-Lewis w swoim komentarzu:

Prawdopodobnie warto zauważyć, że „nie-prostokątne obszary klipu” są nieco mylące. Powinny to być „obszary wycinania, które nie są prostokątami wyrównanymi do ekranu”. Jeśli masz prostokątny obszar klipu, który jest obrócony o nie wielokrotność 90 stopni, to idzie w dół tą samą wolną ścieżką, co region klipu w kształcie pączka lub czegoś takiego. („Wolna ścieżka” korzysta z bufora szablonów i prawdopodobnie nie musi być tak wolna, jak to jest; jest to dobry obszar do przyszłej optymalizacji.)


Force 4X MSAA

Force 4x MSAA nie wymaga zrootowanego urządzenia. Ta opcja działa tak samo, jak każdy filtr antyaliasingu w grach komputerowych - wygładza całą pikselizację i zapewnia lepsze renderowanie, co oznacza lepiej wyglądającą grafikę. Użytkownicy powinni wiedzieć, że ta funkcja jest zalecana tylko w przypadku urządzeń z procesorem graficznym obsługującym macierzystą obsługę MSAA.

Z Wikipedii :

W przetwarzaniu sygnałów i pokrewnych dyscyplinach aliasing jest efektem, który powoduje, że różne sygnały stają się nierozróżnialne (lub aliasy względem siebie) podczas próbkowania. Odnosi się także do zniekształcenia lub artefaktu, który powstaje, gdy sygnał zrekonstruowany z próbek różni się od oryginalnego sygnału ciągłego.


Wyłącz nakładki HW

Bez nakładki sprzętowej każda aplikacja wyświetlająca rzeczy na ekranie będzie współużytkować pamięć wideo i będzie musiała stale sprawdzać, czy nie ma kolizji i strzyżenia, aby uzyskać właściwy obraz, może to kosztować dużo mocy obliczeniowej. Dzięki nakładce sprzętowej każda aplikacja otrzymuje własną część pamięci wideo, eliminując potrzebę sprawdzania kolizji i przycinania.

Jak ujął to @DanHulme: Windows w Androidzie jest zawsze składany, a nie renderowany we wspólnej pamięci wideo. Zwykle SurfaceFlingerużywa układu GPU do komponowania, ale użyje nakładki sprzętowej, gdy jest to możliwe, co jest szybsze i zużywa mniej baterii. Wyłączenie nakładek oznacza, że ​​zawsze będzie korzystać z renderowania GPU. Jest to przydatne tylko do debugowania integracji systemu lub dekodowania wideo HW: nawet twórcy aplikacji nie muszą włączać tej opcji


2
4xMSAA może nie być wolniejszy. Na niektórych procesorach graficznych, takich jak Mali-400, różnica prędkości między 4xMSAA i brakiem antyaliasingu jest nieistotna ze względu na sposób działania shaderów fragmentów. Warto również wspomnieć, że wpływa to tylko na aplikacje GLES i nie sprawia, że ​​tekst i ikony w normalnych aplikacjach są wyraźniejsze.
Dan Hulme

3
Nie sądzę, aby twój opis nakładek HW był poprawny. Windows w Androidzie jest zawsze składany, a nie renderowany we wspólnej pamięci wideo. Zwykle SurfaceFlingerużywa układu GPU do komponowania, ale użyje nakładki sprzętowej, gdy jest to możliwe, co jest szybsze i zużywa mniej baterii. Wyłączenie nakładek oznacza, że ​​zawsze będzie korzystać z renderowania GPU. Jest to przydatne tylko do debugowania integracji systemu lub dekodowania wideo HW: nawet twórcy aplikacji nie muszą włączać tej opcji.
Dan Hulme

Nie ma mnie przy komputerze, który wyedytuję tak szybko, jak to możliwe, trochę się zagubiłem. Lub edytuj
RossC

Dobra aktualizacja do korzystania z przetwarzania GPU sprawiła, że ​​aplikacja SE nie uległa awarii na to pytanie :-)
Kanadyjczyk Łukasz

1
@Ross Nie sądzę, że ma to ogromny wpływ na oszczędność baterii, tylko niektóre oszczędności baterii, takie jak w systemie Windows, w którym wyłączamy przezroczystą grafikę (sugeruje się wyłączenie motywu
Iero
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.