コード例 #1
0
void FSlateRHIRenderingPolicy::EndDrawingWindows()
{
	check( IsInRenderingThread() );

	bShouldShrinkResources = false;

	uint32 TotalVertexBufferMemory = 0;
	uint32 TotalIndexBufferMemory = 0;

	uint32 TotalVertexBufferUsage = 0;
	uint32 TotalIndexBufferUsage = 0;

	for( int32 BufferIndex = 0; BufferIndex < 2; ++BufferIndex )
	{
		TotalVertexBufferMemory += VertexBuffers[BufferIndex].GetBufferSize();
		TotalVertexBufferUsage += VertexBuffers[BufferIndex].GetBufferUsageSize();
		
		TotalIndexBufferMemory += IndexBuffers[BufferIndex].GetBufferSize();
		TotalIndexBufferUsage += IndexBuffers[BufferIndex].GetBufferUsageSize();
	}

	// How much larger the buffers can be than the required size. 
	// @todo Slate probably could be more intelligent about this
	const uint32 MaxSizeMultiplier = 2;

	if( TotalVertexBufferMemory > TotalVertexBufferUsage*MaxSizeMultiplier || TotalIndexBufferMemory > TotalIndexBufferUsage*MaxSizeMultiplier )
	{
		// The vertex buffer or index is more than twice the size of what is required.  Shrink it
		bShouldShrinkResources = true;
	}


	SET_MEMORY_STAT( STAT_SlateVertexBufferMemory, TotalVertexBufferMemory );
	SET_MEMORY_STAT( STAT_SlateIndexBufferMemory, TotalIndexBufferMemory );
}
コード例 #2
0
void FSlateRHIRenderingPolicy::EndDrawingWindows()
{
	check( IsInRenderingThread() );

	uint32 TotalVertexBufferMemory = 0;
	uint32 TotalIndexBufferMemory = 0;

	uint32 TotalVertexBufferUsage = 0;
	uint32 TotalIndexBufferUsage = 0;

	uint32 MinVertexBufferSize = VertexBuffers[0].GetMinBufferSize();
	uint32 MinIndexBufferSize = IndexBuffers[0].GetMinBufferSize();

	for( int32 BufferIndex = 0; BufferIndex < SlateRHIConstants::NumBuffers; ++BufferIndex )
	{
		TotalVertexBufferMemory += VertexBuffers[BufferIndex].GetBufferSize();
		TotalVertexBufferUsage += VertexBuffers[BufferIndex].GetBufferUsageSize();
		
		TotalIndexBufferMemory += IndexBuffers[BufferIndex].GetBufferSize();
		TotalIndexBufferUsage += IndexBuffers[BufferIndex].GetBufferUsageSize();
	}


	SET_MEMORY_STAT( STAT_SlateVertexBufferMemory, TotalVertexBufferMemory );
	SET_MEMORY_STAT( STAT_SlateIndexBufferMemory, TotalIndexBufferMemory );
}
コード例 #3
0
void FGenericPlatformMemory::UpdateStats()
{
	FPlatformMemoryStats MemoryStats = FPlatformMemory::GetStats();

	SET_MEMORY_STAT(STAT_TotalPhysical,MemoryStats.TotalPhysical);
	SET_MEMORY_STAT(STAT_TotalVirtual,MemoryStats.TotalVirtual);
	SET_MEMORY_STAT(STAT_PageSize,MemoryStats.PageSize);
	SET_MEMORY_STAT(STAT_TotalPhysicalGB,MemoryStats.TotalPhysicalGB);

	SET_MEMORY_STAT(STAT_AvailablePhysical,MemoryStats.AvailablePhysical);
	SET_MEMORY_STAT(STAT_AvailableVirtual,MemoryStats.AvailableVirtual);
	SET_MEMORY_STAT(STAT_UsedPhysical,MemoryStats.UsedPhysical);
	SET_MEMORY_STAT(STAT_PeakUsedPhysical,MemoryStats.PeakUsedPhysical);
	SET_MEMORY_STAT(STAT_UsedVirtual,MemoryStats.UsedVirtual);
	SET_MEMORY_STAT(STAT_PeakUsedVirtual,MemoryStats.PeakUsedVirtual);
}
コード例 #4
0
void FStatsMallocProfilerProxy::UpdateStats()
{
	UsedMalloc->UpdateStats();

	if( bEnabled )
	{
		const int32 NumAllocPtrCalls = AllocPtrCalls.GetValue();
		const int32 NumFreePtrCalls = FreePtrCalls.GetValue();

		SET_DWORD_STAT( STAT_Memory_AllocPtr_Calls, NumAllocPtrCalls );
		SET_DWORD_STAT( STAT_Memory_FreePtr_Calls, NumFreePtrCalls );

		// AllocPtr, AllocSize
		SET_MEMORY_STAT( STAT_Memory_AllocPtr_Mem, NumAllocPtrCalls*(sizeof(FStatMessage)*2) );
		// FreePtr
		SET_MEMORY_STAT( STAT_Memory_FreePtr_Mem, NumFreePtrCalls*(sizeof(FStatMessage)*1) );

		AllocPtrCalls.Reset();
		FreePtrCalls.Reset();
	}
}
コード例 #5
0
	virtual void UpdateMemoryUsage() override
	{
		// Update the stats descriptions memory usage.
		const int32 MemoryUsage = MemoryCounter.GetValue();
		SET_MEMORY_STAT( STAT_StatDescMemory, MemoryUsage );
	}
コード例 #6
0
void FGenericPlatformMemory::SetupMemoryPools()
{
	SET_MEMORY_STAT(MCR_Physical, 0); // "unlimited" physical memory, we still need to make this call to set the short name, etc
	SET_MEMORY_STAT(MCR_GPU, 0); // "unlimited" GPU memory, we still need to make this call to set the short name, etc
	SET_MEMORY_STAT(MCR_TexturePool, 0); // "unlimited" Texture memory, we still need to make this call to set the short name, etc
}