Browse Source

Vulkan: Fix bugs

Panagiotis Christopoulos Charitos 8 years ago
parent
commit
eb4898790b

+ 17 - 17
src/anki/gr/vulkan/CommandBufferImpl.cpp

@@ -32,23 +32,6 @@ CommandBufferImpl::~CommandBufferImpl()
 		ANKI_VK_LOGW("Command buffer was not flushed");
 	}
 
-#if ANKI_EXTRA_CHECKS
-	if(!!(m_flags & CommandBufferFlag::SMALL_BATCH))
-	{
-		if(m_commandCount > COMMAND_BUFFER_SMALL_BATCH_MAX_COMMANDS * 2)
-		{
-			ANKI_VK_LOGW("Command buffer has too many commands: %u", U(m_commandCount));
-		}
-	}
-	else
-	{
-		if(m_commandCount <= COMMAND_BUFFER_SMALL_BATCH_MAX_COMMANDS / 2)
-		{
-			ANKI_VK_LOGW("Command buffer has too few commands: %u", U(m_commandCount));
-		}
-	}
-#endif
-
 	m_imgBarriers.destroy(m_alloc);
 	m_buffBarriers.destroy(m_alloc);
 	m_queryResetAtoms.destroy(m_alloc);
@@ -238,6 +221,23 @@ void CommandBufferImpl::endRecording()
 
 	ANKI_CMD(ANKI_VK_CHECKF(vkEndCommandBuffer(m_handle)), ANY_OTHER_COMMAND);
 	m_finalized = true;
+
+#if ANKI_EXTRA_CHECKS
+	if(!!(m_flags & CommandBufferFlag::SMALL_BATCH))
+	{
+		if(m_commandCount > COMMAND_BUFFER_SMALL_BATCH_MAX_COMMANDS * 4)
+		{
+			ANKI_VK_LOGW("Command buffer has too many commands: %u", U(m_commandCount));
+		}
+	}
+	else
+	{
+		if(m_commandCount <= COMMAND_BUFFER_SMALL_BATCH_MAX_COMMANDS / 4)
+		{
+			ANKI_VK_LOGW("Command buffer has too few commands: %u", U(m_commandCount));
+		}
+	}
+#endif
 }
 
 void CommandBufferImpl::generateMipmaps2d(TexturePtr tex, U face, U layer)

+ 1 - 1
src/anki/gr/vulkan/CommandBufferImpl.inl.h

@@ -310,7 +310,7 @@ inline void CommandBufferImpl::dispatchCompute(U32 groupCountX, U32 groupCountY,
 				VkDescriptorSet dsHandle = dset.getHandle();
 
 				ANKI_CMD(vkCmdBindDescriptorSets(m_handle,
-							 VK_PIPELINE_BIND_POINT_GRAPHICS,
+							 VK_PIPELINE_BIND_POINT_COMPUTE,
 							 m_computeProg->getPipelineLayout().getHandle(),
 							 i,
 							 1,

+ 1 - 1
src/anki/renderer/Renderer.cpp

@@ -448,7 +448,7 @@ TexturePtr Renderer::createAndClearRenderTarget(const TextureInitInfo& inf)
 
 	// Clear all surfaces
 	CommandBufferInitInfo cmdbinit;
-	cmdbinit.m_flags = CommandBufferFlag::SMALL_BATCH | CommandBufferFlag::GRAPHICS_WORK;
+	cmdbinit.m_flags = CommandBufferFlag::GRAPHICS_WORK;
 	if((inf.m_mipmapsCount * faceCount * inf.m_layerCount * 4) < COMMAND_BUFFER_SMALL_BATCH_MAX_COMMANDS)
 	{
 		cmdbinit.m_flags |= CommandBufferFlag::SMALL_BATCH;