intel: Don't _mesa_problem when asked for an RB of a texturing-only type.
authorEric Anholt <eric@anholt.net>
Tue, 8 Nov 2011 19:19:45 +0000 (11:19 -0800)
committerEric Anholt <eric@anholt.net>
Wed, 9 Nov 2011 20:04:39 +0000 (12:04 -0800)
We want to be able to support some formats for texturing that we can't
render to, which means that some choices for RenderbufferStorage end
up being incomplete (for example, L8 currently).  For these, where we
don't render to them, we don't want to have to make up an rb->DataType
that's only used for GetRow()/PutRow().

src/mesa/drivers/dri/intel/intel_span.c
src/mesa/drivers/dri/intel/intel_tex_format.c

index 604962d..191f776 100644 (file)
@@ -436,4 +436,11 @@ intel_set_span_functions(struct intel_context *intel,
 
    assert(intel_span_init_funcs[irb->Base.Format]);
    intel_span_init_funcs[irb->Base.Format](rb);
+
+   if (rb->DataType == GL_NONE) {
+      _mesa_problem(NULL,
+                   "renderbuffer format %s is missing "
+                   "intel_mesa_format_to_rb_datatype() support.",
+                   _mesa_get_format_name(rb->Format));
+   }
 }
index 6890a69..a9f4981 100644 (file)
@@ -42,8 +42,10 @@ intel_mesa_format_to_rb_datatype(gl_format format)
       return GL_FLOAT;
 
    default:
-      _mesa_problem(NULL, "unexpected MESA_FORMAT for renderbuffer");
-      return GL_UNSIGNED_BYTE;
+      /* Unsupported format.  We may hit this when people ask for FBO-incomplete
+       * formats.
+       */
+      return GL_NONE;
    }
 }