[Bug]: Shader decompiler generates conflicting names for semantic variables

Author: SammyBear2015Created Aug 17, 2026Updated Aug 18, 2026
Labelsbugexportshader

Are you on the latest version of AssetRipper?

Yes, I'm on the latest release of AssetRipper.

Which release are you using?

Windows x64

Which edition are you using?

Premium

Which game did this occur on?

https://steamdb.info/app/728880/

Which Unity version did this occur on?

Unity 2017.4.8f1

Is the game Mono or Il2Cpp?

Mono

Describe the issue.

When decompiling certain shaders, AssetRipper generates duplicate HLSL identifiers for different shader input/output semantics.

For example, the decompiled fragment input contains:

struct Fragment_Stage_Input { float2 fragment_input_1 : TEXCOORD; float2 fragment_input_1 : TEXCOORD1; };

Likewise, the vertex output contains:

struct Vertex_Stage_Output { float2 vertex_output_1 : TEXCOORD; float2 vertex_output_1 : TEXCOORD1; float2 vertex_output_2 : TEXCOORD2; // ... };

(NOTE: I'm not good at making bug reports so chatgpt did the bug description since I don't know a lot about shader and unity internal stuff.)

Relevant log output

N/A