diff --git a/apps/openmw/mwrender/postprocessor.cpp b/apps/openmw/mwrender/postprocessor.cpp index 3762e8e280..df42daa34c 100644 --- a/apps/openmw/mwrender/postprocessor.cpp +++ b/apps/openmw/mwrender/postprocessor.cpp @@ -110,6 +110,10 @@ namespace MWRender if (!ext->glDisablei && ext->glDisableIndexedEXT) ext->glDisablei = ext->glDisableIndexedEXT; +#ifdef ANDROID + ext->glDisablei = nullptr; +#endif + if (ext->glDisablei) mNormalsSupported = true; else @@ -172,11 +176,18 @@ namespace MWRender { mReload = true; mEnabled = true; + bool postPass = Settings::Manager::getBool("transparent postpass", "Post Processing"); mUsePostProcessing = usePostProcessing && !Stereo::getStereo() && !Stereo::getMultiview(); + mDisableDepthPasses = !mSoftParticles && !postPass; + +#ifdef ANDROID + mDisableDepthPasses = true; +#endif + if (!mDisableDepthPasses && !Stereo::getStereo() && !Stereo::getMultiview()) { - mTransparentDepthPostPass = new TransparentDepthBinCallback(mRendering.getResourceSystem()->getSceneManager()->getShaderManager(), Settings::Manager::getBool("transparent postpass", "Post Processing")); + mTransparentDepthPostPass = new TransparentDepthBinCallback(mRendering.getResourceSystem()->getSceneManager()->getShaderManager(), postPass); osgUtil::RenderBin::getRenderBinPrototype("DepthSortedBin")->setDrawCallback(mTransparentDepthPostPass); } diff --git a/components/fx/pass.cpp b/components/fx/pass.cpp index e0489fe0c8..246221eb84 100644 --- a/components/fx/pass.cpp +++ b/components/fx/pass.cpp @@ -75,7 +75,7 @@ namespace fx uniform @builtinSampler omw_SamplerLastShader; uniform @builtinSampler omw_SamplerLastPass; -uniform @builtinSampler omw_SamplerDepth; +uniform highp @builtinSampler omw_SamplerDepth; uniform @builtinSampler omw_SamplerNormals; uniform vec4 omw_PointLights[@pointLightCount];