Since Coherent seems to be self-contained (i.e. performs all of the state set up it needs itself as part of the render call), you can just create an auxiliary sf::Context object that you activate whenever you render with Coherent. sf::Texture objects are shared between all SFML contexts, so you can render to it in one and use it in another (such as the sf::RenderTarget's own context). You won't even have to clean up after Coherent is done, all state changes within the auxiliary context are isolated to it, so it won't bother anybody else. If there was a way for you to tell Coherent that you didn't touch any of its states since the last render, it could save even more time, but it doesn't seem like such a thing is available, Coherent just clobbers the current state every render no matter what.