commit c41d046c8f51328e4db04f4345f33fdea1dad93a
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Thu May 17 21:16:36 2018 +0100

    Make sure we don't create a feedback loop in oitRender

diff --git a/src/main/java/org/distorted/library/main/DistortedFramebuffer.java b/src/main/java/org/distorted/library/main/DistortedFramebuffer.java
index 16c7105..0e00c90 100644
--- a/src/main/java/org/distorted/library/main/DistortedFramebuffer.java
+++ b/src/main/java/org/distorted/library/main/DistortedFramebuffer.java
@@ -65,6 +65,7 @@ public class DistortedFramebuffer extends DistortedOutputSurface implements Dist
       GLES31.glTexParameteri(GLES31.GL_TEXTURE_2D, GLES31.GL_TEXTURE_WRAP_T, GLES31.GL_REPEAT);
       GLES31.glTexParameteri(GLES31.GL_TEXTURE_2D, GLES31.GL_TEXTURE_MIN_FILTER, GLES31.GL_NEAREST);
       GLES31.glTexParameteri(GLES31.GL_TEXTURE_2D, GLES31.GL_TEXTURE_MAG_FILTER, GLES31.GL_NEAREST);
+      GLES31.glTexParameteri(GLES31.GL_TEXTURE_2D, GLES31.GL_DEPTH_STENCIL_TEXTURE_MODE, GLES31.GL_DEPTH_COMPONENT);
 
       if( mDepthStencil==DEPTH_NO_STENCIL )
         {
diff --git a/src/main/java/org/distorted/library/main/DistortedOutputSurface.java b/src/main/java/org/distorted/library/main/DistortedOutputSurface.java
index 9a06777..aef67dd 100644
--- a/src/main/java/org/distorted/library/main/DistortedOutputSurface.java
+++ b/src/main/java/org/distorted/library/main/DistortedOutputSurface.java
@@ -356,22 +356,27 @@ public abstract class DistortedOutputSurface extends DistortedSurface implements
 
     DistortedRenderState.enableStencil();
 
-    // we cannot compare DEPTH24_STENCIL8 format to DEPTH32 which oitRender's fragment shader expects.
+    // we have to unbind DEPTH buffer lest we create a feedback loop
 
     if( mDepthStencil==BOTH_DEPTH_STENCIL )
       {
-      GLES31.glBindFramebuffer(GLES31.GL_FRAMEBUFFER, mFBOH[0]);
       GLES31.glFramebufferTexture2D(GLES31.GL_FRAMEBUFFER, GLES31.GL_DEPTH_STENCIL_ATTACHMENT, GLES31.GL_TEXTURE_2D, 0, 0);
-      GLES31.glTexParameteri(GLES31.GL_TEXTURE_2D, GLES31.GL_DEPTH_STENCIL_TEXTURE_MODE, GLES31.GL_DEPTH_COMPONENT);
+      }
+    else if( mDepthStencil==DEPTH_NO_STENCIL )
+      {
+      GLES31.glFramebufferTexture2D(GLES31.GL_FRAMEBUFFER, GLES31.GL_DEPTH_ATTACHMENT        , GLES31.GL_TEXTURE_2D, 0, 0);
       }
 
     DistortedEffects.oitRender(this, buffer.getWidthCorrection(), buffer.getHeightCorrection() );
 
     if( mDepthStencil==BOTH_DEPTH_STENCIL )
       {
-      GLES31.glBindFramebuffer(GLES31.GL_FRAMEBUFFER, mFBOH[0]);
       GLES31.glFramebufferTexture2D(GLES31.GL_FRAMEBUFFER, GLES31.GL_DEPTH_STENCIL_ATTACHMENT, GLES31.GL_TEXTURE_2D, mDepthStencilH[0], 0);
       }
+    else if( mDepthStencil==DEPTH_NO_STENCIL )
+      {
+      GLES31.glFramebufferTexture2D(GLES31.GL_FRAMEBUFFER, GLES31.GL_DEPTH_ATTACHMENT        , GLES31.GL_TEXTURE_2D, mDepthStencilH[0], 0);
+      }
 
     GLES31.glActiveTexture(GLES31.GL_TEXTURE1);
     GLES31.glBindTexture(GLES31.GL_TEXTURE_2D, 0);
