Mesa (master): isl: Add a helper for determining when a typed load/ store can be used

Jason Ekstrand jekstrand at kemper.freedesktop.org
Fri Apr 22 03:45:38 UTC 2016


Module: Mesa
Branch: master
Commit: 65bd8317e2e5c0369987d0b2e535d427dd2c7a4f
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=65bd8317e2e5c0369987d0b2e535d427dd2c7a4f

Author: Jason Ekstrand <jason.ekstrand at intel.com>
Date:   Fri Apr 15 17:05:24 2016 -0700

isl: Add a helper for determining when a typed load/store can be used

Reviewed-by: Chad Versace <chad.versace at intel.com>

---

 src/intel/isl/isl.h               |  7 +++++++
 src/intel/isl/isl_storage_image.c | 13 +++++++++++++
 2 files changed, 20 insertions(+)

diff --git a/src/intel/isl/isl.h b/src/intel/isl/isl.h
index 6c417b2..47d3a68 100644
--- a/src/intel/isl/isl.h
+++ b/src/intel/isl/isl.h
@@ -903,6 +903,13 @@ enum isl_format
 isl_lower_storage_image_format(const struct brw_device_info *devinfo,
                                enum isl_format fmt);
 
+/* Returns true if this hardware supports typed load/store on a format with
+ * the same size as the given format.
+ */
+bool
+isl_has_matching_typed_storage_image_format(const struct brw_device_info *devinfo,
+                                            enum isl_format fmt);
+
 static inline bool
 isl_tiling_is_any_y(enum isl_tiling tiling)
 {
diff --git a/src/intel/isl/isl_storage_image.c b/src/intel/isl/isl_storage_image.c
index 8d9bea3..590d2e4 100644
--- a/src/intel/isl/isl_storage_image.c
+++ b/src/intel/isl/isl_storage_image.c
@@ -187,6 +187,19 @@ isl_lower_storage_image_format(const struct brw_device_info *devinfo,
    }
 }
 
+bool
+isl_has_matching_typed_storage_image_format(const struct brw_device_info *devinfo,
+                                            enum isl_format fmt)
+{
+   if (devinfo->gen >= 9) {
+      return true;
+   } else if (devinfo->gen >= 8 || devinfo->is_haswell) {
+      return isl_format_get_layout(fmt)->bs <= 8;
+   } else {
+      return isl_format_get_layout(fmt)->bs <= 4;
+   }
+}
+
 static const struct brw_image_param image_param_defaults = {
    /* Set the swizzling shifts to all-ones to effectively disable
     * swizzling -- See emit_address_calculation() in




More information about the mesa-commit mailing list