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 c2e9b9be5d98e7b0e06dfe2d5d0f5dbe9aee53e0..348b927ae2dd60bf6d4faf41e7c8752555e96bc1 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
    }
 }