intel: Don't call _mesa_get_format_bytes for MESA_FORMAT_NONE
authorKristian Høgsberg <krh@bitplanet.net>
Mon, 16 Jul 2012 14:54:30 +0000 (10:54 -0400)
committerKristian Høgsberg <krh@bitplanet.net>
Mon, 16 Jul 2012 15:00:16 +0000 (11:00 -0400)
When we don't intend to texture from or render to a __DRIimage we
use __DRI_IMAGE_FORMAT_NONE.  In that case, we just create the __DRIimage
to reference the underlying buffer, and will create usable __DRIimages
from it using createSubImage later.

If we try to use _mesa_get_format_bytes() on MESA_FORMAT_NONE in
a debug build, we hit an assertion, so let's not do that.

src/mesa/drivers/dri/intel/intel_screen.c

index 3638d0d13cba904a88d56fed29bd99fc6e5957ea..bcd85e93dc4464a9a2b501885068a4ecdd0cde90 100644 (file)
@@ -233,7 +233,10 @@ intel_create_image_from_name(__DRIscreen *screen,
     int cpp;
 
     image = intel_allocate_image(format, loaderPrivate);
-    cpp = _mesa_get_format_bytes(image->format);
+    if (image->format == MESA_FORMAT_NONE)
+       cpp = 0;
+    else
+       cpp = _mesa_get_format_bytes(image->format);
     image->region = intel_region_alloc_for_handle(intelScreen,
                                                  cpp, width, height,
                                                  pitch, name, "image");