MCPcopy Create free account
hub / github.com/carbonengine/trinity / ClearUnusedResources

Method ClearUnusedResources

trinity/Tr2GpuResourcePool.cpp:274–296  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

272}
273
274void Tr2GpuResourcePool::ClearUnusedResources( uint64_t frameThreshold )
275{
276 USE_MAIN_THREAD_RENDER_CONTEXT();
277 auto currentFrame = renderContext.GetRecordingFrameNumber();
278 auto RetireResources = [currentFrame, frameThreshold]( auto& vec ) {
279 for( auto& resource : vec )
280 {
281 if( resource->lockCount > 0 )
282 {
283 CCP_LOGERR( "Tr2GpuResourcePool: resource %s is still locked while clearing unused resources", resource->name.c_str() );
284 }
285 }
286 vec.erase( std::remove_if( begin( vec ), end( vec ), [&]( const auto& x ) {
287 return currentFrame >= frameThreshold + x->lastAccessFrame;
288 } ),
289 end( vec ) );
290 };
291
292 RetireResources( m_tempTextures );
293 RetireResources( m_persistentTextures );
294 RetireResources( m_tempBuffers );
295 RetireResources( m_persistentBuffers );
296}
297
298void Tr2GpuResourcePool::ClearAllUnusedResources( uint64_t frameThreshold )
299{

Callers 1

Calls 3

beginFunction · 0.70
endFunction · 0.70

Tested by

no test coverage detected