Skip to content
This repository was archived by the owner on Nov 30, 2020. It is now read-only.

Add noperspective interpolation modifier for optimization #383

Open
wants to merge 1 commit into
base: v1
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions PostProcessing/Resources/Shaders/AmbientOcclusion.cginc
Original file line number Diff line number Diff line change
Expand Up @@ -151,9 +151,9 @@ half CompareNormal(half3 d1, half3 d2)
struct VaryingsMultitex
{
float4 pos : SV_POSITION;
half2 uv : TEXCOORD0; // Original UV
half2 uv01 : TEXCOORD1; // Alternative UV (supports v-flip case)
half2 uvSPR : TEXCOORD2; // Single pass stereo rendering UV
NOPERSPECTIVE half2 uv : TEXCOORD0; // Original UV
NOPERSPECTIVE half2 uv01 : TEXCOORD1; // Alternative UV (supports v-flip case)
NOPERSPECTIVE half2 uvSPR : TEXCOORD2; // Single pass stereo rendering UV
};

VaryingsMultitex VertMultitex(AttributesDefault v)
Expand Down
2 changes: 1 addition & 1 deletion PostProcessing/Resources/Shaders/Blit.shader
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ Shader "Hidden/Post FX/Blit"

struct Varyings
{
float2 uv : TEXCOORD0;
NOPERSPECTIVE float2 uv : TEXCOORD0;
float4 vertex : SV_POSITION;
};

Expand Down
4 changes: 2 additions & 2 deletions PostProcessing/Resources/Shaders/Bloom.shader
Original file line number Diff line number Diff line change
Expand Up @@ -53,8 +53,8 @@ Shader "Hidden/Post FX/Bloom"
struct VaryingsMultitex
{
float4 pos : SV_POSITION;
float2 uvMain : TEXCOORD0;
float2 uvBase : TEXCOORD1;
NOPERSPECTIVE float2 uvMain : TEXCOORD0;
NOPERSPECTIVE float2 uvBase : TEXCOORD1;
};

VaryingsMultitex VertMultitex(AttributesDefault v)
Expand Down
2 changes: 1 addition & 1 deletion PostProcessing/Resources/Shaders/BuiltinDebugViews.shader
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ Shader "Hidden/Post FX/Builtin Debug Views"
struct VaryingsArrows
{
float4 vertex : SV_POSITION;
float2 scoord : TEXCOORD;
NOPERSPECTIVE float2 scoord : TEXCOORD;
float4 color : COLOR;
};

Expand Down
16 changes: 13 additions & 3 deletions PostProcessing/Resources/Shaders/Common.cginc
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,16 @@

#define MOBILE_OR_CONSOLE (defined(SHADER_API_MOBILE) || defined(SHADER_API_PSSL) || defined(SHADER_API_XBOXONE) || defined(SHADER_API_WIIU))

#define USE_NOPERSPECTIVE 1

#ifndef NOPERSPECTIVE
# if defined(USE_NOPERSPECTIVE) && (USE_NOPERSPECTIVE)
# define NOPERSPECTIVE noperspective
# else
# define NOPERSPECTIVE
# endif
#endif

#if defined(SHADER_API_PSSL)
// No support for sampler2D_half on PS4 in 5.4
#define sampler2D_half sampler2D_float
Expand All @@ -31,14 +41,14 @@ float4 _MainTex_ST;
struct AttributesDefault
{
float4 vertex : POSITION;
float4 texcoord : TEXCOORD0;
NOPERSPECTIVE float4 texcoord : TEXCOORD0;
};

struct VaryingsDefault
{
float4 pos : SV_POSITION;
float2 uv : TEXCOORD0;
float2 uvSPR : TEXCOORD1; // Single Pass Stereo UVs
NOPERSPECTIVE float2 uv : TEXCOORD0;
NOPERSPECTIVE float2 uvSPR : TEXCOORD1; // Single Pass Stereo UVs
};

VaryingsDefault VertDefault(AttributesDefault v)
Expand Down
4 changes: 2 additions & 2 deletions PostProcessing/Resources/Shaders/DepthOfField.cginc
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,8 @@ half3 _TaaParams; // Jitter.x, Jitter.y, Blending
struct VaryingsDOF
{
float4 pos : SV_POSITION;
half2 uv : TEXCOORD0;
half2 uvAlt : TEXCOORD1;
NOPERSPECTIVE half2 uv : TEXCOORD0;
NOPERSPECTIVE half2 uvAlt : TEXCOORD1;
};

// Common vertex shader with single pass stereo rendering support
Expand Down
2 changes: 1 addition & 1 deletion PostProcessing/Resources/Shaders/EyeAdaptation.shader
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ Shader "Hidden/Post FX/Eye Adaptation"
struct VaryingsEditorHisto
{
float4 pos : SV_POSITION;
float2 uv : TEXCOORD0;
NOPERSPECTIVE float2 uv : TEXCOORD0;
float maxValue : TEXCOORD1;
float avgLuminance : TEXCOORD2;
};
Expand Down
2 changes: 1 addition & 1 deletion PostProcessing/Resources/Shaders/Fog.shader
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ Shader "Hidden/Post FX/Fog"

struct Varyings
{
float2 uv : TEXCOORD0;
NOPERSPECTIVE float2 uv : TEXCOORD0;
float4 vertex : SV_POSITION;
};

Expand Down
4 changes: 2 additions & 2 deletions PostProcessing/Resources/Shaders/MotionBlur.cginc
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,8 @@ half _History4Weight;
struct VaryingsMultitex
{
float4 pos : SV_POSITION;
float2 uv0 : TEXCOORD0;
float2 uv1 : TEXCOORD1;
NOPERSPECTIVE float2 uv0 : TEXCOORD0;
NOPERSPECTIVE float2 uv1 : TEXCOORD1;
};

VaryingsMultitex VertMultitex(AttributesDefault v)
Expand Down
4 changes: 2 additions & 2 deletions PostProcessing/Resources/Shaders/ScreenSpaceReflection.shader
Original file line number Diff line number Diff line change
Expand Up @@ -89,8 +89,8 @@ Shader "Hidden/Post FX/Screen Space Reflection"
struct v2f
{
float4 pos : SV_POSITION;
float2 uv : TEXCOORD0;
float2 uv2 : TEXCOORD1;
NOPERSPECTIVE float2 uv : TEXCOORD0;
NOPERSPECTIVE float2 uv2 : TEXCOORD1;
};

v2f vert( appdata_img v )
Expand Down
2 changes: 1 addition & 1 deletion PostProcessing/Resources/Shaders/TAA.cginc
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
struct VaryingsSolver
{
float4 vertex : SV_POSITION;
float4 uv : TEXCOORD0; // [xy: _MainTex.uv, zw: _HistoryTex.uv]
NOPERSPECTIVE float4 uv : TEXCOORD0; // [xy: _MainTex.uv, zw: _HistoryTex.uv]
};

struct OutputSolver
Expand Down
8 changes: 4 additions & 4 deletions PostProcessing/Resources/Shaders/Uber.shader
Original file line number Diff line number Diff line change
Expand Up @@ -74,10 +74,10 @@ Shader "Hidden/Post FX/Uber Shader"
struct VaryingsFlipped
{
float4 pos : SV_POSITION;
float2 uv : TEXCOORD0;
float2 uvSPR : TEXCOORD1; // Single Pass Stereo UVs
float2 uvFlipped : TEXCOORD2; // Flipped UVs (DX/MSAA/Forward)
float2 uvFlippedSPR : TEXCOORD3; // Single Pass Stereo flipped UVs
NOPERSPECTIVE float2 uv : TEXCOORD0;
NOPERSPECTIVE float2 uvSPR : TEXCOORD1; // Single Pass Stereo UVs
NOPERSPECTIVE float2 uvFlipped : TEXCOORD2; // Flipped UVs (DX/MSAA/Forward)
NOPERSPECTIVE float2 uvFlippedSPR : TEXCOORD3; // Single Pass Stereo flipped UVs
};

VaryingsFlipped VertUber(AttributesDefault v)
Expand Down