i965: Only call create_for_planar_image for multiple planes
authorJason Ekstrand <jason.ekstrand@intel.com>
Mon, 31 Jul 2017 20:33:45 +0000 (13:33 -0700)
committerDaniel Stone <daniels@collabora.com>
Tue, 8 Aug 2017 08:32:20 +0000 (09:32 +0100)
Before, we ended up always calling miptree_create_for_planar_image in
almost all cases because most images have image->planar_format != NULL.
This commit makes us only take that path if we have a multi-planar
format.

Reviewed-by: Daniel Stone <daniels@collabora.com>
src/mesa/drivers/dri/i965/intel_mipmap_tree.c

index 61a9c0c6627723dfd45f4577aaaec53442db07de..7194111721b272e4615b926f3381c8915de48466 100644 (file)
@@ -885,12 +885,15 @@ intel_miptree_create_for_dri_image(struct brw_context *brw,
                                    enum isl_colorspace colorspace,
                                    bool is_winsys_image)
 {
-   if (image->planar_format && image->planar_format->nplanes > 0) {
+   if (image->planar_format && image->planar_format->nplanes > 1) {
       assert(colorspace == ISL_COLORSPACE_NONE ||
              colorspace == ISL_COLORSPACE_YUV);
       return miptree_create_for_planar_image(brw, image, target);
    }
 
+   if (image->planar_format)
+      assert(image->planar_format->planes[0].dri_format == image->dri_format);
+
    mesa_format format = image->format;
    switch (colorspace) {
    case ISL_COLORSPACE_NONE: