Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
Bandwidth memori data tekstur dapat menjadi potensi bottleneck bagi
performa GPU aplikasi. Ada beberapa penghitung di Profil Sistem AGI yang dapat membantu mendiagnosis masalah bandwidth memori tekstur.
Penghitung Qualcomm Adreno
Pada perangkat dengan GPU Qualcomm Adreno, beberapa penghitung yang terkenal meliputi:
Negosiasikan
Deskripsi
BW Pembacaan Memori Tekstur (Byte/Detik)
Bandwidth data tekstur yang dibaca dari memori eksternal.
% Tekstur L1 Tidak Ada
Cache L1 tidak dapat mengambil tekstur.
% Tekstur Tingkat Non-Dasar
Persentase pengambilan tekstur yang berupa mipmap.
% Difilter Anisotropik
Persentase texel yang disaring anisotropik.
Penghitung ARM Mali
Pada perangkat dengan GPU ARM Mali, beberapa penghitung yang penting meliputi:
Negosiasikan
Deskripsi
Tekstur yang membaca ketukan dari memori eksternal
Data yang dibaca dari memori eksternal oleh unit tekstur, dirata-ratakan di atas inti shader.
Tekstur pembacaan ketukan dari cache L2
Data yang dibaca dari cache L2 oleh unit tekstur, dirata-ratakan dari inti shader.
[Lainnya]
Untuk menghitung bandwidth keseluruhan dari ketukan operasi baca rata-rata, nilai penghitung dikalikan dengan lebar bus (biasanya 16 byte) dan dengan jumlah total inti shader.
Analisis penghitung
Untuk mengukur perilaku penghitung ini, ukur bandwidth rata-rata dan puncak
selama satu frame GPU, lalu gambarkan dengan blok Pemakaian GPU yang berdekatan.
Gambar 1. Bandwidth pembacaan memori tekstur untuk satu frame, dengan nilai rata-rata 565 MBps dan nilai puncak 2,30 GBps
Sebaiknya bandwidth pembacaan memori tekstur rata-rata tidak lebih tinggi dari 1 GBps, dan bandwidth puncak tidak lebih tinggi dari 3 GBps. Tekstur cache L1 yang tidak ditemukan juga tidak boleh lebih tinggi dari 10%. Nilai yang lebih tinggi untuk bandwidth atau cache L1 dapat menjadi indikator masalah tekstur yang lebih dalam, termasuk:
Tekstur terlalu besar: Tekstur besar akan menggelembungkan ukuran paket Anda, lebih mahal serta dapat mengurangi efisiensi cache.
Tekstur tidak dikompresi: Semua ponsel Android mendukung beberapa jenis kompresi tekstur, baik itu ETC1 maupun ASTC. Tekstur harus dikompresi untuk mengurangi ukuran paket dan mengurangi bandwidth tekstur.
Lainnya: Berbagai masalah tekstur lainnya harus dipertimbangkan, termasuk tekstur power-of-2, mipmapping, penyaringan anisotropik, dan lainnya. Beberapa di antaranya dapat diamati dari Profil Sistem seperti yang dibahas di bawah, sedangkan yang lainnya mungkin memerlukan penyelidikan yang lebih mendalam.
Untuk game tiga dimensi dengan kamera gratis, aset tekstur harus menggunakan mipmapping, sehingga objek jauh dari kamera akan mengalami penurunan bandwidth memori, efisiensi cache tekstur yang lebih baik, dan kualitas gambar yang lebih baik. Untuk perangkat yang menggunakan GPU Qualcomm Adreno, % Tekstur Level Non-Dasar rata-rata yang lebih rendah dari 10% dapat menunjukkan mipmapping yang tidak memadai.
Gambar 2. Tekstur tingkat non-dasar untuk satu frame, dengan nilai rata-rata 9,2%
Pertimbangan lainnya adalah penggunaan penyaringan anisotropik, yang dijelaskan oleh penghitung % Anisotropik Difilter untuk GPU Qualcomm Adreno untuk proporsi texel yang difilter anisotropik. Meskipun dapat meningkatkan kualitas visual untuk beberapa game, hal ini juga bisa menjadi sangat mahal, dan penggunaannya harus diimbangi dengan biaya performa GPU.
Gambar 3. Kecepatan filter anisotropik yang difilter untuk satu frame, dengan nilai rata-rata 10,8%
Cara terbaik untuk mendiagnosis masalah yang lebih spesifik adalah dengan mengambil rekaman aktivitas
profil frame untuk menganalisis aset tekstur.
Konten dan contoh kode di halaman ini tunduk kepada lisensi yang dijelaskan dalam Lisensi Konten. Java dan OpenJDK adalah merek dagang atau merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2025-07-27 UTC.
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Informasi yang saya butuhkan tidak ada","missingTheInformationINeed","thumb-down"],["Terlalu rumit/langkahnya terlalu banyak","tooComplicatedTooManySteps","thumb-down"],["Sudah usang","outOfDate","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Masalah kode / contoh","samplesCodeIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 2025-07-27 UTC."],[],[],null,["# Analyze texture memory bandwidth usage\n\nThe memory bandwidth of texture data can be a potential bottleneck for your\napp's GPU performance. There are some counters in an **AGI System Profile** that can help diagnose texture memory bandwidth issues.\n\nQualcomm Adreno counters\n------------------------\n\nOn devices with Qualcomm Adreno GPUs, some notable counters include:\n\n| Counter | Description |\n|---------------------------------------|------------------------------------------------------|\n| Texture Memory Read BW (Bytes/Second) | Bandwidth of texture data read from external memory. |\n| % Texture L1 Miss | L1 cache miss from fetching textures. |\n| % Non-Base Level Textures | Percentage of texture fetches that are mipmaps. |\n| % Anisotropic Filtered | Percentage of texels that are anisotropic filtered. |\n\nARM Mali counters\n-----------------\n\nOn devices with ARM Mali GPUs, some notable counters include:\n\n| Counter | Description |\n|-----------------------------------------|-------------------------------------------------------------------------------------------|\n| Texture read beats from external memory | Data beats read from external memory by the texture unit, averaged over the shader cores. |\n| Texture read beats from L2 cache | Data beats read from the L2 cache by the texture unit, averaged over the shader cores. |\n| \\[More\\] | |\n\nTo calculate the overall bandwidth from average read beats, the counter value is multiplied by the bus width (typically 16 bytes) and by the total number of shader cores.\n\nCounter analysis\n----------------\n\nTo measure the behavior of these counters, measure the average and peak\nbandwidth over the course of a single GPU frame, and then delineate with a contiguous block of GPU Utilization.\n**Figure 1.**Texture memory read bandwidth for a single frame, with average value of 565 MBps and peak value of 2.30 GBps\n\nWe recommend an average texture memory read bandwidth of no higher than 1 GBps, and a peak bandwidth no higher than 3 GBps. Texture L1 cache miss should also be no higher than 10%. Higher values for bandwidth or L1 cache may be indicators of deeper texture issues, including:\n\n- *Textures are too large*: Large textures bloat your package size, and are more expensive and may reduce cache efficiency.\n- *Textures are uncompressed*: All Android phones support some types of texture compression, whether it's ETC1 or ASTC. Textures should be compressed to reduce package size and reduce texture bandwidth.\n- *Other*: A variety of other texture concerns should be considered, including power-of-2 textures, mipmapping, anisotropic filtering, and more. Some of these may be observed from the System Profile as discussed below, whereas others may require deeper investigation.\n\nFor three-dimensional games with a free camera, texture assets should use [mipmapping](/agi/sys-trace/link), such that objects at a distance from the camera will have reduced memory bandwidth, better texture cache efficiency, and better image quality. For devices using Qualcomm Adreno GPUs, % **Non-Base Level Textures** counters lower than 10% on average may indicate inadequate mipmapping.\n**Figure 2.**Non-base level textures for a single frame, with an average value of 9.2%\n\nAnother consideration is the use of anisotropic filtering, which is described by the **% Anisotropic Filtered** counter for Qualcomm Adreno GPUs for the proportion of texels that are anisotropic filtered. While this may improve visual quality for some games, it can also be very expensive, and its use should be weighed against the GPU performance cost.\n**Figure 3.**Perecentage of anisotropic filtered for a single frame, with average value of 10.8%\n\nThe best way to diagnose more specific problems is through taking a frame\nprofile trace to analyze texture assets."]]