panfrost: Pass a dev object to panfrost_needs_explicit_stride()
authorBoris Brezillon <boris.brezillon@collabora.com>
Wed, 16 Dec 2020 07:40:33 +0000 (08:40 +0100)
committerBoris Brezillon <boris.brezillon@collabora.com>
Mon, 4 Jan 2021 16:05:42 +0000 (17:05 +0100)
So we can soon use the same path for Bifrost and Midgard.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8125>

src/panfrost/lib/pan_texture.c

index 0bf526d..5d73519 100644 (file)
@@ -78,13 +78,18 @@ panfrost_modifier_to_layout(uint64_t modifier)
  * alignment requirements for their strides as it is */
 
 static bool
-panfrost_needs_explicit_stride(uint64_t modifier,
+panfrost_needs_explicit_stride(const struct panfrost_device *dev,
+                               uint64_t modifier,
                                enum pipe_format format,
                                struct panfrost_slice *slices,
                                uint16_t width,
                                unsigned first_level,
                                unsigned last_level)
 {
+        /* Stride is explicit on Bifrost */
+        if (dev->quirks & IS_BIFROST)
+                return true;
+
         if (modifier != DRM_FORMAT_MOD_LINEAR)
                 return false;
 
@@ -396,8 +401,8 @@ panfrost_new_texture(
                 util_format_description(format);
 
         bool manual_stride =
-                panfrost_needs_explicit_stride(modifier, format, slices, width,
-                                               first_level, last_level);
+                panfrost_needs_explicit_stride(dev, modifier, format, slices,
+                                               width, first_level, last_level);
 
         pan_pack(out, MIDGARD_TEXTURE, cfg) {
                 cfg.width = u_minify(width, first_level);