From b16dc443ff8a4c2fdfff339f41c612963c19fdb5 Mon Sep 17 00:00:00 2001 From: prideout Date: Wed, 31 Jul 2019 15:15:18 -0700 Subject: [PATCH] Do not bind materials outside of a render pass. (affects GL) --- filament/src/PostProcessManager.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/filament/src/PostProcessManager.cpp b/filament/src/PostProcessManager.cpp index 716420f907..63c9ffe4f9 100644 --- a/filament/src/PostProcessManager.cpp +++ b/filament/src/PostProcessManager.cpp @@ -407,7 +407,6 @@ FrameGraphResource PostProcessManager::ssao(FrameGraph& fg, RenderPass& pass, pInstance->setParameter("power", data.options.power); pInstance->setParameter("maxLevel", uint32_t(levelCount - 1)); pInstance->commit(driver); - pInstance->use(driver); PipelineState pipeline; pipeline.program = mSSAO.getProgram(); @@ -415,6 +414,7 @@ FrameGraphResource PostProcessManager::ssao(FrameGraph& fg, RenderPass& pass, pipeline.rasterState.depthFunc = RasterState::DepthFunc::G; driver.beginRenderPass(ssao.target, ssao.params); + pInstance->use(driver); driver.draw(pipeline, fullScreenRenderPrimitive); driver.endRenderPass(); }); @@ -508,13 +508,13 @@ FrameGraphResource PostProcessManager::mipmapPass(FrameGraph& fg, pInstance->setParameter("depth", in, params); pInstance->setParameter("level", uint32_t(level)); pInstance->commit(driver); - pInstance->use(driver); PipelineState pipeline; pipeline.program = mMipmapDepth.getProgram(); pipeline.rasterState = mMipmapDepth.getMaterial()->getRasterState(); driver.beginRenderPass(out.target, out.params); + pInstance->use(driver); driver.draw(pipeline, fullScreenRenderPrimitive); driver.endRenderPass(); }); @@ -568,7 +568,6 @@ FrameGraphResource PostProcessManager::blurPass(FrameGraph& fg, FrameGraphResour pInstance->setParameter("resolution", float4{ desc.width, desc.height, 1.0f / desc.width, 1.0f / desc.height }); pInstance->commit(driver); - pInstance->use(driver); PipelineState pipeline; pipeline.program = mBlur.getProgram(); @@ -576,6 +575,7 @@ FrameGraphResource PostProcessManager::blurPass(FrameGraph& fg, FrameGraphResour pipeline.rasterState.depthFunc = RasterState::DepthFunc::G; driver.beginRenderPass(blurred.target, blurred.params); + pInstance->use(driver); driver.draw(pipeline, fullScreenRenderPrimitive); driver.endRenderPass(); });