bool Window::_cmdFrameFinish( co::Command& command ) { const WindowFrameFinishPacket* packet = command.get<WindowFrameFinishPacket>(); LBVERB << "handle window frame sync " << packet << std::endl; makeCurrent(); frameFinish( packet->frameID, packet->frameNumber ); return true; }
bool Window::_cmdFrameFinish( co::ICommand& cmd ) { co::ObjectICommand command( cmd ); LBVERB << "handle window frame sync " << command << std::endl; const uint128_t& frameID = command.read< uint128_t >(); const uint32_t frameNumber = command.read< uint32_t >(); makeCurrent(); frameFinish( frameID, frameNumber ); return true; }
bool Pipe::_cmdFrameFinish( co::ICommand& cmd ) { LB_TS_THREAD( _pipeThread ); co::ObjectICommand command( cmd ); const uint128_t frameID = command.get< uint128_t >(); const uint32_t frameNumber = command.get< uint32_t >(); LBLOG( LOG_TASKS ) << "---- TASK finish frame --- " << command << " frame " << frameNumber << " id " << frameID << std::endl; LBASSERTINFO( _impl->currentFrame >= frameNumber, "current " <<_impl->currentFrame << " finish " <<frameNumber); frameFinish( frameID, frameNumber ); LBASSERTINFO( _impl->finishedFrame >= frameNumber, "Pipe::frameFinish() did not release frame " << frameNumber ); if( _impl->unlockedFrame < frameNumber ) { LBWARN << "Finished frame was not locally unlocked, enforcing unlock" << std::endl << " unlocked " << _impl->unlockedFrame.get() << " done " << frameNumber << std::endl; releaseFrameLocal( frameNumber ); } if( _impl->finishedFrame < frameNumber ) { LBWARN << "Finished frame was not released, enforcing unlock" << std::endl; releaseFrame( frameNumber ); } _releaseViews(); const uint128_t version = commit(); if( version != co::VERSION_NONE ) send( command.getNode(), fabric::CMD_OBJECT_SYNC ); return true; }
void Node::_frameFinish( const uint128_t& frameID, const uint32_t frameNumber ) { frameFinish( frameID, frameNumber ); LBLOG( LOG_TASKS ) << "---- Finished Frame --- " << frameNumber << std::endl; if( _unlockedFrame < frameNumber ) { LBWARN << "Finished frame was not locally unlocked, enforcing unlock" << std::endl; releaseFrameLocal( frameNumber ); } if( _finishedFrame < frameNumber ) { LBWARN << "Finished frame was not released, enforcing unlock" << std::endl; releaseFrame( frameNumber ); } }