260 lines
9.5 KiB
GLSL
260 lines
9.5 KiB
GLSL
Shader "Hidden/Universal Render Pipeline/Stop NaN"
|
|
{
|
|
Properties
|
|
{
|
|
}
|
|
SubShader
|
|
{
|
|
LOD 100
|
|
Tags { "RenderPipeline" = "UniversalPipeline" "RenderType" = "Opaque" }
|
|
Pass
|
|
{
|
|
Name "Stop NaN"
|
|
LOD 100
|
|
Tags { "RenderPipeline" = "UniversalPipeline" "RenderType" = "Opaque" }
|
|
ZTest Always
|
|
ZWrite Off
|
|
Cull Off
|
|
GpuProgramID 58832
|
|
|
|
HLSLPROGRAM
|
|
|
|
// https://docs.unity3d.com/Manual/SL-PragmaDirectives.html
|
|
#pragma vertex vert
|
|
#pragma fragment frag
|
|
#pragma target 4.0
|
|
#pragma multi_compile _ STEREO_INSTANCING_ON
|
|
|
|
|
|
#ifndef STEREO_INSTANCING_ON
|
|
#define ANY_SHADER_VARIANT_ACTIVE
|
|
|
|
float4 _BlitScaleBias;
|
|
|
|
static float4 vertex_uniform_buffer_0[131];
|
|
static float4 gl_Position;
|
|
static int gl_VertexIndex;
|
|
static int gl_BaseVertexARB;
|
|
static float2 vertex_output_1;
|
|
|
|
struct Vertex_Stage_Input
|
|
{
|
|
uint gl_VertexIndex : SV_VertexID;
|
|
uint gl_BaseVertexARB : SV_StartVertexLocation;
|
|
};
|
|
|
|
struct Vertex_Stage_Output
|
|
{
|
|
float2 vertex_output_1 : TEXCOORD; // TEXCOORD
|
|
float4 gl_Position : SV_Position;
|
|
};
|
|
|
|
void vert_main()
|
|
{
|
|
float vertex_unnamed_32 = float(((uint(gl_VertexIndex) - uint(gl_BaseVertexARB)) << 1u) & 2u);
|
|
float vertex_unnamed_33 = float((uint(gl_VertexIndex) - uint(gl_BaseVertexARB)) & 2u);
|
|
gl_Position.x = mad(vertex_unnamed_32, 2.0f, -1.0f);
|
|
gl_Position.y = mad(vertex_unnamed_33, 2.0f, -1.0f);
|
|
precise float vertex_unnamed_43 = (-0.0f) - vertex_unnamed_33;
|
|
precise float vertex_unnamed_45 = vertex_unnamed_43 + 1.0f;
|
|
vertex_output_1.x = mad(vertex_unnamed_32, vertex_uniform_buffer_0[130u].x, vertex_uniform_buffer_0[130u].z);
|
|
vertex_output_1.y = mad(vertex_unnamed_45, vertex_uniform_buffer_0[130u].y, vertex_uniform_buffer_0[130u].w);
|
|
gl_Position.z = 1.0f;
|
|
gl_Position.w = 1.0f;
|
|
}
|
|
|
|
Vertex_Stage_Output vert(Vertex_Stage_Input stage_input)
|
|
{
|
|
vertex_uniform_buffer_0[130] = float4(_BlitScaleBias[0], _BlitScaleBias[1], _BlitScaleBias[2], _BlitScaleBias[3]);
|
|
|
|
gl_VertexIndex = int(stage_input.gl_VertexIndex + stage_input.gl_BaseVertexARB);
|
|
gl_BaseVertexARB = stage_input.gl_BaseVertexARB;
|
|
vert_main();
|
|
Vertex_Stage_Output stage_output;
|
|
stage_output.gl_Position = gl_Position;
|
|
stage_output.vertex_output_1 = vertex_output_1;
|
|
return stage_output;
|
|
}
|
|
|
|
#endif // !STEREO_INSTANCING_ON
|
|
|
|
|
|
#ifdef STEREO_INSTANCING_ON
|
|
#define ANY_SHADER_VARIANT_ACTIVE
|
|
|
|
float4 _BlitScaleBias;
|
|
|
|
static float4 vertex_uniform_buffer_0[100];
|
|
static float4 gl_Position;
|
|
static uint gl_Layer;
|
|
static int gl_VertexIndex;
|
|
static int gl_InstanceIndex;
|
|
static int gl_BaseVertexARB;
|
|
static int gl_BaseInstanceARB;
|
|
static float2 vertex_output_1;
|
|
|
|
struct Vertex_Stage_Input
|
|
{
|
|
uint gl_VertexIndex : SV_VertexID;
|
|
uint gl_InstanceIndex : SV_InstanceID;
|
|
uint gl_BaseVertexARB : SV_StartVertexLocation;
|
|
uint gl_BaseInstanceARB : SV_StartInstanceLocation;
|
|
};
|
|
|
|
struct Vertex_Stage_Output
|
|
{
|
|
float2 vertex_output_1 : TEXCOORD; // TEXCOORD
|
|
float4 gl_Position : SV_Position;
|
|
uint gl_Layer : SV_RenderTargetArrayIndex;
|
|
};
|
|
|
|
void vert_main()
|
|
{
|
|
float vertex_unnamed_35 = float(((uint(gl_VertexIndex) - uint(gl_BaseVertexARB)) << 1u) & 2u);
|
|
float vertex_unnamed_36 = float((uint(gl_VertexIndex) - uint(gl_BaseVertexARB)) & 2u);
|
|
gl_Position.x = mad(vertex_unnamed_35, 2.0f, -1.0f);
|
|
gl_Position.y = mad(vertex_unnamed_36, 2.0f, -1.0f);
|
|
precise float vertex_unnamed_46 = (-0.0f) - vertex_unnamed_36;
|
|
precise float vertex_unnamed_48 = vertex_unnamed_46 + 1.0f;
|
|
vertex_output_1.x = mad(vertex_unnamed_35, vertex_uniform_buffer_0[99u].x, vertex_uniform_buffer_0[99u].z);
|
|
vertex_output_1.y = mad(vertex_unnamed_48, vertex_uniform_buffer_0[99u].y, vertex_uniform_buffer_0[99u].w);
|
|
gl_Position.z = 1.0f;
|
|
gl_Position.w = 1.0f;
|
|
gl_Layer = int((uint(gl_InstanceIndex) - uint(gl_BaseInstanceARB)) & 1u);
|
|
}
|
|
|
|
Vertex_Stage_Output vert(Vertex_Stage_Input stage_input)
|
|
{
|
|
vertex_uniform_buffer_0[99] = float4(_BlitScaleBias[0], _BlitScaleBias[1], _BlitScaleBias[2], _BlitScaleBias[3]);
|
|
|
|
gl_VertexIndex = int(stage_input.gl_VertexIndex + stage_input.gl_BaseVertexARB);
|
|
gl_InstanceIndex = int(stage_input.gl_InstanceIndex + stage_input.gl_BaseInstanceARB);
|
|
gl_BaseVertexARB = stage_input.gl_BaseVertexARB;
|
|
gl_BaseInstanceARB = stage_input.gl_BaseInstanceARB;
|
|
vert_main();
|
|
Vertex_Stage_Output stage_output;
|
|
stage_output.gl_Position = gl_Position;
|
|
stage_output.gl_Layer = gl_Layer;
|
|
stage_output.vertex_output_1 = vertex_output_1;
|
|
return stage_output;
|
|
}
|
|
|
|
#endif // STEREO_INSTANCING_ON
|
|
|
|
|
|
#ifndef STEREO_INSTANCING_ON
|
|
#define ANY_SHADER_VARIANT_ACTIVE
|
|
|
|
float2 _GlobalMipBias;
|
|
|
|
static float4 fragment_uniform_buffer_0[5];
|
|
Texture2D<float4> _BlitTexture;
|
|
SamplerState S0;
|
|
|
|
static float2 fragment_input_1;
|
|
static float4 fragment_output_0;
|
|
|
|
struct Fragment_Stage_Input
|
|
{
|
|
float2 fragment_input_1 : TEXCOORD; // TEXCOORD
|
|
};
|
|
|
|
struct Fragment_Stage_Output
|
|
{
|
|
float4 fragment_output_0 : SV_Target0;
|
|
};
|
|
|
|
void frag_main()
|
|
{
|
|
float4 fragment_unnamed_42 = _BlitTexture.SampleBias(S0, float2(fragment_input_1.x, fragment_input_1.y), fragment_uniform_buffer_0[4u].x);
|
|
float fragment_unnamed_44 = fragment_unnamed_42.x;
|
|
float fragment_unnamed_45 = fragment_unnamed_42.y;
|
|
float fragment_unnamed_46 = fragment_unnamed_42.z;
|
|
float fragment_unnamed_47 = fragment_unnamed_42.w;
|
|
uint fragment_unnamed_52 = asuint(fragment_unnamed_44) & 2147483647u;
|
|
uint fragment_unnamed_54 = asuint(fragment_unnamed_45) & 2147483647u;
|
|
uint fragment_unnamed_55 = asuint(fragment_unnamed_46) & 2147483647u;
|
|
uint fragment_unnamed_56 = asuint(fragment_unnamed_47) & 2147483647u;
|
|
bool fragment_unnamed_83 = ((((fragment_unnamed_56 == 2139095040u) ? 4294967295u : 0u) | (((fragment_unnamed_55 == 2139095040u) ? 4294967295u : 0u) | (((fragment_unnamed_54 == 2139095040u) ? 4294967295u : 0u) | ((fragment_unnamed_52 == 2139095040u) ? 4294967295u : 0u)))) | (((2139095040u < fragment_unnamed_56) ? 4294967295u : 0u) | (((2139095040u < fragment_unnamed_55) ? 4294967295u : 0u) | (((2139095040u < fragment_unnamed_54) ? 4294967295u : 0u) | ((2139095040u < fragment_unnamed_52) ? 4294967295u : 0u))))) != 0u;
|
|
fragment_output_0.x = fragment_unnamed_83 ? 0.0f : fragment_unnamed_44;
|
|
fragment_output_0.y = fragment_unnamed_83 ? 0.0f : fragment_unnamed_45;
|
|
fragment_output_0.z = fragment_unnamed_83 ? 0.0f : fragment_unnamed_46;
|
|
fragment_output_0.w = fragment_unnamed_83 ? 0.0f : fragment_unnamed_47;
|
|
}
|
|
|
|
Fragment_Stage_Output frag(Fragment_Stage_Input stage_input)
|
|
{
|
|
fragment_uniform_buffer_0[4] = float4(_GlobalMipBias[0], _GlobalMipBias[1], fragment_uniform_buffer_0[4][2], fragment_uniform_buffer_0[4][3]);
|
|
|
|
fragment_input_1 = stage_input.fragment_input_1;
|
|
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
|
|
|
|
float2 _GlobalMipBias;
|
|
|
|
static float4 fragment_uniform_buffer_0[5];
|
|
Texture2DArray<float4> _BlitTexture;
|
|
SamplerState S0;
|
|
|
|
static uint gl_Layer;
|
|
static float2 fragment_input_1;
|
|
static float4 fragment_output_0;
|
|
|
|
struct Fragment_Stage_Input
|
|
{
|
|
float2 fragment_input_1 : TEXCOORD; // TEXCOORD
|
|
uint gl_Layer : SV_RenderTargetArrayIndex;
|
|
};
|
|
|
|
struct Fragment_Stage_Output
|
|
{
|
|
float4 fragment_output_0 : SV_Target0;
|
|
};
|
|
|
|
void frag_main()
|
|
{
|
|
float4 fragment_unnamed_46 = _BlitTexture.SampleBias(S0, float3(fragment_input_1.x, fragment_input_1.y, float(uint(gl_Layer))), fragment_uniform_buffer_0[4u].x);
|
|
float fragment_unnamed_49 = fragment_unnamed_46.x;
|
|
float fragment_unnamed_50 = fragment_unnamed_46.y;
|
|
float fragment_unnamed_51 = fragment_unnamed_46.z;
|
|
float fragment_unnamed_52 = fragment_unnamed_46.w;
|
|
uint fragment_unnamed_57 = asuint(fragment_unnamed_49) & 2147483647u;
|
|
uint fragment_unnamed_59 = asuint(fragment_unnamed_50) & 2147483647u;
|
|
uint fragment_unnamed_60 = asuint(fragment_unnamed_51) & 2147483647u;
|
|
uint fragment_unnamed_61 = asuint(fragment_unnamed_52) & 2147483647u;
|
|
bool fragment_unnamed_88 = ((((fragment_unnamed_61 == 2139095040u) ? 4294967295u : 0u) | (((fragment_unnamed_60 == 2139095040u) ? 4294967295u : 0u) | (((fragment_unnamed_59 == 2139095040u) ? 4294967295u : 0u) | ((fragment_unnamed_57 == 2139095040u) ? 4294967295u : 0u)))) | (((2139095040u < fragment_unnamed_61) ? 4294967295u : 0u) | (((2139095040u < fragment_unnamed_60) ? 4294967295u : 0u) | (((2139095040u < fragment_unnamed_59) ? 4294967295u : 0u) | ((2139095040u < fragment_unnamed_57) ? 4294967295u : 0u))))) != 0u;
|
|
fragment_output_0.x = fragment_unnamed_88 ? 0.0f : fragment_unnamed_49;
|
|
fragment_output_0.y = fragment_unnamed_88 ? 0.0f : fragment_unnamed_50;
|
|
fragment_output_0.z = fragment_unnamed_88 ? 0.0f : fragment_unnamed_51;
|
|
fragment_output_0.w = fragment_unnamed_88 ? 0.0f : fragment_unnamed_52;
|
|
}
|
|
|
|
Fragment_Stage_Output frag(Fragment_Stage_Input stage_input)
|
|
{
|
|
fragment_uniform_buffer_0[4] = float4(_GlobalMipBias[0], _GlobalMipBias[1], fragment_uniform_buffer_0[4][2], fragment_uniform_buffer_0[4][3]);
|
|
|
|
gl_Layer = stage_input.gl_Layer;
|
|
fragment_input_1 = stage_input.fragment_input_1;
|
|
frag_main();
|
|
Fragment_Stage_Output stage_output;
|
|
stage_output.fragment_output_0 = fragment_output_0;
|
|
return stage_output;
|
|
}
|
|
|
|
#endif // STEREO_INSTANCING_ON
|
|
|
|
|
|
ENDHLSL
|
|
}
|
|
}
|
|
}
|