Blame SOURCES/mesa-9.2-hardware-float.patch

e17c1f
diff --git a/src/gallium/drivers/llvmpipe/lp_screen.c b/src/gallium/drivers/llvmpipe/lp_screen.c
e17c1f
index 5ec1df6..a0406fc 100644
e17c1f
--- a/src/gallium/drivers/llvmpipe/lp_screen.c
e17c1f
+++ b/src/gallium/drivers/llvmpipe/lp_screen.c
e17c1f
@@ -306,6 +306,13 @@ llvmpipe_is_format_supported( struct pipe_screen *_screen,
e17c1f
    if (!format_desc)
e17c1f
       return FALSE;
e17c1f
 
e17c1f
+   if ((bind & PIPE_BIND_RENDER_TARGET) &&
e17c1f
+       format != PIPE_FORMAT_R9G9B9E5_FLOAT &&
e17c1f
+       format != PIPE_FORMAT_R11G11B10_FLOAT &&
e17c1f
+       util_format_is_float(format)) {
e17c1f
+      return FALSE;
e17c1f
+   }
e17c1f
+
e17c1f
    assert(target == PIPE_BUFFER ||
e17c1f
           target == PIPE_TEXTURE_1D ||
e17c1f
           target == PIPE_TEXTURE_1D_ARRAY ||
e17c1f
diff --git a/src/gallium/drivers/softpipe/sp_screen.c b/src/gallium/drivers/softpipe/sp_screen.c
e17c1f
index 937035e..2f5e571 100644
e17c1f
--- a/src/gallium/drivers/softpipe/sp_screen.c
e17c1f
+++ b/src/gallium/drivers/softpipe/sp_screen.c
e17c1f
@@ -291,6 +291,13 @@ softpipe_is_format_supported( struct pipe_screen *screen,
e17c1f
    if (!format_desc)
e17c1f
       return FALSE;
e17c1f
 
e17c1f
+   if ((bind & PIPE_BIND_RENDER_TARGET) &&
e17c1f
+       format != PIPE_FORMAT_R9G9B9E5_FLOAT &&
e17c1f
+       format != PIPE_FORMAT_R11G11B10_FLOAT &&
e17c1f
+       util_format_is_float(format)) {
e17c1f
+      return FALSE;
e17c1f
+   }
e17c1f
+
e17c1f
    if (sample_count > 1)
e17c1f
       return FALSE;
e17c1f