meta: Don't ask for floating point textures if not ARB_texture_float.
authorEric Anholt <eric@anholt.net>
Tue, 26 Apr 2011 19:56:37 +0000 (12:56 -0700)
committerEric Anholt <eric@anholt.net>
Fri, 29 Apr 2011 19:02:44 +0000 (12:02 -0700)
I was promoting to float for ARB_color_buffer_float unclamped, which
failed when ARB_texture_float wasn't present.  Since the metaops don't
need results outside of [0,1] when not drawing to a floating point
destination, they can just use a fixed point texture when floating
point destinations are impossible.

Fixes regression in fdo23670-depth_test when --enable-texture-float is
not present.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=36473

src/mesa/drivers/common/meta.c

index a3964798b1430c1afb51d334ba8f4ef555fd7412..08b6024639fe1752f70f677368f13060a28c1c8c 100644 (file)
@@ -1871,7 +1871,8 @@ _mesa_meta_DrawPixels(struct gl_context *ctx,
        * just going for the matching set of channels, in floating
        * point.
        */
-      if (ctx->Color.ClampFragmentColor != GL_TRUE)
+      if (ctx->Color.ClampFragmentColor != GL_TRUE &&
+         ctx->Extensions.ARB_texture_float)
         texIntFormat = GL_RGBA32F;
    }
    else if (_mesa_is_stencil_format(format)) {