Sfoglia il codice sorgente

Fixed vertexdecl leak.

Branimir Karadžić 9 anni fa
parent
commit
5ffff78d8d
2 ha cambiato i file con 8 aggiunte e 2 eliminazioni
  1. 6 0
      src/bgfx.cpp
  2. 2 2
      src/bgfx_p.h

+ 6 - 0
src/bgfx.cpp

@@ -1351,6 +1351,12 @@ namespace bgfx
 		m_dynVertexBufferAllocator.compact();
 		m_dynIndexBufferAllocator.compact();
 
+		BX_CHECK(m_vertexDeclHandle.getNumHandles() == uint16_t(m_declRef.m_vertexDeclMap.size() )
+				, "VertexDeclRef mismatch, num handles %d, handles in hash map %d."
+				, m_vertexDeclHandle.getNumHandles()
+				, m_declRef.m_vertexDeclMap.size()
+				);
+
 		m_declRef.shutdown(m_vertexDeclHandle);
 
 #if BGFX_CONFIG_MULTITHREADED

+ 2 - 2
src/bgfx_p.h

@@ -2271,7 +2271,7 @@ namespace bgfx
 			{
 				CommandBuffer& cmdbuf = getCommandBuffer(CommandBuffer::DestroyVertexDecl);
 				cmdbuf.write(declHandle);
-				m_submit->free(declHandle);
+				m_render->free(declHandle);
 			}
 
 			m_vertexBufferHandle.free(_handle.idx);
@@ -2564,7 +2564,7 @@ namespace bgfx
 			{
 				CommandBuffer& cmdbuf = getCommandBuffer(CommandBuffer::DestroyVertexDecl);
 				cmdbuf.write(declHandle);
-				m_submit->free(declHandle);
+				m_render->free(declHandle);
 			}
 
 			if (0 != (dvb.m_flags & BGFX_BUFFER_COMPUTE_WRITE) )