On 12/12/18 8:42 AM, Tapani Pälli wrote:


On 12/12/18 5:05 AM, Nick Kreeger wrote:
This change enables GLES2 to render float/half-float textures to a
framebuffer when the appropriate OES extensions are available.

This commit regressed OES GLES2 float texture rendering:
https://gitlab.freedesktop.org/mesa/mesa/commit/e333035c47a6a4cc88f0f9ca2bced500538bebae

Which test/app got regressed? I'm curious because this commit also fixed a failing conformance test that explicitly tests that the fbo with float attachment should be marked incomplete.


I'm against this change because these same tests will start to fail if we allow this:

https://mesa-ci.01.org/tpalli/builds/652/group/63a9f0ea7bb98050796b649e85481845

I believe the rule is that you should be able to render to sized formats such as RGBA32F (with modern GLES) but not to unsized formats such as GL_FLOAT.


---
  src/mesa/main/fbobject.c | 20 +++++++++++---------
  1 file changed, 11 insertions(+), 9 deletions(-)

diff --git a/src/mesa/main/fbobject.c b/src/mesa/main/fbobject.c
index 23e4939619..cedfc3d81b 100644
--- a/src/mesa/main/fbobject.c
+++ b/src/mesa/main/fbobject.c
@@ -869,15 +869,17 @@ test_attachment_completeness(const struct gl_context *ctx, GLenum format,
              return;
           }
-         /* OES_texture_float allows creation and use of floating point
-          * textures with GL_FLOAT, GL_HALF_FLOAT but it does not allow
-          * these textures to be used as a render target, this is done via -          * GL_EXT_color_buffer(_half)_float with set of new sized types.
-          */
-         if (_mesa_is_gles(ctx) && (texObj->_IsFloat || texObj->_IsHalfFloat)) {
-            att_incomplete("bad internal format");
-            att->Complete = GL_FALSE;
-            return;
+         if (_mesa_is_gles(ctx)) {
+           /**
+            * GL ES 2 will allow GL_FLOAT and GL_HALF_FLOAT to render as a +            * target when the appropriate OES_* extensions are available.
+            */
+           if ((texObj->_IsHalfFloat && !_mesa_has_OES_texture_half_float(ctx)) || +               (texObj->_IsFloat && !_mesa_has_OES_texture_float(ctx))) {
+             att_incomplete("bad internal format");
+             att->Complete = GL_FALSE;
+             return;
+           }
           }
        }
        else if (format == GL_DEPTH) {

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to