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.
Ngăn Shader (Chương trình đổ bóng) cho phép bạn xem từng chương trình đổ bóng được dùng trong dấu vết.
Để sử dụng ngăn này, hãy chọn một chương trình đổ bóng trong danh sách. Thao tác này sẽ tạo một thẻ mới cho thấy nguồn của chương trình đổ bóng cũng như số liệu thống kê phân tích tĩnh.
Để xem chương trình đổ bóng cụ thể được liên kết với một giai đoạn cụ thể trong quy trình, hãy xem giai đoạn đó trong chế độ xem Pipeline (Quy trình).
Hình 1. Ngăn đổ bóng
Chọn mã chương trình đổ bóng
Bạn có thể chọn SPIR-V hoặc GLSL (nếu có thể). Lưu ý:
Nếu mã SPIR-V cung cấp mã GLSL ban đầu trong chỉ thị OpSource, thì thẻ GLSL chỉ cần cho thấy mã tương tự. Nếu không, AGI sẽ cố gắng dịch ngược SPIR-V thành GLSL bằng SPIRV-Cross.
Nếu xảy ra lỗi trong quá trình dịch ngược, bạn sẽ không thể chọn hiển thị mã nguồn GLSL.
Phân tích tĩnh
AGI cung cấp số liệu thống kê từ quá trình phân tích tĩnh chương trình đổ bóng SPIR-V. Sau đây là các số liệu thống kê được hỗ trợ:
Số liệu thống kê
Mô tả
Hướng dẫn về ALU
Số lượng chỉ dẫn trong chương trình đổ bóng sử dụng ALU.
Hướng dẫn về hoạ tiết
Số lần tìm nạp hoạ tiết trong chương trình đổ bóng.
Hướng dẫn về Branch
Số lượng chỉ dẫn phân nhánh trong chương trình đổ bóng.
Áp suất tối đa của thanh ghi tạm thời
Số lượng cao nhất của các thanh ghi tạm thời đang hoạt động đồng thời. Vòng đời của giá trị tạm thời bắt đầu từ định nghĩa và kết thúc khi được sử dụng lần cuối trong chương trình đổ bóng. Thống kê này thêm p số lượng thanh ghi mà mỗi giá trị trực tiếp sử dụng (ví dụ: số thực 4D sẽ là 4 thanh ghi).
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,["# Shader pane\n\nThe **Shader** pane allows you to see individual shaders used in the trace.\n\nTo use this pane, select a shader in the list. This creates a new tab that shows\nthe shader's source as well as static analysis statistics.\n\nTo see the specific shader bound to a specific stage in the pipeline, view that\nstage in the [**Pipeline** view](/games/agi/refdocs/pipeline-view-pane).\n**Figure 1.** **Shader** pane\n\nSelect shader code\n------------------\n\nYou can select either **SPIR-V** or, if possible, **GLSL**. Note:\n\n- If the SPIR-V code provides the original GLSL code in its OpSource instruction, the **GLSL** tab simply shows the same code. If not, AGI attempts to decompile the SPIR-V into GLSL using SPIRV-Cross.\n- If an error occurs in the decompilation, the option to show GLSL source code isn't available.\n\nStatic analysis\n---------------\n\nAGI provides statistics from a static analysis of the SPIR-V shader. Here are\nthe statistics supported:\n\n| Statistic | Description |\n|----------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| ALU Instructions | Number of instructions in the shader that uses the ALU. |\n| Texture Instructions | Number of texture fetches in the shader. |\n| Branch Instructions | Number of branching instructions in the shader. |\n| Peak Temporary Register Pressure | The highest number of concurrently live temporary registers. A temporary value's lifetime starts at its defition and ends at its last use in the shader. The statistic adds *p* the number of registers each live value uses (for example, a 4D float would be 4 registers). |"]]