Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang
Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
Băng thông bộ nhớ của dữ liệu kết cấu có thể là một điểm tắc nghẽn tiềm ẩn đối với hiệu suất GPU của ứng dụng. Có một số bộ đếm trong Hồ sơ hệ thống AGI có thể giúp chẩn đoán các vấn đề về băng thông bộ nhớ kết cấu.
Bộ đếm Qualcomm Adreno
Trên các thiết bị có GPU Qualcomm Adreno, một số bộ đếm đáng chú ý bao gồm:
Bộ đếm
Mô tả
Băng thông đọc bộ nhớ kết cấu (Byte/giây)
Băng thông của dữ liệu kết cấu được đọc từ bộ nhớ ngoài.
% Lỗi kết cấu L1
Bộ nhớ đệm L1 bị thiếu do tìm nạp hoạ tiết.
% Non-Base Level Textures (Tỷ lệ phần trăm hoạ tiết không phải cấp cơ sở)
Tỷ lệ phần trăm số lần tìm nạp hoạ tiết là mipmap.
% Bộ lọc không đẳng hướng
Tỷ lệ phần trăm texel được lọc không đẳng hướng.
Bộ đếm ARM Mali
Trên các thiết bị có GPU ARM Mali, một số bộ đếm đáng chú ý bao gồm:
Bộ đếm
Mô tả
Số lần đọc kết cấu từ bộ nhớ ngoài
Các nhịp dữ liệu được đọc từ bộ nhớ ngoài bằng đơn vị kết cấu, được tính trung bình trên các lõi chương trình đổ bóng.
Đọc kết cấu từ bộ nhớ đệm L2
Số lượng dữ liệu đọc từ bộ nhớ đệm L2 theo đơn vị kết cấu, được tính trung bình trên các lõi chương trình đổ bóng.
[Khác]
Để tính toán tổng băng thông từ số lượt đọc trung bình, giá trị bộ đếm được nhân với độ rộng của bus (thường là 16 byte) và tổng số lõi chương trình đổ bóng.
Phân tích phản hồi
Để đo lường hành vi của các bộ đếm này, hãy đo băng thông trung bình và băng thông cao nhất trong một khung hình GPU duy nhất, sau đó phân định bằng một khối liên tục về Mức sử dụng GPU.
Hình 1. Băng thông đọc bộ nhớ kết cấu cho một khung hình, với giá trị trung bình là 565 MB/giây và giá trị đỉnh là 2,30 GB/giây
Bạn nên sử dụng băng thông đọc bộ nhớ kết cấu trung bình không quá 1 GB/giây và băng thông đỉnh không quá 3 GB/giây. Tỷ lệ lỗi bộ nhớ đệm L1 của hoạ tiết cũng không được cao hơn 10%. Giá trị băng thông hoặc bộ nhớ đệm L1 cao hơn có thể là dấu hiệu cho thấy các vấn đề sâu hơn về hoạ tiết, bao gồm:
Các kết cấu có kích thước quá lớn: Các kết cấu lớn làm tăng kích thước gói, tốn kém hơn và có thể làm giảm hiệu quả của bộ nhớ đệm.
Hoạ tiết không được nén: Tất cả điện thoại Android đều hỗ trợ một số loại nén hoạ tiết, cho dù đó là ETC1 hay ASTC. Bạn nên nén các kết cấu để giảm kích thước gói và giảm băng thông kết cấu.
Khác: Bạn nên xem xét nhiều vấn đề khác về hoạ tiết, bao gồm hoạ tiết lũy thừa của 2, mipmapping, lọc không đẳng hướng và nhiều vấn đề khác. Một số vấn đề trong số này có thể được quan sát từ Hồ sơ hệ thống như thảo luận bên dưới, trong khi những vấn đề khác có thể cần được điều tra kỹ lưỡng hơn.
Đối với các trò chơi 3D có camera tự do, tài sản hoạ tiết nên sử dụng mipmapping để các đối tượng ở xa camera sẽ giảm băng thông bộ nhớ, tăng hiệu quả của bộ nhớ đệm hoạ tiết và cải thiện chất lượng hình ảnh. Đối với các thiết bị sử dụng GPU Qualcomm Adreno, các bộ đếm % Non-Base Level Textures (Kết cấu không phải cấp cơ sở) có giá trị trung bình thấp hơn 10% có thể cho thấy việc tạo mipmap không đầy đủ.
Hình 2. Các hoạ tiết không ở cấp cơ sở cho một khung hình, với giá trị trung bình là 9,2%
Một yếu tố khác cần cân nhắc là việc sử dụng phương pháp lọc dị hướng. Phương pháp này được mô tả bằng bộ đếm % Anisotropic Filtered (Tỷ lệ phần trăm lọc dị hướng) cho GPU Qualcomm Adreno để biết tỷ lệ texel được lọc dị hướng. Mặc dù có thể cải thiện chất lượng hình ảnh cho một số trò chơi, nhưng việc này cũng có thể rất tốn kém và bạn nên cân nhắc việc sử dụng tính năng này so với chi phí hiệu suất của GPU.
Hình 3. Tỷ lệ phần trăm được lọc dị hướng cho một khung hình, với giá trị trung bình là 10,8%
Cách tốt nhất để chẩn đoán các vấn đề cụ thể hơn là thông qua việc lấy dấu vết hồ sơ khung hình để phân tích các thành phần kết cấu.
Nội dung và mã mẫu trên trang này phải tuân thủ các giấy phép như mô tả trong phần Giấy phép nội dung. Java và OpenJDK là nhãn hiệu hoặc nhãn hiệu đã đăng ký của Oracle và/hoặc đơn vị liên kết của Oracle.
Cập nhật lần gần đây nhất: 2025-07-27 UTC.
[[["Dễ hiểu","easyToUnderstand","thumb-up"],["Giúp tôi giải quyết được vấn đề","solvedMyProblem","thumb-up"],["Khác","otherUp","thumb-up"]],[["Thiếu thông tin tôi cần","missingTheInformationINeed","thumb-down"],["Quá phức tạp/quá nhiều bước","tooComplicatedTooManySteps","thumb-down"],["Đã lỗi thời","outOfDate","thumb-down"],["Vấn đề về bản dịch","translationIssue","thumb-down"],["Vấn đề về mẫu/mã","samplesCodeIssue","thumb-down"],["Khác","otherDown","thumb-down"]],["Cập nhật lần gần đây nhất: 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."]]