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

Method BeginParallelEncoding

trinity/Tr2RenderContext.cpp:180–214  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

178}
179
180uint32_t Tr2RenderContext::BeginParallelEncoding( uint32_t count )
181{
182#if TRINITY_PLATFORM_SUPPORTS_PARALLEL_CONTEXTS
183 CCP_STATS_ZONE( __FUNCTION__ );
184
185 CCP_ASSERT( m_parallelContextsPool.empty() );
186
187 uint32_t available = 0;
188 {
189 CCP_STATS_ZONE( "Tr2RenderContextAL::BeginParallelEncoding" );
190 available = std::min( count, Tr2RenderContextAL::BeginParallelEncoding( count ) );
191 }
192 if( available )
193 {
194 m_esm.SetupContextResources();
195
196 for( size_t i = m_parallelContexts.size(); i < available; ++i )
197 {
198 Tr2RenderContextPtr context;
199 context.CreateInstance();
200 m_parallelContexts.push_back( context );
201 }
202
203 for( uint32_t i = 0; i < available; ++i )
204 {
205 PrepareParallelContext( i, *m_parallelContexts[i] );
206 m_parallelContextsPool.push_back( m_parallelContexts[i] );
207 m_parallelContextSemaphore.Signal();
208 }
209 }
210 return available;
211#else
212 return 0;
213#endif
214}
215
216Tr2RenderContext* Tr2RenderContext::Fork()
217{

Callers 1

RenderSortedBatchesMethod · 0.80

Calls 4

emptyMethod · 0.80
SetupContextResourcesMethod · 0.80
sizeMethod · 0.80
CreateInstanceMethod · 0.80

Tested by

no test coverage detected