Pārlūkot izejas kodu

Fixes on the previous commit

Panagiotis Christopoulos Charitos 9 gadi atpakaļ
vecāks
revīzija
a6c2043764

+ 0 - 27
include/anki/collision/ContactPoint.h

@@ -1,27 +0,0 @@
-// Copyright (C) 2009-2016, Panagiotis Christopoulos Charitos and contributors.
-// All rights reserved.
-// Code licensed under the BSD License.
-// http://www.anki3d.org/LICENSE
-
-#pragma once
-
-#include <anki/Math.h>
-
-namespace anki
-{
-
-/// @addtogroup collision
-/// @{
-
-/// Collision test contact point
-class ContactPoint
-{
-public:
-	Vec4 m_position;
-	Vec4 m_normal;
-	F32 m_depth;
-};
-
-/// @}
-
-} // end namespace anki

+ 0 - 2
include/anki/collision/Forward.h

@@ -19,6 +19,4 @@ class Aabb;
 class CompoundShape;
 class ConvexHullShape;
 
-class ContactPoint;
-
 } // end namespace anki

+ 1 - 1
include/anki/gr/Texture.h

@@ -64,7 +64,7 @@ public:
 		}                                                                      \
 	} while(0)
 
-		ANKI_CHECK_VAL_VALIDITY(m_usage != TextureUsageBit::NONE);
+		// TODO: ANKI_CHECK_VAL_VALIDITY(m_usage != TextureUsageBit::NONE);
 		ANKI_CHECK_VAL_VALIDITY(m_mipmapsCount > 0);
 		ANKI_CHECK_VAL_VALIDITY(m_width > 0);
 		ANKI_CHECK_VAL_VALIDITY(m_height > 0);

+ 3 - 1
include/anki/renderer/Is.h

@@ -31,7 +31,9 @@ anki_internal:
 
 	ANKI_USE_RESULT Error init(const ConfigSet& initializer);
 
-	ANKI_USE_RESULT Error run(RenderingContext& ctx);
+	ANKI_USE_RESULT Error binLights(RenderingContext& ctx);
+
+	void run(RenderingContext& ctx);
 
 	TexturePtr getRt() const
 	{

+ 1 - 1
include/anki/renderer/Renderer.h

@@ -7,7 +7,6 @@
 
 #include <anki/renderer/Common.h>
 #include <anki/renderer/Drawer.h>
-#include <anki/renderer/Clusterer.h>
 #include <anki/Math.h>
 #include <anki/Gr.h>
 #include <anki/scene/Forward.h>
@@ -15,6 +14,7 @@
 #include <anki/resource/ShaderResource.h>
 #include <anki/core/Timestamp.h>
 #include <anki/util/ThreadPool.h>
+#include <anki/collision/Forward.h>
 
 namespace anki
 {

+ 13 - 6
src/renderer/Is.cpp

@@ -78,13 +78,13 @@ Error Is::initInternal(const ConfigSet& config)
 	}
 
 	U clusterCount = m_r->getTileCountXY().x() * m_r->getTileCountXY().y()
-		* config.getNumber("clusterCountZ");
+		* config.getNumber("clusterSizeZ");
 	m_maxLightIds *= clusterCount;
 
 	m_lightBin = getAllocator().newInstance<LightBin>(getAllocator(),
 		m_r->getTileCountXY().x(),
 		m_r->getTileCountXY().y(),
-		config.getNumber("clusterCountZ"),
+		config.getNumber("clusterSizeZ"),
 		&m_r->getThreadPool(),
 		&getGrManager());
 
@@ -177,7 +177,10 @@ Error Is::initInternal(const ConfigSet& config)
 		init.m_uniformBuffers[0].m_uploadedMemory = true;
 		init.m_uniformBuffers[1].m_uploadedMemory = true;
 		init.m_uniformBuffers[2].m_uploadedMemory = true;
-		init.m_uniformBuffers[3].m_uploadedMemory = true;
+		if(m_r->getIrEnabled())
+		{
+			init.m_uniformBuffers[3].m_uploadedMemory = true;
+		}
 
 		init.m_storageBuffers[0].m_uploadedMemory = true;
 		init.m_storageBuffers[1].m_uploadedMemory = true;
@@ -190,7 +193,7 @@ Error Is::initInternal(const ConfigSet& config)
 }
 
 //==============================================================================
-Error Is::run(RenderingContext& ctx)
+Error Is::binLights(RenderingContext& ctx)
 {
 	updateCommonBlock(ctx);
 
@@ -205,7 +208,13 @@ Error Is::run(RenderingContext& ctx)
 			: nullptr,
 		ctx.m_is.m_dynBufferInfo.m_storageBuffers[CLUSTERS_LOCATION],
 		ctx.m_is.m_dynBufferInfo.m_storageBuffers[LIGHT_IDS_LOCATION]));
+		
+	return ErrorCode::NONE;
+}
 
+//==============================================================================
+void Is::run(RenderingContext& ctx)
+{
 	CommandBufferPtr& cmdb = ctx.m_commandBuffer;
 
 	cmdb->beginRenderPass(m_fb);
@@ -214,8 +223,6 @@ Error Is::run(RenderingContext& ctx)
 	cmdb->bindResourceGroup(m_rcGroup, 0, &ctx.m_is.m_dynBufferInfo);
 	cmdb->drawArrays(4, m_r->getTileCount());
 	cmdb->endRenderPass();
-
-	return ErrorCode::NONE;
 }
 
 //==============================================================================

+ 19 - 16
src/renderer/LightBin.cpp

@@ -415,23 +415,26 @@ Error LightBin::bin(FrustumComponent& frc,
 		spotLightsToken.markUnused();
 	}
 
-	if(probesToken && visibleProbeCount)
+	if(probesToken)
 	{
-		ShaderProbe* data =
-			static_cast<ShaderProbe*>(m_gr->allocateFrameTransientMemory(
-				sizeof(ShaderProbe) * visibleProbeCount,
-				BufferUsage::UNIFORM,
-				*probesToken));
-
-		ctx.m_probes = WeakArray<ShaderProbe>(data, visibleProbeCount);
-
-		ctx.m_vProbes = WeakArray<VisibleNode>(
-			vi.getBegin(VisibilityGroupType::REFLECTION_PROBES),
-			visibleProbeCount);
-	}
-	else
-	{
-		probesToken->markUnused();
+		if(visibleProbeCount)
+		{
+			ShaderProbe* data =
+				static_cast<ShaderProbe*>(m_gr->allocateFrameTransientMemory(
+					sizeof(ShaderProbe) * visibleProbeCount,
+					BufferUsage::UNIFORM,
+					*probesToken));
+	
+			ctx.m_probes = WeakArray<ShaderProbe>(data, visibleProbeCount);
+	
+			ctx.m_vProbes = WeakArray<VisibleNode>(
+				vi.getBegin(VisibilityGroupType::REFLECTION_PROBES),
+				visibleProbeCount);
+		}
+		else
+		{
+			probesToken->markUnused();
+		}
 	}
 
 	ctx.m_bin = this;

+ 2 - 1
src/renderer/Renderer.cpp

@@ -254,6 +254,7 @@ Error Renderer::render(RenderingContext& ctx)
 		ANKI_CHECK(m_ir->run(ctx));
 	}
 
+	ANKI_CHECK(m_is->binLights(ctx));
 	ANKI_CHECK(buildCommandBuffers(ctx));
 
 	if(m_sm)
@@ -265,7 +266,7 @@ Error Renderer::render(RenderingContext& ctx)
 	m_lf->runOcclusionTests(ctx);
 	cmdb->endRenderPass();
 
-	ANKI_CHECK(m_is->run(ctx));
+	m_is->run(ctx);
 
 	cmdb->generateMipmaps(m_ms->getDepthRt(), 0, 0, 0);
 	cmdb->generateMipmaps(m_ms->getRt2(), 0, 0, 0);