Browse Source

[OPTIMIZATION] Micro optimizations

Panagiotis Christopoulos Charitos 8 years ago
parent
commit
6ad01d0e81
3 changed files with 3 additions and 3 deletions
  1. 1 1
      src/anki/gr/vulkan/Pipeline.cpp
  2. 1 1
      src/anki/gr/vulkan/Pipeline.h
  3. 1 1
      src/anki/util/Ptr.h

+ 1 - 1
src/anki/gr/vulkan/Pipeline.cpp

@@ -421,7 +421,7 @@ void PipelineFactory::newPipeline(PipelineStateTracker& state, Pipeline& ppline,
 		return;
 	}
 
-	LockGuard<Mutex> lock(m_pplinesMtx);
+	LockGuard<SpinLock> lock(m_pplinesMtx);
 
 	auto it = m_pplines.find(hash);
 	if(it != m_pplines.getEnd())

+ 1 - 1
src/anki/gr/vulkan/Pipeline.h

@@ -556,7 +556,7 @@ private:
 	VkPipelineCache m_pplineCache = VK_NULL_HANDLE;
 
 	HashMap<U64, PipelineInternal, Hasher> m_pplines;
-	Mutex m_pplinesMtx;
+	SpinLock m_pplinesMtx;
 };
 /// @}
 

+ 1 - 1
src/anki/util/Ptr.h

@@ -425,7 +425,7 @@ private:
 		if(Base::m_ptr)
 		{
 			auto count = Base::m_ptr->getRefcount().fetchSub(1);
-			if(count == 1)
+			if(ANKI_UNLIKELY(count == 1))
 			{
 				TDeleter deleter;
 				deleter(Base::m_ptr);