Browse Source

Remove VRS SRI sanitation

Panagiotis Christopoulos Charitos 3 years ago
parent
commit
a8ad256d20

+ 2 - 17
AnKi/Shaders/Functions.glsl

@@ -618,21 +618,6 @@ U32 encodeVrsRate(UVec2 rateXY)
 	return (rateXY.y >> 1u) | ((rateXY.x << 1u) & 12u);
 }
 
-U32 encodeAndSanitizeVrsRate(UVec2 rate)
-{
-	// 1x4 and 4x1 shading rates don't exist.
-	if(rate == UVec2(1u, 4u))
-	{
-		rate = UVec2(1u, 2u);
-	}
-	else if(rate == UVec2(4u, 1u))
-	{
-		rate = UVec2(2u, 1u);
-	}
-
-	return encodeVrsRate(rate);
-}
-
 Vec3 visualizeVrsRate(UVec2 rate)
 {
 	if(rate == UVec2(1u))
@@ -643,13 +628,13 @@ Vec3 visualizeVrsRate(UVec2 rate)
 	{
 		return Vec3(1.0, 0.5, 0.0);
 	}
-	else if(rate == UVec2(2u))
+	else if(rate == UVec2(2u) || rate == UVec2(4u, 1u) || rate == UVec2(1u, 4u))
 	{
 		return Vec3(1.0, 1.0, 0.0);
 	}
 	else if(rate == UVec2(4u, 2u) || rate == UVec2(2u, 4u))
 	{
-		return Vec3(0.5, 1.0, 0.0);
+		return Vec3(0.65, 1.0, 0.0);
 	}
 	else if(rate == UVec2(4u))
 	{

+ 1 - 1
AnKi/Shaders/IndirectDiffuseVrsSriGeneration.ankiprog

@@ -117,7 +117,7 @@ void main()
 		rate.y = (maxDerivative.y > threshold1) ? 1u : ((maxDerivative.y > threshold2) ? 2u : 4u);
 
 		const UVec2 outTexelCoord = gl_WorkGroupID.xy;
-		imageStore(u_sriImg, IVec2(outTexelCoord), UVec4(encodeAndSanitizeVrsRate(rate)));
+		imageStore(u_sriImg, IVec2(outTexelCoord), UVec4(encodeVrsRate(rate)));
 	}
 }
 

+ 1 - 1
AnKi/Shaders/VrsSriGeneration.glsl

@@ -128,6 +128,6 @@ void main()
 		rate.y = (lumaDiff.y > threshold1) ? 1u : ((lumaDiff.y > threshold2) ? 2u : 4u);
 
 		const UVec2 outTexelCoord = gl_WorkGroupID.xy;
-		imageStore(u_sriImg, IVec2(outTexelCoord), UVec4(encodeAndSanitizeVrsRate(rate)));
+		imageStore(u_sriImg, IVec2(outTexelCoord), UVec4(encodeVrsRate(rate)));
 	}
 }