Reviewed-by: Chad Versace <chad.versace@intel.com>
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)
{
}
}
+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