瀏覽代碼

Mild refactoring

Panagiotis Christopoulos Charitos 9 年之前
父節點
當前提交
c78a6023cf

+ 0 - 37
include/anki/gr/Common.h

@@ -187,43 +187,6 @@ inline U computeMaxMipmapCount(U w, U h, U d)
 
 	return count;
 }
-
-/// Internal function that logs a shader error.
-void logShaderErrorCode(const CString& error,
-	const CString& source,
-	GenericMemoryPoolAllocator<U8> alloc);
-
-inline void checkTextureSurface(TextureType type,
-	U depth,
-	U mipCount,
-	U layerCount,
-	const TextureSurfaceInfo& surf)
-{
-	ANKI_ASSERT(surf.m_level < mipCount);
-	switch(type)
-	{
-	case TextureType::_2D:
-		ANKI_ASSERT(surf.m_depth == 0 && surf.m_face == 0 && surf.m_layer == 0);
-		break;
-	case TextureType::CUBE:
-		ANKI_ASSERT(surf.m_depth == 0 && surf.m_face < 6 && surf.m_layer == 0);
-		break;
-	case TextureType::_3D:
-		ANKI_ASSERT(
-			surf.m_depth < depth && surf.m_face == 0 && surf.m_layer == 0);
-		break;
-	case TextureType::_2D_ARRAY:
-		ANKI_ASSERT(
-			surf.m_depth == 0 && surf.m_face == 0 && surf.m_layer < layerCount);
-		break;
-	case TextureType::CUBE_ARRAY:
-		ANKI_ASSERT(
-			surf.m_depth == 0 && surf.m_face < 6 && surf.m_layer < layerCount);
-		break;
-	default:
-		ANKI_ASSERT(0);
-	};
-}
 /// @}
 
 } // end namespace anki

+ 38 - 1
include/anki/gr/common/Misc.h

@@ -5,7 +5,7 @@
 
 #pragma once
 
-#include <anki/gr/Enums.h>
+#include <anki/gr/Common.h>
 
 namespace anki
 {
@@ -43,4 +43,41 @@ inline TransientBufferType bufferUsageToTransient(BufferUsageBit bit)
 	}
 }
 
+/// Internal function that logs a shader error.
+void logShaderErrorCode(const CString& error,
+	const CString& source,
+	GenericMemoryPoolAllocator<U8> alloc);
+
+inline void checkTextureSurface(TextureType type,
+	U depth,
+	U mipCount,
+	U layerCount,
+	const TextureSurfaceInfo& surf)
+{
+	ANKI_ASSERT(surf.m_level < mipCount);
+	switch(type)
+	{
+	case TextureType::_2D:
+		ANKI_ASSERT(surf.m_depth == 0 && surf.m_face == 0 && surf.m_layer == 0);
+		break;
+	case TextureType::CUBE:
+		ANKI_ASSERT(surf.m_depth == 0 && surf.m_face < 6 && surf.m_layer == 0);
+		break;
+	case TextureType::_3D:
+		ANKI_ASSERT(
+			surf.m_depth < depth && surf.m_face == 0 && surf.m_layer == 0);
+		break;
+	case TextureType::_2D_ARRAY:
+		ANKI_ASSERT(
+			surf.m_depth == 0 && surf.m_face == 0 && surf.m_layer < layerCount);
+		break;
+	case TextureType::CUBE_ARRAY:
+		ANKI_ASSERT(
+			surf.m_depth == 0 && surf.m_face < 6 && surf.m_layer < layerCount);
+		break;
+	default:
+		ANKI_ASSERT(0);
+	};
+}
+
 } // end namespace anki

+ 1 - 0
include/anki/gr/gl/TextureImpl.h

@@ -6,6 +6,7 @@
 #pragma once
 
 #include <anki/gr/gl/GlObject.h>
+#include <anki/gr/common/Misc.h>
 #include <anki/util/DynamicArray.h>
 
 namespace anki

+ 1 - 0
include/anki/gr/vulkan/TextureImpl.h

@@ -8,6 +8,7 @@
 #include <anki/gr/vulkan/VulkanObject.h>
 #include <anki/gr/vulkan/GpuMemoryAllocator.h>
 #include <anki/gr/vulkan/Semaphore.h>
+#include <anki/gr/common/Misc.h>
 
 namespace anki
 {

+ 1 - 1
src/gr/Common.cpp → src/gr/common/Misc.cpp

@@ -3,7 +3,7 @@
 // Code licensed under the BSD License.
 // http://www.anki3d.org/LICENSE
 
-#include <anki/gr/Common.h>
+#include <anki/gr/common/Misc.h>
 #include <anki/util/StringList.h>
 
 namespace anki

+ 2 - 2
src/gr/gl/CommandBuffer.cpp

@@ -554,9 +554,9 @@ public:
 void CommandBuffer::setBufferBarrier(
 	BufferPtr buff, BufferUsageBit prevUsage, BufferUsageBit nextUsage)
 {
+#if 0
 	GLenum d = GL_NONE;
 
-#if 0
 	if((c & ResourceAccessBit::INDIRECT_OR_INDEX_OR_VERTEX_READ)
 		!= ResourceAccessBit::NONE)
 	{
@@ -593,10 +593,10 @@ void CommandBuffer::setBufferBarrier(
 	{
 		d |= GL_BUFFER_UPDATE_BARRIER_BIT | GL_TEXTURE_UPDATE_BARRIER_BIT;
 	}
-#endif
 
 	ANKI_ASSERT(d != GL_NONE);
 	m_impl->pushBackNewCommand<SetBufferMemBarrierCommand>(d);
+#endif
 }
 
 //==============================================================================

+ 1 - 0
src/gr/gl/ShaderImpl.cpp

@@ -5,6 +5,7 @@
 
 #include <anki/gr/gl/ShaderImpl.h>
 #include <anki/gr/GrManager.h>
+#include <anki/gr/common/Misc.h>
 #include <anki/util/StringList.h>
 #include <anki/util/Logger.h>
 

+ 1 - 0
src/gr/vulkan/ShaderImpl.cpp

@@ -4,6 +4,7 @@
 // http://www.anki3d.org/LICENSE
 
 #include <anki/gr/vulkan/ShaderImpl.h>
+#include <anki/gr/common/Misc.h>
 #include <glslang/Public/ShaderLang.h>
 #include <SPIRV/GlslangToSpv.h>
 

+ 2 - 2
src/renderer/LightBin.cpp

@@ -443,7 +443,7 @@ Error LightBin::bin(FrustumComponent& frc,
 	ShaderCluster* data =
 		static_cast<ShaderCluster*>(m_gr->allocateFrameTransientMemory(
 			sizeof(ShaderCluster) * m_clusterCount,
-			BufferUsageBit::UNIFORM_ANY_SHADER,
+			BufferUsageBit::STORAGE_ANY,
 			clustersToken));
 
 	ctx.m_clusters = WeakArray<ShaderCluster>(data, m_clusterCount);
@@ -451,7 +451,7 @@ Error LightBin::bin(FrustumComponent& frc,
 	// Allocate light IDs
 	U32* data2 = static_cast<U32*>(
 		m_gr->allocateFrameTransientMemory(maxLightIndices * sizeof(U32),
-			BufferUsageBit::UNIFORM_ANY_SHADER,
+			BufferUsageBit::STORAGE_ANY,
 			lightIndicesToken));
 
 	ctx.m_lightIds = WeakArray<U32>(data2, maxLightIndices);

+ 2 - 1
src/renderer/Tm.cpp

@@ -37,7 +37,8 @@ Error Tm::create(const ConfigSet& initializer)
 
 	// Create buffer
 	m_luminanceBuff = getGrManager().newInstance<Buffer>(sizeof(Vec4),
-		BufferUsageBit::STORAGE_ANY | BufferUsageBit::UNIFORM_ANY_SHADER,
+		BufferUsageBit::STORAGE_ANY | BufferUsageBit::UNIFORM_ANY_SHADER
+			| BufferUsageBit::TRANSFER_DESTINATION,
 		BufferMapAccessBit::NONE);
 
 	CommandBufferPtr cmdb =