240 lines
12 KiB
GLSL
240 lines
12 KiB
GLSL
Shader "Hidden/Universal Render Pipeline/FallbackError"
|
|
{
|
|
Properties
|
|
{
|
|
}
|
|
SubShader
|
|
{
|
|
Tags { "IGNOREPROJECTOR" = "true" "RenderPipeline" = "UniversalPipeline" "RenderType" = "Opaque" "ShaderModel" = "4.5" }
|
|
Pass
|
|
{
|
|
Tags { "IGNOREPROJECTOR" = "true" "RenderPipeline" = "UniversalPipeline" "RenderType" = "Opaque" "ShaderModel" = "4.5" }
|
|
GpuProgramID 43562
|
|
|
|
HLSLPROGRAM
|
|
|
|
// https://docs.unity3d.com/Manual/SL-PragmaDirectives.html
|
|
#pragma vertex vert
|
|
#pragma fragment frag
|
|
#pragma target 5.0
|
|
#pragma multi_compile _ STEREO_INSTANCING_ON
|
|
|
|
|
|
#ifndef STEREO_INSTANCING_ON
|
|
#define ANY_SHADER_VARIANT_ACTIVE
|
|
|
|
float4x4 unity_MatrixVP;
|
|
float4x4 unity_ObjectToWorld;
|
|
|
|
static float4 vertex_uniform_buffer_0[83];
|
|
static float4 vertex_uniform_buffer_1[4];
|
|
static float4 gl_Position;
|
|
static float4 vertex_input_0;
|
|
|
|
struct Vertex_Stage_Input
|
|
{
|
|
float4 vertex_input_0 : POSITION; // POSITION
|
|
};
|
|
|
|
struct Vertex_Stage_Output
|
|
{
|
|
float4 gl_Position : SV_Position;
|
|
};
|
|
|
|
void vert_main()
|
|
{
|
|
float vertex_unnamed_71 = mad(vertex_uniform_buffer_1[2u].x, vertex_input_0.z, mad(vertex_uniform_buffer_1[0u].x, vertex_input_0.x, vertex_input_0.y * vertex_uniform_buffer_1[1u].x)) + vertex_uniform_buffer_1[3u].x;
|
|
float vertex_unnamed_72 = mad(vertex_uniform_buffer_1[2u].y, vertex_input_0.z, mad(vertex_uniform_buffer_1[0u].y, vertex_input_0.x, vertex_input_0.y * vertex_uniform_buffer_1[1u].y)) + vertex_uniform_buffer_1[3u].y;
|
|
float vertex_unnamed_73 = mad(vertex_uniform_buffer_1[2u].z, vertex_input_0.z, mad(vertex_uniform_buffer_1[0u].z, vertex_input_0.x, vertex_input_0.y * vertex_uniform_buffer_1[1u].z)) + vertex_uniform_buffer_1[3u].z;
|
|
float vertex_unnamed_74 = mad(vertex_uniform_buffer_1[2u].w, vertex_input_0.z, mad(vertex_uniform_buffer_1[0u].w, vertex_input_0.x, vertex_input_0.y * vertex_uniform_buffer_1[1u].w)) + vertex_uniform_buffer_1[3u].w;
|
|
gl_Position.x = mad(vertex_uniform_buffer_0[82u].x, vertex_unnamed_74, mad(vertex_uniform_buffer_0[81u].x, vertex_unnamed_73, mad(vertex_uniform_buffer_0[79u].x, vertex_unnamed_71, vertex_unnamed_72 * vertex_uniform_buffer_0[80u].x)));
|
|
gl_Position.y = mad(vertex_uniform_buffer_0[82u].y, vertex_unnamed_74, mad(vertex_uniform_buffer_0[81u].y, vertex_unnamed_73, mad(vertex_uniform_buffer_0[79u].y, vertex_unnamed_71, vertex_unnamed_72 * vertex_uniform_buffer_0[80u].y)));
|
|
gl_Position.z = mad(vertex_uniform_buffer_0[82u].z, vertex_unnamed_74, mad(vertex_uniform_buffer_0[81u].z, vertex_unnamed_73, mad(vertex_uniform_buffer_0[79u].z, vertex_unnamed_71, vertex_unnamed_72 * vertex_uniform_buffer_0[80u].z)));
|
|
gl_Position.w = mad(vertex_uniform_buffer_0[82u].w, vertex_unnamed_74, mad(vertex_uniform_buffer_0[81u].w, vertex_unnamed_73, mad(vertex_uniform_buffer_0[79u].w, vertex_unnamed_71, vertex_unnamed_72 * vertex_uniform_buffer_0[80u].w)));
|
|
}
|
|
|
|
Vertex_Stage_Output vert(Vertex_Stage_Input stage_input)
|
|
{
|
|
vertex_uniform_buffer_0[79] = float4(unity_MatrixVP[0][0], unity_MatrixVP[1][0], unity_MatrixVP[2][0], unity_MatrixVP[3][0]);
|
|
vertex_uniform_buffer_0[80] = float4(unity_MatrixVP[0][1], unity_MatrixVP[1][1], unity_MatrixVP[2][1], unity_MatrixVP[3][1]);
|
|
vertex_uniform_buffer_0[81] = float4(unity_MatrixVP[0][2], unity_MatrixVP[1][2], unity_MatrixVP[2][2], unity_MatrixVP[3][2]);
|
|
vertex_uniform_buffer_0[82] = float4(unity_MatrixVP[0][3], unity_MatrixVP[1][3], unity_MatrixVP[2][3], unity_MatrixVP[3][3]);
|
|
|
|
vertex_uniform_buffer_1[0] = float4(unity_ObjectToWorld[0][0], unity_ObjectToWorld[1][0], unity_ObjectToWorld[2][0], unity_ObjectToWorld[3][0]);
|
|
vertex_uniform_buffer_1[1] = float4(unity_ObjectToWorld[0][1], unity_ObjectToWorld[1][1], unity_ObjectToWorld[2][1], unity_ObjectToWorld[3][1]);
|
|
vertex_uniform_buffer_1[2] = float4(unity_ObjectToWorld[0][2], unity_ObjectToWorld[1][2], unity_ObjectToWorld[2][2], unity_ObjectToWorld[3][2]);
|
|
vertex_uniform_buffer_1[3] = float4(unity_ObjectToWorld[0][3], unity_ObjectToWorld[1][3], unity_ObjectToWorld[2][3], unity_ObjectToWorld[3][3]);
|
|
|
|
vertex_input_0 = stage_input.vertex_input_0;
|
|
vert_main();
|
|
Vertex_Stage_Output stage_output;
|
|
stage_output.gl_Position = gl_Position;
|
|
return stage_output;
|
|
}
|
|
|
|
#endif // !STEREO_INSTANCING_ON
|
|
|
|
|
|
#ifdef STEREO_INSTANCING_ON
|
|
#define ANY_SHADER_VARIANT_ACTIVE
|
|
|
|
float4x4 unity_ObjectToWorld;
|
|
float4x4 unity_StereoMatrixVP[2];
|
|
|
|
static float4 vertex_uniform_buffer_0[4];
|
|
static float4 vertex_uniform_buffer_1[40];
|
|
static float4 gl_Position;
|
|
static uint gl_Layer;
|
|
static int gl_InstanceIndex;
|
|
static int gl_BaseInstanceARB;
|
|
static float4 vertex_input_0;
|
|
|
|
struct Vertex_Stage_Input
|
|
{
|
|
float4 vertex_input_0 : POSITION; // POSITION
|
|
uint gl_InstanceIndex : SV_InstanceID;
|
|
uint gl_BaseInstanceARB : SV_StartInstanceLocation;
|
|
};
|
|
|
|
struct Vertex_Stage_Output
|
|
{
|
|
float4 gl_Position : SV_Position;
|
|
uint gl_Layer : SV_RenderTargetArrayIndex;
|
|
};
|
|
|
|
uint spvBitfieldInsert(uint Base, uint Insert, uint Offset, uint Count)
|
|
{
|
|
uint Mask = Count == 32 ? 0xffffffff : (((1u << Count) - 1) << (Offset & 31));
|
|
return (Base & ~Mask) | ((Insert << Offset) & Mask);
|
|
}
|
|
|
|
uint2 spvBitfieldInsert(uint2 Base, uint2 Insert, uint Offset, uint Count)
|
|
{
|
|
uint Mask = Count == 32 ? 0xffffffff : (((1u << Count) - 1) << (Offset & 31));
|
|
return (Base & ~Mask) | ((Insert << Offset) & Mask);
|
|
}
|
|
|
|
uint3 spvBitfieldInsert(uint3 Base, uint3 Insert, uint Offset, uint Count)
|
|
{
|
|
uint Mask = Count == 32 ? 0xffffffff : (((1u << Count) - 1) << (Offset & 31));
|
|
return (Base & ~Mask) | ((Insert << Offset) & Mask);
|
|
}
|
|
|
|
uint4 spvBitfieldInsert(uint4 Base, uint4 Insert, uint Offset, uint Count)
|
|
{
|
|
uint Mask = Count == 32 ? 0xffffffff : (((1u << Count) - 1) << (Offset & 31));
|
|
return (Base & ~Mask) | ((Insert << Offset) & Mask);
|
|
}
|
|
|
|
void vert_main()
|
|
{
|
|
float vertex_unnamed_75 = mad(vertex_uniform_buffer_0[2u].x, vertex_input_0.z, mad(vertex_uniform_buffer_0[0u].x, vertex_input_0.x, vertex_input_0.y * vertex_uniform_buffer_0[1u].x)) + vertex_uniform_buffer_0[3u].x;
|
|
float vertex_unnamed_76 = mad(vertex_uniform_buffer_0[2u].y, vertex_input_0.z, mad(vertex_uniform_buffer_0[0u].y, vertex_input_0.x, vertex_input_0.y * vertex_uniform_buffer_0[1u].y)) + vertex_uniform_buffer_0[3u].y;
|
|
float vertex_unnamed_77 = mad(vertex_uniform_buffer_0[2u].z, vertex_input_0.z, mad(vertex_uniform_buffer_0[0u].z, vertex_input_0.x, vertex_input_0.y * vertex_uniform_buffer_0[1u].z)) + vertex_uniform_buffer_0[3u].z;
|
|
float vertex_unnamed_78 = mad(vertex_uniform_buffer_0[2u].w, vertex_input_0.z, mad(vertex_uniform_buffer_0[0u].w, vertex_input_0.x, vertex_input_0.y * vertex_uniform_buffer_0[1u].w)) + vertex_uniform_buffer_0[3u].w;
|
|
uint vertex_unnamed_85 = 2u & 31u;
|
|
uint vertex_unnamed_89 = spvBitfieldInsert(0u, uint(gl_InstanceIndex) - uint(gl_BaseInstanceARB), vertex_unnamed_85, min((1u & 31u), (32u - vertex_unnamed_85)));
|
|
uint vertex_unnamed_90 = vertex_unnamed_89 + 33u;
|
|
uint vertex_unnamed_102 = vertex_unnamed_89 + 32u;
|
|
uint vertex_unnamed_113 = vertex_unnamed_89 + 34u;
|
|
uint vertex_unnamed_125 = vertex_unnamed_89 + 35u;
|
|
gl_Position.x = mad(vertex_uniform_buffer_1[vertex_unnamed_125].x, vertex_unnamed_78, mad(vertex_uniform_buffer_1[vertex_unnamed_113].x, vertex_unnamed_77, mad(vertex_uniform_buffer_1[vertex_unnamed_102].x, vertex_unnamed_75, vertex_unnamed_76 * vertex_uniform_buffer_1[vertex_unnamed_90].x)));
|
|
gl_Position.y = mad(vertex_uniform_buffer_1[vertex_unnamed_125].y, vertex_unnamed_78, mad(vertex_uniform_buffer_1[vertex_unnamed_113].y, vertex_unnamed_77, mad(vertex_uniform_buffer_1[vertex_unnamed_102].y, vertex_unnamed_75, vertex_unnamed_76 * vertex_uniform_buffer_1[vertex_unnamed_90].y)));
|
|
gl_Position.z = mad(vertex_uniform_buffer_1[vertex_unnamed_125].z, vertex_unnamed_78, mad(vertex_uniform_buffer_1[vertex_unnamed_113].z, vertex_unnamed_77, mad(vertex_uniform_buffer_1[vertex_unnamed_102].z, vertex_unnamed_75, vertex_unnamed_76 * vertex_uniform_buffer_1[vertex_unnamed_90].z)));
|
|
gl_Position.w = mad(vertex_uniform_buffer_1[vertex_unnamed_125].w, vertex_unnamed_78, mad(vertex_uniform_buffer_1[vertex_unnamed_113].w, vertex_unnamed_77, mad(vertex_uniform_buffer_1[vertex_unnamed_102].w, vertex_unnamed_75, vertex_unnamed_76 * vertex_uniform_buffer_1[vertex_unnamed_90].w)));
|
|
gl_Layer = int((uint(gl_InstanceIndex) - uint(gl_BaseInstanceARB)) & 1u);
|
|
}
|
|
|
|
Vertex_Stage_Output vert(Vertex_Stage_Input stage_input)
|
|
{
|
|
vertex_uniform_buffer_0[0] = float4(unity_ObjectToWorld[0][0], unity_ObjectToWorld[1][0], unity_ObjectToWorld[2][0], unity_ObjectToWorld[3][0]);
|
|
vertex_uniform_buffer_0[1] = float4(unity_ObjectToWorld[0][1], unity_ObjectToWorld[1][1], unity_ObjectToWorld[2][1], unity_ObjectToWorld[3][1]);
|
|
vertex_uniform_buffer_0[2] = float4(unity_ObjectToWorld[0][2], unity_ObjectToWorld[1][2], unity_ObjectToWorld[2][2], unity_ObjectToWorld[3][2]);
|
|
vertex_uniform_buffer_0[3] = float4(unity_ObjectToWorld[0][3], unity_ObjectToWorld[1][3], unity_ObjectToWorld[2][3], unity_ObjectToWorld[3][3]);
|
|
|
|
vertex_uniform_buffer_1[32] = float4(unity_StereoMatrixVP[0][0][0], unity_StereoMatrixVP[0][1][0], unity_StereoMatrixVP[0][2][0], unity_StereoMatrixVP[0][3][0]);
|
|
vertex_uniform_buffer_1[33] = float4(unity_StereoMatrixVP[0][0][1], unity_StereoMatrixVP[0][1][1], unity_StereoMatrixVP[0][2][1], unity_StereoMatrixVP[0][3][1]);
|
|
vertex_uniform_buffer_1[34] = float4(unity_StereoMatrixVP[0][0][2], unity_StereoMatrixVP[0][1][2], unity_StereoMatrixVP[0][2][2], unity_StereoMatrixVP[0][3][2]);
|
|
vertex_uniform_buffer_1[35] = float4(unity_StereoMatrixVP[0][0][3], unity_StereoMatrixVP[0][1][3], unity_StereoMatrixVP[0][2][3], unity_StereoMatrixVP[0][3][3]);
|
|
vertex_uniform_buffer_1[36] = float4(unity_StereoMatrixVP[1][0][0], unity_StereoMatrixVP[1][1][0], unity_StereoMatrixVP[1][2][0], unity_StereoMatrixVP[1][3][0]);
|
|
vertex_uniform_buffer_1[37] = float4(unity_StereoMatrixVP[1][0][1], unity_StereoMatrixVP[1][1][1], unity_StereoMatrixVP[1][2][1], unity_StereoMatrixVP[1][3][1]);
|
|
vertex_uniform_buffer_1[38] = float4(unity_StereoMatrixVP[1][0][2], unity_StereoMatrixVP[1][1][2], unity_StereoMatrixVP[1][2][2], unity_StereoMatrixVP[1][3][2]);
|
|
vertex_uniform_buffer_1[39] = float4(unity_StereoMatrixVP[1][0][3], unity_StereoMatrixVP[1][1][3], unity_StereoMatrixVP[1][2][3], unity_StereoMatrixVP[1][3][3]);
|
|
|
|
gl_InstanceIndex = int(stage_input.gl_InstanceIndex + stage_input.gl_BaseInstanceARB);
|
|
gl_BaseInstanceARB = stage_input.gl_BaseInstanceARB;
|
|
vertex_input_0 = stage_input.vertex_input_0;
|
|
vert_main();
|
|
Vertex_Stage_Output stage_output;
|
|
stage_output.gl_Position = gl_Position;
|
|
stage_output.gl_Layer = gl_Layer;
|
|
return stage_output;
|
|
}
|
|
|
|
#endif // STEREO_INSTANCING_ON
|
|
|
|
|
|
#ifndef STEREO_INSTANCING_ON
|
|
#define ANY_SHADER_VARIANT_ACTIVE
|
|
|
|
static float4 fragment_output_0;
|
|
|
|
struct Fragment_Stage_Output
|
|
{
|
|
float4 fragment_output_0 : SV_Target0;
|
|
};
|
|
|
|
void frag_main()
|
|
{
|
|
fragment_output_0.x = 1.0f;
|
|
fragment_output_0.y = 0.0f;
|
|
fragment_output_0.z = 1.0f;
|
|
fragment_output_0.w = 1.0f;
|
|
}
|
|
|
|
Fragment_Stage_Output frag()
|
|
{
|
|
frag_main();
|
|
Fragment_Stage_Output stage_output;
|
|
stage_output.fragment_output_0 = fragment_output_0;
|
|
return stage_output;
|
|
}
|
|
|
|
#endif // !STEREO_INSTANCING_ON
|
|
|
|
|
|
#ifdef STEREO_INSTANCING_ON
|
|
#define ANY_SHADER_VARIANT_ACTIVE
|
|
|
|
static float4 fragment_output_0;
|
|
|
|
struct Fragment_Stage_Output
|
|
{
|
|
float4 fragment_output_0 : SV_Target0;
|
|
};
|
|
|
|
void frag_main()
|
|
{
|
|
fragment_output_0.x = 1.0f;
|
|
fragment_output_0.y = 0.0f;
|
|
fragment_output_0.z = 1.0f;
|
|
fragment_output_0.w = 1.0f;
|
|
}
|
|
|
|
Fragment_Stage_Output frag()
|
|
{
|
|
frag_main();
|
|
Fragment_Stage_Output stage_output;
|
|
stage_output.fragment_output_0 = fragment_output_0;
|
|
return stage_output;
|
|
}
|
|
|
|
#endif // STEREO_INSTANCING_ON
|
|
|
|
|
|
ENDHLSL
|
|
}
|
|
}
|
|
FallBack "Hidden/Core/FallbackError"
|
|
}
|