i965: Allow signed/unsigned integer conversions in miptree up/download
authorKenneth Graunke <kenneth@whitecape.org>
Wed, 5 Jun 2019 06:19:22 +0000 (23:19 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Wed, 5 Jun 2019 23:58:07 +0000 (16:58 -0700)
BLORP now handles this so there's no reason to fall back.

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
src/mesa/drivers/dri/i965/brw_blorp.c

index 9a38a365199f545f58569128c54c332f614efc21..c32e3d1f9c06937c071bd8db5262657239936927 100644 (file)
@@ -928,16 +928,6 @@ blorp_get_client_format(struct brw_context *brw,
    return _mesa_tex_format_from_format_and_type(&brw->ctx, format, type);
 }
 
-static bool
-need_signed_unsigned_int_conversion(mesa_format src_format,
-                                    mesa_format dst_format)
-{
-   const GLenum src_type = _mesa_get_format_datatype(src_format);
-   const GLenum dst_type = _mesa_get_format_datatype(dst_format);
-   return (src_type == GL_INT && dst_type == GL_UNSIGNED_INT) ||
-          (src_type == GL_UNSIGNED_INT && dst_type == GL_INT);
-}
-
 bool
 brw_blorp_upload_miptree(struct brw_context *brw,
                          struct intel_mipmap_tree *dst_mt,
@@ -959,13 +949,6 @@ brw_blorp_upload_miptree(struct brw_context *brw,
       return false;
    }
 
-   /* This function relies on blorp_blit to upload the pixel data to the
-    * miptree.  But, blorp_blit doesn't support signed to unsigned or
-    * unsigned to signed integer conversions.
-    */
-   if (need_signed_unsigned_int_conversion(src_format, dst_format))
-      return false;
-
    uint32_t src_offset, src_row_stride, src_image_stride;
    struct brw_bo *src_bo =
       blorp_get_client_bo(brw, width, height, depth,
@@ -1059,13 +1042,6 @@ brw_blorp_download_miptree(struct brw_context *brw,
       return false;
    }
 
-   /* This function relies on blorp_blit to download the pixel data from the
-    * miptree. But, blorp_blit doesn't support signed to unsigned or unsigned
-    * to signed integer conversions.
-    */
-   if (need_signed_unsigned_int_conversion(src_format, dst_format))
-      return false;
-
    /* We can't fetch from LUMINANCE or intensity as that would require a
     * non-trivial swizzle.
     */