| Parameter | Description |
|---|---|
| index | The index of the shader variant in the data uploaded to the GPU driver. |
UploadData The upload data corresponding to the given index.
Gets the UploadData for the shader variant at the given index.
Use this method to get information about the shader variant with index index uploaded to the GPU driver during the last frame. Throws an exception if index is greater than or equal to Count.
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.");
}
}
}
}