Files
BlockSpace-v1.5.0b/Assets/Shader/Hidden_Universal Render Pipeline_BokehDepthOfField.shader
2026-06-01 17:19:55 +02:00

3448 lines
171 KiB
GLSL

Shader "Hidden/Universal Render Pipeline/BokehDepthOfField"
{
Properties
{
}
SubShader
{
LOD 100
Tags { "RenderPipeline" = "UniversalPipeline" }
Pass
{
Name "Bokeh Depth Of Field CoC"
LOD 100
Tags { "RenderPipeline" = "UniversalPipeline" }
ZTest Always
ZWrite Off
Cull Off
GpuProgramID 58738
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
float4 _BlitScaleBias;
static float4 vertex_uniform_buffer_0[132];
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;
};
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()
{
uint vertex_unnamed_27 = 1u & 31u;
float vertex_unnamed_39 = float(spvBitfieldInsert(0u, uint(gl_VertexIndex) - uint(gl_BaseVertexARB), vertex_unnamed_27, min((1u & 31u), (32u - vertex_unnamed_27))));
float vertex_unnamed_40 = float((uint(gl_VertexIndex) - uint(gl_BaseVertexARB)) & 2u);
gl_Position.x = mad(vertex_unnamed_39, 2.0f, -1.0f);
gl_Position.y = mad(vertex_unnamed_40, 2.0f, -1.0f);
vertex_output_1.x = mad(vertex_unnamed_39, vertex_uniform_buffer_0[131u].x, vertex_uniform_buffer_0[131u].z);
vertex_output_1.y = mad(((-0.0f) - vertex_unnamed_40) + 1.0f, vertex_uniform_buffer_0[131u].y, vertex_uniform_buffer_0[131u].w);
gl_Position.z = 1.0f;
gl_Position.w = 1.0f;
}
Vertex_Stage_Output vert(Vertex_Stage_Input stage_input)
{
vertex_uniform_buffer_0[131] = 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[101];
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;
};
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()
{
uint vertex_unnamed_30 = 1u & 31u;
float vertex_unnamed_42 = float(spvBitfieldInsert(0u, uint(gl_VertexIndex) - uint(gl_BaseVertexARB), vertex_unnamed_30, min((1u & 31u), (32u - vertex_unnamed_30))));
float vertex_unnamed_43 = float((uint(gl_VertexIndex) - uint(gl_BaseVertexARB)) & 2u);
gl_Position.x = mad(vertex_unnamed_42, 2.0f, -1.0f);
gl_Position.y = mad(vertex_unnamed_43, 2.0f, -1.0f);
vertex_output_1.x = mad(vertex_unnamed_42, vertex_uniform_buffer_0[100u].x, vertex_uniform_buffer_0[100u].z);
vertex_output_1.y = mad(((-0.0f) - vertex_unnamed_43) + 1.0f, vertex_uniform_buffer_0[100u].y, vertex_uniform_buffer_0[100u].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[100] = 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
float4 _ZBufferParams;
float4 _SourceSize;
float4 _CoCParams;
static float4 fragment_uniform_buffer_0[140];
Texture2D<float4> _CameraDepthTexture;
static float2 fragment_input_1;
static float fragment_output_0;
struct Fragment_Stage_Input
{
float2 fragment_input_1 : TEXCOORD; // TEXCOORD
};
struct Fragment_Stage_Output
{
float fragment_output_0 : SV_Target0;
};
void frag_main()
{
float fragment_unnamed_67 = (((-0.0f) - (fragment_uniform_buffer_0[139u].x / (1.0f / mad(fragment_uniform_buffer_0[24u].z, _CameraDepthTexture.Load(int3(uint2(uint(int(fragment_input_1.x * fragment_uniform_buffer_0[137u].x)), uint(int(fragment_input_1.y * fragment_uniform_buffer_0[137u].y))), 0u)).x, fragment_uniform_buffer_0[24u].w)))) + 1.0f) * fragment_uniform_buffer_0[139u].y;
fragment_output_0 = ((min(max(fragment_unnamed_67, -1.0f), 0.0f) + clamp(fragment_unnamed_67, 0.0f, 1.0f)) + 1.0f) * 0.5f;
}
Fragment_Stage_Output frag(Fragment_Stage_Input stage_input)
{
fragment_uniform_buffer_0[24] = float4(_ZBufferParams[0], _ZBufferParams[1], _ZBufferParams[2], _ZBufferParams[3]);
fragment_uniform_buffer_0[137] = float4(_SourceSize[0], _SourceSize[1], _SourceSize[2], _SourceSize[3]);
fragment_uniform_buffer_0[139] = float4(_CoCParams[0], _CoCParams[1], _CoCParams[2], _CoCParams[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
float4 _ZBufferParams;
float4 _SourceSize;
float4 _CoCParams;
static float4 fragment_uniform_buffer_0[109];
Texture2DArray<float4> _CameraDepthTexture;
static uint gl_Layer;
static float2 fragment_input_1;
static float fragment_output_0;
struct Fragment_Stage_Input
{
float2 fragment_input_1 : TEXCOORD; // TEXCOORD
uint gl_Layer : SV_RenderTargetArrayIndex;
};
struct Fragment_Stage_Output
{
float fragment_output_0 : SV_Target0;
};
void frag_main()
{
float fragment_unnamed_70 = (((-0.0f) - (fragment_uniform_buffer_0[108u].x / (1.0f / mad(fragment_uniform_buffer_0[23u].z, _CameraDepthTexture.Load(int4(uint3(uint(int(fragment_input_1.x * fragment_uniform_buffer_0[106u].x)), uint(int(fragment_input_1.y * fragment_uniform_buffer_0[106u].y)), uint(gl_Layer)), 0u)).x, fragment_uniform_buffer_0[23u].w)))) + 1.0f) * fragment_uniform_buffer_0[108u].y;
fragment_output_0 = ((min(max(fragment_unnamed_70, -1.0f), 0.0f) + clamp(fragment_unnamed_70, 0.0f, 1.0f)) + 1.0f) * 0.5f;
}
Fragment_Stage_Output frag(Fragment_Stage_Input stage_input)
{
fragment_uniform_buffer_0[23] = float4(_ZBufferParams[0], _ZBufferParams[1], _ZBufferParams[2], _ZBufferParams[3]);
fragment_uniform_buffer_0[106] = float4(_SourceSize[0], _SourceSize[1], _SourceSize[2], _SourceSize[3]);
fragment_uniform_buffer_0[108] = float4(_CoCParams[0], _CoCParams[1], _CoCParams[2], _CoCParams[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
}
Pass
{
Name "Bokeh Depth Of Field Prefilter"
LOD 100
Tags { "RenderPipeline" = "UniversalPipeline" }
ZTest Always
ZWrite Off
Cull Off
GpuProgramID 67589
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
float4 _BlitScaleBias;
static float4 vertex_uniform_buffer_0[132];
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;
};
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()
{
uint vertex_unnamed_27 = 1u & 31u;
float vertex_unnamed_39 = float(spvBitfieldInsert(0u, uint(gl_VertexIndex) - uint(gl_BaseVertexARB), vertex_unnamed_27, min((1u & 31u), (32u - vertex_unnamed_27))));
float vertex_unnamed_40 = float((uint(gl_VertexIndex) - uint(gl_BaseVertexARB)) & 2u);
gl_Position.x = mad(vertex_unnamed_39, 2.0f, -1.0f);
gl_Position.y = mad(vertex_unnamed_40, 2.0f, -1.0f);
vertex_output_1.x = mad(vertex_unnamed_39, vertex_uniform_buffer_0[131u].x, vertex_uniform_buffer_0[131u].z);
vertex_output_1.y = mad(((-0.0f) - vertex_unnamed_40) + 1.0f, vertex_uniform_buffer_0[131u].y, vertex_uniform_buffer_0[131u].w);
gl_Position.z = 1.0f;
gl_Position.w = 1.0f;
}
Vertex_Stage_Output vert(Vertex_Stage_Input stage_input)
{
vertex_uniform_buffer_0[131] = 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[101];
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;
};
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()
{
uint vertex_unnamed_30 = 1u & 31u;
float vertex_unnamed_42 = float(spvBitfieldInsert(0u, uint(gl_VertexIndex) - uint(gl_BaseVertexARB), vertex_unnamed_30, min((1u & 31u), (32u - vertex_unnamed_30))));
float vertex_unnamed_43 = float((uint(gl_VertexIndex) - uint(gl_BaseVertexARB)) & 2u);
gl_Position.x = mad(vertex_unnamed_42, 2.0f, -1.0f);
gl_Position.y = mad(vertex_unnamed_43, 2.0f, -1.0f);
vertex_output_1.x = mad(vertex_unnamed_42, vertex_uniform_buffer_0[100u].x, vertex_uniform_buffer_0[100u].z);
vertex_output_1.y = mad(((-0.0f) - vertex_unnamed_43) + 1.0f, vertex_uniform_buffer_0[100u].y, vertex_uniform_buffer_0[100u].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[100] = 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
float4 _SourceSize;
float4 _CoCParams;
static float4 fragment_uniform_buffer_0[140];
Texture2D<float4> _BlitTexture;
Texture2D<float4> _FullCoCTexture;
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_40 = _BlitTexture.GatherRed(S0, float2(fragment_input_1.x, fragment_input_1.y));
float4 fragment_unnamed_50 = _BlitTexture.GatherGreen(S0, float2(fragment_input_1.x, fragment_input_1.y));
float4 fragment_unnamed_61 = _BlitTexture.GatherBlue(S0, float2(fragment_input_1.x, fragment_input_1.y));
float4 fragment_unnamed_85 = _FullCoCTexture.GatherRed(S0, float2(fragment_input_1.x, fragment_input_1.y));
float fragment_unnamed_91 = mad(fragment_unnamed_85.x, 2.0f, -1.0f);
float fragment_unnamed_94 = mad(fragment_unnamed_85.y, 2.0f, -1.0f);
float fragment_unnamed_95 = mad(fragment_unnamed_85.z, 2.0f, -1.0f);
float fragment_unnamed_96 = mad(fragment_unnamed_85.w, 2.0f, -1.0f);
float fragment_unnamed_99 = min(min(fragment_unnamed_96, min(fragment_unnamed_95, fragment_unnamed_94)), fragment_unnamed_91);
float fragment_unnamed_102 = max(max(fragment_unnamed_96, max(fragment_unnamed_95, fragment_unnamed_94)), fragment_unnamed_91);
float fragment_unnamed_116 = asfloat((fragment_unnamed_102 < ((-0.0f) - fragment_unnamed_99)) ? asuint(fragment_unnamed_99) : asuint(fragment_unnamed_102)) * fragment_uniform_buffer_0[139u].z;
float fragment_unnamed_130 = clamp(abs(fragment_unnamed_116) * (1.0f / (fragment_uniform_buffer_0[137u].w + fragment_uniform_buffer_0[137u].w)), 0.0f, 1.0f);
fragment_output_0.w = fragment_unnamed_116;
float fragment_unnamed_138 = mad(fragment_unnamed_130, -2.0f, 3.0f) * (fragment_unnamed_130 * fragment_unnamed_130);
fragment_output_0.x = fragment_unnamed_138 * ((fragment_unnamed_40.w + ((fragment_unnamed_40.x + fragment_unnamed_40.y) + fragment_unnamed_40.z)) * 0.25f);
fragment_output_0.y = fragment_unnamed_138 * ((fragment_unnamed_50.w + ((fragment_unnamed_50.x + fragment_unnamed_50.y) + fragment_unnamed_50.z)) * 0.25f);
fragment_output_0.z = fragment_unnamed_138 * ((fragment_unnamed_61.w + ((fragment_unnamed_61.x + fragment_unnamed_61.y) + fragment_unnamed_61.z)) * 0.25f);
}
Fragment_Stage_Output frag(Fragment_Stage_Input stage_input)
{
fragment_uniform_buffer_0[137] = float4(_SourceSize[0], _SourceSize[1], _SourceSize[2], _SourceSize[3]);
fragment_uniform_buffer_0[139] = float4(_CoCParams[0], _CoCParams[1], _CoCParams[2], _CoCParams[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
float4 _SourceSize;
float4 _CoCParams;
static float4 fragment_uniform_buffer_0[109];
Texture2DArray<float4> _BlitTexture;
Texture2DArray<float4> _FullCoCTexture;
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()
{
float fragment_unnamed_33 = float(uint(gl_Layer));
float4 fragment_unnamed_45 = _BlitTexture.GatherRed(S0, float3(fragment_input_1.x, fragment_input_1.y, fragment_unnamed_33));
float4 fragment_unnamed_51 = _BlitTexture.GatherGreen(S0, float3(fragment_input_1.x, fragment_input_1.y, fragment_unnamed_33));
float4 fragment_unnamed_58 = _BlitTexture.GatherBlue(S0, float3(fragment_input_1.x, fragment_input_1.y, fragment_unnamed_33));
float4 fragment_unnamed_65 = _FullCoCTexture.GatherRed(S0, float3(fragment_input_1.x, fragment_input_1.y, fragment_unnamed_33));
float fragment_unnamed_71 = mad(fragment_unnamed_65.x, 2.0f, -1.0f);
float fragment_unnamed_74 = mad(fragment_unnamed_65.y, 2.0f, -1.0f);
float fragment_unnamed_75 = mad(fragment_unnamed_65.z, 2.0f, -1.0f);
float fragment_unnamed_76 = mad(fragment_unnamed_65.w, 2.0f, -1.0f);
float fragment_unnamed_92 = min(fragment_unnamed_71, min(fragment_unnamed_76, min(fragment_unnamed_75, fragment_unnamed_74)));
float fragment_unnamed_95 = max(max(fragment_unnamed_76, max(fragment_unnamed_75, fragment_unnamed_74)), fragment_unnamed_71);
float fragment_unnamed_109 = asfloat((fragment_unnamed_95 < ((-0.0f) - fragment_unnamed_92)) ? asuint(fragment_unnamed_92) : asuint(fragment_unnamed_95)) * fragment_uniform_buffer_0[108u].z;
float fragment_unnamed_123 = clamp((1.0f / (fragment_uniform_buffer_0[106u].w + fragment_uniform_buffer_0[106u].w)) * abs(fragment_unnamed_109), 0.0f, 1.0f);
fragment_output_0.w = fragment_unnamed_109;
float fragment_unnamed_131 = (fragment_unnamed_123 * fragment_unnamed_123) * mad(fragment_unnamed_123, -2.0f, 3.0f);
fragment_output_0.x = fragment_unnamed_131 * ((fragment_unnamed_45.w + ((fragment_unnamed_45.x + fragment_unnamed_45.y) + fragment_unnamed_45.z)) * 0.25f);
fragment_output_0.y = fragment_unnamed_131 * ((fragment_unnamed_51.w + ((fragment_unnamed_51.x + fragment_unnamed_51.y) + fragment_unnamed_51.z)) * 0.25f);
fragment_output_0.z = fragment_unnamed_131 * ((fragment_unnamed_58.w + ((fragment_unnamed_58.x + fragment_unnamed_58.y) + fragment_unnamed_58.z)) * 0.25f);
}
Fragment_Stage_Output frag(Fragment_Stage_Input stage_input)
{
fragment_uniform_buffer_0[106] = float4(_SourceSize[0], _SourceSize[1], _SourceSize[2], _SourceSize[3]);
fragment_uniform_buffer_0[108] = float4(_CoCParams[0], _CoCParams[1], _CoCParams[2], _CoCParams[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
}
Pass
{
Name "Bokeh Depth Of Field Blur"
LOD 100
Tags { "RenderPipeline" = "UniversalPipeline" }
ZTest Always
ZWrite Off
Cull Off
GpuProgramID 149672
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
float4 _BlitScaleBias;
static float4 vertex_uniform_buffer_0[132];
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;
};
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()
{
uint vertex_unnamed_27 = 1u & 31u;
float vertex_unnamed_39 = float(spvBitfieldInsert(0u, uint(gl_VertexIndex) - uint(gl_BaseVertexARB), vertex_unnamed_27, min((1u & 31u), (32u - vertex_unnamed_27))));
float vertex_unnamed_40 = float((uint(gl_VertexIndex) - uint(gl_BaseVertexARB)) & 2u);
gl_Position.x = mad(vertex_unnamed_39, 2.0f, -1.0f);
gl_Position.y = mad(vertex_unnamed_40, 2.0f, -1.0f);
vertex_output_1.x = mad(vertex_unnamed_39, vertex_uniform_buffer_0[131u].x, vertex_uniform_buffer_0[131u].z);
vertex_output_1.y = mad(((-0.0f) - vertex_unnamed_40) + 1.0f, vertex_uniform_buffer_0[131u].y, vertex_uniform_buffer_0[131u].w);
gl_Position.z = 1.0f;
gl_Position.w = 1.0f;
}
Vertex_Stage_Output vert(Vertex_Stage_Input stage_input)
{
vertex_uniform_buffer_0[131] = 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[101];
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;
};
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()
{
uint vertex_unnamed_30 = 1u & 31u;
float vertex_unnamed_42 = float(spvBitfieldInsert(0u, uint(gl_VertexIndex) - uint(gl_BaseVertexARB), vertex_unnamed_30, min((1u & 31u), (32u - vertex_unnamed_30))));
float vertex_unnamed_43 = float((uint(gl_VertexIndex) - uint(gl_BaseVertexARB)) & 2u);
gl_Position.x = mad(vertex_unnamed_42, 2.0f, -1.0f);
gl_Position.y = mad(vertex_unnamed_43, 2.0f, -1.0f);
vertex_output_1.x = mad(vertex_unnamed_42, vertex_uniform_buffer_0[100u].x, vertex_uniform_buffer_0[100u].z);
vertex_output_1.y = mad(((-0.0f) - vertex_unnamed_43) + 1.0f, vertex_uniform_buffer_0[100u].y, vertex_uniform_buffer_0[100u].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[100] = 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
float4 _RTHandleScale;
float4 _BlitTexture_TexelSize;
float4 _BokehKernel[42];
float4 _BokehConstants;
static float4 fragment_uniform_buffer_0[183];
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.w;
float fragment_unnamed_54 = mad((-0.0f) - fragment_uniform_buffer_0[133u].x, 0.5f, 1.0f);
float fragment_unnamed_57 = mad((-0.0f) - fragment_uniform_buffer_0[133u].y, 0.5f, 1.0f);
float4 fragment_unnamed_74 = _BlitTexture.SampleBias(S0, float2(min(fragment_unnamed_54, fragment_input_1.x) * fragment_uniform_buffer_0[28u].x, min(fragment_unnamed_57, fragment_input_1.y) * fragment_uniform_buffer_0[28u].y), fragment_uniform_buffer_0[4u].x);
float fragment_unnamed_76 = fragment_unnamed_74.x;
float fragment_unnamed_77 = fragment_unnamed_74.y;
float fragment_unnamed_78 = fragment_unnamed_74.z;
float fragment_unnamed_79 = fragment_unnamed_74.w;
float fragment_unnamed_92 = clamp((max(min(fragment_unnamed_44, fragment_unnamed_79), 0.0f) + fragment_uniform_buffer_0[182u].y) / fragment_uniform_buffer_0[182u].y, 0.0f, 1.0f);
float fragment_unnamed_114 = asfloat(((((-0.0f) - fragment_unnamed_79) >= fragment_uniform_buffer_0[182u].x) ? 4294967295u : 0u) & 1065353216u) * clamp((((-0.0f) - fragment_unnamed_79) + fragment_uniform_buffer_0[182u].y) / fragment_uniform_buffer_0[182u].y, 0.0f, 1.0f);
float fragment_unnamed_115 = asfloat(1065353216u);
float fragment_unnamed_124 = asfloat(1065353216u);
float fragment_unnamed_125 = asfloat(0u);
float fragment_unnamed_128;
float fragment_unnamed_130;
float fragment_unnamed_132;
float fragment_unnamed_134;
float fragment_unnamed_136;
float fragment_unnamed_138;
float fragment_unnamed_140;
float fragment_unnamed_142;
fragment_unnamed_128 = fragment_unnamed_92 * fragment_unnamed_76;
fragment_unnamed_130 = fragment_unnamed_92 * fragment_unnamed_77;
fragment_unnamed_132 = fragment_unnamed_92 * fragment_unnamed_78;
fragment_unnamed_134 = fragment_unnamed_92 * fragment_unnamed_115;
fragment_unnamed_136 = fragment_unnamed_114 * fragment_unnamed_76;
fragment_unnamed_138 = fragment_unnamed_114 * fragment_unnamed_77;
fragment_unnamed_140 = fragment_unnamed_114 * fragment_unnamed_78;
fragment_unnamed_142 = fragment_unnamed_114 * fragment_unnamed_115;
uint fragment_unnamed_186;
uint fragment_unnamed_187;
float4 fragment_unnamed_207;
float fragment_unnamed_209;
float fragment_unnamed_210;
float fragment_unnamed_211;
float fragment_unnamed_212;
uint fragment_unnamed_215;
uint fragment_unnamed_227;
float fragment_unnamed_243;
float fragment_unnamed_253;
for (float fragment_unnamed_126 = fragment_unnamed_125; !(int(asuint(fragment_unnamed_126)) >= int(42u)); fragment_unnamed_186 = asuint(fragment_unnamed_126), fragment_unnamed_187 = fragment_unnamed_186 + 140u, fragment_unnamed_207 = _BlitTexture.SampleBias(S0, float2(min(fragment_unnamed_54, fragment_input_1.x + fragment_uniform_buffer_0[fragment_unnamed_187].w) * fragment_uniform_buffer_0[28u].x, min(fragment_unnamed_57, fragment_input_1.y + fragment_uniform_buffer_0[fragment_unnamed_187].y) * fragment_uniform_buffer_0[28u].y), fragment_uniform_buffer_0[4u].x), fragment_unnamed_209 = fragment_unnamed_207.x, fragment_unnamed_210 = fragment_unnamed_207.y, fragment_unnamed_211 = fragment_unnamed_207.z, fragment_unnamed_212 = fragment_unnamed_207.w, fragment_unnamed_215 = asuint(fragment_unnamed_126), fragment_unnamed_227 = asuint(fragment_unnamed_126), fragment_unnamed_243 = clamp(((max(min(fragment_unnamed_44, fragment_unnamed_212), 0.0f) + ((-0.0f) - fragment_uniform_buffer_0[fragment_unnamed_215 + 140u].z)) + fragment_uniform_buffer_0[182u].y) / fragment_uniform_buffer_0[182u].y, 0.0f, 1.0f), fragment_unnamed_253 = asfloat(((((-0.0f) - fragment_unnamed_212) >= fragment_uniform_buffer_0[182u].x) ? 4294967295u : 0u) & 1065353216u) * clamp(((((-0.0f) - fragment_unnamed_212) + ((-0.0f) - fragment_uniform_buffer_0[fragment_unnamed_227 + 140u].z)) + fragment_uniform_buffer_0[182u].y) / fragment_uniform_buffer_0[182u].y, 0.0f, 1.0f), fragment_unnamed_126 = asfloat(asuint(fragment_unnamed_126) + 1u), fragment_unnamed_128 = mad(fragment_unnamed_209, fragment_unnamed_243, fragment_unnamed_128), fragment_unnamed_130 = mad(fragment_unnamed_210, fragment_unnamed_243, fragment_unnamed_130), fragment_unnamed_132 = mad(fragment_unnamed_211, fragment_unnamed_243, fragment_unnamed_132), fragment_unnamed_134 = mad(fragment_unnamed_124, fragment_unnamed_243, fragment_unnamed_134), fragment_unnamed_136 = mad(fragment_unnamed_209, fragment_unnamed_253, fragment_unnamed_136), fragment_unnamed_138 = mad(fragment_unnamed_210, fragment_unnamed_253, fragment_unnamed_138), fragment_unnamed_140 = mad(fragment_unnamed_211, fragment_unnamed_253, fragment_unnamed_140), fragment_unnamed_142 = mad(fragment_unnamed_124, fragment_unnamed_253, fragment_unnamed_142))
{
}
float fragment_unnamed_151 = asfloat(((fragment_unnamed_134 == 0.0f) ? 4294967295u : 0u) & 1065353216u) + fragment_unnamed_134;
float fragment_unnamed_152 = fragment_unnamed_128 / fragment_unnamed_151;
float fragment_unnamed_153 = fragment_unnamed_130 / fragment_unnamed_151;
float fragment_unnamed_154 = fragment_unnamed_132 / fragment_unnamed_151;
float fragment_unnamed_159 = asfloat(((fragment_unnamed_142 == 0.0f) ? 4294967295u : 0u) & 1065353216u) + fragment_unnamed_142;
float fragment_unnamed_165 = min(fragment_unnamed_142 * 0.073060296475887298583984375f, 1.0f);
fragment_output_0.x = mad(fragment_unnamed_165, ((-0.0f) - fragment_unnamed_152) + (fragment_unnamed_136 / fragment_unnamed_159), fragment_unnamed_152);
fragment_output_0.y = mad(fragment_unnamed_165, ((-0.0f) - fragment_unnamed_153) + (fragment_unnamed_138 / fragment_unnamed_159), fragment_unnamed_153);
fragment_output_0.z = mad(fragment_unnamed_165, ((-0.0f) - fragment_unnamed_154) + (fragment_unnamed_140 / fragment_unnamed_159), fragment_unnamed_154);
fragment_output_0.w = fragment_unnamed_165;
}
Fragment_Stage_Output frag(Fragment_Stage_Input stage_input)
{
fragment_uniform_buffer_0[28] = float4(_RTHandleScale[0], _RTHandleScale[1], _RTHandleScale[2], _RTHandleScale[3]);
fragment_uniform_buffer_0[133] = float4(_BlitTexture_TexelSize[0], _BlitTexture_TexelSize[1], _BlitTexture_TexelSize[2], _BlitTexture_TexelSize[3]);
fragment_uniform_buffer_0[140] = float4(_BokehKernel[0][0], _BokehKernel[0][1], _BokehKernel[0][2], _BokehKernel[0][3]);
fragment_uniform_buffer_0[141] = float4(_BokehKernel[1][0], _BokehKernel[1][1], _BokehKernel[1][2], _BokehKernel[1][3]);
fragment_uniform_buffer_0[142] = float4(_BokehKernel[2][0], _BokehKernel[2][1], _BokehKernel[2][2], _BokehKernel[2][3]);
fragment_uniform_buffer_0[143] = float4(_BokehKernel[3][0], _BokehKernel[3][1], _BokehKernel[3][2], _BokehKernel[3][3]);
fragment_uniform_buffer_0[144] = float4(_BokehKernel[4][0], _BokehKernel[4][1], _BokehKernel[4][2], _BokehKernel[4][3]);
fragment_uniform_buffer_0[145] = float4(_BokehKernel[5][0], _BokehKernel[5][1], _BokehKernel[5][2], _BokehKernel[5][3]);
fragment_uniform_buffer_0[146] = float4(_BokehKernel[6][0], _BokehKernel[6][1], _BokehKernel[6][2], _BokehKernel[6][3]);
fragment_uniform_buffer_0[147] = float4(_BokehKernel[7][0], _BokehKernel[7][1], _BokehKernel[7][2], _BokehKernel[7][3]);
fragment_uniform_buffer_0[148] = float4(_BokehKernel[8][0], _BokehKernel[8][1], _BokehKernel[8][2], _BokehKernel[8][3]);
fragment_uniform_buffer_0[149] = float4(_BokehKernel[9][0], _BokehKernel[9][1], _BokehKernel[9][2], _BokehKernel[9][3]);
fragment_uniform_buffer_0[150] = float4(_BokehKernel[10][0], _BokehKernel[10][1], _BokehKernel[10][2], _BokehKernel[10][3]);
fragment_uniform_buffer_0[151] = float4(_BokehKernel[11][0], _BokehKernel[11][1], _BokehKernel[11][2], _BokehKernel[11][3]);
fragment_uniform_buffer_0[152] = float4(_BokehKernel[12][0], _BokehKernel[12][1], _BokehKernel[12][2], _BokehKernel[12][3]);
fragment_uniform_buffer_0[153] = float4(_BokehKernel[13][0], _BokehKernel[13][1], _BokehKernel[13][2], _BokehKernel[13][3]);
fragment_uniform_buffer_0[154] = float4(_BokehKernel[14][0], _BokehKernel[14][1], _BokehKernel[14][2], _BokehKernel[14][3]);
fragment_uniform_buffer_0[155] = float4(_BokehKernel[15][0], _BokehKernel[15][1], _BokehKernel[15][2], _BokehKernel[15][3]);
fragment_uniform_buffer_0[156] = float4(_BokehKernel[16][0], _BokehKernel[16][1], _BokehKernel[16][2], _BokehKernel[16][3]);
fragment_uniform_buffer_0[157] = float4(_BokehKernel[17][0], _BokehKernel[17][1], _BokehKernel[17][2], _BokehKernel[17][3]);
fragment_uniform_buffer_0[158] = float4(_BokehKernel[18][0], _BokehKernel[18][1], _BokehKernel[18][2], _BokehKernel[18][3]);
fragment_uniform_buffer_0[159] = float4(_BokehKernel[19][0], _BokehKernel[19][1], _BokehKernel[19][2], _BokehKernel[19][3]);
fragment_uniform_buffer_0[160] = float4(_BokehKernel[20][0], _BokehKernel[20][1], _BokehKernel[20][2], _BokehKernel[20][3]);
fragment_uniform_buffer_0[161] = float4(_BokehKernel[21][0], _BokehKernel[21][1], _BokehKernel[21][2], _BokehKernel[21][3]);
fragment_uniform_buffer_0[162] = float4(_BokehKernel[22][0], _BokehKernel[22][1], _BokehKernel[22][2], _BokehKernel[22][3]);
fragment_uniform_buffer_0[163] = float4(_BokehKernel[23][0], _BokehKernel[23][1], _BokehKernel[23][2], _BokehKernel[23][3]);
fragment_uniform_buffer_0[164] = float4(_BokehKernel[24][0], _BokehKernel[24][1], _BokehKernel[24][2], _BokehKernel[24][3]);
fragment_uniform_buffer_0[165] = float4(_BokehKernel[25][0], _BokehKernel[25][1], _BokehKernel[25][2], _BokehKernel[25][3]);
fragment_uniform_buffer_0[166] = float4(_BokehKernel[26][0], _BokehKernel[26][1], _BokehKernel[26][2], _BokehKernel[26][3]);
fragment_uniform_buffer_0[167] = float4(_BokehKernel[27][0], _BokehKernel[27][1], _BokehKernel[27][2], _BokehKernel[27][3]);
fragment_uniform_buffer_0[168] = float4(_BokehKernel[28][0], _BokehKernel[28][1], _BokehKernel[28][2], _BokehKernel[28][3]);
fragment_uniform_buffer_0[169] = float4(_BokehKernel[29][0], _BokehKernel[29][1], _BokehKernel[29][2], _BokehKernel[29][3]);
fragment_uniform_buffer_0[170] = float4(_BokehKernel[30][0], _BokehKernel[30][1], _BokehKernel[30][2], _BokehKernel[30][3]);
fragment_uniform_buffer_0[171] = float4(_BokehKernel[31][0], _BokehKernel[31][1], _BokehKernel[31][2], _BokehKernel[31][3]);
fragment_uniform_buffer_0[172] = float4(_BokehKernel[32][0], _BokehKernel[32][1], _BokehKernel[32][2], _BokehKernel[32][3]);
fragment_uniform_buffer_0[173] = float4(_BokehKernel[33][0], _BokehKernel[33][1], _BokehKernel[33][2], _BokehKernel[33][3]);
fragment_uniform_buffer_0[174] = float4(_BokehKernel[34][0], _BokehKernel[34][1], _BokehKernel[34][2], _BokehKernel[34][3]);
fragment_uniform_buffer_0[175] = float4(_BokehKernel[35][0], _BokehKernel[35][1], _BokehKernel[35][2], _BokehKernel[35][3]);
fragment_uniform_buffer_0[176] = float4(_BokehKernel[36][0], _BokehKernel[36][1], _BokehKernel[36][2], _BokehKernel[36][3]);
fragment_uniform_buffer_0[177] = float4(_BokehKernel[37][0], _BokehKernel[37][1], _BokehKernel[37][2], _BokehKernel[37][3]);
fragment_uniform_buffer_0[178] = float4(_BokehKernel[38][0], _BokehKernel[38][1], _BokehKernel[38][2], _BokehKernel[38][3]);
fragment_uniform_buffer_0[179] = float4(_BokehKernel[39][0], _BokehKernel[39][1], _BokehKernel[39][2], _BokehKernel[39][3]);
fragment_uniform_buffer_0[180] = float4(_BokehKernel[40][0], _BokehKernel[40][1], _BokehKernel[40][2], _BokehKernel[40][3]);
fragment_uniform_buffer_0[181] = float4(_BokehKernel[41][0], _BokehKernel[41][1], _BokehKernel[41][2], _BokehKernel[41][3]);
fragment_uniform_buffer_0[182] = float4(_BokehConstants[0], _BokehConstants[1], _BokehConstants[2], _BokehConstants[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
float4 _RTHandleScale;
float4 _BlitTexture_TexelSize;
float4 _BokehKernel[42];
float4 _BokehConstants;
static float4 fragment_uniform_buffer_0[152];
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()
{
float fragment_unnamed_31 = float(uint(gl_Layer));
float4 fragment_unnamed_46 = _BlitTexture.SampleBias(S0, float3(fragment_input_1.x, fragment_input_1.y, fragment_unnamed_31), fragment_uniform_buffer_0[4u].x);
float fragment_unnamed_49 = fragment_unnamed_46.w;
float fragment_unnamed_59 = mad((-0.0f) - fragment_uniform_buffer_0[102u].x, 0.5f, 1.0f);
float fragment_unnamed_62 = mad((-0.0f) - fragment_uniform_buffer_0[102u].y, 0.5f, 1.0f);
float4 fragment_unnamed_79 = _BlitTexture.SampleBias(S0, float3(min(fragment_unnamed_59, fragment_input_1.x) * fragment_uniform_buffer_0[27u].x, min(fragment_unnamed_62, fragment_input_1.y) * fragment_uniform_buffer_0[27u].y, fragment_unnamed_31), fragment_uniform_buffer_0[4u].x);
float fragment_unnamed_81 = fragment_unnamed_79.x;
float fragment_unnamed_82 = fragment_unnamed_79.y;
float fragment_unnamed_83 = fragment_unnamed_79.z;
float fragment_unnamed_84 = fragment_unnamed_79.w;
float fragment_unnamed_103 = clamp((max(min(fragment_unnamed_49, fragment_unnamed_84), 0.0f) + fragment_uniform_buffer_0[151u].y) / fragment_uniform_buffer_0[151u].y, 0.0f, 1.0f);
float fragment_unnamed_116 = clamp((((-0.0f) - fragment_unnamed_84) + fragment_uniform_buffer_0[151u].y) / fragment_uniform_buffer_0[151u].y, 0.0f, 1.0f) * asfloat(((((-0.0f) - fragment_unnamed_84) >= fragment_uniform_buffer_0[151u].x) ? 4294967295u : 0u) & 1065353216u);
float fragment_unnamed_117 = asfloat(1065353216u);
float fragment_unnamed_126 = asfloat(1065353216u);
float fragment_unnamed_127 = asfloat(0u);
float fragment_unnamed_128;
float fragment_unnamed_130;
float fragment_unnamed_132;
float fragment_unnamed_134;
float fragment_unnamed_136;
float fragment_unnamed_138;
float fragment_unnamed_140;
float fragment_unnamed_142;
fragment_unnamed_128 = fragment_unnamed_103 * fragment_unnamed_81;
fragment_unnamed_130 = fragment_unnamed_103 * fragment_unnamed_82;
fragment_unnamed_132 = fragment_unnamed_103 * fragment_unnamed_83;
fragment_unnamed_134 = fragment_unnamed_103 * fragment_unnamed_117;
fragment_unnamed_136 = fragment_unnamed_116 * fragment_unnamed_81;
fragment_unnamed_138 = fragment_unnamed_116 * fragment_unnamed_82;
fragment_unnamed_140 = fragment_unnamed_116 * fragment_unnamed_83;
fragment_unnamed_142 = fragment_unnamed_116 * fragment_unnamed_117;
uint fragment_unnamed_189;
float4 fragment_unnamed_209;
float fragment_unnamed_211;
float fragment_unnamed_212;
float fragment_unnamed_213;
float fragment_unnamed_214;
float fragment_unnamed_245;
float fragment_unnamed_255;
for (float fragment_unnamed_144 = fragment_unnamed_127; !(int(asuint(fragment_unnamed_144)) >= int(42u)); fragment_unnamed_189 = asuint(fragment_unnamed_144) + 109u, fragment_unnamed_209 = _BlitTexture.SampleBias(S0, float3(min(fragment_unnamed_59, fragment_input_1.x + fragment_uniform_buffer_0[fragment_unnamed_189].w) * fragment_uniform_buffer_0[27u].x, min(fragment_unnamed_62, fragment_input_1.y + fragment_uniform_buffer_0[fragment_unnamed_189].y) * fragment_uniform_buffer_0[27u].y, fragment_unnamed_31), fragment_uniform_buffer_0[4u].x), fragment_unnamed_211 = fragment_unnamed_209.x, fragment_unnamed_212 = fragment_unnamed_209.y, fragment_unnamed_213 = fragment_unnamed_209.z, fragment_unnamed_214 = fragment_unnamed_209.w, fragment_unnamed_245 = clamp(((max(min(fragment_unnamed_49, fragment_unnamed_214), 0.0f) + ((-0.0f) - fragment_uniform_buffer_0[asuint(fragment_unnamed_144) + 109u].z)) + fragment_uniform_buffer_0[151u].y) / fragment_uniform_buffer_0[151u].y, 0.0f, 1.0f), fragment_unnamed_255 = clamp(((((-0.0f) - fragment_unnamed_214) + ((-0.0f) - fragment_uniform_buffer_0[asuint(fragment_unnamed_144) + 109u].z)) + fragment_uniform_buffer_0[151u].y) / fragment_uniform_buffer_0[151u].y, 0.0f, 1.0f) * asfloat(((((-0.0f) - fragment_unnamed_214) >= fragment_uniform_buffer_0[151u].x) ? 4294967295u : 0u) & 1065353216u), fragment_unnamed_128 = mad(fragment_unnamed_211, fragment_unnamed_245, fragment_unnamed_128), fragment_unnamed_130 = mad(fragment_unnamed_212, fragment_unnamed_245, fragment_unnamed_130), fragment_unnamed_132 = mad(fragment_unnamed_213, fragment_unnamed_245, fragment_unnamed_132), fragment_unnamed_134 = mad(fragment_unnamed_126, fragment_unnamed_245, fragment_unnamed_134), fragment_unnamed_136 = mad(fragment_unnamed_211, fragment_unnamed_255, fragment_unnamed_136), fragment_unnamed_138 = mad(fragment_unnamed_212, fragment_unnamed_255, fragment_unnamed_138), fragment_unnamed_140 = mad(fragment_unnamed_213, fragment_unnamed_255, fragment_unnamed_140), fragment_unnamed_142 = mad(fragment_unnamed_126, fragment_unnamed_255, fragment_unnamed_142), fragment_unnamed_144 = asfloat(asuint(fragment_unnamed_144) + 1u))
{
}
float fragment_unnamed_153 = asfloat(((fragment_unnamed_134 == 0.0f) ? 4294967295u : 0u) & 1065353216u) + fragment_unnamed_134;
float fragment_unnamed_154 = fragment_unnamed_128 / fragment_unnamed_153;
float fragment_unnamed_155 = fragment_unnamed_130 / fragment_unnamed_153;
float fragment_unnamed_156 = fragment_unnamed_132 / fragment_unnamed_153;
float fragment_unnamed_161 = asfloat(((fragment_unnamed_142 == 0.0f) ? 4294967295u : 0u) & 1065353216u) + fragment_unnamed_142;
float fragment_unnamed_167 = min(fragment_unnamed_142 * 0.073060296475887298583984375f, 1.0f);
fragment_output_0.x = mad(fragment_unnamed_167, ((-0.0f) - fragment_unnamed_154) + (fragment_unnamed_136 / fragment_unnamed_161), fragment_unnamed_154);
fragment_output_0.y = mad(fragment_unnamed_167, ((-0.0f) - fragment_unnamed_155) + (fragment_unnamed_138 / fragment_unnamed_161), fragment_unnamed_155);
fragment_output_0.z = mad(fragment_unnamed_167, ((-0.0f) - fragment_unnamed_156) + (fragment_unnamed_140 / fragment_unnamed_161), fragment_unnamed_156);
fragment_output_0.w = fragment_unnamed_167;
}
Fragment_Stage_Output frag(Fragment_Stage_Input stage_input)
{
fragment_uniform_buffer_0[27] = float4(_RTHandleScale[0], _RTHandleScale[1], _RTHandleScale[2], _RTHandleScale[3]);
fragment_uniform_buffer_0[102] = float4(_BlitTexture_TexelSize[0], _BlitTexture_TexelSize[1], _BlitTexture_TexelSize[2], _BlitTexture_TexelSize[3]);
fragment_uniform_buffer_0[109] = float4(_BokehKernel[0][0], _BokehKernel[0][1], _BokehKernel[0][2], _BokehKernel[0][3]);
fragment_uniform_buffer_0[110] = float4(_BokehKernel[1][0], _BokehKernel[1][1], _BokehKernel[1][2], _BokehKernel[1][3]);
fragment_uniform_buffer_0[111] = float4(_BokehKernel[2][0], _BokehKernel[2][1], _BokehKernel[2][2], _BokehKernel[2][3]);
fragment_uniform_buffer_0[112] = float4(_BokehKernel[3][0], _BokehKernel[3][1], _BokehKernel[3][2], _BokehKernel[3][3]);
fragment_uniform_buffer_0[113] = float4(_BokehKernel[4][0], _BokehKernel[4][1], _BokehKernel[4][2], _BokehKernel[4][3]);
fragment_uniform_buffer_0[114] = float4(_BokehKernel[5][0], _BokehKernel[5][1], _BokehKernel[5][2], _BokehKernel[5][3]);
fragment_uniform_buffer_0[115] = float4(_BokehKernel[6][0], _BokehKernel[6][1], _BokehKernel[6][2], _BokehKernel[6][3]);
fragment_uniform_buffer_0[116] = float4(_BokehKernel[7][0], _BokehKernel[7][1], _BokehKernel[7][2], _BokehKernel[7][3]);
fragment_uniform_buffer_0[117] = float4(_BokehKernel[8][0], _BokehKernel[8][1], _BokehKernel[8][2], _BokehKernel[8][3]);
fragment_uniform_buffer_0[118] = float4(_BokehKernel[9][0], _BokehKernel[9][1], _BokehKernel[9][2], _BokehKernel[9][3]);
fragment_uniform_buffer_0[119] = float4(_BokehKernel[10][0], _BokehKernel[10][1], _BokehKernel[10][2], _BokehKernel[10][3]);
fragment_uniform_buffer_0[120] = float4(_BokehKernel[11][0], _BokehKernel[11][1], _BokehKernel[11][2], _BokehKernel[11][3]);
fragment_uniform_buffer_0[121] = float4(_BokehKernel[12][0], _BokehKernel[12][1], _BokehKernel[12][2], _BokehKernel[12][3]);
fragment_uniform_buffer_0[122] = float4(_BokehKernel[13][0], _BokehKernel[13][1], _BokehKernel[13][2], _BokehKernel[13][3]);
fragment_uniform_buffer_0[123] = float4(_BokehKernel[14][0], _BokehKernel[14][1], _BokehKernel[14][2], _BokehKernel[14][3]);
fragment_uniform_buffer_0[124] = float4(_BokehKernel[15][0], _BokehKernel[15][1], _BokehKernel[15][2], _BokehKernel[15][3]);
fragment_uniform_buffer_0[125] = float4(_BokehKernel[16][0], _BokehKernel[16][1], _BokehKernel[16][2], _BokehKernel[16][3]);
fragment_uniform_buffer_0[126] = float4(_BokehKernel[17][0], _BokehKernel[17][1], _BokehKernel[17][2], _BokehKernel[17][3]);
fragment_uniform_buffer_0[127] = float4(_BokehKernel[18][0], _BokehKernel[18][1], _BokehKernel[18][2], _BokehKernel[18][3]);
fragment_uniform_buffer_0[128] = float4(_BokehKernel[19][0], _BokehKernel[19][1], _BokehKernel[19][2], _BokehKernel[19][3]);
fragment_uniform_buffer_0[129] = float4(_BokehKernel[20][0], _BokehKernel[20][1], _BokehKernel[20][2], _BokehKernel[20][3]);
fragment_uniform_buffer_0[130] = float4(_BokehKernel[21][0], _BokehKernel[21][1], _BokehKernel[21][2], _BokehKernel[21][3]);
fragment_uniform_buffer_0[131] = float4(_BokehKernel[22][0], _BokehKernel[22][1], _BokehKernel[22][2], _BokehKernel[22][3]);
fragment_uniform_buffer_0[132] = float4(_BokehKernel[23][0], _BokehKernel[23][1], _BokehKernel[23][2], _BokehKernel[23][3]);
fragment_uniform_buffer_0[133] = float4(_BokehKernel[24][0], _BokehKernel[24][1], _BokehKernel[24][2], _BokehKernel[24][3]);
fragment_uniform_buffer_0[134] = float4(_BokehKernel[25][0], _BokehKernel[25][1], _BokehKernel[25][2], _BokehKernel[25][3]);
fragment_uniform_buffer_0[135] = float4(_BokehKernel[26][0], _BokehKernel[26][1], _BokehKernel[26][2], _BokehKernel[26][3]);
fragment_uniform_buffer_0[136] = float4(_BokehKernel[27][0], _BokehKernel[27][1], _BokehKernel[27][2], _BokehKernel[27][3]);
fragment_uniform_buffer_0[137] = float4(_BokehKernel[28][0], _BokehKernel[28][1], _BokehKernel[28][2], _BokehKernel[28][3]);
fragment_uniform_buffer_0[138] = float4(_BokehKernel[29][0], _BokehKernel[29][1], _BokehKernel[29][2], _BokehKernel[29][3]);
fragment_uniform_buffer_0[139] = float4(_BokehKernel[30][0], _BokehKernel[30][1], _BokehKernel[30][2], _BokehKernel[30][3]);
fragment_uniform_buffer_0[140] = float4(_BokehKernel[31][0], _BokehKernel[31][1], _BokehKernel[31][2], _BokehKernel[31][3]);
fragment_uniform_buffer_0[141] = float4(_BokehKernel[32][0], _BokehKernel[32][1], _BokehKernel[32][2], _BokehKernel[32][3]);
fragment_uniform_buffer_0[142] = float4(_BokehKernel[33][0], _BokehKernel[33][1], _BokehKernel[33][2], _BokehKernel[33][3]);
fragment_uniform_buffer_0[143] = float4(_BokehKernel[34][0], _BokehKernel[34][1], _BokehKernel[34][2], _BokehKernel[34][3]);
fragment_uniform_buffer_0[144] = float4(_BokehKernel[35][0], _BokehKernel[35][1], _BokehKernel[35][2], _BokehKernel[35][3]);
fragment_uniform_buffer_0[145] = float4(_BokehKernel[36][0], _BokehKernel[36][1], _BokehKernel[36][2], _BokehKernel[36][3]);
fragment_uniform_buffer_0[146] = float4(_BokehKernel[37][0], _BokehKernel[37][1], _BokehKernel[37][2], _BokehKernel[37][3]);
fragment_uniform_buffer_0[147] = float4(_BokehKernel[38][0], _BokehKernel[38][1], _BokehKernel[38][2], _BokehKernel[38][3]);
fragment_uniform_buffer_0[148] = float4(_BokehKernel[39][0], _BokehKernel[39][1], _BokehKernel[39][2], _BokehKernel[39][3]);
fragment_uniform_buffer_0[149] = float4(_BokehKernel[40][0], _BokehKernel[40][1], _BokehKernel[40][2], _BokehKernel[40][3]);
fragment_uniform_buffer_0[150] = float4(_BokehKernel[41][0], _BokehKernel[41][1], _BokehKernel[41][2], _BokehKernel[41][3]);
fragment_uniform_buffer_0[151] = float4(_BokehConstants[0], _BokehConstants[1], _BokehConstants[2], _BokehConstants[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
}
Pass
{
Name "Bokeh Depth Of Field Post Blur"
LOD 100
Tags { "RenderPipeline" = "UniversalPipeline" }
ZTest Always
ZWrite Off
Cull Off
GpuProgramID 238714
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
float4 _BlitScaleBias;
static float4 vertex_uniform_buffer_0[132];
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;
};
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()
{
uint vertex_unnamed_27 = 1u & 31u;
float vertex_unnamed_39 = float(spvBitfieldInsert(0u, uint(gl_VertexIndex) - uint(gl_BaseVertexARB), vertex_unnamed_27, min((1u & 31u), (32u - vertex_unnamed_27))));
float vertex_unnamed_40 = float((uint(gl_VertexIndex) - uint(gl_BaseVertexARB)) & 2u);
gl_Position.x = mad(vertex_unnamed_39, 2.0f, -1.0f);
gl_Position.y = mad(vertex_unnamed_40, 2.0f, -1.0f);
vertex_output_1.x = mad(vertex_unnamed_39, vertex_uniform_buffer_0[131u].x, vertex_uniform_buffer_0[131u].z);
vertex_output_1.y = mad(((-0.0f) - vertex_unnamed_40) + 1.0f, vertex_uniform_buffer_0[131u].y, vertex_uniform_buffer_0[131u].w);
gl_Position.z = 1.0f;
gl_Position.w = 1.0f;
}
Vertex_Stage_Output vert(Vertex_Stage_Input stage_input)
{
vertex_uniform_buffer_0[131] = 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[101];
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;
};
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()
{
uint vertex_unnamed_30 = 1u & 31u;
float vertex_unnamed_42 = float(spvBitfieldInsert(0u, uint(gl_VertexIndex) - uint(gl_BaseVertexARB), vertex_unnamed_30, min((1u & 31u), (32u - vertex_unnamed_30))));
float vertex_unnamed_43 = float((uint(gl_VertexIndex) - uint(gl_BaseVertexARB)) & 2u);
gl_Position.x = mad(vertex_unnamed_42, 2.0f, -1.0f);
gl_Position.y = mad(vertex_unnamed_43, 2.0f, -1.0f);
vertex_output_1.x = mad(vertex_unnamed_42, vertex_uniform_buffer_0[100u].x, vertex_uniform_buffer_0[100u].z);
vertex_output_1.y = mad(((-0.0f) - vertex_unnamed_43) + 1.0f, vertex_uniform_buffer_0[100u].y, vertex_uniform_buffer_0[100u].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[100] = 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
float4 _RTHandleScale;
float4 _BlitTexture_TexelSize;
float4 _SourceSize;
float4 _DownSampleScaleFactor;
static float4 fragment_uniform_buffer_0[139];
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()
{
float fragment_unnamed_40 = fragment_uniform_buffer_0[137u].z * fragment_uniform_buffer_0[138u].z;
float fragment_unnamed_42 = fragment_uniform_buffer_0[137u].z * fragment_uniform_buffer_0[138u].z;
float fragment_unnamed_43 = fragment_uniform_buffer_0[137u].w * fragment_uniform_buffer_0[138u].w;
float fragment_unnamed_46 = (-0.0f) - fragment_unnamed_43;
float fragment_unnamed_73 = (-0.0f) - fragment_uniform_buffer_0[133u].x;
float fragment_unnamed_75 = (-0.0f) - fragment_uniform_buffer_0[133u].y;
float fragment_unnamed_81 = mad(fragment_unnamed_73, 0.5f, fragment_uniform_buffer_0[28u].x);
float fragment_unnamed_82 = mad(fragment_unnamed_75, 0.5f, fragment_uniform_buffer_0[28u].y);
float fragment_unnamed_83 = mad(fragment_unnamed_73, 0.5f, fragment_uniform_buffer_0[28u].x);
float fragment_unnamed_84 = mad(fragment_unnamed_75, 0.5f, fragment_uniform_buffer_0[28u].y);
float4 fragment_unnamed_99 = _BlitTexture.SampleBias(S0, float2(min(mad((-0.0f) - fragment_unnamed_42, 0.5f, fragment_input_1.x), fragment_unnamed_81), min(mad(fragment_unnamed_46, 0.5f, fragment_input_1.y), fragment_unnamed_82)), fragment_uniform_buffer_0[4u].x);
float4 fragment_unnamed_108 = _BlitTexture.SampleBias(S0, float2(min(mad((-0.0f) - fragment_unnamed_40, -0.5f, fragment_input_1.x), fragment_unnamed_83), min(mad(fragment_unnamed_46, 0.5f, fragment_input_1.y), fragment_unnamed_84)), fragment_uniform_buffer_0[4u].x);
float4 fragment_unnamed_121 = _BlitTexture.SampleBias(S0, float2(min(mad(fragment_unnamed_40, -0.5f, fragment_input_1.x), fragment_unnamed_81), min(mad(fragment_uniform_buffer_0[137u].w * fragment_uniform_buffer_0[138u].w, 0.5f, fragment_input_1.y), fragment_unnamed_82)), fragment_uniform_buffer_0[4u].x);
float4 fragment_unnamed_130 = _BlitTexture.SampleBias(S0, float2(min(mad(fragment_unnamed_42, 0.5f, fragment_input_1.x), fragment_unnamed_83), min(mad(fragment_unnamed_43, 0.5f, fragment_input_1.y), fragment_unnamed_84)), fragment_uniform_buffer_0[4u].x);
fragment_output_0.x = (fragment_unnamed_130.x + ((fragment_unnamed_108.x + fragment_unnamed_99.x) + fragment_unnamed_121.x)) * 0.25f;
fragment_output_0.y = (fragment_unnamed_130.y + ((fragment_unnamed_108.y + fragment_unnamed_99.y) + fragment_unnamed_121.y)) * 0.25f;
fragment_output_0.z = (fragment_unnamed_130.z + ((fragment_unnamed_108.z + fragment_unnamed_99.z) + fragment_unnamed_121.z)) * 0.25f;
fragment_output_0.w = (fragment_unnamed_130.w + ((fragment_unnamed_108.w + fragment_unnamed_99.w) + fragment_unnamed_121.w)) * 0.25f;
}
Fragment_Stage_Output frag(Fragment_Stage_Input stage_input)
{
fragment_uniform_buffer_0[28] = float4(_RTHandleScale[0], _RTHandleScale[1], _RTHandleScale[2], _RTHandleScale[3]);
fragment_uniform_buffer_0[133] = float4(_BlitTexture_TexelSize[0], _BlitTexture_TexelSize[1], _BlitTexture_TexelSize[2], _BlitTexture_TexelSize[3]);
fragment_uniform_buffer_0[137] = float4(_SourceSize[0], _SourceSize[1], _SourceSize[2], _SourceSize[3]);
fragment_uniform_buffer_0[138] = float4(_DownSampleScaleFactor[0], _DownSampleScaleFactor[1], _DownSampleScaleFactor[2], _DownSampleScaleFactor[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
float4 _RTHandleScale;
float4 _BlitTexture_TexelSize;
float4 _SourceSize;
float4 _DownSampleScaleFactor;
static float4 fragment_uniform_buffer_0[108];
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()
{
float fragment_unnamed_42 = fragment_uniform_buffer_0[106u].z * fragment_uniform_buffer_0[107u].z;
float fragment_unnamed_44 = fragment_uniform_buffer_0[106u].z * fragment_uniform_buffer_0[107u].z;
float fragment_unnamed_45 = fragment_uniform_buffer_0[106u].w * fragment_uniform_buffer_0[107u].w;
float fragment_unnamed_48 = (-0.0f) - fragment_unnamed_45;
float fragment_unnamed_75 = (-0.0f) - fragment_uniform_buffer_0[102u].x;
float fragment_unnamed_77 = (-0.0f) - fragment_uniform_buffer_0[102u].y;
float fragment_unnamed_83 = mad(fragment_unnamed_75, 0.5f, fragment_uniform_buffer_0[27u].x);
float fragment_unnamed_84 = mad(fragment_unnamed_77, 0.5f, fragment_uniform_buffer_0[27u].y);
float fragment_unnamed_85 = mad(fragment_unnamed_75, 0.5f, fragment_uniform_buffer_0[27u].x);
float fragment_unnamed_86 = mad(fragment_unnamed_77, 0.5f, fragment_uniform_buffer_0[27u].y);
float fragment_unnamed_96 = float(uint(gl_Layer));
float4 fragment_unnamed_103 = _BlitTexture.SampleBias(S0, float3(min(mad((-0.0f) - fragment_unnamed_44, 0.5f, fragment_input_1.x), fragment_unnamed_83), min(mad(fragment_unnamed_48, 0.5f, fragment_input_1.y), fragment_unnamed_84), fragment_unnamed_96), fragment_uniform_buffer_0[4u].x);
float4 fragment_unnamed_113 = _BlitTexture.SampleBias(S0, float3(min(mad((-0.0f) - fragment_unnamed_42, -0.5f, fragment_input_1.x), fragment_unnamed_85), min(mad(fragment_unnamed_48, 0.5f, fragment_input_1.y), fragment_unnamed_86), fragment_unnamed_96), fragment_uniform_buffer_0[4u].x);
float4 fragment_unnamed_126 = _BlitTexture.SampleBias(S0, float3(min(mad(fragment_unnamed_42, -0.5f, fragment_input_1.x), fragment_unnamed_83), min(mad(fragment_uniform_buffer_0[106u].w * fragment_uniform_buffer_0[107u].w, 0.5f, fragment_input_1.y), fragment_unnamed_84), fragment_unnamed_96), fragment_uniform_buffer_0[4u].x);
float4 fragment_unnamed_135 = _BlitTexture.SampleBias(S0, float3(min(mad(fragment_unnamed_44, 0.5f, fragment_input_1.x), fragment_unnamed_85), min(mad(fragment_unnamed_45, 0.5f, fragment_input_1.y), fragment_unnamed_86), fragment_unnamed_96), fragment_uniform_buffer_0[4u].x);
fragment_output_0.x = (fragment_unnamed_135.x + ((fragment_unnamed_113.x + fragment_unnamed_103.x) + fragment_unnamed_126.x)) * 0.25f;
fragment_output_0.y = (fragment_unnamed_135.y + ((fragment_unnamed_113.y + fragment_unnamed_103.y) + fragment_unnamed_126.y)) * 0.25f;
fragment_output_0.z = (fragment_unnamed_135.z + ((fragment_unnamed_113.z + fragment_unnamed_103.z) + fragment_unnamed_126.z)) * 0.25f;
fragment_output_0.w = (fragment_unnamed_135.w + ((fragment_unnamed_113.w + fragment_unnamed_103.w) + fragment_unnamed_126.w)) * 0.25f;
}
Fragment_Stage_Output frag(Fragment_Stage_Input stage_input)
{
fragment_uniform_buffer_0[27] = float4(_RTHandleScale[0], _RTHandleScale[1], _RTHandleScale[2], _RTHandleScale[3]);
fragment_uniform_buffer_0[102] = float4(_BlitTexture_TexelSize[0], _BlitTexture_TexelSize[1], _BlitTexture_TexelSize[2], _BlitTexture_TexelSize[3]);
fragment_uniform_buffer_0[106] = float4(_SourceSize[0], _SourceSize[1], _SourceSize[2], _SourceSize[3]);
fragment_uniform_buffer_0[107] = float4(_DownSampleScaleFactor[0], _DownSampleScaleFactor[1], _DownSampleScaleFactor[2], _DownSampleScaleFactor[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
}
Pass
{
Name "Bokeh Depth Of Field Composite"
LOD 100
Tags { "RenderPipeline" = "UniversalPipeline" }
ZTest Always
ZWrite Off
Cull Off
GpuProgramID 300606
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
float4 _BlitScaleBias;
static float4 vertex_uniform_buffer_0[132];
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;
};
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()
{
uint vertex_unnamed_27 = 1u & 31u;
float vertex_unnamed_39 = float(spvBitfieldInsert(0u, uint(gl_VertexIndex) - uint(gl_BaseVertexARB), vertex_unnamed_27, min((1u & 31u), (32u - vertex_unnamed_27))));
float vertex_unnamed_40 = float((uint(gl_VertexIndex) - uint(gl_BaseVertexARB)) & 2u);
gl_Position.x = mad(vertex_unnamed_39, 2.0f, -1.0f);
gl_Position.y = mad(vertex_unnamed_40, 2.0f, -1.0f);
vertex_output_1.x = mad(vertex_unnamed_39, vertex_uniform_buffer_0[131u].x, vertex_uniform_buffer_0[131u].z);
vertex_output_1.y = mad(((-0.0f) - vertex_unnamed_40) + 1.0f, vertex_uniform_buffer_0[131u].y, vertex_uniform_buffer_0[131u].w);
gl_Position.z = 1.0f;
gl_Position.w = 1.0f;
}
Vertex_Stage_Output vert(Vertex_Stage_Input stage_input)
{
vertex_uniform_buffer_0[131] = 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[101];
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;
};
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()
{
uint vertex_unnamed_30 = 1u & 31u;
float vertex_unnamed_42 = float(spvBitfieldInsert(0u, uint(gl_VertexIndex) - uint(gl_BaseVertexARB), vertex_unnamed_30, min((1u & 31u), (32u - vertex_unnamed_30))));
float vertex_unnamed_43 = float((uint(gl_VertexIndex) - uint(gl_BaseVertexARB)) & 2u);
gl_Position.x = mad(vertex_unnamed_42, 2.0f, -1.0f);
gl_Position.y = mad(vertex_unnamed_43, 2.0f, -1.0f);
vertex_output_1.x = mad(vertex_unnamed_42, vertex_uniform_buffer_0[100u].x, vertex_uniform_buffer_0[100u].z);
vertex_output_1.y = mad(((-0.0f) - vertex_unnamed_43) + 1.0f, vertex_uniform_buffer_0[100u].y, vertex_uniform_buffer_0[100u].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[100] = 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
float4 _RTHandleScale;
float4 _BlitTexture_TexelSize;
float4 _SourceSize;
float4 _CoCParams;
static float4 fragment_uniform_buffer_0[140];
Texture2D<float4> _BlitTexture;
Texture2D<float4> _DofTexture;
Texture2D<float4> _FullCoCTexture;
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()
{
float fragment_unnamed_57 = min(mad((-0.0f) - fragment_uniform_buffer_0[133u].x, 0.5f, fragment_uniform_buffer_0[28u].x), fragment_input_1.x);
float fragment_unnamed_58 = min(mad((-0.0f) - fragment_uniform_buffer_0[133u].y, 0.5f, fragment_uniform_buffer_0[28u].y), fragment_input_1.y);
float4 fragment_unnamed_72 = _BlitTexture.SampleBias(S0, float2(fragment_unnamed_57, fragment_unnamed_58), fragment_uniform_buffer_0[4u].x);
float fragment_unnamed_74 = fragment_unnamed_72.x;
float fragment_unnamed_75 = fragment_unnamed_72.y;
float fragment_unnamed_76 = fragment_unnamed_72.z;
float fragment_unnamed_77 = fragment_unnamed_72.w;
float fragment_unnamed_105 = clamp((1.0f / (fragment_uniform_buffer_0[137u].w + fragment_uniform_buffer_0[137u].w)) * mad((-0.0f) - fragment_uniform_buffer_0[137u].w, 2.0f, dot((_FullCoCTexture.SampleBias(S0, float2(fragment_unnamed_57, fragment_unnamed_58), fragment_uniform_buffer_0[4u].x).x + (-0.5f)).xx, fragment_uniform_buffer_0[139u].z.xx)), 0.0f, 1.0f);
float fragment_unnamed_106 = mad(fragment_unnamed_105, -2.0f, 3.0f);
float fragment_unnamed_109 = fragment_unnamed_105 * fragment_unnamed_105;
float4 fragment_unnamed_133 = _DofTexture.SampleBias(S0, float2(min(fragment_uniform_buffer_0[28u].x + ((-0.0f) - fragment_uniform_buffer_0[133u].x), fragment_input_1.x), min(fragment_uniform_buffer_0[28u].y + ((-0.0f) - fragment_uniform_buffer_0[133u].y), fragment_input_1.y)), fragment_uniform_buffer_0[4u].x);
float fragment_unnamed_135 = fragment_unnamed_133.x;
float fragment_unnamed_136 = fragment_unnamed_133.y;
float fragment_unnamed_137 = fragment_unnamed_133.z;
float fragment_unnamed_138 = fragment_unnamed_133.w;
float fragment_unnamed_141 = mad((-0.0f) - (fragment_unnamed_109 * fragment_unnamed_106), fragment_unnamed_138, mad(fragment_unnamed_106, fragment_unnamed_109, fragment_unnamed_138));
fragment_output_0.x = mad(fragment_unnamed_141, ((-0.0f) - fragment_unnamed_74) + fragment_unnamed_135, fragment_unnamed_74);
fragment_output_0.y = mad(fragment_unnamed_141, ((-0.0f) - fragment_unnamed_75) + fragment_unnamed_136, fragment_unnamed_75);
fragment_output_0.z = mad(fragment_unnamed_141, ((-0.0f) - fragment_unnamed_76) + fragment_unnamed_137, fragment_unnamed_76);
fragment_output_0.w = mad(fragment_unnamed_141, ((-0.0f) - fragment_unnamed_77) + max(fragment_unnamed_137, max(fragment_unnamed_136, fragment_unnamed_135)), fragment_unnamed_77);
}
Fragment_Stage_Output frag(Fragment_Stage_Input stage_input)
{
fragment_uniform_buffer_0[28] = float4(_RTHandleScale[0], _RTHandleScale[1], _RTHandleScale[2], _RTHandleScale[3]);
fragment_uniform_buffer_0[133] = float4(_BlitTexture_TexelSize[0], _BlitTexture_TexelSize[1], _BlitTexture_TexelSize[2], _BlitTexture_TexelSize[3]);
fragment_uniform_buffer_0[137] = float4(_SourceSize[0], _SourceSize[1], _SourceSize[2], _SourceSize[3]);
fragment_uniform_buffer_0[139] = float4(_CoCParams[0], _CoCParams[1], _CoCParams[2], _CoCParams[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
float4 _RTHandleScale;
float4 _BlitTexture_TexelSize;
float4 _SourceSize;
float4 _CoCParams;
static float4 fragment_uniform_buffer_0[109];
Texture2DArray<float4> _BlitTexture;
Texture2DArray<float4> _DofTexture;
Texture2DArray<float4> _FullCoCTexture;
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()
{
float fragment_unnamed_69 = min(mad((-0.0f) - fragment_uniform_buffer_0[102u].x, 0.5f, fragment_uniform_buffer_0[27u].x), fragment_input_1.x);
float fragment_unnamed_70 = min(mad((-0.0f) - fragment_uniform_buffer_0[102u].y, 0.5f, fragment_uniform_buffer_0[27u].y), fragment_input_1.y);
float fragment_unnamed_72 = float(uint(gl_Layer));
float4 fragment_unnamed_87 = _BlitTexture.SampleBias(S0, float3(fragment_unnamed_69, fragment_unnamed_70, fragment_unnamed_72), fragment_uniform_buffer_0[4u].x);
float fragment_unnamed_89 = fragment_unnamed_87.x;
float fragment_unnamed_90 = fragment_unnamed_87.y;
float fragment_unnamed_91 = fragment_unnamed_87.z;
float fragment_unnamed_92 = fragment_unnamed_87.w;
float fragment_unnamed_110 = clamp((1.0f / (fragment_uniform_buffer_0[106u].w + fragment_uniform_buffer_0[106u].w)) * mad((-0.0f) - fragment_uniform_buffer_0[106u].w, 2.0f, dot((_FullCoCTexture.SampleBias(S0, float3(fragment_unnamed_69, fragment_unnamed_70, fragment_unnamed_72), fragment_uniform_buffer_0[4u].x).x + (-0.5f)).xx, fragment_uniform_buffer_0[108u].z.xx)), 0.0f, 1.0f);
float fragment_unnamed_111 = mad(fragment_unnamed_110, -2.0f, 3.0f);
float fragment_unnamed_114 = fragment_unnamed_110 * fragment_unnamed_110;
float4 fragment_unnamed_138 = _DofTexture.SampleBias(S0, float3(min(fragment_uniform_buffer_0[27u].x + ((-0.0f) - fragment_uniform_buffer_0[102u].x), fragment_input_1.x), min(fragment_uniform_buffer_0[27u].y + ((-0.0f) - fragment_uniform_buffer_0[102u].y), fragment_input_1.y), fragment_unnamed_72), fragment_uniform_buffer_0[4u].x);
float fragment_unnamed_140 = fragment_unnamed_138.x;
float fragment_unnamed_141 = fragment_unnamed_138.y;
float fragment_unnamed_142 = fragment_unnamed_138.z;
float fragment_unnamed_143 = fragment_unnamed_138.w;
float fragment_unnamed_146 = mad((-0.0f) - (fragment_unnamed_114 * fragment_unnamed_111), fragment_unnamed_143, mad(fragment_unnamed_111, fragment_unnamed_114, fragment_unnamed_143));
fragment_output_0.x = mad(fragment_unnamed_146, ((-0.0f) - fragment_unnamed_89) + fragment_unnamed_140, fragment_unnamed_89);
fragment_output_0.y = mad(fragment_unnamed_146, ((-0.0f) - fragment_unnamed_90) + fragment_unnamed_141, fragment_unnamed_90);
fragment_output_0.z = mad(fragment_unnamed_146, ((-0.0f) - fragment_unnamed_91) + fragment_unnamed_142, fragment_unnamed_91);
fragment_output_0.w = mad(fragment_unnamed_146, ((-0.0f) - fragment_unnamed_92) + max(fragment_unnamed_142, max(fragment_unnamed_141, fragment_unnamed_140)), fragment_unnamed_92);
}
Fragment_Stage_Output frag(Fragment_Stage_Input stage_input)
{
fragment_uniform_buffer_0[27] = float4(_RTHandleScale[0], _RTHandleScale[1], _RTHandleScale[2], _RTHandleScale[3]);
fragment_uniform_buffer_0[102] = float4(_BlitTexture_TexelSize[0], _BlitTexture_TexelSize[1], _BlitTexture_TexelSize[2], _BlitTexture_TexelSize[3]);
fragment_uniform_buffer_0[106] = float4(_SourceSize[0], _SourceSize[1], _SourceSize[2], _SourceSize[3]);
fragment_uniform_buffer_0[108] = float4(_CoCParams[0], _CoCParams[1], _CoCParams[2], _CoCParams[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
}
}
SubShader
{
LOD 100
Tags { "RenderPipeline" = "UniversalPipeline" }
Pass
{
Name "Bokeh Depth Of Field CoC"
LOD 100
Tags { "RenderPipeline" = "UniversalPipeline" }
ZTest Always
ZWrite Off
Cull Off
GpuProgramID 357918
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[132];
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[131u].x, vertex_uniform_buffer_0[131u].z);
vertex_output_1.y = mad(vertex_unnamed_45, vertex_uniform_buffer_0[131u].y, vertex_uniform_buffer_0[131u].w);
gl_Position.z = 1.0f;
gl_Position.w = 1.0f;
}
Vertex_Stage_Output vert(Vertex_Stage_Input stage_input)
{
vertex_uniform_buffer_0[131] = 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[101];
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[100u].x, vertex_uniform_buffer_0[100u].z);
vertex_output_1.y = mad(vertex_unnamed_48, vertex_uniform_buffer_0[100u].y, vertex_uniform_buffer_0[100u].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[100] = 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
float4 _ZBufferParams;
float4 _SourceSize;
float4 _CoCParams;
static float4 fragment_uniform_buffer_0[140];
Texture2D<float4> _CameraDepthTexture;
static float2 fragment_input_1;
static float fragment_output_0;
struct Fragment_Stage_Input
{
float2 fragment_input_1 : TEXCOORD; // TEXCOORD
};
struct Fragment_Stage_Output
{
float fragment_output_0 : SV_Target0;
};
void frag_main()
{
precise float fragment_unnamed_37 = fragment_input_1.x * fragment_uniform_buffer_0[137u].x;
precise float fragment_unnamed_38 = fragment_input_1.y * fragment_uniform_buffer_0[137u].y;
precise float fragment_unnamed_54 = 1.0f / mad(fragment_uniform_buffer_0[24u].z, _CameraDepthTexture.Load(int3(uint2(uint(int(fragment_unnamed_37)), uint(int(fragment_unnamed_38))), 0u)).x, fragment_uniform_buffer_0[24u].w);
precise float fragment_unnamed_60 = fragment_uniform_buffer_0[139u].x / fragment_unnamed_54;
precise float fragment_unnamed_61 = (-0.0f) - fragment_unnamed_60;
precise float fragment_unnamed_63 = fragment_unnamed_61 + 1.0f;
precise float fragment_unnamed_67 = fragment_unnamed_63 * fragment_uniform_buffer_0[139u].y;
precise float fragment_unnamed_73 = min(max(fragment_unnamed_67, -1.0f), 0.0f) + clamp(fragment_unnamed_67, 0.0f, 1.0f);
precise float fragment_unnamed_74 = fragment_unnamed_73 + 1.0f;
precise float fragment_unnamed_75 = fragment_unnamed_74 * 0.5f;
fragment_output_0 = fragment_unnamed_75;
}
Fragment_Stage_Output frag(Fragment_Stage_Input stage_input)
{
fragment_uniform_buffer_0[24] = float4(_ZBufferParams[0], _ZBufferParams[1], _ZBufferParams[2], _ZBufferParams[3]);
fragment_uniform_buffer_0[137] = float4(_SourceSize[0], _SourceSize[1], _SourceSize[2], _SourceSize[3]);
fragment_uniform_buffer_0[139] = float4(_CoCParams[0], _CoCParams[1], _CoCParams[2], _CoCParams[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
float4 _ZBufferParams;
float4 _SourceSize;
float4 _CoCParams;
static float4 fragment_uniform_buffer_0[109];
Texture2DArray<float4> _CameraDepthTexture;
static uint gl_Layer;
static float2 fragment_input_1;
static float fragment_output_0;
struct Fragment_Stage_Input
{
float2 fragment_input_1 : TEXCOORD; // TEXCOORD
uint gl_Layer : SV_RenderTargetArrayIndex;
};
struct Fragment_Stage_Output
{
float fragment_output_0 : SV_Target0;
};
void frag_main()
{
precise float fragment_unnamed_39 = fragment_input_1.x * fragment_uniform_buffer_0[106u].x;
precise float fragment_unnamed_40 = fragment_input_1.y * fragment_uniform_buffer_0[106u].y;
precise float fragment_unnamed_57 = 1.0f / mad(fragment_uniform_buffer_0[23u].z, _CameraDepthTexture.Load(int4(uint3(uint(int(fragment_unnamed_39)), uint(int(fragment_unnamed_40)), uint(gl_Layer)), 0u)).x, fragment_uniform_buffer_0[23u].w);
precise float fragment_unnamed_63 = fragment_uniform_buffer_0[108u].x / fragment_unnamed_57;
precise float fragment_unnamed_64 = (-0.0f) - fragment_unnamed_63;
precise float fragment_unnamed_66 = fragment_unnamed_64 + 1.0f;
precise float fragment_unnamed_70 = fragment_unnamed_66 * fragment_uniform_buffer_0[108u].y;
precise float fragment_unnamed_76 = min(max(fragment_unnamed_70, -1.0f), 0.0f) + clamp(fragment_unnamed_70, 0.0f, 1.0f);
precise float fragment_unnamed_77 = fragment_unnamed_76 + 1.0f;
precise float fragment_unnamed_78 = fragment_unnamed_77 * 0.5f;
fragment_output_0 = fragment_unnamed_78;
}
Fragment_Stage_Output frag(Fragment_Stage_Input stage_input)
{
fragment_uniform_buffer_0[23] = float4(_ZBufferParams[0], _ZBufferParams[1], _ZBufferParams[2], _ZBufferParams[3]);
fragment_uniform_buffer_0[106] = float4(_SourceSize[0], _SourceSize[1], _SourceSize[2], _SourceSize[3]);
fragment_uniform_buffer_0[108] = float4(_CoCParams[0], _CoCParams[1], _CoCParams[2], _CoCParams[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
}
Pass
{
Name "Bokeh Depth Of Field Prefilter"
LOD 100
Tags { "RenderPipeline" = "UniversalPipeline" }
ZTest Always
ZWrite Off
Cull Off
GpuProgramID 396992
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[132];
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[131u].x, vertex_uniform_buffer_0[131u].z);
vertex_output_1.y = mad(vertex_unnamed_45, vertex_uniform_buffer_0[131u].y, vertex_uniform_buffer_0[131u].w);
gl_Position.z = 1.0f;
gl_Position.w = 1.0f;
}
Vertex_Stage_Output vert(Vertex_Stage_Input stage_input)
{
vertex_uniform_buffer_0[131] = 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[101];
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[100u].x, vertex_uniform_buffer_0[100u].z);
vertex_output_1.y = mad(vertex_unnamed_48, vertex_uniform_buffer_0[100u].y, vertex_uniform_buffer_0[100u].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[100] = 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
float4 _SourceSize;
float4 _CoCParams;
static float4 fragment_uniform_buffer_0[140];
Texture2D<float4> _BlitTexture;
Texture2D<float4> _FullCoCTexture;
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()
{
precise float fragment_unnamed_36 = (-0.0f) - fragment_uniform_buffer_0[137u].z;
precise float fragment_unnamed_39 = (-0.0f) - fragment_uniform_buffer_0[137u].w;
float fragment_unnamed_47 = mad(fragment_unnamed_36, 0.5f, fragment_input_1.x);
float fragment_unnamed_49 = mad(fragment_unnamed_39, 0.5f, fragment_input_1.y);
float fragment_unnamed_50 = mad(fragment_unnamed_36, -0.5f, fragment_input_1.x);
float fragment_unnamed_52 = mad(fragment_unnamed_39, 0.5f, fragment_input_1.y);
float fragment_unnamed_62 = mad(_FullCoCTexture.SampleBias(S0, float2(fragment_unnamed_50, fragment_unnamed_52), fragment_uniform_buffer_0[4u].x).x, 2.0f, -1.0f);
float fragment_unnamed_73 = mad(fragment_uniform_buffer_0[137u].z, -0.5f, fragment_input_1.x);
float fragment_unnamed_74 = mad(fragment_uniform_buffer_0[137u].w, 0.5f, fragment_input_1.y);
float fragment_unnamed_75 = mad(fragment_uniform_buffer_0[137u].z, 0.5f, fragment_input_1.x);
float fragment_unnamed_76 = mad(fragment_uniform_buffer_0[137u].w, 0.5f, fragment_input_1.y);
float fragment_unnamed_83 = mad(_FullCoCTexture.SampleBias(S0, float2(fragment_unnamed_73, fragment_unnamed_74), fragment_uniform_buffer_0[4u].x).x, 2.0f, -1.0f);
float fragment_unnamed_92 = mad(_FullCoCTexture.SampleBias(S0, float2(fragment_unnamed_75, fragment_unnamed_76), fragment_uniform_buffer_0[4u].x).x, 2.0f, -1.0f);
float fragment_unnamed_101 = mad(_FullCoCTexture.SampleBias(S0, float2(fragment_unnamed_47, fragment_unnamed_49), fragment_uniform_buffer_0[4u].x).x, 2.0f, -1.0f);
float fragment_unnamed_102 = min(min(fragment_unnamed_92, min(fragment_unnamed_83, fragment_unnamed_62)), fragment_unnamed_101);
float fragment_unnamed_103 = max(max(fragment_unnamed_92, max(fragment_unnamed_83, fragment_unnamed_62)), fragment_unnamed_101);
precise float fragment_unnamed_104 = (-0.0f) - fragment_unnamed_102;
precise float fragment_unnamed_115 = asfloat((fragment_unnamed_103 < fragment_unnamed_104) ? asuint(fragment_unnamed_102) : asuint(fragment_unnamed_103)) * fragment_uniform_buffer_0[139u].z;
precise float fragment_unnamed_122 = fragment_uniform_buffer_0[137u].w + fragment_uniform_buffer_0[137u].w;
precise float fragment_unnamed_123 = 1.0f / fragment_unnamed_122;
precise float fragment_unnamed_126 = fragment_unnamed_123 * abs(fragment_unnamed_115);
float fragment_unnamed_128 = clamp(fragment_unnamed_126, 0.0f, 1.0f);
fragment_output_0.w = fragment_unnamed_115;
precise float fragment_unnamed_135 = fragment_unnamed_128 * fragment_unnamed_128;
precise float fragment_unnamed_136 = fragment_unnamed_135 * mad(fragment_unnamed_128, -2.0f, 3.0f);
float4 fragment_unnamed_141 = _BlitTexture.SampleBias(S0, float2(fragment_unnamed_47, fragment_unnamed_49), fragment_uniform_buffer_0[4u].x);
float4 fragment_unnamed_149 = _BlitTexture.SampleBias(S0, float2(fragment_unnamed_50, fragment_unnamed_52), fragment_uniform_buffer_0[4u].x);
precise float fragment_unnamed_154 = fragment_unnamed_149.x + fragment_unnamed_141.x;
precise float fragment_unnamed_155 = fragment_unnamed_149.y + fragment_unnamed_141.y;
precise float fragment_unnamed_156 = fragment_unnamed_149.z + fragment_unnamed_141.z;
float4 fragment_unnamed_160 = _BlitTexture.SampleBias(S0, float2(fragment_unnamed_73, fragment_unnamed_74), fragment_uniform_buffer_0[4u].x);
float4 fragment_unnamed_168 = _BlitTexture.SampleBias(S0, float2(fragment_unnamed_75, fragment_unnamed_76), fragment_uniform_buffer_0[4u].x);
precise float fragment_unnamed_173 = fragment_unnamed_154 + fragment_unnamed_160.x;
precise float fragment_unnamed_174 = fragment_unnamed_155 + fragment_unnamed_160.y;
precise float fragment_unnamed_175 = fragment_unnamed_156 + fragment_unnamed_160.z;
precise float fragment_unnamed_176 = fragment_unnamed_168.x + fragment_unnamed_173;
precise float fragment_unnamed_177 = fragment_unnamed_168.y + fragment_unnamed_174;
precise float fragment_unnamed_178 = fragment_unnamed_168.z + fragment_unnamed_175;
precise float fragment_unnamed_179 = fragment_unnamed_176 * 0.25f;
precise float fragment_unnamed_181 = fragment_unnamed_177 * 0.25f;
precise float fragment_unnamed_182 = fragment_unnamed_178 * 0.25f;
precise float fragment_unnamed_183 = fragment_unnamed_136 * fragment_unnamed_179;
precise float fragment_unnamed_184 = fragment_unnamed_136 * fragment_unnamed_181;
precise float fragment_unnamed_185 = fragment_unnamed_136 * fragment_unnamed_182;
fragment_output_0.x = fragment_unnamed_183;
fragment_output_0.y = fragment_unnamed_184;
fragment_output_0.z = fragment_unnamed_185;
}
Fragment_Stage_Output frag(Fragment_Stage_Input stage_input)
{
fragment_uniform_buffer_0[137] = float4(_SourceSize[0], _SourceSize[1], _SourceSize[2], _SourceSize[3]);
fragment_uniform_buffer_0[139] = float4(_CoCParams[0], _CoCParams[1], _CoCParams[2], _CoCParams[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
float4 _SourceSize;
float4 _CoCParams;
static float4 fragment_uniform_buffer_0[109];
Texture2DArray<float4> _BlitTexture;
Texture2DArray<float4> _FullCoCTexture;
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()
{
precise float fragment_unnamed_41 = fragment_uniform_buffer_0[106u].w + fragment_uniform_buffer_0[106u].w;
precise float fragment_unnamed_42 = 1.0f / fragment_unnamed_41;
precise float fragment_unnamed_47 = (-0.0f) - fragment_uniform_buffer_0[106u].z;
precise float fragment_unnamed_50 = (-0.0f) - fragment_uniform_buffer_0[106u].w;
float fragment_unnamed_58 = mad(fragment_unnamed_47, 0.5f, fragment_input_1.x);
float fragment_unnamed_60 = mad(fragment_unnamed_50, 0.5f, fragment_input_1.y);
float fragment_unnamed_61 = mad(fragment_unnamed_47, -0.5f, fragment_input_1.x);
float fragment_unnamed_63 = mad(fragment_unnamed_50, 0.5f, fragment_input_1.y);
float fragment_unnamed_65 = float(uint(gl_Layer));
float4 fragment_unnamed_80 = _BlitTexture.SampleBias(S0, float3(fragment_unnamed_61, fragment_unnamed_63, fragment_unnamed_65), fragment_uniform_buffer_0[4u].x);
float fragment_unnamed_85 = mad(_FullCoCTexture.SampleBias(S0, float3(fragment_unnamed_61, fragment_unnamed_63, fragment_unnamed_65), fragment_uniform_buffer_0[4u].x).x, 2.0f, -1.0f);
float fragment_unnamed_96 = mad(fragment_uniform_buffer_0[106u].z, 0.5f, fragment_input_1.x);
float fragment_unnamed_97 = mad(fragment_uniform_buffer_0[106u].w, 0.5f, fragment_input_1.y);
float fragment_unnamed_98 = mad(fragment_uniform_buffer_0[106u].z, -0.5f, fragment_input_1.x);
float fragment_unnamed_99 = mad(fragment_uniform_buffer_0[106u].w, 0.5f, fragment_input_1.y);
float4 fragment_unnamed_109 = _BlitTexture.SampleBias(S0, float3(fragment_unnamed_98, fragment_unnamed_99, fragment_unnamed_65), fragment_uniform_buffer_0[4u].x);
float fragment_unnamed_114 = mad(_FullCoCTexture.SampleBias(S0, float3(fragment_unnamed_98, fragment_unnamed_99, fragment_unnamed_65), fragment_uniform_buffer_0[4u].x).x, 2.0f, -1.0f);
float4 fragment_unnamed_126 = _BlitTexture.SampleBias(S0, float3(fragment_unnamed_96, fragment_unnamed_97, fragment_unnamed_65), fragment_uniform_buffer_0[4u].x);
float fragment_unnamed_131 = mad(_FullCoCTexture.SampleBias(S0, float3(fragment_unnamed_96, fragment_unnamed_97, fragment_unnamed_65), fragment_uniform_buffer_0[4u].x).x, 2.0f, -1.0f);
float4 fragment_unnamed_143 = _BlitTexture.SampleBias(S0, float3(fragment_unnamed_58, fragment_unnamed_60, fragment_unnamed_65), fragment_uniform_buffer_0[4u].x);
precise float fragment_unnamed_148 = fragment_unnamed_80.x + fragment_unnamed_143.x;
precise float fragment_unnamed_149 = fragment_unnamed_80.y + fragment_unnamed_143.y;
precise float fragment_unnamed_150 = fragment_unnamed_80.z + fragment_unnamed_143.z;
precise float fragment_unnamed_151 = fragment_unnamed_109.x + fragment_unnamed_148;
precise float fragment_unnamed_152 = fragment_unnamed_109.y + fragment_unnamed_149;
precise float fragment_unnamed_153 = fragment_unnamed_109.z + fragment_unnamed_150;
precise float fragment_unnamed_154 = fragment_unnamed_126.x + fragment_unnamed_151;
precise float fragment_unnamed_155 = fragment_unnamed_126.y + fragment_unnamed_152;
precise float fragment_unnamed_156 = fragment_unnamed_126.z + fragment_unnamed_153;
precise float fragment_unnamed_157 = fragment_unnamed_154 * 0.25f;
precise float fragment_unnamed_159 = fragment_unnamed_155 * 0.25f;
precise float fragment_unnamed_160 = fragment_unnamed_156 * 0.25f;
float fragment_unnamed_161 = mad(_FullCoCTexture.SampleBias(S0, float3(fragment_unnamed_58, fragment_unnamed_60, fragment_unnamed_65), fragment_uniform_buffer_0[4u].x).x, 2.0f, -1.0f);
float fragment_unnamed_162 = min(min(fragment_unnamed_131, min(fragment_unnamed_114, fragment_unnamed_85)), fragment_unnamed_161);
float fragment_unnamed_163 = max(max(fragment_unnamed_131, max(fragment_unnamed_114, fragment_unnamed_85)), fragment_unnamed_161);
precise float fragment_unnamed_164 = (-0.0f) - fragment_unnamed_162;
precise float fragment_unnamed_175 = asfloat((fragment_unnamed_163 < fragment_unnamed_164) ? asuint(fragment_unnamed_162) : asuint(fragment_unnamed_163)) * fragment_uniform_buffer_0[108u].z;
precise float fragment_unnamed_177 = fragment_unnamed_42 * abs(fragment_unnamed_175);
float fragment_unnamed_179 = clamp(fragment_unnamed_177, 0.0f, 1.0f);
fragment_output_0.w = fragment_unnamed_175;
precise float fragment_unnamed_186 = fragment_unnamed_179 * fragment_unnamed_179;
precise float fragment_unnamed_187 = fragment_unnamed_186 * mad(fragment_unnamed_179, -2.0f, 3.0f);
precise float fragment_unnamed_188 = fragment_unnamed_187 * fragment_unnamed_157;
precise float fragment_unnamed_189 = fragment_unnamed_187 * fragment_unnamed_159;
precise float fragment_unnamed_190 = fragment_unnamed_187 * fragment_unnamed_160;
fragment_output_0.x = fragment_unnamed_188;
fragment_output_0.y = fragment_unnamed_189;
fragment_output_0.z = fragment_unnamed_190;
}
Fragment_Stage_Output frag(Fragment_Stage_Input stage_input)
{
fragment_uniform_buffer_0[106] = float4(_SourceSize[0], _SourceSize[1], _SourceSize[2], _SourceSize[3]);
fragment_uniform_buffer_0[108] = float4(_CoCParams[0], _CoCParams[1], _CoCParams[2], _CoCParams[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
}
Pass
{
Name "Bokeh Depth Of Field Blur"
LOD 100
Tags { "RenderPipeline" = "UniversalPipeline" }
ZTest Always
ZWrite Off
Cull Off
GpuProgramID 461448
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[132];
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[131u].x, vertex_uniform_buffer_0[131u].z);
vertex_output_1.y = mad(vertex_unnamed_45, vertex_uniform_buffer_0[131u].y, vertex_uniform_buffer_0[131u].w);
gl_Position.z = 1.0f;
gl_Position.w = 1.0f;
}
Vertex_Stage_Output vert(Vertex_Stage_Input stage_input)
{
vertex_uniform_buffer_0[131] = 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[101];
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[100u].x, vertex_uniform_buffer_0[100u].z);
vertex_output_1.y = mad(vertex_unnamed_48, vertex_uniform_buffer_0[100u].y, vertex_uniform_buffer_0[100u].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[100] = 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
float4 _RTHandleScale;
float4 _BlitTexture_TexelSize;
float4 _BokehKernel[42];
float4 _BokehConstants;
static float4 fragment_uniform_buffer_0[183];
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.w;
precise float fragment_unnamed_49 = (-0.0f) - fragment_uniform_buffer_0[133u].x;
precise float fragment_unnamed_52 = (-0.0f) - fragment_uniform_buffer_0[133u].y;
float fragment_unnamed_54 = mad(fragment_unnamed_49, 0.5f, 1.0f);
float fragment_unnamed_57 = mad(fragment_unnamed_52, 0.5f, 1.0f);
precise float fragment_unnamed_69 = min(fragment_unnamed_54, fragment_input_1.x) * fragment_uniform_buffer_0[28u].x;
precise float fragment_unnamed_70 = min(fragment_unnamed_57, fragment_input_1.y) * fragment_uniform_buffer_0[28u].y;
float4 fragment_unnamed_74 = _BlitTexture.SampleBias(S0, float2(fragment_unnamed_69, fragment_unnamed_70), fragment_uniform_buffer_0[4u].x);
float fragment_unnamed_76 = fragment_unnamed_74.x;
float fragment_unnamed_77 = fragment_unnamed_74.y;
float fragment_unnamed_78 = fragment_unnamed_74.z;
float fragment_unnamed_79 = fragment_unnamed_74.w;
precise float fragment_unnamed_87 = max(min(fragment_unnamed_44, fragment_unnamed_79), 0.0f) + fragment_uniform_buffer_0[182u].y;
precise float fragment_unnamed_91 = fragment_unnamed_87 / fragment_uniform_buffer_0[182u].y;
float fragment_unnamed_92 = clamp(fragment_unnamed_91, 0.0f, 1.0f);
precise float fragment_unnamed_93 = (-0.0f) - fragment_unnamed_79;
precise float fragment_unnamed_97 = fragment_unnamed_93 + fragment_uniform_buffer_0[182u].y;
precise float fragment_unnamed_101 = fragment_unnamed_97 / fragment_uniform_buffer_0[182u].y;
precise float fragment_unnamed_103 = (-0.0f) - fragment_unnamed_79;
precise float fragment_unnamed_114 = asfloat(((fragment_unnamed_103 >= fragment_uniform_buffer_0[182u].x) ? 4294967295u : 0u) & 1065353216u) * clamp(fragment_unnamed_101, 0.0f, 1.0f);
float fragment_unnamed_115 = asfloat(1065353216u);
precise float fragment_unnamed_116 = fragment_unnamed_92 * fragment_unnamed_76;
precise float fragment_unnamed_117 = fragment_unnamed_92 * fragment_unnamed_77;
precise float fragment_unnamed_118 = fragment_unnamed_92 * fragment_unnamed_78;
precise float fragment_unnamed_119 = fragment_unnamed_92 * fragment_unnamed_115;
precise float fragment_unnamed_120 = fragment_unnamed_114 * fragment_unnamed_76;
precise float fragment_unnamed_121 = fragment_unnamed_114 * fragment_unnamed_77;
precise float fragment_unnamed_122 = fragment_unnamed_114 * fragment_unnamed_78;
precise float fragment_unnamed_123 = fragment_unnamed_114 * fragment_unnamed_115;
float fragment_unnamed_124 = asfloat(1065353216u);
float fragment_unnamed_125 = asfloat(0u);
float fragment_unnamed_126;
float fragment_unnamed_128;
float fragment_unnamed_130;
float fragment_unnamed_132;
float fragment_unnamed_134;
float fragment_unnamed_136;
float fragment_unnamed_138;
float fragment_unnamed_140;
fragment_unnamed_126 = fragment_unnamed_116;
fragment_unnamed_128 = fragment_unnamed_117;
fragment_unnamed_130 = fragment_unnamed_118;
fragment_unnamed_132 = fragment_unnamed_119;
fragment_unnamed_134 = fragment_unnamed_120;
fragment_unnamed_136 = fragment_unnamed_121;
fragment_unnamed_138 = fragment_unnamed_122;
fragment_unnamed_140 = fragment_unnamed_123;
uint fragment_unnamed_187;
precise float fragment_unnamed_193;
precise float fragment_unnamed_194;
precise float fragment_unnamed_201;
precise float fragment_unnamed_202;
float4 fragment_unnamed_207;
float fragment_unnamed_209;
float fragment_unnamed_210;
float fragment_unnamed_211;
float fragment_unnamed_212;
precise float fragment_unnamed_220;
precise float fragment_unnamed_221;
precise float fragment_unnamed_225;
precise float fragment_unnamed_226;
precise float fragment_unnamed_232;
precise float fragment_unnamed_233;
precise float fragment_unnamed_237;
precise float fragment_unnamed_241;
precise float fragment_unnamed_242;
float fragment_unnamed_243;
precise float fragment_unnamed_245;
precise float fragment_unnamed_253;
for (float fragment_unnamed_142 = fragment_unnamed_125; !(int(asuint(fragment_unnamed_142)) >= int(42u)); fragment_unnamed_187 = asuint(fragment_unnamed_142) + 140u, fragment_unnamed_193 = fragment_input_1.x + fragment_uniform_buffer_0[fragment_unnamed_187].w, fragment_unnamed_194 = fragment_input_1.y + fragment_uniform_buffer_0[fragment_unnamed_187].y, fragment_unnamed_201 = min(fragment_unnamed_54, fragment_unnamed_193) * fragment_uniform_buffer_0[28u].x, fragment_unnamed_202 = min(fragment_unnamed_57, fragment_unnamed_194) * fragment_uniform_buffer_0[28u].y, fragment_unnamed_207 = _BlitTexture.SampleBias(S0, float2(fragment_unnamed_201, fragment_unnamed_202), fragment_uniform_buffer_0[4u].x), fragment_unnamed_209 = fragment_unnamed_207.x, fragment_unnamed_210 = fragment_unnamed_207.y, fragment_unnamed_211 = fragment_unnamed_207.z, fragment_unnamed_212 = fragment_unnamed_207.w, fragment_unnamed_220 = (-0.0f) - fragment_uniform_buffer_0[asuint(fragment_unnamed_142) + 140u].z, fragment_unnamed_221 = max(min(fragment_unnamed_44, fragment_unnamed_212), 0.0f) + fragment_unnamed_220, fragment_unnamed_225 = fragment_unnamed_221 + fragment_uniform_buffer_0[182u].y, fragment_unnamed_226 = (-0.0f) - fragment_unnamed_212, fragment_unnamed_232 = (-0.0f) - fragment_uniform_buffer_0[asuint(fragment_unnamed_142) + 140u].z, fragment_unnamed_233 = fragment_unnamed_226 + fragment_unnamed_232, fragment_unnamed_237 = fragment_unnamed_233 + fragment_uniform_buffer_0[182u].y, fragment_unnamed_241 = fragment_unnamed_225 / fragment_uniform_buffer_0[182u].y, fragment_unnamed_242 = fragment_unnamed_237 / fragment_uniform_buffer_0[182u].y, fragment_unnamed_243 = clamp(fragment_unnamed_241, 0.0f, 1.0f), fragment_unnamed_245 = (-0.0f) - fragment_unnamed_212, fragment_unnamed_253 = asfloat(((fragment_unnamed_245 >= fragment_uniform_buffer_0[182u].x) ? 4294967295u : 0u) & 1065353216u) * clamp(fragment_unnamed_242, 0.0f, 1.0f), fragment_unnamed_126 = mad(fragment_unnamed_209, fragment_unnamed_243, fragment_unnamed_126), fragment_unnamed_128 = mad(fragment_unnamed_210, fragment_unnamed_243, fragment_unnamed_128), fragment_unnamed_130 = mad(fragment_unnamed_211, fragment_unnamed_243, fragment_unnamed_130), fragment_unnamed_132 = mad(fragment_unnamed_124, fragment_unnamed_243, fragment_unnamed_132), fragment_unnamed_134 = mad(fragment_unnamed_209, fragment_unnamed_253, fragment_unnamed_134), fragment_unnamed_136 = mad(fragment_unnamed_210, fragment_unnamed_253, fragment_unnamed_136), fragment_unnamed_138 = mad(fragment_unnamed_211, fragment_unnamed_253, fragment_unnamed_138), fragment_unnamed_140 = mad(fragment_unnamed_124, fragment_unnamed_253, fragment_unnamed_140), fragment_unnamed_142 = asfloat(asuint(fragment_unnamed_142) + 1u))
{
}
precise float fragment_unnamed_151 = asfloat(((fragment_unnamed_132 == 0.0f) ? 4294967295u : 0u) & 1065353216u) + fragment_unnamed_132;
precise float fragment_unnamed_152 = fragment_unnamed_126 / fragment_unnamed_151;
precise float fragment_unnamed_153 = fragment_unnamed_128 / fragment_unnamed_151;
precise float fragment_unnamed_154 = fragment_unnamed_130 / fragment_unnamed_151;
precise float fragment_unnamed_159 = asfloat(((fragment_unnamed_140 == 0.0f) ? 4294967295u : 0u) & 1065353216u) + fragment_unnamed_140;
precise float fragment_unnamed_160 = fragment_unnamed_134 / fragment_unnamed_159;
precise float fragment_unnamed_161 = fragment_unnamed_136 / fragment_unnamed_159;
precise float fragment_unnamed_162 = fragment_unnamed_138 / fragment_unnamed_159;
precise float fragment_unnamed_163 = fragment_unnamed_140 * 0.073060296475887298583984375f;
float fragment_unnamed_165 = min(fragment_unnamed_163, 1.0f);
precise float fragment_unnamed_166 = (-0.0f) - fragment_unnamed_152;
precise float fragment_unnamed_167 = (-0.0f) - fragment_unnamed_153;
precise float fragment_unnamed_168 = (-0.0f) - fragment_unnamed_154;
precise float fragment_unnamed_169 = fragment_unnamed_166 + fragment_unnamed_160;
precise float fragment_unnamed_170 = fragment_unnamed_167 + fragment_unnamed_161;
precise float fragment_unnamed_171 = fragment_unnamed_168 + fragment_unnamed_162;
fragment_output_0.x = mad(fragment_unnamed_165, fragment_unnamed_169, fragment_unnamed_152);
fragment_output_0.y = mad(fragment_unnamed_165, fragment_unnamed_170, fragment_unnamed_153);
fragment_output_0.z = mad(fragment_unnamed_165, fragment_unnamed_171, fragment_unnamed_154);
fragment_output_0.w = fragment_unnamed_165;
}
Fragment_Stage_Output frag(Fragment_Stage_Input stage_input)
{
fragment_uniform_buffer_0[28] = float4(_RTHandleScale[0], _RTHandleScale[1], _RTHandleScale[2], _RTHandleScale[3]);
fragment_uniform_buffer_0[133] = float4(_BlitTexture_TexelSize[0], _BlitTexture_TexelSize[1], _BlitTexture_TexelSize[2], _BlitTexture_TexelSize[3]);
fragment_uniform_buffer_0[140] = float4(_BokehKernel[0][0], _BokehKernel[0][1], _BokehKernel[0][2], _BokehKernel[0][3]);
fragment_uniform_buffer_0[141] = float4(_BokehKernel[1][0], _BokehKernel[1][1], _BokehKernel[1][2], _BokehKernel[1][3]);
fragment_uniform_buffer_0[142] = float4(_BokehKernel[2][0], _BokehKernel[2][1], _BokehKernel[2][2], _BokehKernel[2][3]);
fragment_uniform_buffer_0[143] = float4(_BokehKernel[3][0], _BokehKernel[3][1], _BokehKernel[3][2], _BokehKernel[3][3]);
fragment_uniform_buffer_0[144] = float4(_BokehKernel[4][0], _BokehKernel[4][1], _BokehKernel[4][2], _BokehKernel[4][3]);
fragment_uniform_buffer_0[145] = float4(_BokehKernel[5][0], _BokehKernel[5][1], _BokehKernel[5][2], _BokehKernel[5][3]);
fragment_uniform_buffer_0[146] = float4(_BokehKernel[6][0], _BokehKernel[6][1], _BokehKernel[6][2], _BokehKernel[6][3]);
fragment_uniform_buffer_0[147] = float4(_BokehKernel[7][0], _BokehKernel[7][1], _BokehKernel[7][2], _BokehKernel[7][3]);
fragment_uniform_buffer_0[148] = float4(_BokehKernel[8][0], _BokehKernel[8][1], _BokehKernel[8][2], _BokehKernel[8][3]);
fragment_uniform_buffer_0[149] = float4(_BokehKernel[9][0], _BokehKernel[9][1], _BokehKernel[9][2], _BokehKernel[9][3]);
fragment_uniform_buffer_0[150] = float4(_BokehKernel[10][0], _BokehKernel[10][1], _BokehKernel[10][2], _BokehKernel[10][3]);
fragment_uniform_buffer_0[151] = float4(_BokehKernel[11][0], _BokehKernel[11][1], _BokehKernel[11][2], _BokehKernel[11][3]);
fragment_uniform_buffer_0[152] = float4(_BokehKernel[12][0], _BokehKernel[12][1], _BokehKernel[12][2], _BokehKernel[12][3]);
fragment_uniform_buffer_0[153] = float4(_BokehKernel[13][0], _BokehKernel[13][1], _BokehKernel[13][2], _BokehKernel[13][3]);
fragment_uniform_buffer_0[154] = float4(_BokehKernel[14][0], _BokehKernel[14][1], _BokehKernel[14][2], _BokehKernel[14][3]);
fragment_uniform_buffer_0[155] = float4(_BokehKernel[15][0], _BokehKernel[15][1], _BokehKernel[15][2], _BokehKernel[15][3]);
fragment_uniform_buffer_0[156] = float4(_BokehKernel[16][0], _BokehKernel[16][1], _BokehKernel[16][2], _BokehKernel[16][3]);
fragment_uniform_buffer_0[157] = float4(_BokehKernel[17][0], _BokehKernel[17][1], _BokehKernel[17][2], _BokehKernel[17][3]);
fragment_uniform_buffer_0[158] = float4(_BokehKernel[18][0], _BokehKernel[18][1], _BokehKernel[18][2], _BokehKernel[18][3]);
fragment_uniform_buffer_0[159] = float4(_BokehKernel[19][0], _BokehKernel[19][1], _BokehKernel[19][2], _BokehKernel[19][3]);
fragment_uniform_buffer_0[160] = float4(_BokehKernel[20][0], _BokehKernel[20][1], _BokehKernel[20][2], _BokehKernel[20][3]);
fragment_uniform_buffer_0[161] = float4(_BokehKernel[21][0], _BokehKernel[21][1], _BokehKernel[21][2], _BokehKernel[21][3]);
fragment_uniform_buffer_0[162] = float4(_BokehKernel[22][0], _BokehKernel[22][1], _BokehKernel[22][2], _BokehKernel[22][3]);
fragment_uniform_buffer_0[163] = float4(_BokehKernel[23][0], _BokehKernel[23][1], _BokehKernel[23][2], _BokehKernel[23][3]);
fragment_uniform_buffer_0[164] = float4(_BokehKernel[24][0], _BokehKernel[24][1], _BokehKernel[24][2], _BokehKernel[24][3]);
fragment_uniform_buffer_0[165] = float4(_BokehKernel[25][0], _BokehKernel[25][1], _BokehKernel[25][2], _BokehKernel[25][3]);
fragment_uniform_buffer_0[166] = float4(_BokehKernel[26][0], _BokehKernel[26][1], _BokehKernel[26][2], _BokehKernel[26][3]);
fragment_uniform_buffer_0[167] = float4(_BokehKernel[27][0], _BokehKernel[27][1], _BokehKernel[27][2], _BokehKernel[27][3]);
fragment_uniform_buffer_0[168] = float4(_BokehKernel[28][0], _BokehKernel[28][1], _BokehKernel[28][2], _BokehKernel[28][3]);
fragment_uniform_buffer_0[169] = float4(_BokehKernel[29][0], _BokehKernel[29][1], _BokehKernel[29][2], _BokehKernel[29][3]);
fragment_uniform_buffer_0[170] = float4(_BokehKernel[30][0], _BokehKernel[30][1], _BokehKernel[30][2], _BokehKernel[30][3]);
fragment_uniform_buffer_0[171] = float4(_BokehKernel[31][0], _BokehKernel[31][1], _BokehKernel[31][2], _BokehKernel[31][3]);
fragment_uniform_buffer_0[172] = float4(_BokehKernel[32][0], _BokehKernel[32][1], _BokehKernel[32][2], _BokehKernel[32][3]);
fragment_uniform_buffer_0[173] = float4(_BokehKernel[33][0], _BokehKernel[33][1], _BokehKernel[33][2], _BokehKernel[33][3]);
fragment_uniform_buffer_0[174] = float4(_BokehKernel[34][0], _BokehKernel[34][1], _BokehKernel[34][2], _BokehKernel[34][3]);
fragment_uniform_buffer_0[175] = float4(_BokehKernel[35][0], _BokehKernel[35][1], _BokehKernel[35][2], _BokehKernel[35][3]);
fragment_uniform_buffer_0[176] = float4(_BokehKernel[36][0], _BokehKernel[36][1], _BokehKernel[36][2], _BokehKernel[36][3]);
fragment_uniform_buffer_0[177] = float4(_BokehKernel[37][0], _BokehKernel[37][1], _BokehKernel[37][2], _BokehKernel[37][3]);
fragment_uniform_buffer_0[178] = float4(_BokehKernel[38][0], _BokehKernel[38][1], _BokehKernel[38][2], _BokehKernel[38][3]);
fragment_uniform_buffer_0[179] = float4(_BokehKernel[39][0], _BokehKernel[39][1], _BokehKernel[39][2], _BokehKernel[39][3]);
fragment_uniform_buffer_0[180] = float4(_BokehKernel[40][0], _BokehKernel[40][1], _BokehKernel[40][2], _BokehKernel[40][3]);
fragment_uniform_buffer_0[181] = float4(_BokehKernel[41][0], _BokehKernel[41][1], _BokehKernel[41][2], _BokehKernel[41][3]);
fragment_uniform_buffer_0[182] = float4(_BokehConstants[0], _BokehConstants[1], _BokehConstants[2], _BokehConstants[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
float4 _RTHandleScale;
float4 _BlitTexture_TexelSize;
float4 _BokehKernel[42];
float4 _BokehConstants;
static float4 fragment_uniform_buffer_0[152];
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()
{
float fragment_unnamed_31 = float(uint(gl_Layer));
float4 fragment_unnamed_46 = _BlitTexture.SampleBias(S0, float3(fragment_input_1.x, fragment_input_1.y, fragment_unnamed_31), fragment_uniform_buffer_0[4u].x);
float fragment_unnamed_49 = fragment_unnamed_46.w;
precise float fragment_unnamed_54 = (-0.0f) - fragment_uniform_buffer_0[102u].x;
precise float fragment_unnamed_57 = (-0.0f) - fragment_uniform_buffer_0[102u].y;
float fragment_unnamed_59 = mad(fragment_unnamed_54, 0.5f, 1.0f);
float fragment_unnamed_62 = mad(fragment_unnamed_57, 0.5f, 1.0f);
precise float fragment_unnamed_74 = min(fragment_unnamed_59, fragment_input_1.x) * fragment_uniform_buffer_0[27u].x;
precise float fragment_unnamed_75 = min(fragment_unnamed_62, fragment_input_1.y) * fragment_uniform_buffer_0[27u].y;
float4 fragment_unnamed_79 = _BlitTexture.SampleBias(S0, float3(fragment_unnamed_74, fragment_unnamed_75, fragment_unnamed_31), fragment_uniform_buffer_0[4u].x);
float fragment_unnamed_81 = fragment_unnamed_79.x;
float fragment_unnamed_82 = fragment_unnamed_79.y;
float fragment_unnamed_83 = fragment_unnamed_79.z;
float fragment_unnamed_84 = fragment_unnamed_79.w;
precise float fragment_unnamed_92 = max(min(fragment_unnamed_49, fragment_unnamed_84), 0.0f) + fragment_uniform_buffer_0[151u].y;
precise float fragment_unnamed_96 = fragment_unnamed_92 / fragment_uniform_buffer_0[151u].y;
float fragment_unnamed_97 = clamp(fragment_unnamed_96, 0.0f, 1.0f);
precise float fragment_unnamed_98 = (-0.0f) - fragment_unnamed_84;
precise float fragment_unnamed_102 = fragment_unnamed_98 + fragment_uniform_buffer_0[151u].y;
precise float fragment_unnamed_106 = fragment_unnamed_102 / fragment_uniform_buffer_0[151u].y;
precise float fragment_unnamed_108 = (-0.0f) - fragment_unnamed_84;
precise float fragment_unnamed_119 = clamp(fragment_unnamed_106, 0.0f, 1.0f) * asfloat(((fragment_unnamed_108 >= fragment_uniform_buffer_0[151u].x) ? 4294967295u : 0u) & 1065353216u);
float fragment_unnamed_120 = asfloat(1065353216u);
precise float fragment_unnamed_121 = fragment_unnamed_97 * fragment_unnamed_81;
precise float fragment_unnamed_122 = fragment_unnamed_97 * fragment_unnamed_82;
precise float fragment_unnamed_123 = fragment_unnamed_97 * fragment_unnamed_83;
precise float fragment_unnamed_124 = fragment_unnamed_97 * fragment_unnamed_120;
precise float fragment_unnamed_125 = fragment_unnamed_119 * fragment_unnamed_81;
precise float fragment_unnamed_126 = fragment_unnamed_119 * fragment_unnamed_82;
precise float fragment_unnamed_127 = fragment_unnamed_119 * fragment_unnamed_83;
precise float fragment_unnamed_128 = fragment_unnamed_119 * fragment_unnamed_120;
float fragment_unnamed_129 = asfloat(1065353216u);
float fragment_unnamed_130 = asfloat(0u);
float fragment_unnamed_131;
float fragment_unnamed_133;
float fragment_unnamed_135;
float fragment_unnamed_137;
float fragment_unnamed_139;
float fragment_unnamed_141;
float fragment_unnamed_143;
float fragment_unnamed_145;
fragment_unnamed_131 = fragment_unnamed_121;
fragment_unnamed_133 = fragment_unnamed_122;
fragment_unnamed_135 = fragment_unnamed_123;
fragment_unnamed_137 = fragment_unnamed_124;
fragment_unnamed_139 = fragment_unnamed_125;
fragment_unnamed_141 = fragment_unnamed_126;
fragment_unnamed_143 = fragment_unnamed_127;
fragment_unnamed_145 = fragment_unnamed_128;
uint fragment_unnamed_192;
precise float fragment_unnamed_198;
precise float fragment_unnamed_199;
precise float fragment_unnamed_206;
precise float fragment_unnamed_207;
float4 fragment_unnamed_212;
float fragment_unnamed_214;
float fragment_unnamed_215;
float fragment_unnamed_216;
float fragment_unnamed_217;
precise float fragment_unnamed_225;
precise float fragment_unnamed_226;
precise float fragment_unnamed_230;
precise float fragment_unnamed_231;
precise float fragment_unnamed_237;
precise float fragment_unnamed_238;
precise float fragment_unnamed_242;
precise float fragment_unnamed_246;
precise float fragment_unnamed_247;
float fragment_unnamed_248;
precise float fragment_unnamed_250;
precise float fragment_unnamed_258;
for (float fragment_unnamed_147 = fragment_unnamed_130; !(int(asuint(fragment_unnamed_147)) >= int(42u)); fragment_unnamed_192 = asuint(fragment_unnamed_147) + 109u, fragment_unnamed_198 = fragment_input_1.x + fragment_uniform_buffer_0[fragment_unnamed_192].w, fragment_unnamed_199 = fragment_input_1.y + fragment_uniform_buffer_0[fragment_unnamed_192].y, fragment_unnamed_206 = min(fragment_unnamed_59, fragment_unnamed_198) * fragment_uniform_buffer_0[27u].x, fragment_unnamed_207 = min(fragment_unnamed_62, fragment_unnamed_199) * fragment_uniform_buffer_0[27u].y, fragment_unnamed_212 = _BlitTexture.SampleBias(S0, float3(fragment_unnamed_206, fragment_unnamed_207, fragment_unnamed_31), fragment_uniform_buffer_0[4u].x), fragment_unnamed_214 = fragment_unnamed_212.x, fragment_unnamed_215 = fragment_unnamed_212.y, fragment_unnamed_216 = fragment_unnamed_212.z, fragment_unnamed_217 = fragment_unnamed_212.w, fragment_unnamed_225 = (-0.0f) - fragment_uniform_buffer_0[asuint(fragment_unnamed_147) + 109u].z, fragment_unnamed_226 = max(min(fragment_unnamed_49, fragment_unnamed_217), 0.0f) + fragment_unnamed_225, fragment_unnamed_230 = fragment_unnamed_226 + fragment_uniform_buffer_0[151u].y, fragment_unnamed_231 = (-0.0f) - fragment_unnamed_217, fragment_unnamed_237 = (-0.0f) - fragment_uniform_buffer_0[asuint(fragment_unnamed_147) + 109u].z, fragment_unnamed_238 = fragment_unnamed_231 + fragment_unnamed_237, fragment_unnamed_242 = fragment_unnamed_238 + fragment_uniform_buffer_0[151u].y, fragment_unnamed_246 = fragment_unnamed_230 / fragment_uniform_buffer_0[151u].y, fragment_unnamed_247 = fragment_unnamed_242 / fragment_uniform_buffer_0[151u].y, fragment_unnamed_248 = clamp(fragment_unnamed_246, 0.0f, 1.0f), fragment_unnamed_250 = (-0.0f) - fragment_unnamed_217, fragment_unnamed_258 = clamp(fragment_unnamed_247, 0.0f, 1.0f) * asfloat(((fragment_unnamed_250 >= fragment_uniform_buffer_0[151u].x) ? 4294967295u : 0u) & 1065353216u), fragment_unnamed_131 = mad(fragment_unnamed_214, fragment_unnamed_248, fragment_unnamed_131), fragment_unnamed_133 = mad(fragment_unnamed_215, fragment_unnamed_248, fragment_unnamed_133), fragment_unnamed_135 = mad(fragment_unnamed_216, fragment_unnamed_248, fragment_unnamed_135), fragment_unnamed_137 = mad(fragment_unnamed_129, fragment_unnamed_248, fragment_unnamed_137), fragment_unnamed_139 = mad(fragment_unnamed_214, fragment_unnamed_258, fragment_unnamed_139), fragment_unnamed_141 = mad(fragment_unnamed_215, fragment_unnamed_258, fragment_unnamed_141), fragment_unnamed_143 = mad(fragment_unnamed_216, fragment_unnamed_258, fragment_unnamed_143), fragment_unnamed_145 = mad(fragment_unnamed_129, fragment_unnamed_258, fragment_unnamed_145), fragment_unnamed_147 = asfloat(asuint(fragment_unnamed_147) + 1u))
{
}
precise float fragment_unnamed_156 = asfloat(((fragment_unnamed_137 == 0.0f) ? 4294967295u : 0u) & 1065353216u) + fragment_unnamed_137;
precise float fragment_unnamed_157 = fragment_unnamed_131 / fragment_unnamed_156;
precise float fragment_unnamed_158 = fragment_unnamed_133 / fragment_unnamed_156;
precise float fragment_unnamed_159 = fragment_unnamed_135 / fragment_unnamed_156;
precise float fragment_unnamed_164 = asfloat(((fragment_unnamed_145 == 0.0f) ? 4294967295u : 0u) & 1065353216u) + fragment_unnamed_145;
precise float fragment_unnamed_165 = fragment_unnamed_139 / fragment_unnamed_164;
precise float fragment_unnamed_166 = fragment_unnamed_141 / fragment_unnamed_164;
precise float fragment_unnamed_167 = fragment_unnamed_143 / fragment_unnamed_164;
precise float fragment_unnamed_168 = fragment_unnamed_145 * 0.073060296475887298583984375f;
float fragment_unnamed_170 = min(fragment_unnamed_168, 1.0f);
precise float fragment_unnamed_171 = (-0.0f) - fragment_unnamed_157;
precise float fragment_unnamed_172 = (-0.0f) - fragment_unnamed_158;
precise float fragment_unnamed_173 = (-0.0f) - fragment_unnamed_159;
precise float fragment_unnamed_174 = fragment_unnamed_171 + fragment_unnamed_165;
precise float fragment_unnamed_175 = fragment_unnamed_172 + fragment_unnamed_166;
precise float fragment_unnamed_176 = fragment_unnamed_173 + fragment_unnamed_167;
fragment_output_0.x = mad(fragment_unnamed_170, fragment_unnamed_174, fragment_unnamed_157);
fragment_output_0.y = mad(fragment_unnamed_170, fragment_unnamed_175, fragment_unnamed_158);
fragment_output_0.z = mad(fragment_unnamed_170, fragment_unnamed_176, fragment_unnamed_159);
fragment_output_0.w = fragment_unnamed_170;
}
Fragment_Stage_Output frag(Fragment_Stage_Input stage_input)
{
fragment_uniform_buffer_0[27] = float4(_RTHandleScale[0], _RTHandleScale[1], _RTHandleScale[2], _RTHandleScale[3]);
fragment_uniform_buffer_0[102] = float4(_BlitTexture_TexelSize[0], _BlitTexture_TexelSize[1], _BlitTexture_TexelSize[2], _BlitTexture_TexelSize[3]);
fragment_uniform_buffer_0[109] = float4(_BokehKernel[0][0], _BokehKernel[0][1], _BokehKernel[0][2], _BokehKernel[0][3]);
fragment_uniform_buffer_0[110] = float4(_BokehKernel[1][0], _BokehKernel[1][1], _BokehKernel[1][2], _BokehKernel[1][3]);
fragment_uniform_buffer_0[111] = float4(_BokehKernel[2][0], _BokehKernel[2][1], _BokehKernel[2][2], _BokehKernel[2][3]);
fragment_uniform_buffer_0[112] = float4(_BokehKernel[3][0], _BokehKernel[3][1], _BokehKernel[3][2], _BokehKernel[3][3]);
fragment_uniform_buffer_0[113] = float4(_BokehKernel[4][0], _BokehKernel[4][1], _BokehKernel[4][2], _BokehKernel[4][3]);
fragment_uniform_buffer_0[114] = float4(_BokehKernel[5][0], _BokehKernel[5][1], _BokehKernel[5][2], _BokehKernel[5][3]);
fragment_uniform_buffer_0[115] = float4(_BokehKernel[6][0], _BokehKernel[6][1], _BokehKernel[6][2], _BokehKernel[6][3]);
fragment_uniform_buffer_0[116] = float4(_BokehKernel[7][0], _BokehKernel[7][1], _BokehKernel[7][2], _BokehKernel[7][3]);
fragment_uniform_buffer_0[117] = float4(_BokehKernel[8][0], _BokehKernel[8][1], _BokehKernel[8][2], _BokehKernel[8][3]);
fragment_uniform_buffer_0[118] = float4(_BokehKernel[9][0], _BokehKernel[9][1], _BokehKernel[9][2], _BokehKernel[9][3]);
fragment_uniform_buffer_0[119] = float4(_BokehKernel[10][0], _BokehKernel[10][1], _BokehKernel[10][2], _BokehKernel[10][3]);
fragment_uniform_buffer_0[120] = float4(_BokehKernel[11][0], _BokehKernel[11][1], _BokehKernel[11][2], _BokehKernel[11][3]);
fragment_uniform_buffer_0[121] = float4(_BokehKernel[12][0], _BokehKernel[12][1], _BokehKernel[12][2], _BokehKernel[12][3]);
fragment_uniform_buffer_0[122] = float4(_BokehKernel[13][0], _BokehKernel[13][1], _BokehKernel[13][2], _BokehKernel[13][3]);
fragment_uniform_buffer_0[123] = float4(_BokehKernel[14][0], _BokehKernel[14][1], _BokehKernel[14][2], _BokehKernel[14][3]);
fragment_uniform_buffer_0[124] = float4(_BokehKernel[15][0], _BokehKernel[15][1], _BokehKernel[15][2], _BokehKernel[15][3]);
fragment_uniform_buffer_0[125] = float4(_BokehKernel[16][0], _BokehKernel[16][1], _BokehKernel[16][2], _BokehKernel[16][3]);
fragment_uniform_buffer_0[126] = float4(_BokehKernel[17][0], _BokehKernel[17][1], _BokehKernel[17][2], _BokehKernel[17][3]);
fragment_uniform_buffer_0[127] = float4(_BokehKernel[18][0], _BokehKernel[18][1], _BokehKernel[18][2], _BokehKernel[18][3]);
fragment_uniform_buffer_0[128] = float4(_BokehKernel[19][0], _BokehKernel[19][1], _BokehKernel[19][2], _BokehKernel[19][3]);
fragment_uniform_buffer_0[129] = float4(_BokehKernel[20][0], _BokehKernel[20][1], _BokehKernel[20][2], _BokehKernel[20][3]);
fragment_uniform_buffer_0[130] = float4(_BokehKernel[21][0], _BokehKernel[21][1], _BokehKernel[21][2], _BokehKernel[21][3]);
fragment_uniform_buffer_0[131] = float4(_BokehKernel[22][0], _BokehKernel[22][1], _BokehKernel[22][2], _BokehKernel[22][3]);
fragment_uniform_buffer_0[132] = float4(_BokehKernel[23][0], _BokehKernel[23][1], _BokehKernel[23][2], _BokehKernel[23][3]);
fragment_uniform_buffer_0[133] = float4(_BokehKernel[24][0], _BokehKernel[24][1], _BokehKernel[24][2], _BokehKernel[24][3]);
fragment_uniform_buffer_0[134] = float4(_BokehKernel[25][0], _BokehKernel[25][1], _BokehKernel[25][2], _BokehKernel[25][3]);
fragment_uniform_buffer_0[135] = float4(_BokehKernel[26][0], _BokehKernel[26][1], _BokehKernel[26][2], _BokehKernel[26][3]);
fragment_uniform_buffer_0[136] = float4(_BokehKernel[27][0], _BokehKernel[27][1], _BokehKernel[27][2], _BokehKernel[27][3]);
fragment_uniform_buffer_0[137] = float4(_BokehKernel[28][0], _BokehKernel[28][1], _BokehKernel[28][2], _BokehKernel[28][3]);
fragment_uniform_buffer_0[138] = float4(_BokehKernel[29][0], _BokehKernel[29][1], _BokehKernel[29][2], _BokehKernel[29][3]);
fragment_uniform_buffer_0[139] = float4(_BokehKernel[30][0], _BokehKernel[30][1], _BokehKernel[30][2], _BokehKernel[30][3]);
fragment_uniform_buffer_0[140] = float4(_BokehKernel[31][0], _BokehKernel[31][1], _BokehKernel[31][2], _BokehKernel[31][3]);
fragment_uniform_buffer_0[141] = float4(_BokehKernel[32][0], _BokehKernel[32][1], _BokehKernel[32][2], _BokehKernel[32][3]);
fragment_uniform_buffer_0[142] = float4(_BokehKernel[33][0], _BokehKernel[33][1], _BokehKernel[33][2], _BokehKernel[33][3]);
fragment_uniform_buffer_0[143] = float4(_BokehKernel[34][0], _BokehKernel[34][1], _BokehKernel[34][2], _BokehKernel[34][3]);
fragment_uniform_buffer_0[144] = float4(_BokehKernel[35][0], _BokehKernel[35][1], _BokehKernel[35][2], _BokehKernel[35][3]);
fragment_uniform_buffer_0[145] = float4(_BokehKernel[36][0], _BokehKernel[36][1], _BokehKernel[36][2], _BokehKernel[36][3]);
fragment_uniform_buffer_0[146] = float4(_BokehKernel[37][0], _BokehKernel[37][1], _BokehKernel[37][2], _BokehKernel[37][3]);
fragment_uniform_buffer_0[147] = float4(_BokehKernel[38][0], _BokehKernel[38][1], _BokehKernel[38][2], _BokehKernel[38][3]);
fragment_uniform_buffer_0[148] = float4(_BokehKernel[39][0], _BokehKernel[39][1], _BokehKernel[39][2], _BokehKernel[39][3]);
fragment_uniform_buffer_0[149] = float4(_BokehKernel[40][0], _BokehKernel[40][1], _BokehKernel[40][2], _BokehKernel[40][3]);
fragment_uniform_buffer_0[150] = float4(_BokehKernel[41][0], _BokehKernel[41][1], _BokehKernel[41][2], _BokehKernel[41][3]);
fragment_uniform_buffer_0[151] = float4(_BokehConstants[0], _BokehConstants[1], _BokehConstants[2], _BokehConstants[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
}
Pass
{
Name "Bokeh Depth Of Field Post Blur"
LOD 100
Tags { "RenderPipeline" = "UniversalPipeline" }
ZTest Always
ZWrite Off
Cull Off
GpuProgramID 529248
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[132];
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[131u].x, vertex_uniform_buffer_0[131u].z);
vertex_output_1.y = mad(vertex_unnamed_45, vertex_uniform_buffer_0[131u].y, vertex_uniform_buffer_0[131u].w);
gl_Position.z = 1.0f;
gl_Position.w = 1.0f;
}
Vertex_Stage_Output vert(Vertex_Stage_Input stage_input)
{
vertex_uniform_buffer_0[131] = 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[101];
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[100u].x, vertex_uniform_buffer_0[100u].z);
vertex_output_1.y = mad(vertex_unnamed_48, vertex_uniform_buffer_0[100u].y, vertex_uniform_buffer_0[100u].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[100] = 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
float4 _RTHandleScale;
float4 _BlitTexture_TexelSize;
float4 _SourceSize;
float4 _DownSampleScaleFactor;
static float4 fragment_uniform_buffer_0[139];
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()
{
precise float fragment_unnamed_40 = fragment_uniform_buffer_0[137u].z * fragment_uniform_buffer_0[138u].z;
precise float fragment_unnamed_41 = fragment_uniform_buffer_0[137u].w * fragment_uniform_buffer_0[138u].w;
precise float fragment_unnamed_42 = fragment_uniform_buffer_0[137u].z * fragment_uniform_buffer_0[138u].z;
precise float fragment_unnamed_43 = fragment_uniform_buffer_0[137u].w * fragment_uniform_buffer_0[138u].w;
precise float fragment_unnamed_44 = (-0.0f) - fragment_unnamed_42;
precise float fragment_unnamed_46 = (-0.0f) - fragment_unnamed_43;
precise float fragment_unnamed_47 = (-0.0f) - fragment_unnamed_40;
precise float fragment_unnamed_73 = (-0.0f) - fragment_uniform_buffer_0[133u].x;
precise float fragment_unnamed_75 = (-0.0f) - fragment_uniform_buffer_0[133u].y;
float fragment_unnamed_81 = mad(fragment_unnamed_73, 0.5f, fragment_uniform_buffer_0[28u].x);
float fragment_unnamed_82 = mad(fragment_unnamed_75, 0.5f, fragment_uniform_buffer_0[28u].y);
float fragment_unnamed_83 = mad(fragment_unnamed_73, 0.5f, fragment_uniform_buffer_0[28u].x);
float fragment_unnamed_84 = mad(fragment_unnamed_75, 0.5f, fragment_uniform_buffer_0[28u].y);
float4 fragment_unnamed_99 = _BlitTexture.SampleBias(S0, float2(min(mad(fragment_unnamed_44, 0.5f, fragment_input_1.x), fragment_unnamed_81), min(mad(fragment_unnamed_46, 0.5f, fragment_input_1.y), fragment_unnamed_82)), fragment_uniform_buffer_0[4u].x);
float4 fragment_unnamed_108 = _BlitTexture.SampleBias(S0, float2(min(mad(fragment_unnamed_47, -0.5f, fragment_input_1.x), fragment_unnamed_83), min(mad(fragment_unnamed_46, 0.5f, fragment_input_1.y), fragment_unnamed_84)), fragment_uniform_buffer_0[4u].x);
precise float fragment_unnamed_114 = fragment_unnamed_108.x + fragment_unnamed_99.x;
precise float fragment_unnamed_115 = fragment_unnamed_108.y + fragment_unnamed_99.y;
precise float fragment_unnamed_116 = fragment_unnamed_108.z + fragment_unnamed_99.z;
precise float fragment_unnamed_117 = fragment_unnamed_108.w + fragment_unnamed_99.w;
float4 fragment_unnamed_121 = _BlitTexture.SampleBias(S0, float2(min(mad(fragment_unnamed_40, -0.5f, fragment_input_1.x), fragment_unnamed_81), min(mad(fragment_unnamed_41, 0.5f, fragment_input_1.y), fragment_unnamed_82)), fragment_uniform_buffer_0[4u].x);
float4 fragment_unnamed_130 = _BlitTexture.SampleBias(S0, float2(min(mad(fragment_unnamed_42, 0.5f, fragment_input_1.x), fragment_unnamed_83), min(mad(fragment_unnamed_43, 0.5f, fragment_input_1.y), fragment_unnamed_84)), fragment_uniform_buffer_0[4u].x);
precise float fragment_unnamed_136 = fragment_unnamed_114 + fragment_unnamed_121.x;
precise float fragment_unnamed_137 = fragment_unnamed_115 + fragment_unnamed_121.y;
precise float fragment_unnamed_138 = fragment_unnamed_116 + fragment_unnamed_121.z;
precise float fragment_unnamed_139 = fragment_unnamed_117 + fragment_unnamed_121.w;
precise float fragment_unnamed_140 = fragment_unnamed_130.x + fragment_unnamed_136;
precise float fragment_unnamed_141 = fragment_unnamed_130.y + fragment_unnamed_137;
precise float fragment_unnamed_142 = fragment_unnamed_130.z + fragment_unnamed_138;
precise float fragment_unnamed_143 = fragment_unnamed_130.w + fragment_unnamed_139;
precise float fragment_unnamed_144 = fragment_unnamed_140 * 0.25f;
precise float fragment_unnamed_146 = fragment_unnamed_141 * 0.25f;
precise float fragment_unnamed_147 = fragment_unnamed_142 * 0.25f;
precise float fragment_unnamed_148 = fragment_unnamed_143 * 0.25f;
fragment_output_0.x = fragment_unnamed_144;
fragment_output_0.y = fragment_unnamed_146;
fragment_output_0.z = fragment_unnamed_147;
fragment_output_0.w = fragment_unnamed_148;
}
Fragment_Stage_Output frag(Fragment_Stage_Input stage_input)
{
fragment_uniform_buffer_0[28] = float4(_RTHandleScale[0], _RTHandleScale[1], _RTHandleScale[2], _RTHandleScale[3]);
fragment_uniform_buffer_0[133] = float4(_BlitTexture_TexelSize[0], _BlitTexture_TexelSize[1], _BlitTexture_TexelSize[2], _BlitTexture_TexelSize[3]);
fragment_uniform_buffer_0[137] = float4(_SourceSize[0], _SourceSize[1], _SourceSize[2], _SourceSize[3]);
fragment_uniform_buffer_0[138] = float4(_DownSampleScaleFactor[0], _DownSampleScaleFactor[1], _DownSampleScaleFactor[2], _DownSampleScaleFactor[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
float4 _RTHandleScale;
float4 _BlitTexture_TexelSize;
float4 _SourceSize;
float4 _DownSampleScaleFactor;
static float4 fragment_uniform_buffer_0[108];
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()
{
precise float fragment_unnamed_42 = fragment_uniform_buffer_0[106u].z * fragment_uniform_buffer_0[107u].z;
precise float fragment_unnamed_43 = fragment_uniform_buffer_0[106u].w * fragment_uniform_buffer_0[107u].w;
precise float fragment_unnamed_44 = fragment_uniform_buffer_0[106u].z * fragment_uniform_buffer_0[107u].z;
precise float fragment_unnamed_45 = fragment_uniform_buffer_0[106u].w * fragment_uniform_buffer_0[107u].w;
precise float fragment_unnamed_46 = (-0.0f) - fragment_unnamed_44;
precise float fragment_unnamed_48 = (-0.0f) - fragment_unnamed_45;
precise float fragment_unnamed_49 = (-0.0f) - fragment_unnamed_42;
precise float fragment_unnamed_75 = (-0.0f) - fragment_uniform_buffer_0[102u].x;
precise float fragment_unnamed_77 = (-0.0f) - fragment_uniform_buffer_0[102u].y;
float fragment_unnamed_83 = mad(fragment_unnamed_75, 0.5f, fragment_uniform_buffer_0[27u].x);
float fragment_unnamed_84 = mad(fragment_unnamed_77, 0.5f, fragment_uniform_buffer_0[27u].y);
float fragment_unnamed_85 = mad(fragment_unnamed_75, 0.5f, fragment_uniform_buffer_0[27u].x);
float fragment_unnamed_86 = mad(fragment_unnamed_77, 0.5f, fragment_uniform_buffer_0[27u].y);
float fragment_unnamed_96 = float(uint(gl_Layer));
float4 fragment_unnamed_103 = _BlitTexture.SampleBias(S0, float3(min(mad(fragment_unnamed_46, 0.5f, fragment_input_1.x), fragment_unnamed_83), min(mad(fragment_unnamed_48, 0.5f, fragment_input_1.y), fragment_unnamed_84), fragment_unnamed_96), fragment_uniform_buffer_0[4u].x);
float4 fragment_unnamed_113 = _BlitTexture.SampleBias(S0, float3(min(mad(fragment_unnamed_49, -0.5f, fragment_input_1.x), fragment_unnamed_85), min(mad(fragment_unnamed_48, 0.5f, fragment_input_1.y), fragment_unnamed_86), fragment_unnamed_96), fragment_uniform_buffer_0[4u].x);
precise float fragment_unnamed_119 = fragment_unnamed_113.x + fragment_unnamed_103.x;
precise float fragment_unnamed_120 = fragment_unnamed_113.y + fragment_unnamed_103.y;
precise float fragment_unnamed_121 = fragment_unnamed_113.z + fragment_unnamed_103.z;
precise float fragment_unnamed_122 = fragment_unnamed_113.w + fragment_unnamed_103.w;
float4 fragment_unnamed_126 = _BlitTexture.SampleBias(S0, float3(min(mad(fragment_unnamed_42, -0.5f, fragment_input_1.x), fragment_unnamed_83), min(mad(fragment_unnamed_43, 0.5f, fragment_input_1.y), fragment_unnamed_84), fragment_unnamed_96), fragment_uniform_buffer_0[4u].x);
float4 fragment_unnamed_135 = _BlitTexture.SampleBias(S0, float3(min(mad(fragment_unnamed_44, 0.5f, fragment_input_1.x), fragment_unnamed_85), min(mad(fragment_unnamed_45, 0.5f, fragment_input_1.y), fragment_unnamed_86), fragment_unnamed_96), fragment_uniform_buffer_0[4u].x);
precise float fragment_unnamed_141 = fragment_unnamed_119 + fragment_unnamed_126.x;
precise float fragment_unnamed_142 = fragment_unnamed_120 + fragment_unnamed_126.y;
precise float fragment_unnamed_143 = fragment_unnamed_121 + fragment_unnamed_126.z;
precise float fragment_unnamed_144 = fragment_unnamed_122 + fragment_unnamed_126.w;
precise float fragment_unnamed_145 = fragment_unnamed_135.x + fragment_unnamed_141;
precise float fragment_unnamed_146 = fragment_unnamed_135.y + fragment_unnamed_142;
precise float fragment_unnamed_147 = fragment_unnamed_135.z + fragment_unnamed_143;
precise float fragment_unnamed_148 = fragment_unnamed_135.w + fragment_unnamed_144;
precise float fragment_unnamed_149 = fragment_unnamed_145 * 0.25f;
precise float fragment_unnamed_151 = fragment_unnamed_146 * 0.25f;
precise float fragment_unnamed_152 = fragment_unnamed_147 * 0.25f;
precise float fragment_unnamed_153 = fragment_unnamed_148 * 0.25f;
fragment_output_0.x = fragment_unnamed_149;
fragment_output_0.y = fragment_unnamed_151;
fragment_output_0.z = fragment_unnamed_152;
fragment_output_0.w = fragment_unnamed_153;
}
Fragment_Stage_Output frag(Fragment_Stage_Input stage_input)
{
fragment_uniform_buffer_0[27] = float4(_RTHandleScale[0], _RTHandleScale[1], _RTHandleScale[2], _RTHandleScale[3]);
fragment_uniform_buffer_0[102] = float4(_BlitTexture_TexelSize[0], _BlitTexture_TexelSize[1], _BlitTexture_TexelSize[2], _BlitTexture_TexelSize[3]);
fragment_uniform_buffer_0[106] = float4(_SourceSize[0], _SourceSize[1], _SourceSize[2], _SourceSize[3]);
fragment_uniform_buffer_0[107] = float4(_DownSampleScaleFactor[0], _DownSampleScaleFactor[1], _DownSampleScaleFactor[2], _DownSampleScaleFactor[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
}
Pass
{
Name "Bokeh Depth Of Field Composite"
LOD 100
Tags { "RenderPipeline" = "UniversalPipeline" }
ZTest Always
ZWrite Off
Cull Off
GpuProgramID 647121
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[132];
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[131u].x, vertex_uniform_buffer_0[131u].z);
vertex_output_1.y = mad(vertex_unnamed_45, vertex_uniform_buffer_0[131u].y, vertex_uniform_buffer_0[131u].w);
gl_Position.z = 1.0f;
gl_Position.w = 1.0f;
}
Vertex_Stage_Output vert(Vertex_Stage_Input stage_input)
{
vertex_uniform_buffer_0[131] = 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[101];
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[100u].x, vertex_uniform_buffer_0[100u].z);
vertex_output_1.y = mad(vertex_unnamed_48, vertex_uniform_buffer_0[100u].y, vertex_uniform_buffer_0[100u].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[100] = 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
float4 _RTHandleScale;
float4 _BlitTexture_TexelSize;
float4 _SourceSize;
float4 _CoCParams;
static float4 fragment_uniform_buffer_0[140];
Texture2D<float4> _BlitTexture;
Texture2D<float4> _DofTexture;
Texture2D<float4> _FullCoCTexture;
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()
{
precise float fragment_unnamed_38 = (-0.0f) - fragment_uniform_buffer_0[133u].x;
precise float fragment_unnamed_41 = (-0.0f) - fragment_uniform_buffer_0[133u].y;
float fragment_unnamed_57 = min(mad(fragment_unnamed_38, 0.5f, fragment_uniform_buffer_0[28u].x), fragment_input_1.x);
float fragment_unnamed_58 = min(mad(fragment_unnamed_41, 0.5f, fragment_uniform_buffer_0[28u].y), fragment_input_1.y);
float4 fragment_unnamed_72 = _BlitTexture.SampleBias(S0, float2(fragment_unnamed_57, fragment_unnamed_58), fragment_uniform_buffer_0[4u].x);
float fragment_unnamed_74 = fragment_unnamed_72.x;
float fragment_unnamed_75 = fragment_unnamed_72.y;
float fragment_unnamed_76 = fragment_unnamed_72.z;
float fragment_unnamed_77 = fragment_unnamed_72.w;
precise float fragment_unnamed_78 = _FullCoCTexture.SampleBias(S0, float2(fragment_unnamed_57, fragment_unnamed_58), fragment_uniform_buffer_0[4u].x).x + (-0.5f);
precise float fragment_unnamed_91 = (-0.0f) - fragment_uniform_buffer_0[137u].w;
precise float fragment_unnamed_100 = fragment_uniform_buffer_0[137u].w + fragment_uniform_buffer_0[137u].w;
precise float fragment_unnamed_101 = 1.0f / fragment_unnamed_100;
precise float fragment_unnamed_103 = fragment_unnamed_101 * mad(fragment_unnamed_91, 2.0f, dot(fragment_unnamed_78.xx, fragment_uniform_buffer_0[139u].z.xx));
float fragment_unnamed_105 = clamp(fragment_unnamed_103, 0.0f, 1.0f);
float fragment_unnamed_106 = mad(fragment_unnamed_105, -2.0f, 3.0f);
precise float fragment_unnamed_109 = fragment_unnamed_105 * fragment_unnamed_105;
precise float fragment_unnamed_110 = fragment_unnamed_109 * fragment_unnamed_106;
precise float fragment_unnamed_118 = (-0.0f) - fragment_uniform_buffer_0[133u].x;
precise float fragment_unnamed_120 = (-0.0f) - fragment_uniform_buffer_0[133u].y;
precise float fragment_unnamed_121 = fragment_uniform_buffer_0[28u].x + fragment_unnamed_118;
precise float fragment_unnamed_122 = fragment_uniform_buffer_0[28u].y + fragment_unnamed_120;
float4 fragment_unnamed_133 = _DofTexture.SampleBias(S0, float2(min(fragment_unnamed_121, fragment_input_1.x), min(fragment_unnamed_122, fragment_input_1.y)), fragment_uniform_buffer_0[4u].x);
float fragment_unnamed_135 = fragment_unnamed_133.x;
float fragment_unnamed_136 = fragment_unnamed_133.y;
float fragment_unnamed_137 = fragment_unnamed_133.z;
float fragment_unnamed_138 = fragment_unnamed_133.w;
precise float fragment_unnamed_140 = (-0.0f) - fragment_unnamed_110;
float fragment_unnamed_141 = mad(fragment_unnamed_140, fragment_unnamed_138, mad(fragment_unnamed_106, fragment_unnamed_109, fragment_unnamed_138));
precise float fragment_unnamed_144 = (-0.0f) - fragment_unnamed_74;
precise float fragment_unnamed_145 = (-0.0f) - fragment_unnamed_75;
precise float fragment_unnamed_146 = (-0.0f) - fragment_unnamed_76;
precise float fragment_unnamed_147 = (-0.0f) - fragment_unnamed_77;
precise float fragment_unnamed_148 = fragment_unnamed_144 + fragment_unnamed_135;
precise float fragment_unnamed_149 = fragment_unnamed_145 + fragment_unnamed_136;
precise float fragment_unnamed_150 = fragment_unnamed_146 + fragment_unnamed_137;
precise float fragment_unnamed_151 = fragment_unnamed_147 + max(fragment_unnamed_137, max(fragment_unnamed_136, fragment_unnamed_135));
fragment_output_0.x = mad(fragment_unnamed_141, fragment_unnamed_148, fragment_unnamed_74);
fragment_output_0.y = mad(fragment_unnamed_141, fragment_unnamed_149, fragment_unnamed_75);
fragment_output_0.z = mad(fragment_unnamed_141, fragment_unnamed_150, fragment_unnamed_76);
fragment_output_0.w = mad(fragment_unnamed_141, fragment_unnamed_151, fragment_unnamed_77);
}
Fragment_Stage_Output frag(Fragment_Stage_Input stage_input)
{
fragment_uniform_buffer_0[28] = float4(_RTHandleScale[0], _RTHandleScale[1], _RTHandleScale[2], _RTHandleScale[3]);
fragment_uniform_buffer_0[133] = float4(_BlitTexture_TexelSize[0], _BlitTexture_TexelSize[1], _BlitTexture_TexelSize[2], _BlitTexture_TexelSize[3]);
fragment_uniform_buffer_0[137] = float4(_SourceSize[0], _SourceSize[1], _SourceSize[2], _SourceSize[3]);
fragment_uniform_buffer_0[139] = float4(_CoCParams[0], _CoCParams[1], _CoCParams[2], _CoCParams[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
float4 _RTHandleScale;
float4 _BlitTexture_TexelSize;
float4 _SourceSize;
float4 _CoCParams;
static float4 fragment_uniform_buffer_0[109];
Texture2DArray<float4> _BlitTexture;
Texture2DArray<float4> _DofTexture;
Texture2DArray<float4> _FullCoCTexture;
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()
{
precise float fragment_unnamed_43 = fragment_uniform_buffer_0[106u].w + fragment_uniform_buffer_0[106u].w;
precise float fragment_unnamed_44 = 1.0f / fragment_unnamed_43;
precise float fragment_unnamed_50 = (-0.0f) - fragment_uniform_buffer_0[102u].x;
precise float fragment_unnamed_53 = (-0.0f) - fragment_uniform_buffer_0[102u].y;
float fragment_unnamed_69 = min(mad(fragment_unnamed_50, 0.5f, fragment_uniform_buffer_0[27u].x), fragment_input_1.x);
float fragment_unnamed_70 = min(mad(fragment_unnamed_53, 0.5f, fragment_uniform_buffer_0[27u].y), fragment_input_1.y);
float fragment_unnamed_72 = float(uint(gl_Layer));
float4 fragment_unnamed_87 = _BlitTexture.SampleBias(S0, float3(fragment_unnamed_69, fragment_unnamed_70, fragment_unnamed_72), fragment_uniform_buffer_0[4u].x);
float fragment_unnamed_89 = fragment_unnamed_87.x;
float fragment_unnamed_90 = fragment_unnamed_87.y;
float fragment_unnamed_91 = fragment_unnamed_87.z;
float fragment_unnamed_92 = fragment_unnamed_87.w;
precise float fragment_unnamed_93 = _FullCoCTexture.SampleBias(S0, float3(fragment_unnamed_69, fragment_unnamed_70, fragment_unnamed_72), fragment_uniform_buffer_0[4u].x).x + (-0.5f);
precise float fragment_unnamed_105 = (-0.0f) - fragment_uniform_buffer_0[106u].w;
precise float fragment_unnamed_108 = fragment_unnamed_44 * mad(fragment_unnamed_105, 2.0f, dot(fragment_unnamed_93.xx, fragment_uniform_buffer_0[108u].z.xx));
float fragment_unnamed_110 = clamp(fragment_unnamed_108, 0.0f, 1.0f);
float fragment_unnamed_111 = mad(fragment_unnamed_110, -2.0f, 3.0f);
precise float fragment_unnamed_114 = fragment_unnamed_110 * fragment_unnamed_110;
precise float fragment_unnamed_115 = fragment_unnamed_114 * fragment_unnamed_111;
precise float fragment_unnamed_123 = (-0.0f) - fragment_uniform_buffer_0[102u].x;
precise float fragment_unnamed_125 = (-0.0f) - fragment_uniform_buffer_0[102u].y;
precise float fragment_unnamed_126 = fragment_uniform_buffer_0[27u].x + fragment_unnamed_123;
precise float fragment_unnamed_127 = fragment_uniform_buffer_0[27u].y + fragment_unnamed_125;
float4 fragment_unnamed_138 = _DofTexture.SampleBias(S0, float3(min(fragment_unnamed_126, fragment_input_1.x), min(fragment_unnamed_127, fragment_input_1.y), fragment_unnamed_72), fragment_uniform_buffer_0[4u].x);
float fragment_unnamed_140 = fragment_unnamed_138.x;
float fragment_unnamed_141 = fragment_unnamed_138.y;
float fragment_unnamed_142 = fragment_unnamed_138.z;
float fragment_unnamed_143 = fragment_unnamed_138.w;
precise float fragment_unnamed_145 = (-0.0f) - fragment_unnamed_115;
float fragment_unnamed_146 = mad(fragment_unnamed_145, fragment_unnamed_143, mad(fragment_unnamed_111, fragment_unnamed_114, fragment_unnamed_143));
precise float fragment_unnamed_149 = (-0.0f) - fragment_unnamed_89;
precise float fragment_unnamed_150 = (-0.0f) - fragment_unnamed_90;
precise float fragment_unnamed_151 = (-0.0f) - fragment_unnamed_91;
precise float fragment_unnamed_152 = (-0.0f) - fragment_unnamed_92;
precise float fragment_unnamed_153 = fragment_unnamed_149 + fragment_unnamed_140;
precise float fragment_unnamed_154 = fragment_unnamed_150 + fragment_unnamed_141;
precise float fragment_unnamed_155 = fragment_unnamed_151 + fragment_unnamed_142;
precise float fragment_unnamed_156 = fragment_unnamed_152 + max(fragment_unnamed_142, max(fragment_unnamed_141, fragment_unnamed_140));
fragment_output_0.x = mad(fragment_unnamed_146, fragment_unnamed_153, fragment_unnamed_89);
fragment_output_0.y = mad(fragment_unnamed_146, fragment_unnamed_154, fragment_unnamed_90);
fragment_output_0.z = mad(fragment_unnamed_146, fragment_unnamed_155, fragment_unnamed_91);
fragment_output_0.w = mad(fragment_unnamed_146, fragment_unnamed_156, fragment_unnamed_92);
}
Fragment_Stage_Output frag(Fragment_Stage_Input stage_input)
{
fragment_uniform_buffer_0[27] = float4(_RTHandleScale[0], _RTHandleScale[1], _RTHandleScale[2], _RTHandleScale[3]);
fragment_uniform_buffer_0[102] = float4(_BlitTexture_TexelSize[0], _BlitTexture_TexelSize[1], _BlitTexture_TexelSize[2], _BlitTexture_TexelSize[3]);
fragment_uniform_buffer_0[106] = float4(_SourceSize[0], _SourceSize[1], _SourceSize[2], _SourceSize[3]);
fragment_uniform_buffer_0[108] = float4(_CoCParams[0], _CoCParams[1], _CoCParams[2], _CoCParams[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
}
}
}