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 604962d3f54549095d68ef1ae1a6ea0cda4ebbd0..191f7761d97105a6b24fefb46ba87d12c785d8f1 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 6890a690ab1e8b7d726f2f716538426583dcd47e..a9f4981ab74943117eaf27534dc3479b2a698cda 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;
    }
 }