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

634 lines
18 KiB
GLSL

Shader "Hidden/CoreSRP/CoreCopy"
{
Properties
{
}
SubShader
{
Pass
{
Name "Copy"
ZClip Off
ZWrite Off
Cull Off
GpuProgramID 10466
HLSLPROGRAM
// https://docs.unity3d.com/Manual/SL-PragmaDirectives.html
#pragma vertex vert
#pragma fragment frag
#pragma target 4.0
#pragma multi_compile _ DISABLE_TEXTURE2D_X_ARRAY
#pragma multi_compile _ STEREO_INSTANCING_ON
#ifndef DISABLE_TEXTURE2D_X_ARRAY
#ifndef STEREO_INSTANCING_ON
#define ANY_SHADER_VARIANT_ACTIVE
static float4 gl_Position;
static int gl_VertexIndex;
static int gl_BaseVertexARB;
struct Vertex_Stage_Input
{
uint gl_VertexIndex : SV_VertexID;
uint gl_BaseVertexARB : SV_StartVertexLocation;
};
struct Vertex_Stage_Output
{
float4 gl_Position : SV_Position;
};
void vert_main()
{
gl_Position.x = mad(float(((uint(gl_VertexIndex) - uint(gl_BaseVertexARB)) << 1u) & 2u), 2.0f, -1.0f);
gl_Position.y = mad(float((uint(gl_VertexIndex) - uint(gl_BaseVertexARB)) & 2u), 2.0f, -1.0f);
gl_Position.z = 1.0f;
gl_Position.w = 1.0f;
}
Vertex_Stage_Output vert(Vertex_Stage_Input stage_input)
{
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;
return stage_output;
}
#endif // !DISABLE_TEXTURE2D_X_ARRAY
#endif // !STEREO_INSTANCING_ON
#ifdef STEREO_INSTANCING_ON
#ifndef DISABLE_TEXTURE2D_X_ARRAY
#define ANY_SHADER_VARIANT_ACTIVE
static float4 gl_Position;
static uint gl_Layer;
static int gl_VertexIndex;
static int gl_InstanceIndex;
static int gl_BaseVertexARB;
static int gl_BaseInstanceARB;
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
{
float4 gl_Position : SV_Position;
uint gl_Layer : SV_RenderTargetArrayIndex;
};
void vert_main()
{
gl_Position.x = mad(float(((uint(gl_VertexIndex) - uint(gl_BaseVertexARB)) << 1u) & 2u), 2.0f, -1.0f);
gl_Position.y = mad(float((uint(gl_VertexIndex) - uint(gl_BaseVertexARB)) & 2u), 2.0f, -1.0f);
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)
{
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;
return stage_output;
}
#endif // STEREO_INSTANCING_ON
#endif // !DISABLE_TEXTURE2D_X_ARRAY
#ifndef DISABLE_TEXTURE2D_X_ARRAY
#ifndef STEREO_INSTANCING_ON
#define ANY_SHADER_VARIANT_ACTIVE
Texture2DArray<float4> _UnityFBInput0;
static float4 gl_FragCoord;
static float4 fragment_output_0;
struct Fragment_Stage_Input
{
float4 gl_FragCoord : SV_Position;
};
struct Fragment_Stage_Output
{
float4 fragment_output_0 : SV_Target0;
};
void frag_main()
{
float4 fragment_unnamed_25 = _UnityFBInput0.Load(int4(uint3(uint(int(gl_FragCoord.x)), uint(int(gl_FragCoord.y)), 0u), 0u));
fragment_output_0.x = fragment_unnamed_25.x;
fragment_output_0.y = fragment_unnamed_25.y;
fragment_output_0.z = fragment_unnamed_25.z;
fragment_output_0.w = fragment_unnamed_25.w;
}
Fragment_Stage_Output frag(Fragment_Stage_Input stage_input)
{
gl_FragCoord = stage_input.gl_FragCoord;
gl_FragCoord.w = 1.0 / gl_FragCoord.w;
frag_main();
Fragment_Stage_Output stage_output;
stage_output.fragment_output_0 = fragment_output_0;
return stage_output;
}
#endif // !DISABLE_TEXTURE2D_X_ARRAY
#endif // !STEREO_INSTANCING_ON
#ifdef STEREO_INSTANCING_ON
#ifndef DISABLE_TEXTURE2D_X_ARRAY
#define ANY_SHADER_VARIANT_ACTIVE
Texture2DArray<float4> _UnityFBInput0;
static uint gl_Layer;
static float4 gl_FragCoord;
static float4 fragment_output_0;
struct Fragment_Stage_Input
{
uint gl_Layer : SV_RenderTargetArrayIndex;
float4 gl_FragCoord : SV_Position;
};
struct Fragment_Stage_Output
{
float4 fragment_output_0 : SV_Target0;
};
void frag_main()
{
float4 fragment_unnamed_28 = _UnityFBInput0.Load(int4(uint3(uint(int(gl_FragCoord.x)), uint(int(gl_FragCoord.y)), uint(gl_Layer)), 0u));
fragment_output_0.x = fragment_unnamed_28.x;
fragment_output_0.y = fragment_unnamed_28.y;
fragment_output_0.z = fragment_unnamed_28.z;
fragment_output_0.w = fragment_unnamed_28.w;
}
Fragment_Stage_Output frag(Fragment_Stage_Input stage_input)
{
gl_Layer = stage_input.gl_Layer;
gl_FragCoord = stage_input.gl_FragCoord;
gl_FragCoord.w = 1.0 / gl_FragCoord.w;
frag_main();
Fragment_Stage_Output stage_output;
stage_output.fragment_output_0 = fragment_output_0;
return stage_output;
}
#endif // STEREO_INSTANCING_ON
#endif // !DISABLE_TEXTURE2D_X_ARRAY
#ifdef DISABLE_TEXTURE2D_X_ARRAY
#ifndef STEREO_INSTANCING_ON
#define ANY_SHADER_VARIANT_ACTIVE
Texture2D<float4> _UnityFBInput0;
static float4 gl_FragCoord;
static float4 fragment_output_0;
struct Fragment_Stage_Input
{
float4 gl_FragCoord : SV_Position;
};
struct Fragment_Stage_Output
{
float4 fragment_output_0 : SV_Target0;
};
void frag_main()
{
float4 fragment_unnamed_25 = _UnityFBInput0.Load(int3(uint2(uint(int(gl_FragCoord.x)), uint(int(gl_FragCoord.y))), 0u));
fragment_output_0.x = fragment_unnamed_25.x;
fragment_output_0.y = fragment_unnamed_25.y;
fragment_output_0.z = fragment_unnamed_25.z;
fragment_output_0.w = fragment_unnamed_25.w;
}
Fragment_Stage_Output frag(Fragment_Stage_Input stage_input)
{
gl_FragCoord = stage_input.gl_FragCoord;
gl_FragCoord.w = 1.0 / gl_FragCoord.w;
frag_main();
Fragment_Stage_Output stage_output;
stage_output.fragment_output_0 = fragment_output_0;
return stage_output;
}
#endif // DISABLE_TEXTURE2D_X_ARRAY
#endif // !STEREO_INSTANCING_ON
#ifdef DISABLE_TEXTURE2D_X_ARRAY
#ifdef STEREO_INSTANCING_ON
#define ANY_SHADER_VARIANT_ACTIVE
Texture2D<float4> _UnityFBInput0;
static float4 gl_FragCoord;
static float4 fragment_output_0;
struct Fragment_Stage_Input
{
float4 gl_FragCoord : SV_Position;
};
struct Fragment_Stage_Output
{
float4 fragment_output_0 : SV_Target0;
};
void frag_main()
{
float4 fragment_unnamed_27 = _UnityFBInput0.Load(int3(uint2(uint(int(gl_FragCoord.x)), uint(int(gl_FragCoord.y))), 0u));
fragment_output_0.x = fragment_unnamed_27.x;
fragment_output_0.y = fragment_unnamed_27.y;
fragment_output_0.z = fragment_unnamed_27.z;
fragment_output_0.w = fragment_unnamed_27.w;
}
Fragment_Stage_Output frag(Fragment_Stage_Input stage_input)
{
gl_FragCoord = stage_input.gl_FragCoord;
gl_FragCoord.w = 1.0 / gl_FragCoord.w;
frag_main();
Fragment_Stage_Output stage_output;
stage_output.fragment_output_0 = fragment_output_0;
return stage_output;
}
#endif // DISABLE_TEXTURE2D_X_ARRAY
#endif // STEREO_INSTANCING_ON
ENDHLSL
}
Pass
{
Name "CopyMS"
ZClip Off
ZWrite Off
Cull Off
GpuProgramID 128618
HLSLPROGRAM
// https://docs.unity3d.com/Manual/SL-PragmaDirectives.html
#pragma vertex vert
#pragma fragment frag
#pragma target 5.0
#pragma multi_compile _ DISABLE_TEXTURE2D_X_ARRAY
#pragma multi_compile _ STEREO_INSTANCING_ON
#ifndef DISABLE_TEXTURE2D_X_ARRAY
#ifndef STEREO_INSTANCING_ON
#define ANY_SHADER_VARIANT_ACTIVE
static float4 gl_Position;
static int gl_VertexIndex;
static int gl_BaseVertexARB;
struct Vertex_Stage_Input
{
uint gl_VertexIndex : SV_VertexID;
uint gl_BaseVertexARB : SV_StartVertexLocation;
};
struct Vertex_Stage_Output
{
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_19 = 1u & 31u;
gl_Position.x = mad(float(spvBitfieldInsert(0u, uint(gl_VertexIndex) - uint(gl_BaseVertexARB), vertex_unnamed_19, min((1u & 31u), (32u - vertex_unnamed_19)))), 2.0f, -1.0f);
gl_Position.y = mad(float((uint(gl_VertexIndex) - uint(gl_BaseVertexARB)) & 2u), 2.0f, -1.0f);
gl_Position.z = 1.0f;
gl_Position.w = 1.0f;
}
Vertex_Stage_Output vert(Vertex_Stage_Input stage_input)
{
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;
return stage_output;
}
#endif // !DISABLE_TEXTURE2D_X_ARRAY
#endif // !STEREO_INSTANCING_ON
#ifdef STEREO_INSTANCING_ON
#ifndef DISABLE_TEXTURE2D_X_ARRAY
#define ANY_SHADER_VARIANT_ACTIVE
static float4 gl_Position;
static uint gl_Layer;
static int gl_VertexIndex;
static int gl_InstanceIndex;
static int gl_BaseVertexARB;
static int gl_BaseInstanceARB;
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
{
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_22 = 1u & 31u;
gl_Position.x = mad(float(spvBitfieldInsert(0u, uint(gl_VertexIndex) - uint(gl_BaseVertexARB), vertex_unnamed_22, min((1u & 31u), (32u - vertex_unnamed_22)))), 2.0f, -1.0f);
gl_Position.y = mad(float((uint(gl_VertexIndex) - uint(gl_BaseVertexARB)) & 2u), 2.0f, -1.0f);
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)
{
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;
return stage_output;
}
#endif // STEREO_INSTANCING_ON
#endif // !DISABLE_TEXTURE2D_X_ARRAY
#ifndef DISABLE_TEXTURE2D_X_ARRAY
#ifndef STEREO_INSTANCING_ON
#define ANY_SHADER_VARIANT_ACTIVE
Texture2DMSArray<float4> _UnityFBInput0;
static float4 gl_FragCoord;
static int gl_SampleID;
static float4 fragment_output_0;
struct Fragment_Stage_Input
{
float4 gl_FragCoord : SV_Position;
uint gl_SampleID : SV_SampleIndex;
};
struct Fragment_Stage_Output
{
float4 fragment_output_0 : SV_Target0;
};
void frag_main()
{
float4 fragment_unnamed_28 = _UnityFBInput0.Load(uint3(uint(int(gl_FragCoord.x)), uint(int(gl_FragCoord.y)), 0u), uint(gl_SampleID));
fragment_output_0.x = fragment_unnamed_28.x;
fragment_output_0.y = fragment_unnamed_28.y;
fragment_output_0.z = fragment_unnamed_28.z;
fragment_output_0.w = fragment_unnamed_28.w;
}
Fragment_Stage_Output frag(Fragment_Stage_Input stage_input)
{
gl_FragCoord = stage_input.gl_FragCoord;
gl_FragCoord.w = 1.0 / gl_FragCoord.w;
gl_SampleID = stage_input.gl_SampleID;
frag_main();
Fragment_Stage_Output stage_output;
stage_output.fragment_output_0 = fragment_output_0;
return stage_output;
}
#endif // !DISABLE_TEXTURE2D_X_ARRAY
#endif // !STEREO_INSTANCING_ON
#ifdef STEREO_INSTANCING_ON
#ifndef DISABLE_TEXTURE2D_X_ARRAY
#define ANY_SHADER_VARIANT_ACTIVE
Texture2DMSArray<float4> _UnityFBInput0;
static uint gl_Layer;
static float4 gl_FragCoord;
static int gl_SampleID;
static float4 fragment_output_0;
struct Fragment_Stage_Input
{
uint gl_Layer : SV_RenderTargetArrayIndex;
float4 gl_FragCoord : SV_Position;
uint gl_SampleID : SV_SampleIndex;
};
struct Fragment_Stage_Output
{
float4 fragment_output_0 : SV_Target0;
};
void frag_main()
{
float4 fragment_unnamed_30 = _UnityFBInput0.Load(uint3(uint(int(gl_FragCoord.x)), uint(int(gl_FragCoord.y)), uint(gl_Layer)), uint(gl_SampleID));
fragment_output_0.x = fragment_unnamed_30.x;
fragment_output_0.y = fragment_unnamed_30.y;
fragment_output_0.z = fragment_unnamed_30.z;
fragment_output_0.w = fragment_unnamed_30.w;
}
Fragment_Stage_Output frag(Fragment_Stage_Input stage_input)
{
gl_Layer = stage_input.gl_Layer;
gl_FragCoord = stage_input.gl_FragCoord;
gl_FragCoord.w = 1.0 / gl_FragCoord.w;
gl_SampleID = stage_input.gl_SampleID;
frag_main();
Fragment_Stage_Output stage_output;
stage_output.fragment_output_0 = fragment_output_0;
return stage_output;
}
#endif // STEREO_INSTANCING_ON
#endif // !DISABLE_TEXTURE2D_X_ARRAY
#ifdef DISABLE_TEXTURE2D_X_ARRAY
#ifndef STEREO_INSTANCING_ON
#define ANY_SHADER_VARIANT_ACTIVE
Texture2DMS<float4> _UnityFBInput0;
static float4 gl_FragCoord;
static int gl_SampleID;
static float4 fragment_output_0;
struct Fragment_Stage_Input
{
float4 gl_FragCoord : SV_Position;
uint gl_SampleID : SV_SampleIndex;
};
struct Fragment_Stage_Output
{
float4 fragment_output_0 : SV_Target0;
};
void frag_main()
{
float4 fragment_unnamed_28 = _UnityFBInput0.Load(uint2(uint(int(gl_FragCoord.x)), uint(int(gl_FragCoord.y))), uint(gl_SampleID));
fragment_output_0.x = fragment_unnamed_28.x;
fragment_output_0.y = fragment_unnamed_28.y;
fragment_output_0.z = fragment_unnamed_28.z;
fragment_output_0.w = fragment_unnamed_28.w;
}
Fragment_Stage_Output frag(Fragment_Stage_Input stage_input)
{
gl_FragCoord = stage_input.gl_FragCoord;
gl_FragCoord.w = 1.0 / gl_FragCoord.w;
gl_SampleID = stage_input.gl_SampleID;
frag_main();
Fragment_Stage_Output stage_output;
stage_output.fragment_output_0 = fragment_output_0;
return stage_output;
}
#endif // DISABLE_TEXTURE2D_X_ARRAY
#endif // !STEREO_INSTANCING_ON
#ifdef DISABLE_TEXTURE2D_X_ARRAY
#ifdef STEREO_INSTANCING_ON
#define ANY_SHADER_VARIANT_ACTIVE
Texture2DMS<float4> _UnityFBInput0;
static float4 gl_FragCoord;
static int gl_SampleID;
static float4 fragment_output_0;
struct Fragment_Stage_Input
{
float4 gl_FragCoord : SV_Position;
uint gl_SampleID : SV_SampleIndex;
};
struct Fragment_Stage_Output
{
float4 fragment_output_0 : SV_Target0;
};
void frag_main()
{
float4 fragment_unnamed_29 = _UnityFBInput0.Load(uint2(uint(int(gl_FragCoord.x)), uint(int(gl_FragCoord.y))), uint(gl_SampleID));
fragment_output_0.x = fragment_unnamed_29.x;
fragment_output_0.y = fragment_unnamed_29.y;
fragment_output_0.z = fragment_unnamed_29.z;
fragment_output_0.w = fragment_unnamed_29.w;
}
Fragment_Stage_Output frag(Fragment_Stage_Input stage_input)
{
gl_FragCoord = stage_input.gl_FragCoord;
gl_FragCoord.w = 1.0 / gl_FragCoord.w;
gl_SampleID = stage_input.gl_SampleID;
frag_main();
Fragment_Stage_Output stage_output;
stage_output.fragment_output_0 = fragment_output_0;
return stage_output;
}
#endif // DISABLE_TEXTURE2D_X_ARRAY
#endif // STEREO_INSTANCING_ON
ENDHLSL
}
}
}