Ver Fonte

Minor changes

Panagiotis Christopoulos Charitos há 4 anos atrás
pai
commit
a45872f2e9

+ 13 - 0
AnKi/Core/App.cpp

@@ -274,20 +274,33 @@ void App::cleanup()
 	m_console.reset(nullptr);
 
 	m_heapAlloc.deleteInstance(m_scene);
+	m_scene = nullptr;
 	m_heapAlloc.deleteInstance(m_script);
+	m_script = nullptr;
 	m_heapAlloc.deleteInstance(m_renderer);
+	m_renderer = nullptr;
 	m_heapAlloc.deleteInstance(m_ui);
+	m_ui = nullptr;
 	m_heapAlloc.deleteInstance(m_resources);
+	m_resources = nullptr;
 	m_heapAlloc.deleteInstance(m_resourceFs);
+	m_resourceFs = nullptr;
 	m_heapAlloc.deleteInstance(m_physics);
+	m_physics = nullptr;
 	m_heapAlloc.deleteInstance(m_stagingMem);
+	m_stagingMem = nullptr;
 	m_heapAlloc.deleteInstance(m_threadHive);
+	m_threadHive = nullptr;
 	GrManager::deleteInstance(m_gr);
+	m_gr = nullptr;
 	m_heapAlloc.deleteInstance(m_input);
+	m_input = nullptr;
 	m_heapAlloc.deleteInstance(m_window);
+	m_window = nullptr;
 
 #if ANKI_ENABLE_TRACE
 	m_heapAlloc.deleteInstance(m_coreTracer);
+	m_coreTracer = nullptr;
 #endif
 
 	m_settingsDir.destroy(m_heapAlloc);

+ 1 - 1
AnKi/Shaders/LightShading.ankiprog

@@ -110,7 +110,7 @@ void main()
 	// SM
 #if USE_SHADOW_LAYERS
 	F32 resolvedSm[MAX_RT_SHADOW_LAYERS];
-	unpackRtShadows(textureLod(u_shadowLayersTex, u_nearestAnyClampSampler, in_uv, 0.0).rg, resolvedSm);
+	unpackRtShadows(textureLod(u_shadowLayersTex, u_nearestAnyClampSampler, in_uv, 0.0), resolvedSm);
 #else
 	Vec4 resolvedSm = textureLod(u_resolvedSm, u_trilinearClampSampler, in_uv, 0.0);
 	U32 resolvedSmIdx = 0;

+ 6 - 6
AnKi/Shaders/Pack.glsl

@@ -59,20 +59,20 @@ Vec3 signedOctDecode(const Vec3 n)
 	return outn;
 }
 
-// Vectorized version. See clean one at <= r1048
+// Vectorized version. Assumes that v is in [0.0, 1.0]
 U32 newPackUnorm4x8(const Vec4 v)
 {
-	Vec4 a = saturate(v) * 255.0;
-	UVec4 b = UVec4(a) << UVec4(0U, 8U, 16U, 24U);
+	Vec4 a = v * 255.0;
+	UVec4 b = UVec4(a) << UVec4(0u, 8u, 16u, 24u);
 	UVec2 c = b.xy | b.zw;
 	return c.x | c.y;
 }
 
-// Vectorized version. See clean one at <= r1048
+// Vectorized version
 Vec4 newUnpackUnorm4x8(const U32 u)
 {
-	const UVec4 a = UVec4(u) >> UVec4(0U, 8U, 16U, 24U);
-	const UVec4 b = a & UVec4(0xFFU);
+	const UVec4 a = UVec4(u) >> UVec4(0u, 8u, 16u, 24u);
+	const UVec4 b = a & UVec4(0xFFu);
 	const Vec4 c = Vec4(b);
 	return c * (1.0 / 255.0);
 }

+ 8 - 8
AnKi/Shaders/RtShadows.glsl

@@ -6,19 +6,19 @@
 #pragma once
 
 #include <AnKi/Shaders/Include/RtShadows.h>
-#include <AnKi/Shaders/Common.glsl>
+#include <AnKi/Shaders/Pack.glsl>
 
-UVec2 packRtShadows(F32 shadowFactors[MAX_RT_SHADOW_LAYERS])
+UVec4 packRtShadows(F32 shadowFactors[MAX_RT_SHADOW_LAYERS])
 {
-	const U32 a = packUnorm4x8(Vec4(shadowFactors[0], shadowFactors[1], shadowFactors[2], shadowFactors[3]));
-	const U32 b = packUnorm4x8(Vec4(shadowFactors[4], shadowFactors[5], shadowFactors[6], shadowFactors[7]));
-	return UVec2(a, b);
+	const U32 a = newPackUnorm4x8(Vec4(shadowFactors[0], shadowFactors[1], shadowFactors[2], shadowFactors[3]));
+	const U32 b = newPackUnorm4x8(Vec4(shadowFactors[4], shadowFactors[5], shadowFactors[6], shadowFactors[7]));
+	return UVec4(a, b, 0, 0);
 }
 
-void unpackRtShadows(UVec2 packed, out F32 shadowFactors[MAX_RT_SHADOW_LAYERS])
+void unpackRtShadows(UVec4 packed, out F32 shadowFactors[MAX_RT_SHADOW_LAYERS])
 {
-	const Vec4 a = unpackUnorm4x8(packed.x);
-	const Vec4 b = unpackUnorm4x8(packed.y);
+	const Vec4 a = newUnpackUnorm4x8(packed.x);
+	const Vec4 b = newUnpackUnorm4x8(packed.y);
 	shadowFactors[0] = a[0];
 	shadowFactors[1] = a[1];
 	shadowFactors[2] = a[2];

+ 3 - 4
AnKi/Shaders/RtShadowsDenoise.ankiprog

@@ -48,7 +48,7 @@ void main()
 
 	// Reference
 	F32 shadowFactors[MAX_RT_SHADOW_LAYERS];
-	unpackRtShadows(textureLod(u_inTex, u_nearestAnyClampSampler, uv, 0.0).rg, shadowFactors);
+	unpackRtShadows(textureLod(u_inTex, u_nearestAnyClampSampler, uv, 0.0), shadowFactors);
 	F32 weight = 1.0;
 
 	BilateralSample ref;
@@ -80,7 +80,7 @@ void main()
 		weight += w;
 
 		F32 localShadowFactors[MAX_RT_SHADOW_LAYERS];
-		unpackRtShadows(texelFetch(u_inTex, IVec2(unormalizedUvs / 2), 0).rg, localShadowFactors);
+		unpackRtShadows(texelFetch(u_inTex, IVec2(unormalizedUvs / 2), 0), localShadowFactors);
 
 		ANKI_UNROLL for(U32 i = 0; i < MAX_RT_SHADOW_LAYERS; ++i)
 		{
@@ -94,8 +94,7 @@ void main()
 		shadowFactors[i] /= weight;
 	}
 
-	const UVec2 packed = packRtShadows(shadowFactors);
-	imageStore(u_outImg, IVec2(gl_GlobalInvocationID.xy), UVec4(packed, 0, 0));
+	imageStore(u_outImg, IVec2(gl_GlobalInvocationID.xy), packRtShadows(shadowFactors));
 }
 
 #pragma anki end

+ 3 - 3
AnKi/Shaders/RtShadowsRayGen.ankiprog

@@ -147,7 +147,7 @@ void main()
 		const F32 rejectionFactor = textureLod(u_motionVectorsRejectionRt, u_linearAnyClampSampler, uv, 0.0).r;
 
 		// Use nearest because it's an integer texture
-		const UVec2 history2 = textureLod(u_historyRt, u_nearestAnyClampSampler, historyUv, 0.0).rg;
+		const UVec4 history2 = textureLod(u_historyRt, u_nearestAnyClampSampler, historyUv, 0.0);
 		F32 history[MAX_RT_SHADOW_LAYERS];
 		unpackRtShadows(history2, history);
 
@@ -163,7 +163,7 @@ void main()
 	}
 
 	// Store
-	const UVec2 packed = packRtShadows(shadowFactors);
-	imageStore(u_outImg, IVec2(gl_LaunchIDEXT.xy), UVec4(packed, 0, 0));
+	const UVec4 packed = packRtShadows(shadowFactors);
+	imageStore(u_outImg, IVec2(gl_LaunchIDEXT.xy), packed);
 }
 #pragma anki end

+ 2 - 2
AnKi/Shaders/RtShadowsVisualizeRenderTarget.ankiprog

@@ -21,7 +21,7 @@ layout(location = 0) out Vec3 out_color;
 void main()
 {
 	F32 shadowFactors[MAX_RT_SHADOW_LAYERS];
-	unpackRtShadows(textureLod(u_inTex, u_nearestAnyClampSampler, in_uv, 0.0).rg, shadowFactors);
+	unpackRtShadows(textureLod(u_inTex, u_nearestAnyClampSampler, in_uv, 0.0), shadowFactors);
 
 #if LAYER_GROUP == 0
 	out_color = Vec3(shadowFactors[0], shadowFactors[1], shadowFactors[2]);
@@ -31,4 +31,4 @@ void main()
 	out_color = Vec3(shadowFactors[6], shadowFactors[7], 0.0);
 #endif
 }
-#pragma anki end
+#pragma anki end