Przepustowość pamięci danych tekstur może być potencjalnym wąskim gardłem wydajności procesora graficznego aplikacji. W profilu systemu AGI znajdują się liczniki, które mogą pomóc w diagnozowaniu problemów z przepustowością pamięci tekstur.
Liczniki Qualcomm Adreno
Na urządzeniach z procesorami graficznymi Qualcomm Adreno do ważnych liczników należą:
Kontroferta | Opis |
---|---|
Przepustowość odczytu pamięci tekstur (bajty/sekundę) | Przepustowość danych tekstur odczytywanych z pamięci zewnętrznej. |
% Texture L1 Miss | Brak w pamięci podręcznej L1 podczas pobierania tekstur. |
% tekstur na poziomie innym niż podstawowy | Odsetek pobrań tekstur, które są mapami mip. |
% Filtrowanie anizotropowe | Odsetek teksteli, które są filtrowane anizotropowo. |
Liczniki ARM Mali
Na urządzeniach z procesorami GPU ARM Mali do ważnych liczników należą:
Kontroferta | Opis |
---|---|
Odczytywanie tekstur z pamięci zewnętrznej | Odczyty danych z pamięci zewnętrznej przez jednostkę tekstur, uśrednione w rdzeniach cieniowania. |
Odczyt tekstury z pamięci podręcznej L2 | Odczyty danych z pamięci podręcznej L2 przez jednostkę tekstur, uśrednione w rdzeniach cieniowania. |
[Więcej] |
Aby obliczyć ogólną przepustowość na podstawie średniej liczby odczytów, wartość licznika jest mnożona przez szerokość magistrali (zwykle 16 bajtów) i łączną liczbę rdzeni cieniowania.
Analiza kontr
Aby zmierzyć zachowanie tych liczników, zmierz średnią i szczytową przepustowość w ciągu jednej klatki GPU, a następnie wyznacz ciągły blok wykorzystania GPU.

Zalecamy średnią przepustowość odczytu pamięci tekstur nie większą niż 1 GB/s, a maksymalną przepustowość nie większą niż 3 GB/s. Odsetek nieudanych odczytów z pamięci podręcznej L1 tekstur nie powinien przekraczać 10%. Wyższe wartości przepustowości lub pamięci podręcznej poziomu 1 mogą wskazywać na poważniejsze problemy z teksturami, w tym:
- Tekstury są za duże: duże tekstury zwiększają rozmiar pakietu, są droższe i mogą zmniejszać wydajność pamięci podręcznej.
- Tekstury są nieskompresowane: wszystkie telefony z Androidem obsługują pewne typy kompresji tekstur, np. ETC1 lub ASTC. Tekstury powinny być skompresowane, aby zmniejszyć rozmiar pakietu i przepustowość tekstur.
- Inne: należy wziąć pod uwagę różne inne kwestie związane z teksturami, w tym tekstury o rozmiarach będących potęgą liczby 2, mapowanie mip, filtrowanie anizotropowe i inne. Niektóre z nich można zaobserwować w profilu systemu (jak opisano poniżej), a inne mogą wymagać dokładniejszego zbadania.
W przypadku gier trójwymiarowych z dowolną kamerą komponenty tekstur powinny korzystać z mapowania mip, aby obiekty znajdujące się w dużej odległości od kamery miały mniejszą przepustowość pamięci, lepszą wydajność pamięci podręcznej tekstur i lepszą jakość obrazu. W przypadku urządzeń korzystających z procesorów graficznych Qualcomm Adreno liczniki % Non-Base Level Textures o średniej wartości poniżej 10% mogą wskazywać na nieodpowiednie mapowanie mip.

Kolejnym aspektem jest filtrowanie anizotropowe, które jest opisywane przez licznik % filtrowania anizotropowego w przypadku procesorów graficznych Qualcomm Adreno. Określa on odsetek teksteli, które są filtrowane anizotropowo. Chociaż może to poprawić jakość obrazu w niektórych grach, może być też bardzo kosztowne, dlatego należy rozważyć, czy warto ponosić koszty związane z wydajnością procesora graficznego.

Najlepszym sposobem na zdiagnozowanie bardziej szczegółowych problemów jest wykonanie śledzenia profilu klatki w celu przeanalizowania zasobów tekstur.