GetUploadData(uint)
Gets the VariantsUploadedToGpuLastFrame.UploadData for the shader variant at the given index.
Read time 1 minuteLast updated 10 days ago
Definition
- Type: Method
- Namespace: UnityEngine.Shaders
- Assembly: UnityEngine.CoreModule
public static VariantsUploadedToGpuLastFrame.UploadData GetUploadData(uint index)
Parameters
The index of the shader variant in the data uploaded to the GPU driver.
Returns
Type | Description |
|---|---|
| UploadData | The upload data corresponding to the given index. |
Remarks
Use this method to get information about the shader variant with index uploaded to the GPU driver during the last frame. Throws an exception if is greater than or equal to .
indexindexCountExamples
using UnityEngine;using UnityEngine.Shaders;/* Attach this script to a GameObect. When run in the player, it reports shader variants sent to the GPU driver for compilation during the last frame in the console.*/public class VariantsUploadedToGpuLogger : MonoBehaviour{ void Update() { uint variantCount = VariantsUploadedToGpuLastFrame.count; if (variantCount > 0) { Debug.Log("Sent " + variantCount + " variants to the GPU."); for (uint variantIndex = 0; variantIndex < variantCount; ++variantIndex) { VariantsUploadedToGpuLastFrame.UploadData d; if (!VariantsUploadedToGpuLastFrame.TryGetUploadData(variantIndex, out d)) continue; string keywords = "'"; for (uint keywordIndex = 0; keywordIndex < d.keywords.Length; ++keywordIndex) { if (keywordIndex != 0) keywords += " "; keywords += d.keywords[keywordIndex].name; } keywords += "'"; string passId = "subshader " + (d.passIdentifier.SubshaderIndex + 1) + " pass " + (d.passIdentifier.PassIndex + 1); string description = "Shader " + d.shader.name + " " + passId + " stages " + d.stages; Debug.Log(description + " keywords " + keywords + " uploaded in " + d.uploadTimeInMilliseconds + " ms."); } } }}