i965: Don't require spans (swrast) support to consider a format FBO complete.
authorEric Anholt <eric@anholt.net>
Tue, 15 Nov 2011 20:15:37 +0000 (12:15 -0800)
committerEric Anholt <eric@anholt.net>
Tue, 22 Nov 2011 21:58:38 +0000 (13:58 -0800)
We don't want to go writing GetRow/PutRow for every format required by
GL 3.0, when it's very hard to get those functions called, and in
every case we want to make swrast do direct mapping through
MapRenderbuffer anyway.

This causes MESA_FORMAT_R11_G11_B10_FLOAT to be considered complete on gen6.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/mesa/drivers/dri/intel/intel_fbo.c

index c2e9b9b..348b927 100644 (file)
@@ -1362,12 +1362,19 @@ intel_validate_framebuffer(struct gl_context *ctx, struct gl_framebuffer *fb)
         continue;
       }
 
-      if (!intel_span_supports_format(irb->Base.Format) ||
-         !intel->vtbl.render_target_supported(intel, irb->Base.Format)) {
-        DBG("Unsupported texture/renderbuffer format attached: %s\n",
+      if (!intel->vtbl.render_target_supported(intel, irb->Base.Format)) {
+        DBG("Unsupported HW texture/renderbuffer format attached: %s\n",
             _mesa_get_format_name(irb->Base.Format));
         fb->_Status = GL_FRAMEBUFFER_UNSUPPORTED_EXT;
       }
+
+#ifdef I915
+      if (!intel_span_supports_format(irb->Base.Format)) {
+        DBG("Unsupported swrast texture/renderbuffer format attached: %s\n",
+            _mesa_get_format_name(irb->Base.Format));
+        fb->_Status = GL_FRAMEBUFFER_UNSUPPORTED_EXT;
+      }
+#endif
    }
 }